マルチレンジMA100価格リトレースメントスマートグリッド取引戦略

SMA MA ATR
作成日: 2025-02-19 11:12:51 最終変更日: 2025-02-19 11:12:51
コピー: 0 クリック数: 693
1
フォロー
1617
フォロワー

マルチレンジMA100価格リトレースメントスマートグリッド取引戦略

概要

この戦略は,MA100移動平均に基づく多区間格子取引システムである.これは,異なる価格引き戻し区間を設定することによって,順次ポジション構築を実現し,市場が大きな下落を起こすときに徐々に買い,価格が3%反発したときに利益を得て結束する.この戦略は,スマート格子構想を採用し,各区間の最大ポジション数と取引間隔を制限することによってリスクを制御する.

戦略原則

この戦略の核心的な論理は以下の通りです.

  1. 戦略として100サイクルSMAを使用した基準価格
  2. 購入区間を3つ設定します.
    • 区間2:価格の引き下げ8%,最大2取引が許される
    • 区間3:価格の引き下げ15%,最大3取引可能
    • 区間4:価格の引き下げ20% 最大4取引
  3. 均等な平仓条件:価格がMA100の3%を超えると
  4. 各区間には50Kライン周期の最小の取引間隔が設定され,過度に頻繁な取引を避ける

戦略的優位性

  1. 多区分分層の倉庫建設により,倉庫建設コストが削減される
  2. 格子取引の考え方を採用し,急激な変動の中でチャンスを掴む
  3. 最大保有限額と取引間隔を設定し,リスクを効果的に制御する
  4. 戦略の論理はシンプルで理解し,維持しやすい.
  5. 高波動性市場環境に適している
  6. 自動化され,人間の介入を必要としない

戦略リスク

  1. 継続的な下落の傾向から大きな後退が起こる可能性
  2. 複数の区間の倉庫の建設を支えるために,大規模な資金が必要
  3. 比較的簡単な平仓条件で,より大きな上昇空間を逃す可能性
  4. 市場全体のトレンドを考慮せずに,トレンド的な状況で不良なパフォーマンスを示す可能性
  5. 固定パーセントのパラメータは,すべての市場環境には適さない可能性があります.

戦略最適化の方向性

  1. トレンド判断指標を導入し,強気なトレンドの際の戦略パラメータの調整
  2. 市場波動に応じて収益目標を動的に調整できる平衡メカニズムを最適化
  3. リスク管理モジュールを追加し,総ポジション制限とストップ・ロスの条件を設定する
  4. ATRなどの波動率指標を導入し,ポジションの区間を動的に調整する
  5. 取引間隔の仕組みを最適化し,市場状況に合わせて動的に調整できる

要約する

この戦略は,多区間格子取引の方法によって,市場が大幅な逆転時に分量して倉庫を構築し,リスクに対する優れた抵抗能力を有する.いくつかの潜在的リスクがあるが,合理的なパラメータ設定とリスク管理措置によって,安定した取引効果を達成することができる.さらなる最適化スペースは,主により多くの市場適応性指標を追加し,リスク管理機構を完善することにある.

ストラテジーソースコード
/*backtest
start: 2024-02-20 00:00:00
end: 2025-02-17 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// BTC SOL ETH BNB XMR RNDR AKT OM ONDO IO

strategy("MA100 crash buy 3 Zone // 15 min", overlay=true, calc_on_every_tick=true)

// Définition des MA
maH1 = ta.sma(close, 100)
maB2 = ta.sma(close, 100)
maB3 = ta.sma(close, 100)
maB4 = ta.sma(close, 100)

// Définition du niveau d'achat et de vente
sellLevel1 = maH1 * 1.03 //+3%
buyLevel2 = maB2 * 0.92 //-8%
buyLevel3 = maB2 * 0.85 //-15%
buyLevel4 = maB2 * 0.80 //-20%



// Nombre max de trades simultanés
maxTrades2 = 2
maxTrades3 = 3
maxTrades4 = 4

// Délais entre deux ordres (en bougies)
tradeDelay = 50
var float lastTradeTime = na
var float lastSellTime = na
tradeDelay2 = 50
var float lastTradeTime2 = na
tradeDelay3 = 50
var float lastTradeTime3 = na
tradeDelay4 = 50
var float lastTradeTime4 = na

// Condition d'achat et de vente
buyCondition2 = low <= buyLevel2 and strategy.opentrades < maxTrades2 and (na(lastTradeTime2) or bar_index - lastTradeTime2 > tradeDelay2)
buyCondition3 = low <= buyLevel3 and strategy.opentrades < maxTrades3 and (na(lastTradeTime3) or bar_index - lastTradeTime3 > tradeDelay3)
buyCondition4 = low <= buyLevel4 and strategy.opentrades < maxTrades4 and (na(lastTradeTime4) or bar_index - lastTradeTime4 > tradeDelay4)
sellCondition = strategy.position_size > 0 and high >= sellLevel1 and (na(lastSellTime) or bar_index - lastSellTime > tradeDelay)

if buyCondition2
    strategy.entry("Buy", strategy.long)
    lastTradeTime2 := bar_index  // Enregistre le moment du trade

if buyCondition3
    strategy.entry("Buy", strategy.long)
    lastTradeTime3 := bar_index  // Enregistre le moment du trade

if buyCondition4
    strategy.entry("Buy", strategy.long)
    lastTradeTime4 := bar_index  // Enregistre le moment du trade

if sellCondition
    strategy.close("Buy")  // Ferme 50% de toutes les positions ouvertes // , qty_percent=30
    lastSellTime := bar_index  // Enregistre le moment du trade


// Affichage des niveaux
plot(sellLevel1, color=#fa930d, title="Sell Level")
plot(buyLevel2, color=#15bbfd, title="Buy Level")
plot(buyLevel3, color=#1229aa, title="Buy Level")
plot(buyLevel4, color=#9812aa, title="Buy Level")