 
等级: 超级版主
- 注册:
- 2021-5-18
- 曾用名:
|
//====== 参数设置 ======
INPUT:
ATR周期(14,5,30,1), // ATR计算周期
移动止盈倍数(1,0.5,3,0.1); // 波幅达到ATR的N倍触发移动
//====== ATR计算 ======
TR1 := MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:MA(TR1,ATR周期);
variable:移动止盈线:=0;
今开波幅 := (C - o)/o;
IF HOLDING>0 THEN BEGIN
多头浮动盈利 := (C - ENTERPRICE)/ENTERPRICE; // 计算收益率
// 初始化移动止盈线(首次触发后激活)
IF 移动止盈线=0 THEN 移动止盈线 := ENTERPRICE;
// 条件:有盈利且波幅达到ATR阈值
IF 多头浮动盈利>0 AND ABS(今开波幅)>=移动止盈倍数*ATR/o THEN
移动止盈线 := MAX(移动止盈线, o*(1+今开波幅*移动止盈倍数*ATR/o));
END
// 2. 空头持仓处理
IF HOLDING<0 THEN BEGIN
空头浮动盈利 := (ENTERPRICE - C)/ENTERPRICE;
IF 移动止盈线=0 THEN 移动止盈线 := ENTERPRICE;
IF 空头浮动盈利>0 AND ABS(今开波幅)>=移动止盈倍数*ATR/o THEN
移动止盈线 := MIN(移动止盈线, o*(1-今开波幅*移动止盈倍数*ATR/o));
END
|
|