
等级: 新手上路
- 注册:
- 2024-4-19
- 曾用名:
|
//------------------------------------------------------------------------
// 大小波段通吃策略 - 金字塔PEL语言实现
// 核心逻辑:动态识别波段周期 + 均线金叉全仓买入 + 波段高点全仓卖出 + 2.5%止损
// 目标胜率:80%以上
//------------------------------------------------------------------------
// 动态参数设置
INPUT:
STOPLOSS(2.5, 1, 5, 0.1, '止损比例(%)'); // 2.5%止损
MIN_BAND(10, 5, 30, 1, '最小波段周期'); // 小波段周期
MAX_BAND(30, 20, 60, 1, '最大波段周期'); // 大波段周期
VOLFACTOR(1.8, 1.2, 3, 0.1, '量能系数'); // 量能放大系数
ATR_PERIOD(14, 7, 21, 1, '波动率周期'); // ATR波动率周期
TREND_FILTER(1, 0, 1, 1, '趋势过滤(0关1开)'); // 趋势过滤开关
// 动态波段周期计算(基于市场波动率)
TR := MAX(MAX((HIGH-LOW), ABS(REF(CLOSE,1)-HIGH)), ABS(REF(CLOSE,1)-LOW));
ATR := MA(TR, ATR_PERIOD);
VOLATILITY := ATR/CLOSE*100; // 波动率百分比
// 根据波动率动态调整波段周期
BAND_PERIOD := IFELSE(VOLATILITY > 5, MIN_BAND,
IFELSE(VOLATILITY > 3, (MIN_BAND+MAX_BAND)/2, MAX_BAND));
// 计算核心指标
MA5:MA(CLOSE,5); // 5日均线
MA20:MA(CLOSE,20); // 20日均线
VOLMA5:MA(VOLUME,5); // 5日均量线
// 动态波段高低点计算
LOWBAND:LLV(LOW,BAND_PERIOD); // 动态波段低点
HIGHBAND:HHV(HIGH,BAND_PERIOD); // 动态波段高点
// 趋势过滤指标(可选)
MA60:MA(CLOSE,60); // 60日均线(趋势过滤)
UPTREND := IFELSE(TREND_FILTER=1, CLOSE>MA60, 1); // 上升趋势标志
// 交易信号变量
BUY_SIGNAL:0; // 买入信号
SELL_SIGNAL:0; // 卖出信号
STOP_SIGNAL:0; // 止损信号
// 状态跟踪变量
ENTRY_PRICE:0; // 入场价格
CONFIRM_COUNT:0; // 信号确认计数器
BAND_TYPE:''; // 波段类型('小波段','中波段','大波段')
// 初始化(每根K线开始时重置信号)
BUY_SIGNAL:=0;
SELL_SIGNAL:=0;
STOP_SIGNAL:=0;
// 波段类型判断
BAND_SIZE := IFELSE(BAND_PERIOD<=MIN_BAND+5, '小波段',
IFELSE(BAND_PERIOD<=(MIN_BAND+MAX_BAND)/2, '中波段', '大波段'));
// 买入条件判断
LOW_THRESHOLD := LOWBAND*(1+0.01*VOLATILITY/2); // 波动率自适应低点阈值
BUY_CONDITION1 := LOW<=LOW_THRESHOLD; // 触及动态波段低点区域
BUY_CONDITION2 := CROSS(MA5,MA20); // 5日线上穿20日线
BUY_CONDITION3 := VOLUME>VOLMA5*VOLFACTOR; // 量能放大
BUY_CONDITION4 := UPTREND; // 趋势过滤
// 卖出条件判断
HIGH_THRESHOLD := HIGHBAND*(1-0.01*VOLATILITY/2); // 波动率自适应高点阈值
SELL_CONDITION1 := HIGH>=HIGH_THRESHOLD; // 触及动态波段高点区域
SELL_CONDITION2 := VOLUME>VOLMA5*1.2; // 高位放量
SELL_CONDITION3 := CROSS(MA20,MA5); // 死叉信号(备选)
// 空仓时处理买入信号
IF HOLDING=0 THEN BEGIN
// 满足买入条件时增加确认计数
IF BUY_CONDITION1 AND BUY_CONDITION2 AND BUY_CONDITION3 AND BUY_CONDITION4 THEN
CONFIRM_COUNT:=CONFIRM_COUNT+1;
ELSE
CONFIRM_COUNT:=0;
// 确认信号达到要求后发出买入指令
IF CONFIRM_COUNT>=1 THEN BEGIN // 小波段需要快速反应,只需1根K线确认
BUY_SIGNAL:=1;
ENTRY_PRICE:=CLOSE; // 记录入场价格
CONFIRM_COUNT:=0; // 重置计数器
BAND_TYPE:=BAND_SIZE; // 记录当前波段类型
END;
END;
// 持仓时处理卖出和止损
IF HOLDING>0 THEN BEGIN
// 计算止损价格
STOP_PRICE := ENTRY_PRICE*(1-STOPLOSS/100);
// 止损检查
IF CLOSE<=STOP_PRICE THEN BEGIN
STOP_SIGNAL:=1;
END;
// 根据波段类型设置不同卖出条件
IF BAND_TYPE='小波段' THEN BEGIN
// 小波段:快速止盈,只需价格触及高点区域
IF SELL_CONDITION1 THEN
SELL_SIGNAL:=1;
END
ELSE IF BAND_TYPE='中波段' THEN BEGIN
// 中波段:价格触及高点+量能确认
IF SELL_CONDITION1 AND SELL_CONDITION2 THEN
SELL_SIGNAL:=1;
END
ELSE BEGIN
// 大波段:价格触及高点+量能确认+死叉信号
IF SELL_CONDITION1 AND SELL_CONDITION2 AND SELL_CONDITION3 THEN
SELL_SIGNAL:=1;
END;
END;
// 交易指令执行
IF BUY_SIGNAL=1 THEN BEGIN
BUY(1,0,MARKET); // 全仓买入
COMMENT('【',BAND_TYPE,'买入】价格:',CLOSE,
' 周期:',BAND_PERIOD,'天 波动率:',VOLATILITY:0:1,'%');
END;
IF SELL_SIGNAL=1 THEN BEGIN
SELL(1,0,MARKET); // 全仓卖出
PROFIT:=(CLOSE-ENTRY_PRICE)/ENTRY_PRICE*100;
COMMENT('【',BAND_TYPE,'卖出】价格:',CLOSE,' 盈利:',NUMTOSTR(PROFIT,2),'%');
END;
IF STOP_SIGNAL=1 THEN BEGIN
SELL(1,0,MARKET); // 止损卖出
LOSS:=(CLOSE-ENTRY_PRICE)/ENTRY_PRICE*100;
COMMENT('【止损】类型:',BAND_TYPE,' 亏损:',NUMTOSTR(LOSS,2),'%');
END;
// 高级可视化系统
// 1. 动态波段通道
UPPERBAND: HIGHBAND;
LOWERBAND: LOWBAND;
DRAWBAND(UPPERBAND, COLORRGB(255,100,100,30), LOWERBAND, COLORRGB(100,255,100,30));
// 2. 买卖信号标记
DRAWICON(BUY_SIGNAL,LOW*0.98,1); // 买入信号图标
DRAWICON(SELL_SIGNAL,HIGH*1.02,2); // 卖出信号图标
DRAWICON(STOP_SIGNAL,HIGH*1.02,3); // 止损信号图标
// 3. 波段类型标签
DRAWTEXT(BARPOS=1, HIGH*1.1, '波段类型: '+BAND_TYPE), COLORYELLOW;
// 4. 均线系统
DRAWLINE2(MA5, COLORRED, 0, 'MA5');
DRAWLINE2(MA20, COLORBLUE, 0, 'MA20');
DRAWLINE2(MA60, COLORGRAY, 0, 'MA60');
// 5. 动态止损线
IF HOLDING>0 THEN BEGIN
DRAWLINE3(STOP_PRICE, COLORGREEN, 0, '止损线');
END;
// 6. 波动率指示器
DRAWNUMBER(BARPOS=1, HIGH*1.15, VOLATILITY), COLORCYAN;
DRAWTEXT(BARPOS=1, HIGH*1.18, '波动率%:'), COLORCYAN;
// 策略结束
能帮我把上面的代码转变成金字塔的交易策略吗?
|
|