この戦略は,異なる市場状態を特定するために線形回帰および変動指標を使用する. 購入または販売の条件が満たされると,戦略は対応するロングまたはショートポジションを確立する. さらに,この戦略は,さまざまな市場環境に適応するために市場条件に基づいてパラメータの最適化および調整を可能にします. 戦略は,指数移動平均 (EMA) を追加の指標として利用し,取引信号を確認します.
この戦略は,EMAを確認指標として使用し,線形回帰および変動指標を使用して市場状態を特定し,適応性と論理的に明確な取引戦略を構築する.この戦略の利点は,トレンドと変動性を組み合わせ,パラメータ最適化が可能であるため,さまざまな市場環境に適している.しかし,この戦略はパラメータ選択,不安定な市場,ブラックスワンイベントなどのリスクに直面し,実用的なアプリケーションで継続的な最適化と改善を必要とする.将来の強化は,信号源を豊かにし,パラメータ選択を最適化し,戦略の安定性と収益性を向上させるためにリスク管理措置を精製することに焦点を当てることができる.
/*backtest start: 2023-05-22 00:00:00 end: 2024-05-27 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © tmalvao //@version=5 strategy("Regime de Mercado com Regressão e Volatilidade Otimizado", overlay=true) // Parâmetros para otimização upperThreshold = input.float(1.0, title="Upper Threshold") lowerThreshold = input.float(-1.0, title="Lower Threshold") length = input.int(50, title="Length", minval=1) // Indicadores de volatilidade atrLength = input.int(14, title="ATR Length") atrMult = input.float(2.0, title="ATR Multiplier") atr = ta.atr(atrLength) volatility = atr * atrMult // Calculando a regressão linear usando função incorporada intercept = ta.linreg(close, length, 0) slope = ta.linreg(close, length, 1) - ta.linreg(close, length, 0) // Sinal de compra e venda buySignal = slope > upperThreshold and close > intercept + volatility sellSignal = slope < lowerThreshold and close < intercept - volatility // Entrando e saindo das posições if (buySignal) strategy.entry("Buy", strategy.long) if (sellSignal) strategy.entry("Sell", strategy.short) // Indicadores adicionais para confirmação emaFastLength = input.int(10, title="EMA Fast Length") emaSlowLength = input.int(50, title="EMA Slow Length") emaFast = ta.ema(close, emaFastLength) emaSlow = ta.ema(close, emaSlowLength) // Confirmando sinais com EMAs if (buySignal and emaFast > emaSlow) strategy.entry("Buy Confirmed", strategy.long) if (sellSignal and emaFast < emaSlow) strategy.entry("Sell Confirmed", strategy.short) // Exibindo informações no gráfico plot(slope, title="Slope", color=color.blue) plot(intercept, title="Intercept", color=color.red) plot(volatility, title="Volatility", color=color.green) hline(upperThreshold, "Upper Threshold", color=color.green, linestyle=hline.style_dotted) hline(lowerThreshold, "Lower Threshold", color=color.red, linestyle=hline.style_dotted)