求助:
1. 连续亏损2次后加仓1手,再从此次加仓算起,继续连续亏损两次,再加仓1手,最多加至5手 ;
2. 盈利幅度为开仓保证金的20%,加仓一手;比如1手开仓,盈利20%,加为两手, 此后两手的总盈利(包括第一手的盈利),为两手保证金的
20%时,再加仓一手,最多加至5手;
3. 当总盈利为1手保证金的100%时,减仓50%,向上取整,比如此时为3手,减为2手;
当3与2冲突时,2服从3;
请问,以上加仓策略如何编写。请高人帮忙。
仅供参考
//1. 连续亏损2次后加仓1手,再从此次加仓算起,继续连续亏损两次,再加仓1手,最多加至5手 ;
if NUMSEQLOSS>ref(NUMSEQLOSS,1) and mod(NUMSEQLOSS,2)=0 then
begin
buy(holding>0,1,market);
end
//2. 盈利幅度为开仓保证金的20%,加仓一手;比如1手开仓,盈利20%,
//加为两手, 此后两手的总盈利(包括第一手的盈利),为两手保证金的
//20%时,再加仓一手,最多加至5手;
variable:jia=0;
if OPENPROFIT/TACCOUNT(28)>0.2 and jia<5 then
begin
buy(holding>0,1,market);
jia:=jia+1;
end
//3. 当总盈利为1手保证金的100%时,减仓50%,向上取整,比如此时为3手,减为2手;
if OPENPROFIT>TACCOUNT(28) then sell(holding>0,50%,market);
应用于图结果不对。变成两个周期开平仓一次。请楼上再帮忙看看。
版主有空也帮忙看一下。
另外,下面这个语句有限制最大开仓数么。
//1. 连续亏损2次后加仓1手,再从此次加仓算起,继续连续亏损两次,再加仓1手,最多加至5手 ;
if NUMSEQLOSS>ref(NUMSEQLOSS,1) and mod(NUMSEQLOSS,2)=0 then
begin
buy(holding>0,1,market);
end
多谢了。
加上了最多至5手
关于平仓的问题
应该是最后写的那个
就先删了测试前两个
//1. 连续亏损2次后加仓1手,再从此次加仓算起,继续连续亏损两次,再加仓1手,最多加至5手 ;
variable:jia1=0;
if NUMSEQLOSS>ref(NUMSEQLOSS,1) and mod(NUMSEQLOSS,2)=0 and jia1<5 then
begin
buy(holding>0,1,market);
jia1:=jia1+1;
end
//2. 盈利幅度为开仓保证金的20%,加仓一手;比如1手开仓,盈利20%,
//加为两手, 此后两手的总盈利(包括第一手的盈利),为两手保证金的
//20%时,再加仓一手,最多加至5手;
variable:jia=0;
if OPENPROFIT/TACCOUNT(28)>0.2 and jia<5 then
begin
buy(holding>0,1,market);
jia:=jia+1;
end
还是有没达成正确的加仓。
是否
该语句if NUMSEQLOSS>ref(NUMSEQLOSS,1) and mod(NUMSEQLOSS,2)=0导致;
该语句应该是连续亏损2次的整数倍时,加仓1手,对么。
连亏2次后加仓到2手,第3次亏损后再开仓应该保持2手开仓,若第4次仍亏损,则再加仓到3手。该语句下第3次若亏损后,第4次开仓又变回原始开仓数了吧。
再帮忙看看吧。
多谢。
为什么会
该语句下第3次若亏损后,第4次开仓又变回原始开仓数?
该语句是连续亏损2次的整数倍时,加仓1手,不能达到 连续亏损两次,再加仓1手
还是达不成正确加仓。
是什么原因呢。
variable:jia1=0;
if NUMSEQLOSS>ref(NUMSEQLOSS,1) and mod(NUMSEQLOSS,2)=0 and jia1<5 then
begin
buy(holding>0,1,market);
jia1:=jia1+1;
请问连续3次亏损的时候返回什么值。有加仓么。
什么都不做 没有返回值,不加仓
只做多或者只做空好像逻辑上是对的。如果平仓即反手呢。