 
等级: 超级版主
- 注册:
- 2021-5-18
- 曾用名:
|
// 参数设置
MACD_SHORT:=12; // MACD短周期
MACD_LONG:=26; // MACD长周期
MACD_MID:=9; // MACD信号周期
KDJ_N:=9; // KDJ周期
KDJ_M1:=3; // KDJ平滑系数1
KDJ_M2:=3; // KDJ平滑系数2
MA_LENGTH:=20; // 趋势过滤均线周期
// MACD计算
DIF:EMA(CLOSE,MACD_SHORT)-EMA(CLOSE,MACD_LONG);
DEA:EMA(DIF,MACD_MID);
MACD:(DIF-DEA)*2,COLORSTICK;
// KDJ计算
RSV:=(CLOSE-LLV(LOW,KDJ_N))/(HHV(HIGH,KDJ_N)-LLV(LOW,KDJ_N))*100;
K:SMA(RSV,KDJ_M1,1);
D:SMA(K,KDJ_M2,1);
J:3*K-2*D;
// 趋势过滤
MA_TREND:=MA(CLOSE,MA_LENGTH);
// 复合交易信号
BUY_CONDITION1:=CROSS(DIF,DEA) AND DIF>0; // MACD水上金叉
BUY_CONDITION2:=CROSS(K,D) AND J<30; // KDJ超卖区金叉
SELL_CONDITION1:=CROSS(DEA,DIF) AND DIF<0; // MACD水下死叉
SELL_CONDITION2:=CROSS(D,K) AND J>70; // KDJ超买区死叉
// 多空信号组合
LONG_SIGNAL:=BUY_CONDITION1 AND BUY_CONDITION2 AND CLOSE>MA_TREND;
SHORT_SIGNAL:=SELL_CONDITION1 AND SELL_CONDITION2 AND CLOSE<MA_TREND;
// 交易指令
MULTI_PERIOD:=LLV(LOW,3); // 近三日最低价
SHORT_PERIOD:=HHV(HIGH,3); // 近三日最高价
if C<REF(MULTI_PERIOD,enterbars) then sell(1,holding,marketr);
if C>REF(SHORT_PERIOD,enterbars) then sellshort(1,holding,marketr);
if LONG_SIGNAL and holding<=0 then
begin
sellshort(1,holding,marketr);
buy(1,1,marketr);
END
if SHORT_SIGNAL and holding>=0 then
begin
sell(1,holding,marketr);
buyshort(1,1,marketr);
END |
|