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


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

   

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


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

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

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


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

图片点击可在新窗口打开查看

 

上图就是数据回测时的效果,但是如果K线走完就不无法实现图中的开仓点,这个开仓点与当根K线的即时close有关。就是希望可以在K线中间可以开仓,在出现情况一时需要恢复仓位,情况二时不用回复持仓。

可以假设K线中成交条件为condK=1,K线结束需要恢复仓位condS=1,不需要恢复仓位condS<>1。


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


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

谢谢提示,我原来以为数据库全局变量不太一样。我以前都是用globalvariable来定义全局变量,但发现如果给这个全局变量赋值的语句如果在if结构中,在if不被执行时是无法使用该变量,值是非法的,所以才想到数据库全局变量一旦被写入,后面任何时候都是可以被取出调用的,不知我的理解是否正确?

 

另外,我在2012-3-6 22:17:45中的最后两个问题可否解释一下原因,关键是在最后一根K线上看从数据库全局变量取值出来的gbtime(gbtime:EXTGBDATA('KTIME'),linethick0;)不是该K线的time而是前一根K线的,但从工具-数据-全局变量上看KTIME已经通过第一个60秒的程序执行被设置成最后一根K线的time。


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


加好友 发短信
等级:新手上路 帖子:71 积分:415 威望:0 精华:0 注册:2011/12/8 20:22:33
在回复的帖子后面跟帖好像不被显示为最新帖,用回复主题帖子试试。  发帖心情 Post By:2012/3/8 9:42:58    Post IP:125.33.89.161[只看该作者]

谢谢admin提示,我原来以为数据库全局变量不太一样。我以前都是用globalvariable来定义全局变量,但发现如果给这个全局变量赋值的语句如果在if结构中,在if不被执行时是无法使用该变量,值是非法的,所以才想到数据库全局变量一旦被写入,后面任何时候都是可以被取出调用的,不知我的理解是否正确?

 

 

另外,我在2012-3-6 22:17:45中的最后两个问题可否解释一下原因,关键是在最后一根K线上看从数据库全局变量取值出来的gbtime(gbtime:EXTGBDATA('KTIME'),linethick0;)不是该K线的time而是前一根K线的,但从工具-数据-全局变量上看KTIME已经通过第一个60秒的程序执行被设置成最后一根K线的time。


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


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

以下是引用阿火在2012-3-5 22:26:50的发言:

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

 

就是要这种效果?

那很简单啊。怎么搞那么复杂? == 给你实例

[此贴子已经被作者于2012-3-8 12:38:46编辑过]

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


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

你理解是正确的
但是G~这种全局变量不是工具 数据里面那个
那个是extgbdata的全局变量




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

客户服务部

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

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

service@weistock.com

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

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


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

extgbdata这种全局变量是真正的全局变量
他是在整个金字塔软件范围内都通用的全局





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

客户服务部

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

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

service@weistock.com

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

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


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

谢谢董!也就是说所有该软件上的应用都可以调用到,真是非常强大的功能。

 

不过我不明白的是,在我的逻辑中EXTGBDATASET('KTIME')=time显然在新的K线产生的第一个固定时间轮询时更新了数据库变量的值(在工具-数据-全局变量可以看到新的更新,即KTIME是当前K线的time),可是接下来的轮询中(当前K线还没有走完)从数据库取出的值gbtime:=EXTGBDATA('KTIME')却是前一根K线的time值???


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


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

EXTGBDATASET语法没写错吧
如果没写错 我倒觉得可能是在你看的时候 数据库中的值又改变了


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

客户服务部

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

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

service@weistock.com

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

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


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

这是一个具体的例子:

 

runmode:0;
variable:cc=0;
islast:=islastbar;
bb:=c>o+0.6;
ss:=c<o-0.6;
if cc>0 and ss then begin
 cc:=0;
end
if cc<0 and bb then begin
 cc:=0;
end
if cc=0 and bb then begin
 cc:=1;
end
if cc=0 and ss then begin
 cc:=-1;
end
lcc:=ref(cc,1);
if islast then att:=extgbdata('att');

if (lcc>0 and cc<=0) or (islast and cc<=0 and barpos>att and tbuyholding(1)>0) then begin
 exitlong:1;
 if lcc>0 and cc<=0 and islast then extgbdataset('att',barpos);
end
if (lcc<0 and cc>=0) or (islast and cc>=0 and barpos>att and tsellholding(1)>0) then begin
 exitshort:1;
 if lcc<0 and cc>=0 and islast then extgbdataset('att',barpos);
end
if (lcc<=0 and cc>0) or (islast and cc>0 and barpos>att and tbuyholding(1)=0) then begin
 enterlong:1;
 if lcc<=0 and cc>0 and islast then extgbdataset('att',barpos);
end
if (lcc>=0 and cc<0) or (islast and cc<0 and barpos>att and tsellholding(1)=0) then begin
 entershort:1;
 if lcc>=0 and cc<0 and islast then extgbdataset('att',barpos);
end

 

盘中出现信号即下单,次周期检查信号是否消失,如果消失补回持仓

固定轮询1秒或者高频

[此贴子已经被作者于2012-3-8 15:19:26编辑过]

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


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

谢谢火哥提供例子!要仔细消化一下。

 

有几个问题还是要请教一下:

1.我现在是标准版,只能采用图表程式化交易,这段代码中含有tbuyholding/tsellholding后台交易函数,不知简单换成holding的判断是否可以?

2.采用islastbar的应用,是否会使前面K线的交易信号在图表上消失?

3.采用enterlong系列指令和buy系列指令的区别?

[此贴子已经被作者于2012-3-8 16:03:46编辑过]

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