[PEL] 复制代码
// 参数设置(调宽阈值)
INPUT:计算周期(10,5,30,1), // 缩短趋势线周期
成交量倍数(1.8,1.2,3.0), // 降低成交量要求
止盈回撤(0.08,0.05,0.10); // 放宽止盈条件
//-------------------------------------
// 变量声明
//-------------------------------------
VARIABLE:
趋势线=0,成交量5日均线=0,近期最高价=0,当前回撤率=0,
条件_突破=0,条件_放量=0,条件_缺口=0,
卖出信号1=0,卖出信号2=0,买入信号=0,卖出信号=0;
//-------------------------------------
// 模块1:趋势线计算(调整到主流程)
//-------------------------------------
// 全局计算趋势斜率和参考高点
趋势斜率 := SLOPE_S(HIGH, 计算周期);
参考高点 := REF(HIGH, 计算周期 - 1);
// 根据条件赋值趋势线
IF BARPOS >= 计算周期 THEN BEGIN
趋势线 := 趋势斜率 * (计算周期 - 1) + 参考高点;
END
ELSE BEGIN
趋势线 := 0; // 初始化阶段赋零值
END;
//-------------------------------------
// 模块2:基础指标计算
//-------------------------------------
成交量5日均线 := MA(VOL,5); // 必须独立计算
//-------------------------------------
// 模块3:买入条件(增加趋势线有效性判断)
//-------------------------------------
条件_突破 := CLOSE > 趋势线 AND 趋势线 <> 0; // 双重验证
条件_放量 := VOL > 成交量5日均线 * 成交量倍数;
条件_缺口 := CLOSE > REF(HIGH,1)*0.995; // 缺口允许误差
买入信号 := 条件_突破 AND 条件_放量 AND 条件_缺口;
//-------------------------------------
// 模块4:卖出条件(修正交叉逻辑)
//-------------------------------------
// 先计算中间变量再组合条件
持仓成本价 := AVGENTERPRICE;
卖出条件1 := CROSS(MA(CLOSE,10),CLOSE);
卖出条件2 := (CLOSE - 持仓成本价)/持仓成本价 < -0.05;
卖出信号 := (卖出条件1 OR 卖出条件2) AND HOLDING>0;
//-------------------------------------
// 交易指令(增加手数控制)
//-------------------------------------
IF 买入信号 AND HOLDING=0 THEN
BUY(1,1,limitr,CLOSE);
IF 卖出信号 AND HOLDING>0 THEN
SELL(1,1,limitr,CLOSE);
//-------------------------------------
// 调试输出(优化显示位置)
//-------------------------------------
DRAWTEXT(条件_突破,HIGH,'突',COLORRED);
DRAWTEXT(条件_放量,LOW,'量',COLORGREEN);
DRAWTEXT(条件_缺口,LOW,'缺',COLORBLUE);
DRAWTEXTEX(1,0,0,0,'当前趋势线:'+NUMTOSTR(趋势线,2));