全球数字财富领导者

低吸高抛策略:结合波动率ATR,提升交易收益

2025-02-07 00:11:27
今日美股网
媒体
关注
0
0
获赞
粉丝
喜欢 0 0收藏举报
— 分享 —
摘要: 低吸高抛策略:结合波动率ATR,提升交易收益代码介绍以下代码由今日美股网(www.TodayUSStock.com)代码学院提供,低吸高抛策略是一个经典的波段交易方法,通过结合平均真实波幅(ATR)来确定买入和卖出点。ATR帮助估算市场的波动性,从而为交易者提供更科学的入场和离场点位,旨在提升交易收益。代码及加载方法同花顺// 计算ATR ATR...

低吸高抛策略:结合波动率ATR,提升交易收益

代码介绍

以下代码由今日美股网(www.TodayUSStock.com)代码学院提供,低吸高抛策略是一个经典的波段交易方法,通过结合平均真实波幅(ATR)来确定买入和卖出点。ATR帮助估算市场的波动性,从而为交易者提供更科学的入场和离场点位,旨在提升交易收益。

代码及加载方法

同花顺

// 计算ATR
ATR:=MA(ABS(HIGH-LOW),14); // 14日ATR

// 定义买入条件(低吸)
BUY:=CLOSEMA(CLOSE,20)+2*ATR; // 收盘价高于20日均线加上2倍ATR

// 返回结果
RETURN BUY OR SELL;

加载方法: 将代码复制粘贴到同花顺的"选股公式编辑器"中,命名为"低吸高抛策略",然后保存并运行。

东方财富

// 计算ATR
ATR:=MA(ABS(HIGH-LOW),14); // 14日ATR

// 定义买入条件(低吸)
BUY:=CLOSEMA(CLOSE,20)+2*ATR; // 收盘价高于20日均线加上2倍ATR

// 返回结果
RETURN BUY OR SELL;

加载方法: 复制代码到东方财富通"自定义指标"编辑器中,保存并应用到选股条件中。

通达信

// 计算ATR
ATR:=MA(ABS(HIGH-LOW),14); // 14日ATR

// 定义买入条件(低吸)
BUY:=CLOSEMA(CLOSE,20)+2*ATR; // 收盘价高于20日均线加上2倍ATR

// 返回结果
RETURN BUY OR SELL;

加载方法: 在通达信软件中,进入"公式管理器",选择"新建公式",粘贴代码后保存并使用。

大智慧

// 计算ATR
ATR:=MA(ABS(HIGH-LOW),14); // 14日ATR

// 定义买入条件(低吸)
BUY:=CLOSEMA(CLOSE,20)+2*ATR; // 收盘价高于20日均线加上2倍ATR

// 返回结果
RETURN BUY OR SELL;

加载方法: 进入大智慧的"指标管理",创建新指标,粘贴代码后保存使用。

MetaStock

// 计算ATR
ATR:=Mov(Abs(HIGH-LOW),14,S); // 14日ATR

// 定义买入条件(低吸)
BUY:=CLOSEMov(CLOSE,20,S)+2*ATR; // 收盘价高于20日均线加上2倍ATR

// 返回结果
RETURN BUY OR SELL;

加载方法: 在MetaStock中,进入"Indicator Builder",新建指标,输入代码并保存。

NinjaTrader

using System;
using NinjaTrader.NinjaScript;

public class LowBuyHighSellATR : Indicator
{
    protected override void OnStateChange()
    {
        if (State == State.SetDefaults)
        {
            Description = "Low Buy High Sell with ATR";
            Name = "LowBuyHighSellATR";
            Calculate = Calculate.OnBarClose;
            IsOverlay = false;
            IsSuspendedWhileInactive = true;
        }
    }

    protected override void OnBarUpdate()
    {
        double atr = ATR(14)[0];
        double ma20 = SMA(CLOSE, 20)[0];
        
        bool buy = CLOSE[0] < ma20 - 2 * atr; // 低吸条件
        bool sell = CLOSE[0] > ma20 + 2 * atr; // 高抛条件
        
        PlotNewValue("BuySellSignal", buy || sell ? 1 : 0);
    }
}

