 
等级: 超级版主
- 注册:
- 2021-5-18
- 曾用名:
|
// ======== 指标计算部分 ========
MA5:MA(CLOSE,5); // 5日均线
MA10:MA(CLOSE,10); // 10日均线
MA60:MA(CLOSE,60); // 60日均线
// MACD计算(标准参数12/26/9)
DIF:=EMA(CLOSE,12)-EMA(CLOSE,26);
DEA:=EMA(DIF,9);
MACD:=(DIF-DEA)*2;
// RSI指标计算
LC:=REF(CLOSE,1);
RSI1:=SMA(MAX(CLOSE-LC,0),6,1)/SMA(ABS(CLOSE-LC),6,1)*100;; // RSI(6)
RSI2:=SMA(MAX(CLOSE-LC,0),12,1)/SMA(ABS(CLOSE-LC),12,1)*100;; // RSI(12)
RSI3:=SMA(MAX(CLOSE-LC,0),24,1)/SMA(ABS(CLOSE-LC),24,1)*100;; // RSI(24)
// 成交量相关
MAVOL1:=MA(vol,5); // 5日平均成交量
// 关键价格水平计算
MIN30:=REF(LLV(LOW,30),1); // 前30周期最低点
MAX30:=REF(HHV(HIGH,30),1); // 前30周期最高点
// ======== 开多条件 ========
// 条件①:30周期最低点低于均线组
COND1_LONG:=MIN30<MA5 AND MIN30<MA10 AND MIN30<MA60;
// 条件②:价格连续上涨(最新>前1>前2)
COND2_LONG:=CLOSE>REF(CLOSE,1) AND REF(CLOSE,1)>REF(CLOSE,2);
// 条件③:MACD连续上升
COND3_LONG:=MACD>REF(MACD,1) AND REF(MACD,1)>REF(MACD,2);
// 条件④:RSI特征
COND4_LONG:=LLV(RSI1,30)<=20 AND RSI1>RSI2 AND RSI2>=RSI3;
// 条件⑤:成交量达标
COND5_LONG:=vol>=0.7*MAVOL1;
// 条件⑥:持仓量增加
COND6_LONG:=OPENINT>=REF(OPENINT,1);
// 综合开多条件
LONG_SIGNAL:=COND1_LONG AND COND2_LONG AND COND3_LONG AND COND4_LONG AND COND5_LONG AND COND6_LONG;
// ======== 开空条件 ========
// 条件①:30周期最高点高于均线组
COND1_SHORT:=MAX30>MA5 AND MAX30>MA10 AND MAX30>MA60;
// 条件②:价格连续下跌
COND2_SHORT:=CLOSE<REF(CLOSE,1) AND REF(CLOSE,1)<REF(CLOSE,2);
// 条件③:MACD连续下降
COND3_SHORT:=MACD<REF(MACD,1) AND REF(MACD,1)<REF(MACD,2);
// 条件④:RSI特征
COND4_SHORT:=HHV(RSI1,30)>=80 AND RSI1<RSI2 AND RSI2<=RSI3;
// 条件⑤:成交量达标
COND5_SHORT:=vol>=0.7*MAVOL1;
// 条件⑥:持仓量减少
COND6_SHORT:=OPENINT<=REF(OPENINT,1);
// 综合开空条件
SHORT_SIGNAL:=COND1_SHORT AND COND2_SHORT AND COND3_SHORT AND COND4_SHORT AND COND5_SHORT AND COND6_SHORT;
// ======== 交易执行部分 ========
// 资金计算(使用PERTRADER函数确保百分比按实际资金计算)
POS_SIZE:=cash(0)*0.1/(MULTIPLIER*TACCOUNT(41)*CLOSE); // 10%资金的合约数
// 平空并开多(市价单)
sellshort(LONG_SIGNAL AND HOLDING<0,0,MARKETR); // 条件⑦平空
BUY(LONG_SIGNAL AND HOLDING=0,POS_SIZE,MARKETR); // 条件⑧开多
// 平多并开空(市价单)
sell(SHORT_SIGNAL AND HOLDING>0,0,MARKETR); // 条件⑦平多
BUYSHORT(SHORT_SIGNAL AND HOLDING=0,POS_SIZE,MARKETR); // 条件⑧开空
// ======== 止损设置 ========
STOP_LONG_PRICE:=MIN30-6; // 多单止损价(条件⑨)
STOP_SHORT_PRICE:=MAX30+6; // 空单止损价(条件⑨)
// 多单止损(使用LIMITR确保精确触发)
sell(HOLDING>0 AND LOW<=STOP_LONG_PRICE,0,LIMITR,STOP_LONG_PRICE);
// 空单止损
sellshort(HOLDING<0 AND HIGH>=STOP_SHORT_PRICE,0,LIMITR,STOP_SHORT_PRICE);
|
|