 
等级: 超级版主
- 注册:
- 2021-5-18
- 曾用名:
- gxx978
|
1、那是因为你的显示文字的条件和开平仓语句的条件不同啊,通过函数标记的有variable定义的变量作为条件了,而你买卖语句中没有啊。
2、如果你有开平仓语句,你都没必要单独用函数 DRAWTEXT来进行标记啊,直接用开平仓语句进行显示信号就行啊,而且都没必要使用variable,有开平仓语句,反而更简单。如果没有开平仓语句,要标注信号,那才用之前的代码结构。
3,参考结构:
//根据指定资金计算手数参考这段代码
input:zj(5000,1,1000000,1);
下单资金量:=zj;
MarginRatio:=TACCOUNT(42);//空头保证金比率. 这个要把合约信息设置里面的费率设置正确,否则函数取到的值可能是不对的。
bzj:=Close*Multiplier*MarginRatio;//一手保证金占用
ss1:=Intpart(下单资金量/(bzj));//根据资金ZJ计算的开仓手数
//最终结果
//ss1可能会有计算出为0 的情况,而恰好为手数参数为0在函数中是满仓开的含义。因此再次处理下,当ss1为0情况下默认按下一手处理。
ss:if(ss1>0,ss1,1);
IF SELLSIGNAL THEN
买平:SELLSHORT(HOLDING<0,HOLDING,MARKET);
IF BUYSIGNAL1 THEN
卖开1:BUYSHORT(HOLDING=0,SS,MARKET);
IF BUYSIGNAL2 THEN
卖开2:BUYSHORT(HOLDING=0,SS,MARKET);
IF BUYSIGNAL3 THEN
卖开3:BUYSHORT(HOLDING=0,SS,MARKET);
IF BUYSIGNAL4 THEN
卖开4:BUYSHORT(HOLDING=0,SS,MARKET);
IF BUYSIGNAL5 THEN
卖开5:BUYSHORT(HOLDING=0,SS,MARKET);
IF BUYSIGNAL6 THEN
卖开6:BUYSHORT(HOLDING=0,SS,MARKET);
IF BUYSIGNAL7 THEN
卖开7:BUYSHORT(HOLDING=0,SS,MARKET);
IF BUYSIGNAL8 THEN
卖开8:BUYSHORT(HOLDING=0,SS,MARKET); |
|