欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 如何在金字塔上实现信号延时确认

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有21270人关注过本帖树形打印复制链接

主题:如何在金字塔上实现信号延时确认

帅哥哟,离线,有人找我吗?
smarter
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:210 积分:1315 威望:0 精华:0 注册:2009/12/6 9:00:34
如何在金字塔上实现信号延时确认  发帖心情 Post By:2010/7/20 7:56:34    Post IP:119.255.36.142[只看该作者]

信号发生时后, 持续15秒后还有信号, 确认开仓, 持续时间可以是0-180秒


为了处理即时信号消失问题,由于系统缺陷,文华无奈地采用了比较笨的方法:
1、信号消失恢复之前的持仓;
2、信号延时确认

 

按理说金字塔比文华灵活,可以在后台交易中通过公式达到此功能,由于金字塔时间函数目前的局限,不能被合理引用,以致连这个简单功能都不知如何实现,更别说实现诸如
精确控制开仓\平仓时的各种变化,比如满足条件tj1后, 根据之后20秒时间的持仓变化、盘口变化,给出进一步的行动依据,。。。
http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=2174&page=0&star=2

 

由于金字塔的卓越功能,已经成为我们的投机利器,我们再也离不开这一制胜法宝,同时也在考虑如何回报金字塔,使它更强更大。我们非常庆幸金字塔能有这样一位天才设计者,由衷地感谢您!
请求金字塔满足大家的意见,拿出更简单的方法实现这类功能。谢谢!

 

最好的方法是扩充现有函数Time0 的功能
取得从当日0点以来的秒数。

使它能够在任何大于1秒的周期,返回自从当日0点以来的真正秒数。(目前函数Time0在1分钟周期,返回自从当日0点以来的秒数只能精确到60秒,不能到1秒)

这样,很容易实现信号延时确认功能,同时也可以进一步拓展其它功能。


 回到顶部
帅哥哟,离线,有人找我吗?
smarter
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:210 积分:1315 威望:0 精华:0 注册:2009/12/6 9:00:34
  发帖心情 Post By:2010/7/20 8:10:42    Post IP:119.255.36.142[只看该作者]

这种函数国外优秀交易软件和平台是有的

二.时间函数
001)获取毫秒级计时

GetTimeTick(last) ;//获取毫秒级计时


功能:获取毫秒级计时

参数:last--毫秒级计时双字值

返回: 毫秒级计时减last后的双字值


一般使用形式:
系统毫秒级计时一般几十天一个循环
m_tick=GetTimeTick(0) ;//当前毫秒级计时
.....
m_ctick=GetTimeTick(m_tick) ;//从m_tick到现在的毫秒数
 

002)获取当前时间(或指定时间)

GetTime() ;//获取当前时间(或指定时间)


功能:获取当前时间(或指定时间)

参数:获取指定时间的时间值时,要输入,年,月,日,时,分,秒

返回: 当前时间(或指定时间)的双精度浮点值(相当于8字节长度数值)


一般使用形式:

m_t00=GetTime() ;
m_t00=GetTime(2006,08,15,12,20,22) ;


003)获取当前时间(或指定时间)的具体年,月,日,时,分,秒

GetSeconds() ;//获取当前时间(或指定时间)的秒
GetMinutes() ;//获取当前时间(或指定时间)的分
GetHour() ;//获取当前时间(或指定时间)的时
GetDay() ;//获取当前时间(或指定时间)的天
GetDayOfWeek() ;//获取当前时间(或指定时间)的星期
GetMonth() ;//获取当前时间(或指定时间)的月
GetYear() ;//获取当前时间(或指定时间)的年
GetDate() ;//获取当前时间(或指定时间)的字串


功能:获取当前时间(或指定时间)的具体年,月,日,时,分,秒

参数:获取指定时间的时间值时,输入具体时间值(和GetTime()函数返回的值意义一样)

返回: 返回相应的值或字符串


一般使用形式:

m_t00=GetDay() ;
m_t00=GetDay(10025656...) ;

