今天开盘价比昨天收盘价高就开多,然后10%止盈,5%止损,都没到的话收盘平仓,空单反之
cd:CALLSTOCK('',vtOPEN,6,0)>CALLSTOCK('',vtCLOSE,6,-1);//日线今日开盘价大于昨日收盘价
buy(holding=0 and cd,1,market);
zy:c-AVGENTERPRICE>=0.1*AvGENTERPRICE;//止盈条件
zs:AVGENTERPRICE-c>=0.05*AvGENTERPRICE;//止损条件
if (zy or zs) and holding>0 then sell(holding>0,holding,market);
if time=CLOSETIME(0) then sell(holding>0,holding,market);//日盘收盘平仓
以多头为例,其他需求可以参考这里修改即可。
[此贴子已经被作者于2019/5/20 9:11:07编辑过]
空头部分请参考多头部分的处理逻辑,自行尝试编写完成。
if TODAYBAR=1 and open>ref(close,1) then begin
buy();
end
IF (C-AvGENTERPRICE)/AvGENTERPRICE>0.1 and HOLDING>0 THEN BEGIN
SELL(1,HOLDING,MARKET);
END
//止损
IF (AvGENTERPRICE-C)/AvGENTERPRICE>0.05 and HOLDING>0 THEN BEGIN
SELL(1,HOLDING,MARKET);
END
IF TIME=XXXXX THEN BEGIN//走完k线模式,指定倒数第二根k的时间。固定时间间隔指定最后一根k的时间。
sell();
END
[此贴子已经被作者于2019/5/20 9:06:04编辑过]
改一下止盈止损的条件:亏损达到占用的保证金5%止损,盈利达到占用的保证金10%就止盈,这个怎么写?
保证金计算方式使用持仓均价处理:AvGENTERPRICE*TACCOUNT(41)*MINDIFF*HOLDING;
空头部分自行修改,下面是多头部分的方式
aaa:AvGENTERPRICE*TACCOUNT(41)*MINDIFF*HOLDING;
IF (C-aaa)/aaa>0.1 and HOLDING>0 THEN BEGIN
可以用的。它返回值是定值,和你直接写一个该品种的保证金比率的数值没什么区别。
if TODAYBAR=1 and open>ref(close,1) then begin
buy(holding=0,1,market);
end
zy:=OPENPROFIT>=0.1*TACCOUNT(28);//止盈条件
zs:=-OPENPROFIT>=0.05*TACCOUNT(28);//止损条件
if (zy or zs) and holding>0 then sell(holding>0,holding,market);
if time=CLOSETIME(0) then sell(holding>0,holding,market);//日盘收盘平仓
加载后怎么显示开仓后就马上平仓了,看看哪里出了问题?