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

金融資産 MFI ベースオーバーセールゾーン エグジットとシグナル平均化システム

作者: リン・ハーンチャオチャン開催日:2024年12月5日 16時40分47秒
タグ:MFIRSISLTPマルチ

img

概要

この戦略は,マネーフローインデックス (MFI) をベースとした自動化された取引システムで,主に過剰販売ゾーンにおける資産の行動を特定することによって潜在的な逆転機会を把握するように設計されています.コアメカニズムは,MFI指標が過剰販売ゾーン (デフォルトは20以下) からリバウンドしたとき,取引リスクとリターンを管理するために制限オーダー,ストップ・ロス,テイク・プロフィートメカニズムを使用して買い信号を生成します.この戦略は,特に市場の過剰販売リバウンドの間にポジショニングに適しています.

戦略の原則

戦略は次の主要なステップに基づいて機能します

  1. MFIの値の変化を継続的に監視し,MFIが既定の値を下回ったとき (デフォルト20) 過剰販売ゾーンに入ると表示する.
  2. MFIがリバウンドし,過剰販売ゾーンから上限を突破すると,システムは現在の価格を下回る購入制限オーダーを設定し,特定の価格はユーザーによって定義されたパーセントで決定されます.
  3. システムでは,制限オーダーの有効期間を監視し,事前に設定された観察期間内に満たされない場合は自動的にキャンセルします (デフォルトは5個のキャンドルです).
  4. 購入オーダーが完了すると,システムでは即座にストップ・ロストと利益目標値を設定し,エントリー価格の割合に基づいて計算します.
  5. ストップ・ロースまたは利益目標が達成されたときに取引は自動的に終了します.

戦略 の 利点

  1. 総合的なリスク管理: 既定のストップ損失と利益目標によって明確なリスク・リターン比を提供します.
  2. 柔軟なエントリーメカニズム:エントリー制限オーダーの利用により,より良い実行価格を達成し,全体的な利益の可能性を高めることができます.
  3. 高自動化レベル 信号生成から位置管理まで完全に自動化され 感情的干渉を減らす
  4. 強力なパラメータ調整可能性: MFI 期間,過剰販売の限界値,オーダーの有効性などの主要なパラメータは,異なる市場特性に最適化できます.
  5. 明確なシステムロジック: 戦略ルールは明示的で,バックテストとライブモニタリングを容易にする.

戦略リスク

  1. 偽信号リスク:金融機関が不安定な市場において偽の過売り信号を生む可能性があります.他の技術指標とのクロス検証を検討してください.
  2. スリップリスク: 市場が急激に動いているため,リーミットオーダーは予想価格で実行されない可能性があります.リーミットオーダーの価格を拡大するか有効期限を延長することを検討してください.
  3. トレンドリスク: 強いダウントレンドに早期に入ると,大きな損失に直面する可能性があります. トレンドフィルターを追加することを検討してください.
  4. パラメータ敏感性: 戦略のパフォーマンスはパラメータ設定に敏感であり,異なる市場環境のために最適化する必要があります.

戦略の最適化方向

  1. 市場トレンドフィルタリングを追加:移動平均値または他のトレンド指標を組み込み,上向きトレンドでの取引のみを可能にします.
  2. シグナル確認を最適化:RSI,MACD,または他の技術指標と組み合わせてシグナル信頼性を向上させる.
  3. ダイナミックストップ・ロスのメカニズム:より柔軟なリスク管理のために,市場の変動に基づいてストップ・ロスの距離を調整する.
  4. 段階的なポジション構築と閉鎖: ポジション全体のコストを削減するために複数の価格レベル制限命令を実施する.
  5. タイムフィルタリングを導入: 選択的に異なる時間帯の市場特性に基づいて取引を可能にします.

概要

これは,よく設計され,論理的に明確な自動取引戦略である.包括的なオーダー管理メカニズムと組み合わせたMFI指標の柔軟な使用を通じて,過剰販売状態の後の市場のリバウンドを効果的に把握する.戦略の高度な構成性は,異なる市場環境のための最適化を容易にする.特定のリスクが存在するものの,戦略の安定性と収益性をさらに高めるために提案された最適化方向を通じて対処することができます.中長期投資に適しています.特に,振動する市場で過剰販売のリバウンド機会を探している投資家に適しています.


/*backtest
start: 2024-11-04 00:00:00
end: 2024-12-04 00:00:00
period: 3h
basePeriod: 3h
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/
// © traderhub

//@version=5
strategy("MFI Strategy with Oversold Zone Exit and Averaging", overlay=true)

// Strategy parameters
mfiPeriod = input.int(title="MFI Period", defval=14) // Period for calculating MFI
mfiOS = input.float(title="MFI Oversold Level", defval=20.0) // Oversold level for MFI
longEntryPercentage = input.float(title="Long Entry Percentage (%)", minval=0.0, step=0.1, defval=0.1) // Percentage for the buy limit order
stopLossPercentage = input.float(title="Stop Loss Percentage (%)", minval=0.0, step=0.1, defval=1.0) // Percentage for the stop-loss
exitGainPercentage = input.float(title="Exit Gain Percentage (%)", minval=0.0, step=0.1, defval=1.0) // Percentage gain for the take-profit
cancelAfterBars = input.int(title="Cancel Order After # Bars", minval=1, defval=5) // Cancel order after a certain number of bars

// Calculate MFI
mfi = ta.mfi(close, mfiPeriod)  // MFI with specified period

// Variables for tracking state
var bool inOversoldZone = false  // Flag for being in the oversold zone
var float longEntryPrice = na  // Price for long entry
var int barsSinceEntryOrder = na  // Counter for bars after placing an order

// Define being in the oversold zone
if (mfi < mfiOS)
    inOversoldZone := true  // Entered oversold zone

// Condition for exiting the oversold zone and placing a limit order
if (inOversoldZone and mfi > mfiOS)
    inOversoldZone := false  // Leaving the oversold zone
    longEntryPrice := close * (1 - longEntryPercentage / 100)  // Calculate limit price for entry
    strategy.entry("Long Entry", strategy.long, limit=longEntryPrice)  // Place a limit order
    barsSinceEntryOrder := 0  // Reset counter for bars after placing the order

// Increase the bar counter if the order has not yet been filled
if (not na(barsSinceEntryOrder))
    barsSinceEntryOrder += 1

// Cancel order if it hasn’t been filled within the specified number of bars
if (not na(barsSinceEntryOrder) and barsSinceEntryOrder >= cancelAfterBars and strategy.position_size == 0)
    strategy.cancel("Long Entry")
    barsSinceEntryOrder := na  // Reset bar counter

// Set stop-loss and take-profit for filled positions
if (strategy.position_size > 0)
    stopLossPrice = longEntryPrice * (1 - stopLossPercentage / 100)  // Calculate stop-loss level
    takeProfitPrice = longEntryPrice * (1 + exitGainPercentage / 100)  // Calculate take-profit level
    strategy.exit("Exit Long", from_entry="Long Entry", limit=takeProfitPrice, stop=stopLossPrice)

// Visualize oversold and overbought zones
bgcolor(mfi < mfiOS ? color.new(color.green, 90) : na)  // Background in oversold zone
plot(mfi, title="MFI", color=color.blue)  // MFI plot
hline(mfiOS, "Oversold Level", color=color.red)  // Oversold level line













関連性

もっと