突破回踩确认选股:降低假突破的风险 代码介绍 以下代码由今日美股网(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 来源:今日美股网lg...