1,策略代码写的是绿色均线下绿色K线开始的地方开空单(就是标识“空”字的地方),红色K线开始的地方平仓(就是标识“多”字的地方),按照策略代码图中红色箭头的地方开了空单,应该是在蓝色箭头的地方平仓空单,为什么在绿色箭头的地方就把空单平仓了呢?这就不对啊,完全不是策略代码的平仓位置。
2,策略代码写的是红色均线上红色K线开始的地方开多单(就是标识“多”字的地方),K线上黄色箭头的地方都还是绿色均线下,绿色K线,为什么开了多单呢?这也不对
上图是把写好的策略代码模型加载到K线图上一看,开仓位置和平仓位置都不对,这都是乱开仓和平仓
删掉 MULTSIG_MIN(0,0,3)
MULTSIG_MIN(0,0,3)把这个删掉了,那同一根K线多个信号,同时平仓和开仓,那怎么弄
那就没有办法处理了,
简语言版只能实现一些简单策略,也不建议这样做
图片中红色箭头所指的那根K线就是有两个信号,前面空单的平仓信号和多单的开仓信号,删掉了MULTSIG_MIN(0,0,3)这个,只执行了前面空单的平仓信号,没执行多单的开仓信号。
不用这个MULTSIG_MIN(0,0,3),一根K线怎么样能同时执行前面的空单的平仓信号和多单的开仓信号,并当根K线执行信号,不用等到收盘后下跟K线才执行?
简语言版只能实现一些简单策略,这个就没办法了
TBQ和TBQ3才能实现上面我说的吗?
用了MULTSIG_MIN(0,0,3)这个,为什么开仓和平仓就乱了呢?完全不按照策略代码里的来执行开仓和平仓,究竟是什么原因呢
1、TBQuant也不建议1根K线做太多的操作,建议只做一个操作
2、那不是乱开平,软件机制就是这样的
一根K线只做一个操作,就会错过很多操作
而且是收盘价模型,得等到收盘后下根K线才执行,怎么样可以当根K线就执行,不用等到收盘后
TBQuant也不建议1根K线做太多的操作,建议只做一个操作
用移动止损平仓或固定点数止损平仓,加载到K线图上显示开仓平仓也不对呢?怎么都是上根K线开仓后,下跟K线马上就平仓了,都没到止损点位啊,固定止损点位40跳,移动止损40跳,比如橡胶1跳是5,40跳要200才会止损的啊
BuyCoverCond,SP(2);
SellCoverCond,BP(2); 把平仓换成下面的移动止损或者固定止损
N:=40;
CLOSE<=BKHIGH-N*MINPRICE,SP(2);
CLOSE>=SKLOW+N*MINPRICE,BP(2);这是移动止损
N:=40;
CLOSE<=BKPRICE-N*MINPRICE,SP(2);
CLOSE>=BKPRICE+N*MINPRICE,BP(2);这是固定止损
请发完整代码
完整代码发上来才能分析回答
N1:=1;
N2:=1;
Z3:=2;
N:=2;
HH1:=IFELSE(H<REF(H,N1)&&REF(H,N2)<REF(H,Z3),REF(H,N),0);
LL1:=IFELSE(L>REF(L,N1)&&REF(L,N2)>REF(L,Z3),REF(L,N),0);
HH2:=VALUEWHEN(HH1>0,HH1);
LL2:=VALUEWHEN(LL1>0,LL1);
K1:=IFELSE(CLOSE>HH2,-3,IFELSE(CLOSE<LL2,1,0));
K2:=VALUEWHEN(K1<>0,K1);
G:=IFELSE(K2=1,HH2,LL2);
W1:=K2,LINETHICK2;
W2:=OPEN-CLOSE;
HT:=IFELSE(OPEN>CLOSE,OPEN,CLOSE);
LT:=IFELSE(OPEN<CLOSE,OPEN,CLOSE);
DRAWLINE(W1=1 ,HIGH,W1=1,HT,COLORGREEN);
DRAWLINE(W1=1 ,LOW,W1=1,LT,COLORGREEN);
DRAWLINE(W1=-3 ,HIGH,W1=-3,HT,COLORRED);
DRAWLINE(W1=-3 ,LOW,W1=-3,LT,COLORRED);
STICKLINE(W1>0 ,OPEN,CLOSE,COLORGREEN,1);
STICKLINE(W1<=0 ,OPEN,CLOSE,COLORRED,1);
STICKLINE(W2>0&&W1<=0 ,OPEN,CLOSE,COLORRED,0);
STICKLINE(W2>0&&W1>0 ,OPEN,CLOSE,COLORGREEN,0);
DRAWTEXT(CROSS(W1,0) ,H,'空'),RGB(4,238,250),ALIGN1,VALIGN0,FONTSIZE20;
DRAWTEXT(CROSS(0,W1) ,L,'多'),RGB(255,71,151),ALIGN1,VALIGN2,FONTSIZE20;
BuyCond :=C>JX&&CROSS(0,W1);
SellCond :=C<JX&&CROSS(W1,0);
BuyCond,BK(2);
SellCond,SK(2);
BuyCoverCond := CROSS(W1,0);
SellCoverCond := CROSS(0,W1);
BuyCoverCond,SP(2);
SellCoverCond,BP(2);
MULTSIG_MIN(0,0,3);
这是完整代码,看下是什么原因
JX:EMA(C,30),LINETHICK2;
DRAWCOLORLINE(C>=JX,JX,COLORRED,RGB(0,200,0)),LINETHICK2;
这个在最前面
JX:EMA(C,30),LINETHICK2;
DRAWCOLORLINE(C>=JX,JX,COLORRED,RGB(0,200,0)),LINETHICK2;
N1:=1;
N2:=1;
Z3:=2;
N:=2;
HH1:=IFELSE(H<REF(H,N1)&&REF(H,N2)<REF(H,Z3),REF(H,N),0);
LL1:=IFELSE(L>REF(L,N1)&&REF(L,N2)>REF(L,Z3),REF(L,N),0);
HH2:=VALUEWHEN(HH1>0,HH1);
LL2:=VALUEWHEN(LL1>0,LL1);
K1:=IFELSE(CLOSE>HH2,-3,IFELSE(CLOSE<LL2,1,0));
K2:=VALUEWHEN(K1<>0,K1);
G:=IFELSE(K2=1,HH2,LL2);
W1:=K2,LINETHICK2;
W2:=OPEN-CLOSE;
HT:=IFELSE(OPEN>CLOSE,OPEN,CLOSE);
LT:=IFELSE(OPEN<CLOSE,OPEN,CLOSE);
DRAWLINE(W1=1 ,HIGH,W1=1,HT,COLORGREEN);
DRAWLINE(W1=1 ,LOW,W1=1,LT,COLORGREEN);
DRAWLINE(W1=-3 ,HIGH,W1=-3,HT,COLORRED);
DRAWLINE(W1=-3 ,LOW,W1=-3,LT,COLORRED);
STICKLINE(W1>0 ,OPEN,CLOSE,COLORGREEN,1);
STICKLINE(W1<=0 ,OPEN,CLOSE,COLORRED,1);
STICKLINE(W2>0&&W1<=0 ,OPEN,CLOSE,COLORRED,0);
STICKLINE(W2>0&&W1>0 ,OPEN,CLOSE,COLORGREEN,0);
DRAWTEXT(CROSS(W1,0) ,H,'空'),RGB(4,238,250),ALIGN1,VALIGN0,FONTSIZE20;
DRAWTEXT(CROSS(0,W1) ,L,'多'),RGB(255,71,151),ALIGN1,VALIGN2,FONTSIZE20;
BuyCond :=C>JX&&CROSS(0,W1);
SellCond :=C<JX&&CROSS(W1,0);
BuyCond,BK(2);
SellCond,SK(2);
BuyCoverCond := CROSS(W1,0);
SellCoverCond := CROSS(0,W1);
BuyCoverCond,SP(2);
SellCoverCond,BP(2);
MULTSIG_MIN(0,0,3);