以下为自定义豆粕指数合约,如何在该合约上进行图表程序化交易、后台程序化交易?
当指数收盘价上穿指数收盘价的10日均线,平空做多;
当指数收盘价下穿指数收盘价的10日均线,平多做空;
//引用当前所在K线周期豆粕所有合约的实时持仓量
MVol1:=STKINDI('M01','CCL',0,DATATYPE,0);
MVol3:=STKINDI('M03','CCL',0,DATATYPE,0);
MVol5:=STKINDI('M05','CCL',0,DATATYPE,0);
MVol7:=STKINDI('M07','CCL',0,DATATYPE,0);
MVol8:=STKINDI('M08','CCL',0,DATATYPE,0);
MVol9:=STKINDI('M09','CCL',0,DATATYPE,0);
MVol11:=STKINDI('M11','CCL',0,DATATYPE,0);
MVol12:=STKINDI('M12','CCL',0,DATATYPE,0);
//对各合约持仓量求和,得到豆粕品种总的持仓量
MVol88:=MVol1+MVol3+MVol5+MVol7+MVol8+MVol9+MVol11+MVol12;
//计算各豆粕合约的权重
权重1:=MVol1/MVol88;
权重3:=MVol3/MVol88;
权重5:=MVol5/MVol88;
权重7:=MVol7/MVol88;
权重8:=MVol8/MVol88;
权重9:=MVol9/MVol88;
权重11:=MVol11/MVol88;
权重12:=MVol12/MVol88;
//引用当前所在K线周期各豆粕合约的收盘价
MClose1:=CALLSTOCK('M01',VTCLOSE,-1);
MClose3:=CALLSTOCK('M03',VTCLOSE,-1);
MClose5:=CALLSTOCK('M05',VTCLOSE,-1);
MClose7:=CALLSTOCK('M07',VTCLOSE,-1);
MClose8:=CALLSTOCK('M08',VTCLOSE,-1);
MClose9:=CALLSTOCK('M09',VTCLOSE,-1);
MClose11:=CALLSTOCK('M11',VTCLOSE,-1);
MClose12:=CALLSTOCK('M12',VTCLOSE,-1);
//根据权重计算指数收盘价
MClose88:=权重1*MClose1+权重3*MClose3+权重5*MClose5+权重7*MClose7+权重8*MClose8+权重9*MClose9+权重11*MClose11+权重12*MClose12;
//引用当前所在K线周期各豆粕合约的开盘价
MOpen1:=CALLSTOCK('M01',VTOPEN,-1);
MOpen3:=CALLSTOCK('M03',VTOPEN,-1);
MOpen5:=CALLSTOCK('M05',VTOPEN,-1);
MOpen7:=CALLSTOCK('M07',VTOPEN,-1);
MOpen8:=CALLSTOCK('M08',VTOPEN,-1);
MOpen9:=CALLSTOCK('M09',VTOPEN,-1);
MOpen11:=CALLSTOCK('M11',VTOPEN,-1);
MOpen12:=CALLSTOCK('M12',VTOPEN,-1);
//根据权重计算指数开盘价
MOpen88:=权重1*MOpen1+权重3*MOpen3+权重5*MOpen5+权重7*MOpen7+权重8*MOpen8+权重9*MOpen9+权重11*MOpen11+权重12*MOpen12;
//引用当前所在K线周期各豆粕合约的最高价
MHigh1:=CALLSTOCK('M01',VTHIGH,-1);
MHigh3:=CALLSTOCK('M03',VTHIGH,-1);
MHigh5:=CALLSTOCK('M05',VTHIGH,-1);
MHigh7:=CALLSTOCK('M07',VTHIGH,-1);
MHigh8:=CALLSTOCK('M08',VTHIGH,-1);
MHigh9:=CALLSTOCK('M09',VTHIGH,-1);
MHigh11:=CALLSTOCK('M11',VTHIGH,-1);
MHigh12:=CALLSTOCK('M12',VTHIGH,-1);
//根据权重计算指数最高价
MHigh88:=权重1*MHigh1+权重3*MHigh3+权重5*MHigh5+权重7*MHigh7+权重8*MHigh8+权重9*MHigh9+权重11*MHigh11+权重12*MHigh12;
//引用当前所在K线周期各豆粕合约的最低价
MLow1:=CALLSTOCK('M01',VTLOW,-1);
MLow3:=CALLSTOCK('M03',VTLOW,-1);
MLow5:=CALLSTOCK('M05',VTLOW,-1);
MLow7:=CALLSTOCK('M07',VTLOW,-1);
MLow8:=CALLSTOCK('M08',VTLOW,-1);
MLow9:=CALLSTOCK('M09',VTLOW,-1);
MLow11:=CALLSTOCK('M11',VTLOW,-1);
MLow12:=CALLSTOCK('M12',VTLOW,-1);
//根据权重计算指数最低价
MLow88:=权重1*MLow1+权重3*MLow3+权重5*MLow5+权重7*MLow7+权重8*MLow8+权重9*MLow9+权重11*MLow11+权重12*MLow11;
//整理价格
MO88:=ROUND(MOpen88);
MC88:=ROUND(MClose88);
MH88:=ROUND(MHigh);
ML88:=ROUND(MLow);
//绘制豆粕指数K线图
KLINE(MO88,MH88,ML88,MC88,1);
你这个还是指标 并不是自定义指数 怎么当成品种去处理?
你这个还是指标 并不是自定义指数 怎么当成品种去处理?
怎么自定义按实时持仓量计算权重的豆粕指数合约?