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


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

   

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


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

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

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


加好友 发短信
等级:新手上路 帖子:71 积分:415 威望:0 精华:0 注册:2011/12/8 20:22:33
如何实现固定时间隔小于K线周期时盘中开仓后至K线走完之间不再出现任何操作?  发帖心情 Post By:2012/2/28 10:36:49    Post IP:125.33.79.85[只看该作者]

想在K线走完之前的盘中实现判断和操作所以采用了固定时间间隔,间隔时间小于K线周期,希望盘中第一次达到条件时操作之后至K线走完之前忽略任何信号,在K线走完时再次进行一次判断,如何实现请大侠帮忙!
[此贴子已经被作者于2012-2-28 10:37:21编辑过]

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


加好友 发短信 大哥
等级:超级版主 帖子:2837 积分:13237 威望:0 精华:2 注册:2010/7/14 17:31:54
  发帖心情 Post By:2012/2/28 10:39:44    Post IP:58.246.57.26[只看该作者]

你说的这个要用全局变量来进行记录和处理
你可以参考这个帖子


金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


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

折腾了几天还是不能完全解决,是否在runmode=0和走完K线交易条件下无法在K线周期中进行开平仓?如果遇到长阳或长阴希望在K线没有走完提前止损又如何实现呢?

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


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2012/3/5 22:26:50    Post IP:121.204.191.178[只看该作者]

就是K线走完前提前下单,走完后信号如果消失再补回持仓?


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


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

是这个意思,只是在K线中第一次出现操作信号时下单(比如平空开多),之后一直到K线走完之前不再处理反复出现和消失的信号(消失时如果多仓则平多开空),最后在K线走完时判断一次,根据最后这次的判断决定是否再补回持仓。


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


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

这个不用后台在图表上是无法做到的,即便后台实现也非常复杂,建议你购买专业版,使用专业版的提前N秒下单,然后下个周期恢复持仓功能

 回到顶部
帅哥哟,离线,有人找我吗?
MMM
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2012/3/6 22:32:34    Post IP:121.204.191.178[只看该作者]

图表实现 用enterlong entershort 指令,用buy sell 麻烦

后台用tsell tbuy

 

提前N秒,跟C有关? 你根据你的思路举个例子得了。帮你实现

请详细一点(在什么样的周期,提前几秒是如何计算的等)

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

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


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

似乎你忽略一个重要问题,就是你要在ISLASTBAR条件上来控制只在最后一个周期来控制全局变量,否则都是每次都第一个BAR开始初始化

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


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2012/3/6 22:36:19    Post IP:121.204.191.178[只看该作者]

sell sellshort 要执行,必须前面有信号。

信号消失后,你的holding可能是大于0的,但是实际仓位是 空单,这是要买入平仓。而holding>0 是无法用sellshort的。

如果非要用 新交易系统指令,需要做特别处理

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

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