以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://www.weistock.com/bbs/list.asp?boardid=4)
----  连续亏损3次和资金回撤4%,停止建仓  (http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=172553)

--  作者:wxx212
--  发布时间:2019/10/22 14:09:36
--  连续亏损3次和资金回撤4%,停止建仓
想实现:连续亏损3次以上或者资金回撤10%,停止程序建仓,如果有仓位,只出场不建仓.资金盈利5¥  或者  连续亏损到10次  或者 连续盈利3次 重新 开启程序 进场
这个要怎么实现

源码如下:

aa:ma(c,100);
bb:ma(c,300);


KD:=cross(c,aa) and c>=bb ;          //开多条件
PD:=cross(aa,c);          //平多条件
KK:=cross(aa,c) and c<=bb;          //开空条件
PK:=cross(c,aa);          //平空条件


平空:SELLSHORT(PK,10,MARKET);                  //平空信号
开多:BUY(KD AND HOLDING=0,1,MARKET);          //开多信号
平多:SELL(PD,1,MARKET);                       //平多信号
开空:BUYSHORT(KK AND HOLDING=0,1,MARKET);     //开空信号

资产:asset,noaxis;

--  作者:FireScript
--  发布时间:2019/10/22 14:36:20
--  
连亏 这个 可以参考这个例子.
VARIABLE:ct:=0;
aa:=ma(c,5);
bb:=ma(c,10);

KD:=cross(c,aa) and c>=bb ;          //开多条件
PD:=cross(aa,c);          //平多条件
KK:=cross(aa,c) and c<=bb;          //开空条件
PK:=cross(c,aa);          //平空条件

连亏次数:ct;

if pk and holding<0 then
begin
平空:SELLSHORT(PK,10,MARKET);     
ct:=if(NUMPROFIT(1)<0,ct+1,0);
end




开多:BUY(KD AND HOLDING=0 and ct<=3,1,MARKET); 

if pd and holding>0 then
begin
平多:SELL(PD,1,MARKET);//平多信号 
ct:=if(NUMPROFIT(1)<0,ct+1,0);    
end       
//开多信号       
          
开空:BUYSHORT(KK AND HOLDING=0 and ct<=3,1,MARKET);



用的全局变量。但是这里面没有考虑再次进场问题。这个可以你自行尝试下。



--  作者:wxx212
--  发布时间:2019/10/22 15:51:51
--  
那么资金回撤4%和重新开启进出场的条件呢,应该怎么弄?
--  作者:yukizzc
--  发布时间:2019/10/22 16:08:03
--  
连亏三次后停止建仓,这个时候你本身就停止了建仓
后面开启建仓的条件也都无法满足了,连续盈利、连续亏损10次都和连亏3次是反集