
この戦略は,指数移動平均 ((EMA) の交差信号とフィボナッチ回调レベルを組み合わせた自動取引システムである.それは,EMA快線と慢線の交差点を識別して市場のトレンド方向を決定し,同時に,自動計算されたフィボナッチレベルを使用してスマートなストップとストップポイントを設定する.この戦略は,市場のトレンドの変化を捉え,既定のリスク管理パラメータで資金を保護することを目的としている.
この戦略の核心的な論理は以下の通りです.
EMAの交差点: システムは,2つの異なる周期の指数移動平均 ((快線9周期と慢線21周期) を使ってトレンドの変化を識別する.快線が上向きに慢線を横切るとき,多行信号を生成し,快線が下向きに慢線を横切るとき,空白信号を生成する.
設計変更防止戦略的な使用barstate.isconfirmed条件は,K線が閉じた後にのみ信号を確認することを保証し,信号再描画の問題を効果的に回避し,戦略の信頼性を高めます.
自動フィボナッチレベル: システムは,ユーザが設定した回帰周期 ((デフォルトの100根K線) の内での最高点と最低点を自動的に識別し,それから,重要なフィボナッチ回帰レベル ((0.382と0.618) を計算する.
スマートストップセット:
カスタムパラメータ: 戦略は,EMA周期長さ,ストップ・ローズ・パーセント,ストップ・ローズ・パーセント,ストップ・ローズ・パーセント,フィボナッチ逆転周期,取引数など,複数の調整可能なパラメータを提供し,ユーザーは自分のリスクの好みや市場条件に応じて最適化することができます.
トレンドトラッキングと反転キャプチャEMAの交差とフィボナッチレベルを組み合わせると,この戦略は市場トレンドの変化を効果的に捉え,重要なサポートレジスタンスにストップとストップを設定します.
市場条件に適応する: 自動フィボナッチ計算は,戦略が固定パーセントを使用するのではなく,異なる市場状況に応じて自動的にストップ・ストップ・ポジションを調整することを可能にします.これは,異なる波動率の市場で相対的に安定したパフォーマンスを保つことができます.
塗り替え防止装置言語はbarstate.isconfirmedそしてlookahead=barmerge.lookahead_offパラメータは,すべての信号が閉盘のK線に基づいて,反射と实盤の間の差を回避することを保証する.
多時間枠分析: 戦略は,ユーザが異なる信号時間枠を選択し,時間枠間の分析を実現し,信号品質を向上させる.
視覚的な取引信号: 戦略は,取引の論理とリスク管理を直観的に理解できるように,グラフに明瞭に購入・販売のポイント,ストップ・ロズ,ストップ・ストップをマークします.
警告機能の統合: 取引シグナルアラート機能が内蔵され,市場機会をリアルタイムで監視できます.
偽の突破の危険性: EMA交差信号は,振動する市場において頻繁に偽の突破が生み出し,連続的な損失を引き起こす可能性がある.偽の信号を減らすために,追加のフィルタリング条件 (取引量確認,波動率フィルター,またはトレンド強度指数など) を加えることができます.
ストップダメージ距離が大きすぎる: 特定の市場条件では,フィボナッチレベルに基づくストップポジションは入場点から遠く離れ,単一の取引のリスクを増加させる可能性があります.最大ストップ距離の制限を設定するか,ATR (平均リアル波幅) を使用してストップ距離を動的に調整することを考慮することができます.
パラメータ最適化トラップ: 過度な最適化パラメータは,戦略が歴史的なデータで良好なパフォーマンスを発揮し,将来の市場では失敗する可能性があります. 戦略の安定性を検証するために,前向きなテストとルビック性テストを使用することをお勧めします.
資金の管理不足戦略: 決まった手数料の取引をデフォルトで使用し,アカウントサイズとリスクに応じてポジションサイズを調整しません. 固定リスクパーセントやケリー指針のような資金管理モジュールを統合してポジションサイズを動的に調整することをお勧めします.
市場条件の過濾がない: 戦略は,すべての市場条件でシグナルを生成し,トレンド市場と震動市場を区別しない. 市場環境認識機能を追加し,異なる市場状態で異なる取引パラメータを使用するか,取引を一時停止することができます.
複数の時間枠の確認: より長い周期のトレンド確認メカニズムを導入し,主トレンドの方向が一致するときにのみ取引を実行し,逆転取引の回数を減らすことができます.例えば,日線または周線のトレンド方向をチェックし,日線が上昇するときにのみ複数回実行することができます.
整合的な変動率調整:ATR指標を導入し,ストップとストップ距離を動的に調整し,さまざまな波動率の環境に適応できるようにする.高い波動率でストップ距離を増加させ,低い波動率でストップ距離を減少させる.
添付量確認: 信号が生成される時に取引量が増幅されているかチェックし,取引量が支持されている場合にのみ取引を実行し,信号の質を向上させる.
資金管理の最適化: 口座規模とリスクに基づくダイナミックなポジション管理を実現し,各取引のリスクを総資金の固定比率で制御することを保証する.
市場環境フィルター開発: 市場状態認識モジュールを設計し,トレンド市場と振動市場を区別し,異なる市場状態で異なる取引戦略またはパラメータを使用する.
Fibonacci 参数を最適化する:現在の戦略は,0.382と0.618の固定フィポナッチレベルを使用し,他のレベル (例えば0.5または0.786) の効果をテストすることができます,または市場特性の動向に応じて最適なフィポナッチレベルを選択できます.
取引時間フィルターを追加します.: 重要な経済データ発表や市場の流動性不足の時期に取引を一時停止し,過度の滑落点や予測不可能な市場の行動を避ける.
これは,技術分析のクラシックツールを組み合わせたスマートな取引戦略で,EMAを介してトレンドの変化をクロス認識し,フィボナッチレベルを利用して重要なサポートレジスタンス値を設定し,自動ストップダウンの管理を実現しています. この戦略の優点は,自己適応性と完全なリスク管理システムにあります. しかし,偽突破やパラメータの過剰最適化のリスクには注意が必要です.
複数の時間枠の確認,変動率調整,取引量フィルタリング,市場環境の識別などの機能を追加することで,この戦略は,その安定性と収益性をさらに向上させることができます. 体系化された取引方法を模索しているトレーダーにとって,これは,個人の取引スタイルと市場の特徴に応じてさらにカスタマイズして最適化できる堅固な基礎の枠組みを提供します.
/*backtest
start: 2024-08-13 00:00:00
end: 2025-08-11 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":5000000}]
*/
//@version=5
strategy("ETH Futures Auto Buyer with Auto Fib by Govind", overlay=true, max_labels_count=500)
// ===== Inputs =====
timeframe_input = input.timeframe("5", "Signal Timeframe")
fastLen = input.int(9, "Fast EMA Length")
slowLen = input.int(21, "Slow EMA Length")
slPercent = input.float(0.5, "Stop Loss %")
tpPercent = input.float(1.0, "Take Profit %")
trailPercent = input.float(0.3, "Trailing SL %")
lookbackBars = input.int(100, "Fib Swing Lookback")
qty = input.int(1, "Order Quantity", minval=1)
// ===== EMA Logic with no repainting =====
price = request.security(syminfo.tickerid, timeframe_input, close, lookahead=barmerge.lookahead_off)
emaFast = request.security(syminfo.tickerid, timeframe_input, ta.ema(close, fastLen), lookahead=barmerge.lookahead_off)
emaSlow = request.security(syminfo.tickerid, timeframe_input, ta.ema(close, slowLen), lookahead=barmerge.lookahead_off)
longSignal = ta.crossover(emaFast, emaSlow)
shortSignal = ta.crossunder(emaFast, emaSlow)
// Confirm signals only on closed bar (no repaint)
longSignalConfirmed = longSignal and barstate.isconfirmed
shortSignalConfirmed = shortSignal and barstate.isconfirmed
// ===== Auto Fibonacci Levels =====
swingHigh = ta.highest(high, lookbackBars)
swingLow = ta.lowest(low, lookbackBars)
fib618 = swingHigh - (swingHigh - swingLow) * 0.618
fib382 = swingHigh - (swingHigh - swingLow) * 0.382
// ===== SL & TP Prices =====
longSL = fib618
shortSL = fib382
longTP = swingHigh
shortTP = swingLow
// ===== Strategy Entries =====
if (longSignalConfirmed)
strategy.entry("Long", strategy.long, qty)
strategy.exit("Long Exit", from_entry="Long", stop=longSL, limit=longTP)
if (shortSignalConfirmed)
strategy.entry("Short", strategy.short, qty)
strategy.exit("Short Exit", from_entry="Short", stop=shortSL, limit=shortTP)
// ===== Plotting =====
plot(longSL, color=color.lime, title="Long SL")
plot(shortSL, color=color.fuchsia, title="Short SL")
plot(longTP, color=color.blue, title="Long TP")
plot(shortTP, color=color.orange, title="Short TP")
plotshape(longSignalConfirmed, title="Long Signal", style=shape.labelup, text="BUY", location=location.belowbar, color=color.green, size=size.small)
plotshape(shortSignalConfirmed, title="Short Signal", style=shape.labeldown, text="SELL", location=location.abovebar, color=color.red, size=size.small)
// ===== Alerts =====
alertcondition(longSignalConfirmed, title="Long Signal", message="ETH Futures LONG Entry")
alertcondition(shortSignalConfirmed, title="Short Signal", message="ETH Futures SHORT Entry")