等级: 专业版
- 注册:
- 2022-1-11
- 曾用名:
|
楼主 |
发表于 2023-4-27 06:41
|
显示全部楼层
老师好:昨晚测试移仓,在后台交易再增加了个策略(总共2个,因为前面的调用不存在的公式,我近段时间只用一个策略),没有执行任何交易,这是为何?
VARIABLE:BHD=0,SHD=0,BPrice=0,SPrice=0;//MStarN:移仓标志;CStarN持仓标志
//本策略是后台策略,运行时候选择监控连续合约,会把所监控的合约中非当前主力合约则会在开盘第一根k的时候平仓
//用户可以根据这个模板自己改进,来实现类似换月移仓的功能
DIFF:=EMA(CLOSE,12)-EMA(CLOSE,26);
DEA:=EMA(DIFF,9);
MACD:=2*(DIFF-DEA),COLORSTICK;
DRMACD:=MACD-REF(MACD,1);
RDRMACD:=REF(DRMACD,1);
CUMACD:=CROSS(DIFF,DEA);
CDMACD:=CROSS(DIFF,DEA);
//________________________开盘写入需移仓的持仓品种信息到《用来记录的注册文件》_________________________
//-------------------------------商品+金融移仓:1、平非主力合约持仓;2、开主力合约等量的仓位;3、将品种从《移仓板块》删除------------------------------------------------
if BHD=0 then BHD:=TBUYHOLDINGEX('','',2);//需移仓品种的多仓持仓数量
if SHD=0 then SHD:=TSELLHOLDINGEX('','',2);//需移仓品种的空仓持仓数量
多:TBUYHOLDINGEX('','',2),NODRAW;//需移仓品种的多仓持仓数量
空:TSELLHOLDINGEX('','',2),NODRAW;//需移仓品种的空仓持仓数量
//if (RDRMACD<0&&DRMACD>0)||CROSS(DIFF,DEA) then BEGIN//MACD柱子由大逐渐变小转为小变大__[∨字形];或者出现了MACD死叉
if SPrice=0&&SHD<>0 then BEGIN
Tsellshort(CUMACD,0,LMT,C+5*MINDIFF,0,'',''); //成功卖出老的非主力持仓,还未买入对应主力合约手数后,不能为移仓成功!!
SPrice:=C+5*MINDIFF;
END
if (BPrice>C&&BHD<>0&&RDRMACD<0&&DRMACD>0)||(BPrice<C&&CUMACD) then BEGIN
Tbuy(1,BHD,LMT,C+5*MINDIFF,0,'',DYNAINFO(210));
DeleteFromBlock('','移仓板块');//成功卖出老的非主力持仓,买入对应主力合约手数后,方为移仓成功!!
BPrice:=0;
BHD:=0;
END
//end
//if RDRMACD>0&&DRMACD<0 then BEGIN//MACD柱子由小逐渐变大转为大变小__[∧字形];或者出现了MACD金叉
if BPrice=0&&BHD<>0 then BEGIN
TSELL(CDMACD,0,LMT,C-5*MINDIFF,0,'',''); //成功卖出老的非主力持仓,还未买入对应主力合约手数后,不能为移仓成功!!
BPrice:=C-5*MINDIFF;
END
if (SPrice<C&&SHD<>0&&RDRMACD>0&&DRMACD<0)||(SPrice>C&&CDMACD) then BEGIN
Tbuyshort(1,SHD,LMT,C-5*MINDIFF,0,'',DYNAINFO(210));
DeleteFromBlock('','移仓板块');//成功卖出老的非主力持仓,买入对应主力合约手数后,方为移仓成功!!
SPrice:=0;
SHD:=0;
END
//end
补充内容 (2023-4-27 06:44):
|
|