TodayUSStock

低吸高抛策略:结合波动率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*ATRATR的2倍,作为波动范围的边界

针对不同产品推荐参数

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

优点和缺点

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

使用建议

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

X用户点评

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

分享

相关报道

短线止损策略:如何快速止损避免深套

短线止损策略:如何快速止损避免深套

短线止损策略由今日美股网代码学院提供,基于百分比止损和ATR止损的Python代码实现,旨在通过设置合理止损点快速退出不利交易,避免价格大幅下跌导致深度套牢,适合短线交易者参考。

关键词:talib , ATR

突破假信号过滤:避免误判行情导致损失

突破假信号过滤:避免误判行情导致损失

突破假信号过滤策略由今日美股网代码学院提供,基于布林带和RSI等多条件验证的Python代码实现,旨在过滤市场噪音和假突破信号,避免因误判行情导致交易损失,提升突破交易可靠性。

关键词:talib , BBANDS , RSI

回撤控制策略:如何优化资金曲线

回撤控制策略:如何优化资金曲线

回撤控制策略由今日美股网代码学院提供,通过监控和管理账户回撤来优化资金曲线,基于Python代码实现,旨在减少大幅损失,确保投资组合增长更加平稳和可持续。

关键词:Python

波动率控制交易策略:平衡风险与收益

波动率控制交易策略:平衡风险与收益

今日美股网代码学院发布波动率控制交易策略,通过Python调整交易规模适应市场波动性,目标波动率设为0.15,回看周期20日,高波动时减少持仓以降低风险,低波动时增加持仓捕捉收益。

关键词:Python

资金管理模型:防止连续亏损导致爆仓

资金管理模型:防止连续亏损导致爆仓

今日美股网代码学院推出资金管理模型,基于固定风险百分比控制每笔交易风险,单笔风险设为账户资本的1%,最大回撤限制为20%,旨在防止连续亏损导致爆仓。

关键词:Python