以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  是什么原因导致了发信号  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=145280)

--  作者:zwdqx
--  发布时间:2016/12/26 21:30:29
--  是什么原因导致了发信号

我的策略(30分钟macd金叉时买入,60分钟macd值小于前一日时卖出),用的默认周期是60分钟,走完一根线以后。以下是我的策略。

Diff30:=stkindi(\'\',\'macd.diff\',0,4);//30 分钟 diff

Dea30:= stkindi(\'\',\'macd.dea\',0,4);//30 分钟 dea

Macd60:=stkindi(\'\',\'macd.macd1\',0,5);//60分钟macd

If  cross(diff30,dea30)  and  macd60>0.005  and  tbuyholding(1)=0  then  BEGIN

tbuy(1,10000/close,mkt);

SENDMAIL(1,\'13913992413@139.COM\', STKLABEL & STKNAME & NUMTOSTR(CLOSE,2)& \'《买》_14\',\'\');

end

If  macd60<ref(macd60,1)  and  tbuyholding(0)>0  then BEGIN

 tsell(1,0,mkt); 

SENDMAIL(1,\'13913992413@139.COM\', STKLABEL & STKNAME & NUMTOSTR(CLOSE,2)& \'《卖》_【普14\',\'\');

End


今日9:32启动模拟,发现000550江铃汽车有预警,交易记录中有“000550 - 不支持该品种交易”(不支持该品种交易是不是与模拟帐户,同一时间多个触发有关?)。但从30分钟macd看,不可能金叉。如下图


此主题相关图片如下:捕获1.gif
按此在新窗口浏览图片
这种情况是不是与选择的默认周期有关?(走完一个K线要60分钟,会不会漏掉其中一个30分钟的判断)
策略中使用到30分钟和60分钟周期,在选择用走完一根K线的情况下,默认周期是不是最好选小的周期?

选60分钟为默认周期,9:32启动交易时,是用前一根K线(这里是前一天15:00K线)计算吗?


--  作者:zwdqx
--  发布时间:2016/12/26 21:40:53
--  
能留个电话吗?想当面沟通一下。谢谢!
--  作者:zwdqx
--  发布时间:2016/12/26 22:07:27
--  

假如在策略中引用了满足周期的所有数据(这里是30分钟和60分钟),那默认周期是不是可以随便选择?


--  作者:zwdqx
--  发布时间:2016/12/27 7:20:55
--  
还有000516江南红箭,26日13:56启动交易时开多了,但从30分钟线、60分钟线和实时股价看,macd不可能不可能金叉,疑惑不解,请老师赐教,能帮忙测试一下最好,谢谢!!!。图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:捕获3.gif
图片点击可在新窗口打开查看
30分钟线

图片点击可在新窗口打开查看此主题相关图片如下:捕获4.gif
图片点击可在新窗口打开查看
60分钟线



[此贴子已经被作者于2016-12-27 7:22:02编辑过]

--  作者:jinzhe
--  发布时间:2016/12/27 9:21:36
--  

1交易记录中有“000550 - 不支持该品种交易

要用股票的模拟帐号交易,不能用期货的

2这么多的疑问,需要用调试来查询

用debugfile来调试出每个你要的数据和条件,查看下当时的结果,是不是和你看到的和你想的一样


--  作者:zwdqx
--  发布时间:2016/12/27 9:43:36
--  

1我用的都是股票的模拟帐号,期货的没有申请过

2请老师在我上面策略中增加调试查询,我来运行,谢谢!


--  作者:jinzhe
--  发布时间:2016/12/27 9:48:20
--  

1账户栏截图看一下

2调试代码如下:


debugfile(\'d:\\test.txt\',\'diff30 =  %.2f\',diff30);

debugfile(\'d:\\test.txt\',\'dea30 =  %.2f\',dea30);

debugfile(\'d:\\test.txt\',\'macd60 =  %.2f\',macd60);

debugfile(\'d:\\test.txt\',\'金叉判断 =  %.0f\',cross(diff30,dea30));

debugfile(\'d:\\test.txt\',\'macd60>0.005判断 =  %.0f\',macd60>0.005);


--  作者:zwdqx
--  发布时间:2016/12/27 10:03:09
--  
2016-12-26 07:34:36.307    【回报】60003394 : 登录成功
2016-12-26 07:34:36.334    【后台】 启动后台程式化交易
2016-12-26 09:31:57.189    【后台】 启动后台程式化交易
2016-12-26 09:31:57.214    【后台】603028 运行结束
2016-12-26 09:31:57.282    【后台】002613 运行结束
2016-12-26 09:31:57.285    【后台】002605 TSell 已成功触发下单操作 价格:0.000000 数量:0 类型:1 账户: 品种:002605
2016-12-26 09:31:57.286    【后台】实际账户持仓 500
2016-12-26 09:31:57.286    【后台】下单已发送
2016-12-26 09:31:57.288    【下单】已经调整为 实际持仓为 500 
2016-12-26 09:31:57.288    【下单】002605 价0.000000 量500 买卖1 类型1 开平1 账户60003394 Formula 1
2016-12-26 09:31:57.288    【下单】已提交,订单ID :783
2016-12-26 09:31:57.306    【回报】60003394 : 002605 - 不支持该品种交易
2016-12-26 09:31:58.137    【后台】002605 运行结束
2016-12-26 09:31:58.162    【后台】002380 运行结束
2016-12-26 09:31:58.162    【后台】002328 运行结束
2016-12-26 09:31:58.165    【后台】002301 TSell 已成功触发下单操作 价格:0.000000 数量:0 类型:1 账户: 品种:002301
2016-12-26 09:31:58.165    【后台】实际账户持仓 400
2016-12-26 09:31:58.166    【后台】下单已发送
2016-12-26 09:31:58.195    【下单】已经调整为 实际持仓为 400 
2016-12-26 09:31:58.195    【下单】002301 价0.000000 量400 买卖1 类型1 开平1 账户60003394 Formula 1
2016-12-26 09:31:58.235    【后台】002301 运行结束
2016-12-26 09:31:58.235    【后台】002212 运行结束
2016-12-26 09:31:58.235    【下单】已提交,订单ID :784
2016-12-26 09:31:58.241    【回报】60003394 : 002301 - 不支持该品种交易


是不是原先有持仓造成的?


--  作者:zwdqx
--  发布时间:2016/12/27 10:16:12
--  

直接放在end语句后面可以吗?



Diff30:=stkindi(\'\',\'macd.diff\',0,4);//30 分钟 diff

Dea30:= stkindi(\'\',\'macd.dea\',0,4);//30 分钟 dea

Macd60:=stkindi(\'\',\'macd.macd1\',0,5);//60分钟macd

If  cross(diff30,dea30)  and  macd30>0.005  and  tbuyholding(1)=0  then  BEGIN

tbuy(1,10000/close,mkt);

SENDMAIL(1,\'13913992413@139.COM\', STKLABEL & STKNAME & NUMTOSTR(CLOSE,2)& \'《买》_14\',\'\');

end

If  macd60<ref(macd60,1)  and  tbuyholding(0)>0  then BEGIN

 tsell(1,0,mkt); 

SENDMAIL(1,\'13913992413@139.COM\', STKLABEL & STKNAME & NUMTOSTR(CLOSE,2)& \'《卖》_【普14\',\'\');

End

debugfile(\'d:\\test.txt\',\'diff30 =  %.2f\',diff30);

debugfile(\'d:\\test.txt\',\'dea30 =  %.2f\',dea30);

debugfile(\'d:\\test.txt\',\'macd60 =  %.2f\',macd60);

debugfile(\'d:\\test.txt\',\'金叉判断 =  %.0f\',cross(diff30,dea30));

debugfile(\'d:\\test.txt\',\'macd60>0.005判断 =  %.0f\',macd60>0.005);


--  作者:jinzhe
--  发布时间:2016/12/27 10:21:56
--  
就放在你的所有代码最后面