趋势突破策略是一种通过计算价格波动性来判断市场趋势并进行交易的量化策略。该策略运用(最高价-最低价)/收盘价的公式计算K线的价格波动性,再通过均线进行平滑处理,判断是否出现趋势反转。当波动性高于最近一定周期的平均水平时,说明可能出现新的趋势,这时策略会发出交易信号。
该策略的核心指标是(最高价-最低价)/收盘价,它反映了K线的波动幅度。策略首先计算这一指标,然后取其绝对值并计算简单移动平均线。如果当前K线的波动幅度指标绝对值高于过去一定周期移动平均值,则说明可能正在形成新的趋势。
具体来说,策略包含以下步骤:
该策略还包含指标绘制、K线颜色改变等可视化操作,方便直观判断市场趋势。总的来说,策略运用价格波动性判断潜在趋势变化的思路简单直接有效。
该策略具有以下主要优势:
总的来说,该策略突破了传统指标判断的思维定式,只关注价格本身的波动性,灵活捕捉潜在趋势变化。参数可调性强,使用简便,是一种值得推荐的趋势策略。
该策略也存在以下主要风险:
这些风险主要与该策略过于依赖价格波动性判断市场趋势有关。为降低风险,可以考虑结合其他判断指标,判断趋势信号的有效性;也可以适当调整参数,平滑波动性指标,过滤掉短线噪声。
该策略主要可从以下方向进行优化:
这些优化措施可以降低错交易概率,提高策略获利率。特别是增加判断信号有效性的指标和模型可以大幅减少无效信号。此外,止损策略也很必要,可以控制单笔损失,保证总体收益。
该趋势突破策略通过计算价格波动性判断市场趋势变化,原理简单直接,使用灵活,可自定义参数调整判断敏感度。策略具有抓住趋势变化的优势,但也存在一定风险。我们可以从优化判断指标、建立过滤模型、调整参数设置等方面进行改进,使策略更稳定可靠。总的来说,该策略为判断市场趋势变化提供了新的思路,值得进一步研究优化。
/*backtest start: 2023-11-26 00:00:00 end: 2023-12-26 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //////////////////////////////////////////////////////////// // Copyright by HPotter v2.0 25/10/2017 // // This histogram displays (high-low)/close // Can be applied to any time frame. // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// strategy(title="(H-L)/C Histogram Backtest", precision = 2) input_barwidth = input(4, title="Bar Width") input_barsback = input(1, title="Look Back") input_percentorprice = input(false, title="% change") input_smalength = input(16, title="SMA Length") reverse = input(false, title="Trade reverse") hline(0, color=blue, linestyle=line) xPrice = (high-low)/close xPriceHL = (high-low) xPrice1 = iff(input_percentorprice, xPrice * 100, xPriceHL) xPrice1SMA = sma(abs(xPrice1), input_smalength) pos = 0.0 pos := iff(xPrice1SMA[input_barsback] > abs(xPrice1), 1, iff(xPrice1SMA[input_barsback] < abs(xPrice1), -1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) barcolor(possig == -1 ? red: possig == 1 ? green : blue ) plot(abs(xPrice1), color=green, style = histogram, linewidth = input_barwidth, title="Change") plot(xPrice1SMA[input_barsback], color=red, title="SMA")