只有两个点
1.上传下穿均线开平仓
2.仓位管理,按照某个固定金额和保证金开平仓
ma120:ma(c,n);
//交易条件
金叉:=CROSS(c,ma120);
死叉:=CROSS(ma120,C);
//////手数计算
下单资金量:=n1*10000;
MarginRatio:=TACCOUNT(41);//多头保证金比率。
bzj:=Close*Multiplier*MarginRatio;//一手保证金占用
ss1:=Intpart(下单资金量/(bzj));//根据资金ZJ计算的开仓手数
ss:=if(ss1>0,ss1,1);
MarginRatiok:=TACCOUNT(42);//空头保证金比率。
bzjk:=Close*Multiplier*MarginRatiok;//空一手保证金占用
ss1k:=Intpart(下单资金量/(bzjk));//空根据资金ZJ计算的开仓手数
ssk:=if(ss1k>0,ss1k,1);
KD:=金叉; //开多条件
PD:=死叉 ; //平多条件
KK:=死叉; //开空条件
PK:=金叉; //平空条件
平空:SELLSHORT(PK,0,THISCLOSE); //平空信号
开多:BUY(KD AND HOLDING=0,ss,THISCLOSE); //开多信号
平多:SELL(PD,0,THISCLOSE); //平多信号
开空:BUYSHORT(KK AND HOLDING=0,ssk,THISCLOSE); //开空信号
补充一点,上面的代码只是通过了编译而已,如果按收盘价模型运行的话,理论上还要加上AUTOFILTER;等语句,具体还需要您先模拟跑一下,根据运行情况再进行修改。
您好,纯从代码转换,我简单给您转了一下,编译可以通过。但由于我对金字塔的机制也没有太多研究,尤其一些函数,是否有什么深意,可能您比我还更清楚一些,所以,这段代码仅供您参考。
ma120:ma(c,n);
//交易条件
金叉:=CROSS(c,ma120);
死叉:=CROSS(ma120,C);
//////手数计算
下单资金量:=n1*10000;
//MarginRatio:=TACCOUNT(41);//多头保证金比率。
MarginRatio:=MARGIN();
//bzj:=Close*Multiplier*MarginRatio;//一手保证金占用
bzj:=Close*UNIT*MarginRatio;//一手保证金占用
ss1:=Intpart(下单资金量/(bzj));//根据资金ZJ计算的开仓手数
ss:=if(ss1>0,ss1,1);
//MarginRatiok:=TACCOUNT(42);//空头保证金比率。
MarginRatiok:= Margin();
//bzjk:=Close*Multiplier*MarginRatiok;//空一手保证金占用
bzjk:=Close*UNIT*MarginRatiok;//空一手保证金占用
ss1k:=Intpart(下单资金量/(bzjk));//空根据资金ZJ计算的开仓手数
ssk:=if(ss1k>0,ss1k,1);
KD:=金叉; //开多条件
PD:=死叉 ; //平多条件
KK:=死叉; //开空条件
PK:=金叉; //平空条件
//平空:SELLSHORT(PK,0,THISCLOSE); //平空信号
平空:= PK,BP;
//开多:BUY(KD AND HOLDING=0,ss,THISCLOSE); //开多信号
开多:=KD AND BKVOL =0,BK(ss);
//平多:SELL(PD,0,THISCLOSE); //平多信号
平多:= PD,SP;
//开空:BUYSHORT(KK AND HOLDING=0,ssk,THISCLOSE); //开空信号
开空:= KK AND SKVOL=0, SK(ssk);