MA1:MA(C,5);
MA5:MA(C,10);
A:MA1>MA5;
B:MA1<MA5;
A5:STKINDI('','MA.A',0,6,0); //引用当下日周期ma1>ma5
B5:STKINDI('','MA.B',0,6,0); //引用当下日周期ma1<ma5
Kd:=A AND A5; 开多条件 分钟线和日线同向
Kk:=B AND B5; 开空条件 分钟线和日线同向
PD:=CROSS(MA5,MA1); 平多条件 死叉平
PK:=CROSS(MA1,MA5); 平空条件 金叉平
下面不知道写的对不对:
开多:BUY(KD and HOLDING=0,50%,THISCLOSE); 想表达开仓50%
平多:SELL(PD,1,THISCLOSE); 想表达全部平仓
空:BUYSHORT(KK and HOLDING=0,50%,THISCLOSE); 想表达开仓50%
平空:SELLSHORT(PK,1,THISCLOSE); 想表达全部平仓
CROSS(MA5,MA1) 的位置 B:MA1<MA5; 也一定是满足的。
A5:STKINDI('','MA.A',0,6,0); //引用当下日周期ma1>ma5
B5:STKINDI('','MA.B',0,6,0); //引用当下日周期ma1<ma5
2.全平写法不对。按照下面方式
开多:BUY(KD and HOLDING=0,50%,THISCLOSE);
平多:SELL(PD,HOLDING,THISCLOSE);
空:BUYSHORT(KK and HOLDING=0,50%,THISCLOSE);
平空:SELLSHORT(PK,HOLDING,THISCLOSE);
综上:
1.你的代码不适用于日线。因为本身就是日线,自然无法拿日线来过滤
2.全平的代码有问题。
是这样的。下面代码中,B满足,PD不一定满足,但是如果PD是满足的那么B一定是满足的。
Kk:=B AND B5;
PD:=CROSS(MA5,MA1);
那意思就是说如果平多满足了。 下面的的A5也满足,这时候就会反手。 你的跨周期调用是无法限定不反手操作的。
A5:STKINDI('','MA.A',0,6,0); //引用当下日周期ma1>ma5
Kd:=A AND A5; 开多条件:60分钟线和日线同向
Kk:=B AND B5; 开空条件:60分钟线和日线同向
PD:=CROSS(MA5,MA1); 平多条件: 死叉平且A5中日线ma1>ma5
PK:=CROSS(MA1,MA5); 平空条件: 金叉平且B5中日线ma1<ma5
谢谢您Firescript