HedgerLabsが設計したインクリメンタルエントリーによる平均逆転戦略は,金融市場における平均逆転技術に焦点を当てた高度な取引戦略スクリプトです.移動平均値に対する価格動向に基づくインクリメンタルエントリーを重視した体系的なアプローチを好むトレーダー向けに設計されています.
この戦略の中心は,すべてのエントリーと出口が回るシンプル・ムービング・アベア (SMA) です.トレーダーは,異なる取引スタイルとタイムフレームに合わせてMA長さをカスタマイズすることができます.
この戦略には,インクリメンタルエントリーシステムがユニークである.価格が指定されたパーセントでMAから逸脱すると最初のポジションを開始する.価格がMAからさらに移動するにつれて,トレーダーによって定義されるインクリメンタルステップで次のエントリが行われる.これは,変動の増加を資本することを目的としている.
この戦略は,市場状況の変化に適応するために,価格がMAを下回り,価格がMA上回りするとロングを入力して,ポジションを賢く管理します.
エクシートは,価格がMAに触れたときに決定され,最適化された結果のために潜在的な逆転点でポジションを閉じるのが目標です.
Calc_on_every_tick が有効になっている場合,戦略は迅速な反応を保証するために市場を継続的に評価します.
漸進的な入力を伴う平均逆転戦略は,次の主要な利点があります.
考慮すべきリスクは以下のとおりです.
エグジットは最適化され,トレンドフィルターが追加され,上記のリスクを軽減するためにポジションサイズが削減できます.
戦略は以下によって強化される:
インクリメンタルエントリーによる平均逆転戦略は,体系化されたインクリメンタルポジションサイジングアプローチを用いた平均逆転技術に焦点を当てています.カスタマイズ可能な設定により,さまざまな取引手段に適応できます.市場範囲で良好なパフォーマンスを発揮し,短期的な体系的なトレーダーに適しています.
/*backtest start: 2023-12-29 00:00:00 end: 2024-01-28 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Mean Reversion with Incremental Entry by HedgerLabs", overlay=true, calc_on_every_tick=true) // Input for adjustable settings maLength = input.int(30, title="MA Length", minval=1) initialPercent = input.float(5, title="Initial Percent for First Order", minval=0.01, step=0.01) percentStep = input.float(1, title="Percent Step for Additional Orders", minval=0.01, step=0.01) // Calculating Moving Average ma = ta.sma(close, maLength) // Plotting the Moving Average plot(ma, "Moving Average", color=color.blue) var float lastBuyPrice = na var float lastSellPrice = na // Function to calculate absolute price percentage difference pricePercentDiff(price1, price2) => diff = math.abs(price1 - price2) / price2 * 100 diff // Initial Entry Condition Check Function initialEntryCondition(price, ma, initialPercent) => pricePercentDiff(price, ma) >= initialPercent // Enhanced Entry Logic for Buy and Sell if (low < ma) if (na(lastBuyPrice)) if (initialEntryCondition(low, ma, initialPercent)) strategy.entry("Buy", strategy.long) lastBuyPrice := low else if (low < lastBuyPrice and pricePercentDiff(low, lastBuyPrice) >= percentStep) strategy.entry("Buy", strategy.long) lastBuyPrice := low if (high > ma) if (na(lastSellPrice)) if (initialEntryCondition(high, ma, initialPercent)) strategy.entry("Sell", strategy.short) lastSellPrice := high else if (high > lastSellPrice and pricePercentDiff(high, lastSellPrice) >= percentStep) strategy.entry("Sell", strategy.short) lastSellPrice := high // Exit Conditions - Close position if price touches the MA if (close >= ma and strategy.position_size > 0) strategy.close("Buy") lastBuyPrice := na if (close <= ma and strategy.position_size < 0) strategy.close("Sell") lastSellPrice := na // Reset last order price when position is closed if (strategy.position_size == 0) lastBuyPrice := na lastSellPrice := na