二重移動平均クロスオーバー戦略に基づく


作成日: 2024-02-05 10:34:57 最終変更日: 2024-02-05 10:34:57
コピー: 0 クリック数: 602
1
フォロー
1617
フォロワー

二重移動平均クロスオーバー戦略に基づく

概要

双均線交差策略は,比較的単純な量的な取引策策である.それは,最近7つのK線の平均閉店価格と20のK線の平均閉店価格を計算することによって,短期平均線が下から長期平均線を横切るときに多めに行い,短期平均線が上から下から長期平均線を横切るときに空いて行い,このような操作を行うことで,市場の中期トレンドの転換点を捉えることができる.

戦略原則

この戦略の核心的な論理は,最近7つのK線 (現在のK線を含まない) の平均閉店価格を短期平均として計算し,20つのK線 (最近の7つのK線を含まない) の平均閉店価格を長期平均として計算する.短期平均線が下から長期平均線を横切るときは,市場が逆転して上昇することを示す.短期平均線が上から下から長期平均線を横切るときは,市場が逆転して低下することを示す.

多数シグナルを触発した後に,全口座資金の量に応じて多額のポジションを開設する.空白シグナルを触発した後に,多数のポジションを平らにして多数のポジションを,その量に応じて空白のポジションを開設する.開設した後のポジションは20-25Kラインを保持する.この間,損失が発生した場合,半分のポジションを停止し,十分な利益が発生した場合,半分のポジションを停止する.

戦略的優位分析

これは非常に単純な双均線交差策で,その優位性は主に次の通りです.

  1. シンプルで,理解し,実行しやすい.
  2. 市場の中期トレンドの転換点を判定するために,異なる周期平均線の交差を計算します.これは,多くの量化戦略で広く採用されている技術的な指標です.
  3. 市場におけるランダムなノイズを効果的にフィルターし,中期トレンドを捉えることができます.
  4. この戦略は,特に中長期線での取引に適しており,各ポジションに20-25K線を保持することで,より良い利益率を得ることができます.
  5. 戦略にはリスク管理と利益の確保のための ストップ・ロス・アンド・ストップ・メカニズムが組み込まれています.

リスク分析

これは,よりシンプルなトレンド追跡戦略ですが,いくつかの潜在的なリスクがあります.

  1. 市場が波動区間に入ると,短期平均線と長期平均線が複数回交差し,偽信号と過剰取引が起こる可能性があります.
  2. 持仓期間の価格短線の大幅な波動が,ストップダスの引き起こす可能性;
  3. 市場における真のトレンドの逆転点を効果的に判断できず,取引の信号が遅れている可能性があります.

上記のリスクに対して,以下の方法で最適化できます.

  1. フィルタリング条件を追加し,均線交差時に価格が重要なサポートまたは抵抗点を突破したかどうかを判断し,偽信号をフィルタリングする.
  2. ポジションの周期を調整し,損失をコントロールするために,平均ポジション保持時間を短縮する.
  3. 他の技術指標の判断,例えば量能指標,波動指標などを追加して,市場の本当の逆転点を決定する.

戦略最適化の方向性

これは,よりシンプルな双均線交差戦略であり,主に以下のいくつかの側面から深層に最適化することができます:

  1. 平均線パラメータを最適化し,異なる短期および長期平均線組み合わせをテストし,最適なパラメータを探します.

  2. エネルギー指標,波動率指標などの他のフィルタリング指標を追加し,波動的な市場において誤った信号を回避する.

  3. ストップストップ戦略を最適化し,異なるストップストップ比率をテストし,最適なパラメータを決定する.

  4. 異なる市場サイクルをテストし,ポジションの長さを最適化し,どの周期で戦略が最も効果的かを判断する.

  5. 戦略のパラメータを反転テストで継続的に最適化し,戦略をより安定させるための機械学習アルゴリズムを追加します.

要約する

この戦略は,異なる周期の均線交差を計算して,中間期トレンド転換点を判断する比較的単純な双均線交差戦略である.この戦略は,実用性が強く,考え方が簡単で操作が容易である.しかし,この戦略には一定の限界がある.主な問題は,市場の真の転換点を効果的に判断できないことである.将来,フィルタリング指標の追加,最適化パラメータ,機械学習の追加などの観点から,この戦略の継続的な最適化が求められ,より多くのタイプの市場で安定したアルファを得ることができる.

ストラテジーソースコード
/*backtest
start: 2024-01-05 00:00:00
end: 2024-02-04 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © nrathi2211

//@version=5
strategy("Closing Prices", overlay=true)

//variables
closingB7 = ta.highest(close, 7)[7]
closingB14 = ta.highest(close, 7)[20]
highB14 = ta.highest(low, 50)[7]
capital = 50000

//functions
qty_find(float price) => capital / int(price)

profit_take() =>
    profit = strategy.opentrades.profit(strategy.opentrades - 1)
    profit*.95 

if(closingB7 < closingB14)
    if(ta.crossover(close, closingB7))
        strategy.entry("long_buy", strategy.long, qty_find(close))

    current_profit = strategy.opentrades.profit(strategy.opentrades - 1)
    if(current_profit < 0)
        strategy.close("Exit long_buy SL", "long_buy", qty_percent = 50)
    
    else if(current_profit < profit_take())
        strategy.close("Exit long_buy TP", "long_buy", qty_percent = 50)
    
    if(ta.crossunder(close, closingB7))
        strategy.exit("long_sell", from_entry = "long_buy", stop = closingB7)

plot(closingB7, "cl", color.green, 2)
//plot(closingB14, "cl", color.red, 2)
plot(highB14, "cl", color.purple, 2)