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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 请教老师逐k模式周期内调用数据的问题

   

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


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

主题:请教老师逐k模式周期内调用数据的问题

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


加好友 发短信
等级:论坛游民 帖子:117 积分:0 威望:0 精华:0 注册:2016/8/20 15:46:56
请教老师逐k模式周期内调用数据的问题  发帖心情 Post By:2016/9/9 11:35:37    Post IP:116.25.205.136[只看该作者]

 

请教老师,我在15分钟线运行交易系统,运行模式为逐k模式,其中有一个开仓条件为开盘第5分钟的价格在创新高/新低,回测没有发生交易。没有发生交易的原因是不是开盘第5分钟的价格在创新高/新低在15分钟周期没办法被程序识别?在历史回测时是否不能用固定轮询模式?应该如何解决?

 

 

 

附:程序代码

 

 

逐k模式,轮循模式(1分钟间隔),15分钟线

//参数

Input:n1(15,5,50,1);

Input: 每手交易数量(5,1,10000);


 

//变量准备

M15:=ma(c,n1);

M15a:=ref(ma(c,n1),1);

M15b:=ref(ma(c,n1),2);

C1:=ref(c,1);

C2:=ref(2,1);

H2:=ref( hhv(h,2),1);

L2:= ref(llv(l,2),1);

N:=2*MA(TR,n1);

Cm15:= cross(c,m15);

M15c:= cross(m15,c);

How:= INTPART( CASH(0)*0.01/n/每手交易数量);

//申明变量

Variable:fk=0;

//第一根线

If time=010500 and (c>=h-3*MINDIFF or c<=l+3*MINDIFF )then begin;

fk:=1;

End;

//开仓

If time>010500 and time<011500 then begin;

1k开多条件:=holding=0 and fk=1 and m15a> 0.999*M15b and o>H2 and ((o>= C1*1.002 and o<= C1*1.015) or (o< C1*1.002 and c>1.003* C1 and o<= C1*1.015) or Cm15=1);

1k开空条件:=holding=0 and fk=1 and m15a< 1.001*M15b and o<l2 and ((o<= C1*0.998 and o<= C1*0.985) or (o> C1*0.998 and c<0.997* C1 and o>= C1*0.985) or M15c=1);

Buy(1k开多条件,how,market);

buyshort(1k开空条件,how,market);

End;

//止损

多仓止损条件:= c< ENTERPRICE*0.996 or c<2/3*n or cross(m15,c);

空仓止损条件:= c> ENTERPRICE*1.004 or c>2/3*n or cross(c,m15);

If holding<>0 and BARSLAST(holding<>0)=0 then begin;

Sell(多仓止损条件,0,market);

Sellshort(空仓止损条件,0,market);

End;

//止盈

多仓止盈条件:=(isdown=1 and c/c1<0.998 and c1/c2<0.998) or(c/c2<0.995) or M15c=1;

空仓止盈条件:= (isup=1 and c/c1>1.002 and c1/c2>1.002) or(c/c2>1.005) or Cm15=1;

If holding<>0 then begin;

Sell(多仓止盈条件,0,market);

Sellshort(空仓止盈条件,0,market);

End;

If time>011500 then fk:=0;

//收盘前平仓

If time=185700 and holding<>0 then begin;

Sell(1,0,market);

Sellshort(1,0,market);

End;

 


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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2016/9/9 13:04:18    Post IP:180.169.30.6[只看该作者]

哪一句是“开盘第5分钟的价格在创新高/新低”



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

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

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

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


加好友 发短信
等级:论坛游民 帖子:117 积分:0 威望:0 精华:0 注册:2016/8/20 15:46:56
  发帖心情 Post By:2016/9/9 16:00:31    Post IP:116.25.205.136[只看该作者]

这几句是: If time=010500 and (c>=h-3*MINDIFF or c<=l+3*MINDIFF )then begin; fk:=1; End;

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2016/9/9 16:03:52    Post IP:180.169.30.6[只看该作者]

因为15分钟第一根k线就是011500,所以你上面一大段在011500之前时间段的计算,都是无效的


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

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

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

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


加好友 发短信
等级:论坛游民 帖子:117 积分:0 威望:0 精华:0 注册:2016/8/20 15:46:56
  发帖心情 Post By:2016/9/9 16:25:20    Post IP:116.25.205.136[只看该作者]

我用的是15分钟线,间隔1分钟轮询模式,系统不能识别开盘第5分钟的收盘价吗? 那我只能用5分钟线来做这个交易系统?

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2016/9/9 16:37:14    Post IP:180.169.30.6[只看该作者]

time反映的不是行情时间或者说本地时间,time反映的是k线时间,实际时间010000到011500这一段反映出来的time,都是011500.所以上面一堆010500 时间在15分钟k线上,是没有的。

所以用5分钟周期比较好



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

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

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

 回到顶部