以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  实现文华那样的程序化交易  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=238)

--  作者:beensu
--  发布时间:2009/11/23 11:24:02
--  实现文华那样的程序化交易

你好 我想在实盘交易实现 文华那样的程序化交易 即开仓点出现后 开仓,直到反手信号出现,要求a 过滤中间的再次开仓信号  b 如果错过第一次开仓信号后(比如中途开启预警) 不再开仓 等待下次反手信号

请教如何实现


--  作者:金字塔
--  发布时间:2009/11/23 12:09:03
--  

请试试

BK1:=FILTER(BK,N); //BK---开仓条件,N---过滤的周期
SK1:=FILTER(SK,N); 
 

tSELLSHORT(BP,0);
tBUY(BK1 AND NOT(tTYPE(1)=1),N1,0);
tSELL(SP,0);
tBUYSHORT(SK1 AND NOT(tTYPE(1)=3),N1,0);

[此贴子已经被作者于2009-11-29 12:25:08编辑过]

--  作者:wjxkjs
--  发布时间:2009/11/23 12:11:06
--  
这个我也感兴趣。如果符合条件,我决定不开仓,测试中发现,预警系统仍旧会提示的。
--  作者:beensu
--  发布时间:2009/11/23 14:14:35
--  

我试了很多 总是有问题 请老师帮助写一下完整代码以便测试 基于通道的策略:现价大于上上通道线开多,现价小于下通道线翻空,要求如上 信号出现时只开仓一次 直至反手 错过第一次开仓信号放弃 等待下次开仓机会

要求预警 交易和指示完全一致  谢谢

 


--  作者:金字塔
--  发布时间:2009/11/23 17:08:30
--  

试试这个

 
input:N(1,0,60,1);

持仓:HOLDING,LINETHICK0;
总次数: TOTALTRADE,LINETHICK0;
盈利次数:NUMWINTRADE,LINETHICK0;
胜率:ROUNDS(100*PERCENTWIN,1),LINETHICK0;
连亏次数:MAXSEQLOSS,LINETHICK0;
连盈次数:MAXSEQWIN,LINETHICK0;
t持仓:=tHOLDING,LINETHICK0;

BUY1:=hhv(ref(h,1),20)+N;
SELL1:=llv(ref(l,1),20+N);
BK:=CROSS(H,BUY1);
SK:=CROSS(SELL1,L);

tt0:=time<145000;
tt2:=time>145700;//收盘时间

 

tSELLSHORT(tt0 and BK and t持仓<0,t持仓,mkt);
SELLSHORT(tt0 and BK and 持仓<0,持仓,market);
tBUY(tt0 and BK and NOT(tTYPE(1)=1) and NOT(TYPE(1)=1),20,mkt);
BUY(tt0 and BK and NOT(TYPE(1)=1),20,market);

tSELL(tt0 and SK and t持仓>0,t持仓,mkt);
SELL(tt0 and SK and 持仓>0,持仓,market);
tBUYSHORT(tt0 and SK and NOT(tTYPE(1)=3) and NOT(TYPE(1)=3),20,mkt);
BUYSHORT(tt0 and SK and NOT(TYPE(1)=3),20,market);

 

//收盘平仓
tSELL(tt2 ,t持仓,mkt);
SELL(tt2 ,持仓,thisclose);
tSELLSHORT(tt2 ,t持仓,mkt);
SELLSHORT(tt2 ,持仓,thisclose);

 


 

[此贴子已经被作者于2009-11-29 12:25:41编辑过]