3つの連続したプラス/マイナスラインと二重移動平均に基づく定量取引戦略


作成日: 2024-03-28 16:22:18 最終変更日: 2024-03-28 16:22:18
コピー: 8 クリック数: 413
1
フォロー
1226
フォロワー

3つの連続したプラス/マイナスラインと二重移動平均に基づく定量取引戦略

戦略概要

この戦略は,三連陽/陰形と二均線システムに基づいて,三連K線の実体サイズ変化と均線システムの交差信号を判断し,第三のK線が閉じる時に買入または売却の信号を生成し,潜在的なトレンドのターンポイントと価格逆転の機会を捉えます.

戦略原則

  1. 連続した3つのK線の実体サイズを計算して,増加傾向を示しているかどうかを判断する.
  2. 連続した3つのK線実体が増加し,第3のK線が閉じるなら,買入シグナルを生成する.連続した3つのK線実体が増加し,第3のK線が閉じるなら,売り出せシグナルを生成する.
  3. 50日目と200日目の移動平均を導入し,中短期および長期のトレンドを表す.
  4. グラフには,買い/売却のシグナルと2つの均線が表示され,戦略の論理とトレンドの状態を直視的に示します.
  5. 買い売りシグナルに応じて,相応の開場操作を実行する.

この戦略の核心は,三連陽/陰の形状によるトレンドキャプチャのスタートポイントであり,同時に,双均線システムを使用してトレンドの強さと方向を検証し,両次元を組み合わせ,トレンドの初期に効果的に入場し,逆転取引のリスクを減らすことを目指しています.

戦略的優位性

  1. 三連陽/陰形は強い看板/下落の信号であり,多/空力の増大を象徴し,トレンドの継続に動力を供給する.
  2. 双均線システムは,トレンドの方向と強さを有効に検証することができ,短期均線上/下を横切って長期均線を横切ると,トレンドが強/弱転し始めることを意味する.
  3. この2つの次元は相互に証明し,共同でより信頼性の高い開場シグナルを形成し,戦略の勝率と損益率を向上させるのに役立ちます.
  4. 戦略の実行とトレンドの進化を観察するために,グラフは直感的に表示されています.

戦略リスク

  1. 市場騒音や波動は,頻繁に偽信号を誘導し,戦略の不安定なパフォーマンスを引き起こします.
  2. トレンドの突然の反転や加速は,戦略の入場タイミングが理想的でないことや,追加のリスクの開口を担うことにつながる可能性があります.
  3. 明確なストップ・ロズとポジション管理のルールがないため,戦略的撤回と最大損失は予想より大きくなる可能性があります.

最適化の方向

  1. 三連陽/陰形の定義に微調整を行い,連続K線の幅,長さ,色などの追加条件を考慮して信号の正確性を向上させる.
  2. 5日,10日,20日など,平均線周期のパラメータを導入し,多重平均線システムを構築し,傾向判断の次元を豊かにする.
  3. ポジション開設シグナルに基づいて,合理的なストップ・ストップ・レベルとポジション管理ルールを設定します.例えば,固定比率ストップ・ストップ・レベル,比率ストップ・ストップ・レベル,トラッキング・ストップ・レベルなど.
  4. 取引量指標の追加を検討する.例えば,価格の偏差,放量突破などの取引量指標は,トレンドの転換点をさらに検証し,ポジション開設信号の信頼性を向上させる.

戦略の概要

この戦略は,クラシックな三連陽/陰形と二均線システムを組み合わせて,トレンドの開始点を捕捉し,トレンドの初めの潜在的差値の利益を得るように努めています.この戦略の優点は,信号が明確で,論理がシンプルで,実行しやすく,最適化されることです.同時に,頻繁に取引,信号の不安定性,リスク管理の不足などの潜在的リスクと改善の余地があります.その後,信号フィルタリング,ポジション管理,ストップ・損失などの側面から始めることができ,この戦略の総合的なパフォーマンスを継続的に豊かにし,強化し,定量化取引慣行により多くの参照を提供します.

ストラテジーソースコード
/*backtest
start: 2023-03-22 00:00:00
end: 2024-03-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Consecutive Candles with MAs", shorttitle="CCMAs", overlay=true)

// Üç ardışık mumun büyüklüklerinin arttığını kontrol eden fonksiyon
isThreeConsecutiveCandlesIncreasing() =>
    firstCandleBody = abs(close[2] - open[2])
    secondCandleBody = abs(close[1] - open[1])
    thirdCandleBody = abs(close - open)
    firstCandleBody < secondCandleBody and secondCandleBody < thirdCandleBody

// Üçüncü mum kapandığında al veya sat koşulu
longCondition = isThreeConsecutiveCandlesIncreasing() and close > open
shortCondition = isThreeConsecutiveCandlesIncreasing() and close < open

// 50 ve 200 periyotluk hareketli ortalamalar
ma50 = sma(close, 50)
ma200 = sma(close, 200)

// Al veya sat sinyallerini grafiğe ekleme
plotshape(series=longCondition, title="Al Sinyali", location=location.belowbar, color=color.green, style=shape.triangleup, text="AL")
plotshape(series=shortCondition, title="Sat Sinyali", location=location.abovebar, color=color.red, style=shape.triangledown, text="SAT")

// Hareketli ortalamaların grafiğe eklenmesi
plot(ma50, title="50 Periyotluk Hareketli Ortalama", color=color.blue)
plot(ma200, title="200 Periyotluk Hareketli Ortalama", color=color.red)

// Al veya sat komutlarını çalıştırma
if (longCondition)
    strategy.entry("Al", strategy.long)
if (shortCondition)
    strategy.entry("Sat", strategy.short)