TodayUSStock

突破回踩确认选股:降低假突破的风险

同花顺

分享
字号朗读
突破回踩确认选股:降低假突破的风险

今日美股资讯关注「突破回踩确认选股:降低假突破的风险」。文中涉及同花顺。主体名称、时间、金额与行情数据以正文为准,不另作推断。

突破回踩确认选股:降低假突破的风险

代码介绍

以下代码由今日美股网(www.TodayUSStock.com)代码学院提供,突破回踩确认是一种选股策略,通过识别股票在突破压力位或支撑位后是否有回踩确认的行为,以减少假突破(false breakout)的风险。该策略利用价格行为来确认趋势的有效性。

代码及加载方法

同花顺

// 定义突破线
BREAK_LINE:=MA(CLOSE,20); // 20日均线作为突破线

// 判断突破
BREAKOUT:=CLOSE>BREAK_LINE AND REF(CLOSE,1)HHV(LOW,5); // 回踩但不跌破最近5日最低价

// 选股条件
STOCK:=BREAKOUT AND REF(PULLBACK,1); // 昨天有突破,今天有回踩

// 返回结果
RETURN STOCK;

加载方法: 将代码复制粘贴到同花顺的"选股公式编辑器"中,命名为"突破回踩选股",然后保存并运行。

东方财富

// 定义突破线
BREAK_LINE:=MA(CLOSE,20); // 20日均线作为突破线

// 判断突破
BREAKOUT:=CLOSE>BREAK_LINE AND REF(CLOSE,1)HHV(LOW,5); // 回踩但不跌破最近5日最低价

// 选股条件
SELECT:=BREAKOUT AND REF(PULLBACK,1); // 昨天有突破,今天有回踩

// 返回结果
RETURN SELECT;

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

通达信

// 定义突破线
BREAK_LINE:=MA(CLOSE,20); // 20日均线作为突破线

// 判断突破
BREAKOUT:=CLOSE>BREAK_LINE AND REF(CLOSE,1)HHV(LOW,5); // 回踩但不跌破最近5日最低价

// 选股条件
SELECT_STOCK:=BREAKOUT AND REF(PULLBACK,1); // 昨天有突破,今天有回踩

// 返回结果
RETURN SELECT_STOCK;

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

大智慧

// 定义突破线
BREAK_LINE:=MA(CLOSE,20); // 20日均线作为突破线

// 判断突破
BREAKOUT:=CLOSE>BREAK_LINE AND REF(CLOSE,1)HHV(LOW,5); // 回踩但不跌破最近5日最低价

// 选股条件
STOCK_SELECT:=BREAKOUT AND REF(PULLBACK,1); // 昨天有突破,今天有回踩

// 返回结果
RETURN STOCK_SELECT;

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

MetaStock

// 定义突破线
BREAK_LINE:=Mov(CLOSE,20,S); // 20日均线作为突破线

// 判断突破
BREAKOUT:=CLOSE>BREAK_LINE AND Ref(CLOSE,-1)HHV(LOW,5); // 回踩但不跌破最近5日最低价

// 选股条件
STOCK:=BREAKOUT AND Ref(PULLBACK,-1); // 昨天有突破,今天有回踩

// 返回结果
RETURN STOCK;

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

NinjaTrader

using System;
using NinjaTrader.NinjaScript;

public class BreakoutPullbackSelection : Indicator
{
    protected override void OnStateChange()
    {
        if (State == State.SetDefaults)
        {
            Description = "Breakout and Pullback Stock Selection";
            Name = "BreakoutPullbackSelection";
            Calculate = Calculate.OnBarClose;
            IsOverlay = false;
            IsSuspendedWhileInactive = true;
        }
    }

    protected override void OnBarUpdate()
    {
        double breakLine = SMA(CLOSE, 20)[0]; // 20日均线作为突破线
        
        bool breakout = CLOSE[0] > breakLine && CLOSE[1]  MAX(LOW, 5)[0]; // 回踩但不跌破最近5日最低价
        
        PlotNewValue("StockSelect", breakout && pullback ? 1 : 0);
    }
}

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

eSignal

// 定义突破线
BREAK_LINE:=MA(CLOSE,20); // 20日均线作为突破线

// 判断突破
BREAKOUT:=CLOSE>BREAK_LINE AND REF(CLOSE,1)HHV(LOW,5); // 回踩但不跌破最近5日最低价

// 选股条件
STOCK:=BREAKOUT AND REF(PULLBACK,1); // 昨天有突破,今天有回踩

// 返回结果
RETURN STOCK;

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

TradingView

//@version=4
study("Breakout and Pullback Selection", shorttitle="BrkPbk", overlay=false)

// 定义突破线
breakLine = sma(close, 20) // 20日均线作为突破线

// 判断突破
breakout = close > breakLine and close[1]  highest(low, 5) // 回踩但不跌破最近5日最低价

// 选股条件
stockSelect = breakout[1] and pullback // 昨天有突破,今天有回踩

// 返回结果
plotshape(stockSelect, title="Stock Selection", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)

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

MetaTrader 4/5

//+------------------------------------------------------------------+
//| Breakout and Pullback Selection 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  breakLine && close[i-1]  iHighest(NULL,0,MODE_LOW,5,i);
      
      if(breakout && pullback)
      {
         ExtMapBuffer[i] = Low[i] - 20 * Point;
      }
      else
      {
         ExtMapBuffer[i] = EMPTY_VALUE;
      }
   }
   return(rates_total);
}

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

参数说明

参数意义
MA(CLOSE,20)20日简单移动平均线,用于定义突破线
BREAKOUT判断是否有价格突破的条件
PULLBACK判断是否有回踩确认的条件
HHV(LOW,5)获取最近5天的最高低点,用于回踩确认

针对不同产品推荐参数

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

优点和缺点

优点缺点
有效降低假突破的风险,提高交易质量可能错过快速突破没有回踩确认的股票
适用于多种市场和软件需要对市场趋势有较好的理解
可以结合其他技术指标进一步优化在极端市场条件下,回踩确认不一定发生

使用建议

此策略适用于趋势市场,在突破确认时入场。在使用时,建议结合成交量分析和市场情绪,进一步确认突破的有效性。设置合理的止损点,以防回踩演变成趋势反转。定期对策略进行回测,根据市场变化调整参数。

X用户点评

"突破回踩策略确实有效,帮我避开了很多假突破,但要注意市场的整体趋势,否则可能错过真正的突破机会。" - @TrendTrader

"这个策略在股票市场表现不错,不过要注意回踩的幅度,有时候回踩太深反而是卖出信号。" - @StockGuru

"用在外汇上时,要调整参数,因为外汇的趋势变化相对慢,回踩确认的时间可能需要更长。" - @ForexMaster

"对加密货币来说,这个策略还可以,但一定要看成交量变化,有时候只是大户在洗盘。" - @CryptoExpert

"记得结合其他指标一起用,这个策略可以帮你找到好的入场点,但不是万能的。" - @TechAnalyst

分享

相关报道

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

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

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

关键词:talib , ATR

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

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

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

关键词:talib , BBANDS , RSI

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

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

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

关键词:Python

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

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

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

关键词:Python

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

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

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

关键词:Python