
連続的下落 - 逆転戦略は,価格の下落との連続性に基づいた量化取引戦略である.この戦略は,連続的X根のが最低を打破し,その後連続的Y根のが上昇した形状を識別することによって,短期的なトレンド逆転の機会を捕捉する.この戦略の主な考え方は,価格が連続的な下落を経験した後に空頭動力が解放されたことを示し,その後,連続的なが現れた場合,多頭力が蓄積され始め,価格が反転の波を迎える可能性があることを意味する.したがって,この戦略は,この空頭多頭の価格逆転の機会を掴み,それによって利益を得ようとする.
連続した陰転-陽逆転戦略の原理は,以下のステップに分けられる.
この戦略は,連続した下落との形態を利用し,空頭から多頭への転換の逆転の機会を捕捉しようとします.同時に,リスクを管理するために厳格な停止条件を設定します.
連続した陰・陽の逆転戦略は以下の利点があります.
継続的な反転策にはいくつかの利点があるが,以下のリスクがあります.
これらのリスクに対処するために,以下の最適化策を考慮することができます.
継続的な下落と逆転の戦略には,以下の方向で最適化できます.
上述の最適化策により,連続的下落-逆転戦略は,市場の変化により良く適応し,リスクを制御し,収益性と安定性を向上させることができる.
連続的下落 - 逆転戦略は,価格の連続性に基づいた量化取引戦略であり,連続的下落との形状を識別することによって,市場の短期的な逆転の機会を捕捉する.この戦略の規則は単純で明快で,価格トレンドの変化に敏感であり,リスクを制御するために厳格な停止条件があります.同時に,戦略のパラメータは,市場の特徴に応じて調整することができ,柔軟性を高めます.
しかし,この戦略には,頻繁な取引,ストップポジションの設定が過度に厳格で,強いトレンドの市場で不良なパフォーマンスが起こるなど,いくつかのリスクがあります.これらのリスクに対処するために,ダイナミックな調整パラメータ,ストップポジションの最適化,異なる市場環境で異なる戦略を適用するなど,いくつかの措置を考慮することができます.
さらに,この戦略には,より多くの指標を導入し,ストップとストップを最適化し,異なる市場環境に適応し,ポジション管理を追加し,他の戦略と組み合わせるなど,いくつかの最適化方向があります. 継続的な最適化と改善により,連続した下降-逆転戦略は,より堅牢で効果的な量化取引戦略になることができます.
全体として,連続的下降-逆転戦略は,市場における短期的な逆転の機会を捉えて利益を得るために,シンプルで効果的な取引理念を提供します.しかし,実際のアプリケーションでは,特定の市場環境と個人のリスクの好みを組み合わせて,戦略を適切に最適化し,調整する必要があります.
/*backtest
start: 2023-03-02 00:00:00
end: 2024-03-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Bottom Out Strategy", overlay=true)
consecutiveBarsUp = input(2)
consecutiveBarsDown = input(3)
price = close
ups = 0.0
ups := price > price[1] ? nz(ups[1]) + 1 : 0
dns = 0.0
dns := price < price[1] ? nz(dns[1]) + 1 : 0
var entry_bar_index = 1000000
var active = false
var stop_loss = 0.0
// === INPUT BACKTEST RANGE ===
i_from = input(defval = timestamp("01 Jan 2023 00:00 +0000"), title = "From")
i_thru = input(defval = timestamp("01 Mar 2024 00:00 +0000"), title = "Thru")
// === FUNCTION EXAMPLE ===
date() => true
entry_condition() =>
date() and dns[2] >= consecutiveBarsDown and ups >= consecutiveBarsUp and not active
exit_condition() =>
date() and active and (close < nz(stop_loss) or close < high - 2 * ta.atr(7))
if (entry_condition())
strategy.entry("ConsDnLong", strategy.long, comment="CDLEntry")
entry_bar_index := bar_index
active := true
stop_loss := math.min(close, close[1], close[2])
// log.info("Entry at bar {0}, close={1}, stop_loss={2} ", entry_bar_index, close, stop_loss)
if (exit_condition())
strategy.close("ConsDnLong", comment = "CDLClose")
// log.info("Close at bar {0}", bar_index)
entry_bar_index := 1000000
active := false
// if (dns >= consecutiveBarsDown)
// strategy.entry("ConsDnSE", strategy.short, comment="ConsDnSE")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)
plot(high - 2* ta.atr(7))