[此贴子已经被作者于2010-7-20 8:11:52编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
admin
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2010/7/20 11:04:34    Post IP:58.246.57.26[只看该作者]

可以使用全局变量数据库来记录之前的信号变量前后之间的时间差,由于较为复杂,稍后我们会做出例子。


 回到顶部
帅哥哟,离线,有人找我吗?
smarter
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:210 积分:1315 威望:0 精华:0 注册:2009/12/6 9:00:34
  发帖心情 Post By:2010/7/20 17:39:08    Post IP:119.255.36.142[只看该作者]

多谢!  期待着


 回到顶部
帅哥哟,离线,有人找我吗?
smarter
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:210 积分:1315 威望:0 精华:0 注册:2009/12/6 9:00:34
  发帖心情 Post By:2010/7/21 16:52:13    Post IP:119.255.36.142[只看该作者]

另外,我在[交易] ---> [合约信息设置] 里设置的外汇品种,如EURUSD 的单位/乘数 设为 1 ,但经常自动的被改为0,影响系统头寸控制,请求解决办法,谢谢! 


 回到顶部
帅哥哟,离线,有人找我吗?
admin
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2010/7/25 1:05:01    Post IP:125.34.161.207[只看该作者]

本示例以后台自动交易的方式,展现了金字塔实现延迟信号确认的工作原理。

本代码可以实现3天现上穿5天线后,15秒等待信号确认后,再发开仓单。

请选择固定时间间隔模式运行后台自动交易,间隔时间设为1秒

本公式会在运行时产生很多临时数据,请用户再第二天交易前清空这些历史变量,否则会导致与第二天的临时变量冲突。方法 工具菜单-》数据-》全局变量,进去后,选择“清空”按钮

 

MA1:=MA(CLOSE,3);
MA2:=MA(CLOSE,5);

CROS:=CROSS(MA1,MA2);

CROS2:=CROSS(MA2,MA1);


BUY1:=FALSE;

IF ISLASTBAR THEN
BEGIN
 IF CROS THEN
 BEGIN
  //将当前信号周期置全局变量数据库
  //数据名字前加信号周期,标记周期位置
  CRTEMP:='TEMP1'&NUMTOSTR( BARPOS, 0);
  
  //读取原有变量的时间,判断是否到延时时间
  BUYTIME1:=EXTGBDATA(CRTEMP);
  BUYTIME2:=TIMETOT0(CURRENTTIME);
  DEBUGOUT('D1 %.0f',BUYTIME1);
  IF BUYTIME1 > 1 THEN //第一次信号的原数据库读取会得到0值
  BEGIN
   DEBUGOUT('D2 %.0f',BUYTIME2 - BUYTIME1);
   IF BUYTIME2 - BUYTIME1 > 15 THEN
   BEGIN
    //大于15秒的延迟,表示信号已经得到确认
    BUY1:=TRUE;
   END
  END
  ELSE
  BEGIN
   //第一次信号位置记录
   EXTGBDATASET(CRTEMP,TIMETOT0(CURRENTTIME));
  END
 END
 ELSE
 BEGIN
  //否则表示信号中间消失了
  CRTEMP:='TEMP1'&NUMTOSTR( BARPOS, 0);
  EXTGBDATASET(CRTEMP,0);
 END
END

TBUY(BUY1,1,MKT);
TSELL(CROS2,0,MKT);

[此贴子已经被作者于2010-7-25 1:06:05编辑过]

[本帖被加为精华]
 回到顶部
帅哥哟,离线,有人找我吗?
脑残
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:98 积分:610 威望:0 精华:0 注册:2010/8/11 17:50:06
  发帖心情 Post By:2010/10/24 20:10:08    Post IP:221.226.20.110[只看该作者]

顶出来学习

 回到顶部
美女呀,离线,留言给我吧!
xian_0_9
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 BOO
等级:论坛游民 帖子:378 积分:1856 威望:0 精华:0 注册:2010/1/25 18:04:12
  发帖心情 Post By:2010/11/1 17:57:33    Post IP:123.189.29.141[只看该作者]

能写个图表的实例吗?谢谢,让新手们学学~~图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
趋势7778888
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:63 积分:502 威望:0 精华:0 注册:2010/6/26 15:39:55
  发帖心情 Post By:2011/4/1 16:23:09    Post IP:59.174.110.25[只看该作者]

以下是引用admin在2010-7-25 1:05:01的发言:

本示例以后台自动交易的方式,展现了金字塔实现延迟信号确认的工作原理。

本代码可以实现3天现上穿5天线后,15秒等待信号确认后,再发开仓单。

请选择固定时间间隔模式运行后台自动交易,间隔时间设为1秒

本公式会在运行时产生很多临时数据,请用户再第二天交易前清空这些历史变量,否则会导致与第二天的临时变量冲突。方法 工具菜单-》数据-》全局变量,进去后,选择“清空”按钮

 

MA1:=MA(CLOSE,3);
MA2:=MA(CLOSE,5);

CROS:=CROSS(MA1,MA2);

CROS2:=CROSS(MA2,MA1);


BUY1:=FALSE;

IF ISLASTBAR THEN
BEGIN
 IF CROS THEN
 BEGIN
  //将当前信号周期置全局变量数据库
  //数据名字前加信号周期,标记周期位置
  CRTEMP:='TEMP1'&NUMTOSTR( BARPOS, 0);
  
  //读取原有变量的时间,判断是否到延时时间
  BUYTIME1:=EXTGBDATA(CRTEMP);
  BUYTIME2:=TIMETOT0(CURRENTTIME);
  DEBUGOUT('D1 %.0f',BUYTIME1);
  IF BUYTIME1 > 1 THEN //第一次信号的原数据库读取会得到0值
  BEGIN
   DEBUGOUT('D2 %.0f',BUYTIME2 - BUYTIME1);
   IF BUYTIME2 - BUYTIME1 > 15 THEN
   BEGIN
    //大于15秒的延迟,表示信号已经得到确认
    BUY1:=TRUE;
   END
  END
  ELSE
  BEGIN
   //第一次信号位置记录
   EXTGBDATASET(CRTEMP,TIMETOT0(CURRENTTIME));
  END
 END
 ELSE
 BEGIN
  //否则表示信号中间消失了
  CRTEMP:='TEMP1'&NUMTOSTR( BARPOS, 0);
  EXTGBDATASET(CRTEMP,0);
 END
END

TBUY(BUY1,1,MKT);
TSELL(CROS2,0,MKT);

[此贴子已经被作者于2010-7-25 1:06:05编辑过]

能否直接设置在 金字 塔软件 里面 可以 自由调整  ,不需要现在这样 个个 模型都需要 加上 这些原码???并且可以在图表交易中使用 谢谢

[此贴子已经被作者于2011-4-1 16:28:56编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lcgs005
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:649 积分:1359 威望:0 精华:0 注册:2009/10/24 1:57:01
  发帖心情 Post By:2012/8/20 13:06:42    Post IP:119.85.6.143[只看该作者]

最好是加一个函数,让它在任何K线周期下都能返回最后一次满足条件,到现在的秒数,这样一下子就解决了

 回到顶部
总数 20 1 2 下一页