以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://www.weistock.com/bbs/list.asp?boardid=4) ---- 请高手帮忙完善一下程序漏洞 (http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=51163) |
-- 作者:yuhang -- 发布时间:2013/4/18 12:37:41 -- 请高手帮忙完善一下程序漏洞 应用于10分钟线下的一个策略: INPUT:M(26,5,500,30); INPUT:N(2,0.1,10,1); INPUT:X(0.2,0.2,10,0.2); MID : MA(CLOSE,M); UPPER: MID + N*STD(CLOSE,M); LOWER: MID - N*STD(CLOSE,M); 多:=ALL(C>O+15*X,2) AND ALL(O>MID,2); if 多 then begin sellshort(holding<0, 0, thisclose); buy(holding=0 {AND TIME<144000}, 1, thisclose); end HH:=HHV(H,BARSLAST(HOLDING<=0)); 多止损1:HH<Enterprice+60*X AND C<=HH-60*X ,LINETHICK0; 多止损2:Enterprice*1.02>=HH AND HH>=Enterprice+60*X AND C<Enterprice+2*X ,LINETHICK0; 多止损3:TIME>144000 AND C<Enterprice*1.03 ,LINETHICK0; if 多止损1 OR 多止损2 OR 多止损3 then sell(holding>0, 0, thisclose); 烦请帮忙修改程序来解决上述问题,当同时出现买入卖出信号时,或者不执行、或者买入后迅速卖出。 【注】有关程序化交易中的固定轮询模式和走完K线模式的说明没看懂,是否是上述情况的解决方法之一?? |
-- 作者:just -- 发布时间:2013/4/18 14:38:16 -- INPUT:M(26,5,500,30); INPUT:N(2,0.1,10,1); INPUT:X(0.2,0.2,10,0.2); MID : MA(CLOSE,M); UPPER: MID + N*STD(CLOSE,M); LOWER: MID - N*STD(CLOSE,M); HH:=HHV(H,BARSLAST(HOLDING<=0)); 多止损1:HH<Enterprice+60*X AND C<=HH-60*X ,LINETHICK0; 多止损2:Enterprice*1.02>=HH AND HH>=Enterprice+60*X AND C<Enterprice+2*X ,LINETHICK0; 多止损3:TIME>144000 AND C<Enterprice*1.03 ,LINETHICK0; if 多止损1 OR 多止损2 OR 多止损3 then sell(holding>0, 0, thisclose); 多:=ALL(C>O+15*X,2) AND ALL(O>MID,2); if 多 then begin sellshort(holding<0, 0, thisclose); buy(holding=0 {AND TIME<144000}, 1, thisclose); end 图表注意先平后开原则
|
-- 作者:yuhang -- 发布时间:2013/4/18 18:27:56 -- 还有一种情况是 先开多买入信号,然后平多卖出信号和开空买入信号重叠一起,又该如何解决呢? |
-- 作者:yuhang -- 发布时间:2013/4/18 18:37:52 -- 这里的平多卖出信号和开空买入信号重叠,该如何编辑程序呢?? 谢谢! [此贴子已经被作者于2013-4-18 18:38:43编辑过]
|
-- 作者:yuhang -- 发布时间:2013/4/19 6:12:45 -- INPUT:M(26,5,500,30); INPUT:N(2,0.1,10,1); INPUT:X(0.2,0.2,10,0.2); MID : MA(CLOSE,M); UPPER: MID + N*STD(CLOSE,M); LOWER: MID - N*STD(CLOSE,M); HH:=HHV(H,BARSLAST(HOLDING<=0)); 多止损1:HH<Enterprice+60*X AND C<=HH-60*X ,LINETHICK0; 多止损2:Enterprice*1.02>=HH AND HH>=Enterprice+60*X AND C<Enterprice+2*X ,LINETHICK0; 多止损3:TIME>144000 AND C<Enterprice*1.03 ,LINETHICK0; if 多止损1 OR 多止损2 OR 多止损3 then sell(holding>0, 0, thisclose); 多:=ALL(C>O+15*X,2) AND ALL(O>MID,2); if 多 then begin sellshort(holding<0, 0, thisclose); buy(holding=0 {AND TIME<144000}, 1, thisclose); end LL:=LLV(L,BARSLAST(HOLDING>=0)); 空止损1:LL>Enterprice*0.995 AND C>=LL*1.005 ,LINETHICK0; 空止损2:Enterprice*0.97<=LL AND LL<=Enterprice*0.995 AND C>=Enterprice ,LINETHICK0; 空止损3:TIME>150900 AND C>=Enterprice*0.99 ,LINETHICK0; if 空止损1 OR 空止损2 OR 空止损3 then sellshort(holding<0, 0, thisclose); 空:=ALL(C<=O-15*X,2) AND ALL(O<=MID,2); if 空 then begin sell(holding>0, 0, thisclose); buyshort(holding=0 AND TIME<150100, 1, thisclose); end 在这个程序里,当出现一根K线上又有平多信号又有开空信号时应该如何操作? 谢谢!
[此贴子已经被作者于2013-4-19 6:14:09编辑过]
|
-- 作者:yuhang -- 发布时间:2013/4/19 8:10:27 -- 继续漏洞问题: 程序如何修改可以做到----- 当在1个K线出现先买入后卖出信号,则此时不开仓, 当同一个K线出现先卖出后买入,则两个命令都执行
|
-- 作者:jinzhe -- 发布时间:2013/4/19 9:31:00 -- if 空 then begin
sell(holding>0, 0, thisclose);
buyshort(holding=0 AND TIME<150100, 1, thisclose);
end
一根k线又有平多又有开空是因为这几句代码
|
-- 作者:yuhang -- 发布时间:2013/4/19 10:14:14 -- 不是因为这个代码,举例来说:原来是买入开多情况下, K线出现信号,而该信号即满足平仓多单,又满足买入开空的指标,因此出现“先卖出多单后买入空单” |
-- 作者:jinzhe -- 发布时间:2013/4/19 10:19:16 -- 就是因为这个反手代码,如果不是很理解,可以先进行金字塔编程代码的学习 |
-- 作者:yuhang -- 发布时间:2013/4/19 11:41:25 -- 最后一个问题,请问如何给上面的代码加一个功能,就是当出现买入卖出信号时,都发送一份邮件到指定的邮箱里? |