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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 如何实现固定时间隔小于K线周期时盘中开仓后至K线走完之间不再出现任何操作?

   

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


  共有11236人关注过本帖平板打印复制链接

主题:如何实现固定时间隔小于K线周期时盘中开仓后至K线走完之间不再出现任何操作?

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


加好友 发短信
等级:新手上路 帖子:71 积分:415 威望:0 精华:0 注册:2011/12/8 20:22:33
  发帖心情 Post By:2012/3/6 22:17:45    Post IP:125.33.85.216[只看该作者]

谢谢管理员,不过提前多少秒下单是不固定的,需要在K线中由条件(与close有关)决定。

 

 

为了解决这个问题,我在数据库全局变量中设置了INKBUY, ENDKSELL, KTIME三个全局变量,确保在关机后重新加载程序也不会被初始化。程序设计的逻辑是:

1.为了实现在K线中间的操作,在图表交易中设定了60秒的固定时间间隔,希望K线周期中每60秒时应该执行一遍程序;

2.当买多条件达到时发出平空开多指令并设置数据库中的全局变量'INKBUY’为1,之后至K线结束不再执行任何交易指令,但判断需要恢复持仓时将数据库全局变量'ENDKSELL'置为1,提供给下一个K线的第一个60秒执行时进行持仓的恢复操作;

3.为判断是新K线的第一个60秒,设置了KTIME变量,从数据库全局变量取出的值与time进行比较,不相等的情况应该在新K线的第一个60秒时就可以发现,这时执行恢复持仓的操作并将KTIME置为当前time,在之后的60秒轮询中将不会再被执行。

 

对应的代码如下:

gbtime:EXTGBDATA('KTIME'),linethick0;  //在新K线的第一个60秒没有走完时读取的应该是上一个K线的时间。
inkbuy:EXTGBDATA('INKBUY'),linethick0;  //上一个K线如果出现K线中平空开多操作是被置为1的,本周期K线的第一个60秒轮询是要用做判断条件的。
endksell:EXTGBDATA('ENDKSELL'),linethick0; //上一个K线最后一个60秒轮询的结果如果需要恢复持仓(平多开空)是被置为1的。
if gbtime<>time then begin //由于新K线的第一个60秒轮询时,gbtime是上一个K线的时间,time是新K线时间,条件成立,之后至K线结束都不再成立。
   if inkbuy and endksell then begin  //如果上一个K线发生K线中的平空开多并走完K线时需要恢复持仓执行下面结构中的语句
       sell(holding>0, 1, limitr, o); //由于是新K线的第一个60秒,这时的o应该就是新K线的开盘价吧????不是很确定!!!
       buyshort(holding=0,1, limitr, o);
       if holding<0 then begin  //恢复持空仓后将数据库变量置为0
            EXTGBDATASET('ENDKSELL' , 0);
            EXTGBDATASET('INKBUY' , 0);
       end
   end
   EXTGBDATASET('KTIME' , time); //在新K线的第一个60秒轮询时将数据库的时间全局变量置为新K线时间,这样在第一个60秒后至K线结束gbtime=time
end

 

请火哥或管理员帮助看看上面的实现有问题吗?另外帮助分析一下下面出现问题的原因。

 

按照上面代码实现后,出现如下问题:

1. 在图表显示的gbtime总是上一个K线的time,但打开工具->数据->全局变量看却是当前K线的time????难道gbtime并不是根据定义的轮询时间被执行???

2. 在有两个主图K线的框架中,gbtime在图表上的显示飘忽不定,似乎是在前面的K线中随机取的,打开工具->数据->全局变量看却始终是当前K线的时间。但这种情况在只有一个主图K线的框架中不会发生,就是总出现问题1,使得程序不能按所需逻辑运行。


[此贴子已经被作者于2012-3-6 22:28:37编辑过]

 回到顶部
总数 29 1 2 3 下一页