加载方法: 打开NinjaTrader,进入"NinjaScript Editor",新建Indicator,粘贴代码并编译。

eSignal

// 计算ATR
ATR:=MA(ABS(HIGH-LOW),14); // 14日ATR

// 定义买入条件(低吸)
BUY:=CLOSEMA(CLOSE,20)+2*ATR; // 收盘价高于20日均线加上2倍ATR

// 返回结果
RETURN BUY OR SELL;

加载方法: 在eSignal中,进入"Formula Editor",新建公式,粘贴代码并保存。

TradingView

//@version=4
study("Low Buy High Sell with ATR", shorttitle="LBHS_ATR", overlay=false)

// 计算ATR
atr = atr(14)

// 定义买入条件(低吸)
buy = close < sma(close, 20) - 2 * atr // 收盘价低于20日均线减去2倍ATR

// 定义卖出条件(高抛)
sell = close > sma(close, 20) + 2 * atr // 收盘价高于20日均线加上2倍ATR

// 返回结果
plotshape(buy or sell, title="Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)

加载方法: 在TradingView中,点击图表右上角的"Pine Editor",新建脚本,粘贴代码后保存并应用到图表。

MetaTrader 4/5

//+------------------------------------------------------------------+
//| Low Buy High Sell with ATR Indicator                             |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Lime

double ExtMapBuffer[];

int OnInit()
{
   SetIndexStyle(0, DRAW_ARROW, 0, 1);
   SetIndexArrow(0, 233);
   SetIndexBuffer(0, ExtMapBuffer);
   return(INIT_SUCCEEDED);
}

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
   int i, limit;
   if(rates_total  ma20 + 2 * atr)
      {
         ExtMapBuffer[i] = Low[i] - 20 * Point;
      }
      else
      {
         ExtMapBuffer[i] = EMPTY_VALUE;
      }
   }
   return(rates_total);
}

加载方法: 在MetaTrader中,进入"MetaEditor",新建Expert Advisor或Indicator,粘贴代码,编译并加载到图表。

参数说明

参数 意义
ATR 平均真实波幅,衡量价格的波动性
MA(CLOSE,20) 20日简单移动平均线,用于价格趋势判断
2*ATR ATR的2倍,作为波动范围的边界

针对不同产品推荐参数

产品类型 推荐参数 理由
股票 ATR(14), MA(20) 股票市场的中期波动适合14日ATR和20日均线
期货 ATR(7), MA(10) 期货市场波动快,需更短周期捕捉波动
外汇 ATR(20), MA(50) 外汇市场波动相对小,需更长周期判断趋势
加密货币 ATR(10), MA(30) 加密货币波动大,需平衡波动性和趋势识别

优点和缺点

优点 缺点
结合市场波动性进行交易,更加科学 在极端市场条件下,ATR可能失效
适用于多种市场和资产类别 需要对市场波动性有深入理解
提供明确的买卖点位,减少主观判断 在趋势市场中,可能频繁交易,增加交易成本

使用建议

此策略适合在波动性较大的市场使用。结合其他技术指标或基本面分析可以提高策略的成功率。建议在回测中优化参数,并在实际交易中灵活调整止损和止盈点位以控制风险。同时,注意市场情绪的变化,避免在趋势明显的市场中过度交易。

X用户点评

"这个策略结合ATR,真的让我在波动的市场中找到了不错的入场和出场点。关键是,记住市场环境的变化,调整参数很重要。" - @ATRTrader

来源:今日美股网

1. 欢迎转载,转载时请标明来源为FX168财经。商业性转载需事先获得授权,请发邮件至:media@fx168group.com。
2. 所有内容仅供参考,不代表FX168财经立场。我们提供的交易数据及资讯等不构成投资建议和依据,据此操作风险自负。
go