ダブル移動平均クロスオーバーロング&ショート戦略


作成日: 2023-11-06 10:27:00 最終変更日: 2023-11-06 10:27:00
コピー: 0 クリック数: 632
1
フォロー
1617
フォロワー

ダブル移動平均クロスオーバーロング&ショート戦略

概要

この策略は,9日平均線,20日平均線と200日平均線の交差を計算して多空方向を決定する.これは,二重均等線交差のクラシックな考え方を融合させ,同時に200日平均線の長期トレンドを判断する手段を追加する.これは,より安定した信頼性の高い多空策である.

戦略原則

この戦略は,主に9日平均線,20日平均線と200日平均線の関係を計算して,価格の多空傾向を判断する.

まず,9日平均線と20日平均線を計算する. 9日平均線上から20日平均線を通過すると,買入信号, 9日平均線下から20日平均線を通過すると,売出信号となる. これは双均線交差における最も基本的な判断ルールである.

次に,長期トレンドの指標として,200日平均線を計算する.20日平均線上から200日平均線を突破すると,長期の負の信号;20日平均線下から200日平均線を突破すると,長期の負の信号である.

最後に,9日平均線,20日平均線と200日平均線の関係を統合して,特定の買入と売却のタイミングを判断する.実際の取引信号は,9日平均線と20日平均線が同上または同下を通過するときにのみ発生する.

複数の均線の交差を計算することで,この戦略は均線のトレンド追跡機能を充分に活用し,短期および長期の価格動きを効果的に判断し,購入や販売の操作を導くことができます.

優位分析

    1. 双均線交差を使用し,中短期の価格動向を効果的に把握し,利益を得ることができます.
    1. 200日平均線判断を増やして,長期の下落の過程で余分な取引を避け,損失を減らす
    1. 複数の均線関係を統合し,信号を判断し,無効取引を増やすのを避ける
    1. 均線交差信号は,手動取引の実践に適した,明確に判断しやすい
    1. コードがシンプルで明快で,容易に理解できる実装,量化取引の入門戦略として
    1. 平均線パラメータの調整や他の指標の追加など,柔軟に最適化できる

リスク分析

  • 1.平均線策はパラメータ調整に敏感で,周期的な平均線効果は大きく異なる

    1. 双均線交差は,中短期のトレンドのみを判断し,より長期の大きなトレンドを見逃す可能性があります.
    1. 交差信号が遅滞し,損失を完全に回避できない単元
    1. 取引頻度が手数料や滑り点を増加させ,実際の利益の余地を下げる
    1. コードが単純すぎて,リッドディスクの効果が悪いので,最適化が必要

最適化の方向

    1. 異なる均等線参数から最適なパラメータを試す
    1. ストップ・ローズ戦略を導入し,単一損失を厳しく管理する.
    1. 取引量管理を考慮し,異なる市場状況に応じてポジションを調整する
    1. モメンタム指数などと組み合わせた最適化入学確認
    1. 出場を最適化し,合理的な止まり価格を設定する
    1. より多くの指標を導入し,トレンドと逆転の確率を判断する
    1. 機械学習モデルに組み込み,より複雑な取引ロジックを探る

要約する

この戦略は,双均線交差と長期均線判断のクラシックな考え方を統合し,均線のトレンド特性を利用して,買賣決定を導く. 動作はシンプルで,理解しやすい. 量化取引の入門戦略として実装できます. しかし,そのパラメータは敏感で,遅れがある問題など,さらなるテストと最適化が待っています. 全体的に,この戦略は,その基礎として拡張と改善を施し,より強力な取引システムを開発できる基礎の枠組みを提供します. 投資家は,自分のニーズに応じて,適切な要素を選択し,戦略を継続的に最適化して,量化取引で長期にわたって安定した超利益を得ることができます.

ストラテジーソースコード
/*backtest
start: 2023-10-29 00:00:00
end: 2023-11-05 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=1
strategy("Dieyson Swingtrade EMA 20+200 and bar & line color", overlay=true)


//bar color rules
Dgbar = close>close[1] and ema(close,20)>ema(close[1],20)
Drbar = close<close[1] and ema(close,20)<ema(close[1],20)

//Barcolors
barcolor(Dgbar ? green : na)
barcolor(Drbar ? red : na)

//MM09 Colorful

MMgreen9 = ema(close,9)>ema(close[1],9) and ema(close,20)>ema(close[1],20)
MMred9 = ema(close,9)<ema(close[1],9) and ema(close,9)<ema(close[1],9)
col8 = (MMgreen9 ? color(green,0) : na)
col28 = (MMred9 ? color(red,0) : na)
col38 = (not MMgreen9 and not MMred9 ? color(black,0) : na)

//plot(ema(close,9), color=col8, style=line, linewidth=1)
//plot(ema(close,9), color=col28, style=line, linewidth=1)
//plot(ema(close,9), color=col38, style=line, linewidth=1)

//MM20 Colorful

MMgreen = ema(close,20)>ema(close[1],20)
MMred = ema(close,20)<ema(close[1],20)
col = (MMgreen ? color(green,0) : na)
col2 = (MMred ? color(red,0) : na)
col3 = (not MMgreen and not MMred ? color(yellow,0) : na)
col4 = color(black,0)
plot(ema(close,20), color=col, style=line, linewidth=2)
plot(ema(close,20), color=col2, style=line, linewidth=2)
plot(ema(close,20), color=col3, style=line, linewidth=2)
plot(ema(close,200), color=col4, style=line, linewidth=3)
//plot(vwap(15), color(white,0), style=line, linewidth=3)
//plot(cross(ema(close,9), ema(close,20)) ? ema(close,9) : na, style = cross,color=fuchsia, transp=0, linewidth = 4)
plot(cross(ema(close,20), ema(close,200)) ? ema(close,20) : na, style = cross,color=fuchsia, transp=0, linewidth = 4)

c = crossover(ema(close,9), ema(close,20)) and ema(close,9) > ema(close,20)
// c = crossover(close, ema (close,9) and ema(close,9) > ema(close[1],9))
v = crossunder(close, ema (close,9))

strategy.entry("COMPRA", strategy.long,when=c)
strategy.entry("VENDA", strategy.short,when=v)