資源の読み込みに... 荷物...

複数のレベルフィボナッチ EMA トレンド フォローする戦略

作者: リン・ハーンチャオチャン開催日:2024年11月29日 (火) 15:09:56
タグ:FIBエイママルチSMA

img

概要

この戦略は,フィボナッチリトレースメント,複数の指数関数移動平均値,およびボリューム分析を組み合わせたトレンドフォローする取引システムである.このシステムは,異なるフィボナッチリトレースメントレベル (0,0.382,0.618,1) の価格ポジションを分析し,多期EMA (20/50/100/200) とトレンドを確認し,ボリュームの値でフィルタリングすることによって潜在的な取引機会を特定する.このシステムには,固定パーセントストップ・ロストとテイク・プロフィート設定を含む包括的なリスク管理メカニズムが含まれています.

戦略の原則

基本的な論理は 多層次技術分析に基づいています

  1. サポートとレジスタンスのフレームワークを確立し,フィボナッチリトレースメントレベルを計算するために30期回顧窓を使用します.
  2. 20/50/100/200 期間の指数関数移動平均を用いて,多レベルトレンド確認システムを構築する.
  3. 価格が0.382フィボナッチレベルに近づいたとき,値が移動平均値以上で,値が値を下回ると,ロングシグナルが発信されます.
  4. 価格が0.618フィボナッチレベルに近づいたとき,値が移動平均値を下回り,値が限界値を超えるとショートシグナルを誘発します.
  5. 利回りとストップロスのメカニズムを6%と3%で実施する

戦略 の 利点

  1. 多次元分析: 価格パターン,トレンド,およびボリュームを組み合わせて,信号の信頼性を向上させる
  2. リスク管理を全面的に行う: 明確なストップ・ロストとテイク・プロフィートの条件により,取引ごとにリスクを効果的に制御する
  3. 徹底的なトレンド確認: 多重移動平均系はトレンドの強さと方向性を正確に判断します
  4. 厳格なシグナルフィルタリング:価格,移動平均値,およびボリューム条件の同時満足を必要とする
  5. 高い可視化: 分析と最適化のために入口と出口点をマークする明確なラベルシステム

戦略リスク

  1. 横向市場リスク: 変動市場では頻繁に誤った信号を生む可能性があります.オシレーターフィルターを追加することを検討してください.
  2. スリップリスク: 容量の条件は実行のスリップにつながる可能性があるため,容量の値の調整が必要です.
  3. 資金管理リスク: 固定パーセントストップは柔軟性がない可能性があります. 変動に基づいて動的調整を検討してください.
  4. トレンド依存性: 戦略は明確なトレンドでうまく機能するが,トレンド移行中に連続した損失に直面する可能性がある.
  5. パラメータ敏感性:複数のパラメータの組み合わせが過剰なフィットメントのリスクを増加させ,時間枠間のバックテストを必要とする

オプティマイゼーションの方向性

  1. ダイナミックストップ・ロース: ダイナミックストップ・ロース調整と市場変動への適応を改善するためにATR指標を実装する
  2. トレンド強度定量化: ADX または類似の指標を追加して,トレンド強度に基づいてポジションサイズ調整
  3. 拡張ボリューム分析:ボリューム移動平均値と異常ボリューム分析を含む
  4. 入場タイミングの最適化:トレンド方向に過買い/過売りの機会のためにRSIまたは類似のオシレーターを組み込む
  5. ポジション管理: 傾向強さと市場変動に基づいて動的ポジションサイズを導入する

概要

これは,クラシックな技術分析ツールを使用して包括的な分析フレームワークを構築する,よく設計されたマルチレベルトレンドフォロー戦略である.その強みは厳格な信号確認と完全なリスク管理にあります.一方で,さまざまな市場のパフォーマンスに注意を払う必要があります.特にダイナミックなリスク管理とトレンド強さの定量化における提案された最適化により,戦略の安定性と収益性がさらに向上することができます.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ALD Fib Ema SAKALAM", overlay=true)

// Inputs
lookback = input.int(30, title="Lookback Period for Fibonacci", minval=10)
volumeThreshold = input.float(500000, title="24h Volume Threshold", step=50000)
stopLossPct = input.float(3.0, title="Stop Loss %", minval=0.5)
takeProfitPct = input.float(6.0, title="Take Profit %", minval=1.0)
maLength = input.int(50, title="Trend Filter MA Length", minval=1)

// Moving Average (Trend Filter)
ma = ta.sma(close, maLength)

// High and Low for Fibonacci Levels
var float swingHigh = na
var float swingLow = na

if bar_index > lookback
    swingHigh := ta.highest(high, lookback)
    swingLow := ta.lowest(low, lookback)

// Fibonacci Levels Calculation
fib0 = swingLow
fib1 = swingHigh
fib382 = swingHigh - 0.382 * (swingHigh - swingLow)
fib618 = swingHigh - 0.618 * (swingHigh - swingLow)

// 24-hour Volume Calculation
volume24h = ta.sma(volume, 24)

// Plot Fibonacci Levels
plot(fib0, title="Fib 0", color=color.new(color.red, 80))
plot(fib382, title="Fib 0.382", color=color.new(color.green, 50))
plot(fib618, title="Fib 0.618", color=color.new(color.blue, 50))
plot(fib1, title="Fib 1", color=color.new(color.red, 80))
plot(ma, title="Trend Filter MA", color=color.orange)

// Entry Condition: Buy Signal
longCondition = (close <= fib382) and (volume24h > volumeThreshold) and (close > ma)
if (longCondition)
    strategy.entry("Buy", strategy.long)
    label.new(bar_index, low, "BUY", style=label.style_label_up, color=color.green, textcolor=color.white)

// Exit Conditions
takeProfitPrice = strategy.position_avg_price * (1 + takeProfitPct / 100)
stopLossPrice = strategy.position_avg_price * (1 - stopLossPct / 100)

// Place Exit Orders
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", limit=takeProfitPrice, stop=stopLossPrice)

// Add Labels for Exits
if (strategy.position_size > 0)
    if (high >= takeProfitPrice)
        label.new(bar_index, high, "EXIT (Take Profit)", style=label.style_label_down, color=color.blue, textcolor=color.white)

    if (low <= stopLossPrice)
        label.new(bar_index, low, "EXIT (Stop Loss)", style=label.style_label_down, color=color.red, textcolor=color.white)

// Short Selling Conditions
shortCondition = (close >= fib618) and (volume24h > volumeThreshold) and (close < ma)
if (shortCondition)
    strategy.entry("Sell", strategy.short)
    label.new(bar_index, high, "SELL", style=label.style_label_down, color=color.red, textcolor=color.white)

// Short Exit Conditions
if (strategy.position_size < 0)
    strategy.exit("Short Take Profit/Stop Loss", from_entry="Sell", limit=strategy.position_avg_price * (1 - takeProfitPct / 100), stop=strategy.position_avg_price * (1 + stopLossPct / 100))

// Add EMA 20/50/100/200
shortest = ta.ema(close, 20)
short = ta.ema(close, 50)
longer = ta.ema(close, 100)
longest = ta.ema(close, 200)

plot(shortest, color=color.orange, title="EMA 20")
plot(short, color=color.red, title="EMA 50")
plot(longer, color=color.black, title="EMA 100")
plot(longest, color=color.green, title="EMA 200")



関連性

もっと