スーパートレンド ダブル移動平均クロスオーバー戦略


作成日: 2023-09-19 21:38:06 最終変更日: 2023-09-19 21:38:06
コピー: 0 クリック数: 827
1
フォロー
1617
フォロワー

概要

この戦略は,スーパートレンド指標に基づく二均線交差戦略である.スーパートレンド指標は,購入と売却の信号として交差する2つの均線で構成されている.戦略は,トレンドフォローの類の戦略である.

戦略原則

  1. 素線demaFastを計算する.公式は:2*ema5 - ema(ema5,5)

  2. スローラインdemaSlowを計算する.公式は:2*ema2 - ema(ema2,2)

  3. 快線は5日EMAで,価格変化に反応するより迅速;慢線は2日EMAで,価格変化に反応するより遅い.

  4. 快線が下から慢線を突破すると,買い信号が生じ,快線が上から下から慢線を突破すると,売り信号が生じます.

  5. このように,反応速度が異なる2つの均線の交差を用い,価格トレンドの変化を判断することは,典型的なトレンド追跡戦略である.

  6. 取引は,購入と販売のシグナルに基づいて実際に実行されます.

この戦略の核心思想はシンプルで明快で,平均線パラメータを調整することで,異なる周期の市場に適応することが一般的なトレンド追跡戦略である.

優位分析

  1. 双均線交差を用いたトレンド方向の変化は,簡単な実用的な技術指標である.

  2. 快線と慢線のパラメータは調整可能で,異なる周期に対して最適化することができる.

  3. 戦略のシグナルが明確で,取引の実行は簡単です.

  4. 戦略の効果を検証するための 追跡機能が完成しました.

  5. 交差点を直感的に表示するビジュアル・インターフェース.

  6. 戦略は理解しやすいので,初心者にも適しています.

リスク分析

  1. 双均線交差は遅滞信号または偽信号が発生する可能性があります.パラメータを適切に調整するか,フィルタリング条件を追加して改善することができます.

  2. 整合や波動の市場を効果的に処理できないため,損が容易である.トレンド判断メカニズムに最適化を加えることができる.

  3. 回測パラメータの最適化は空間が限られており,リールディスク効果の検証は待っています.

  4. 取引コストが収益に与える影響に注目してください.

最適化の方向

  1. 異なる均線長さのパラメータの組み合わせをテストし,最適のマッチを探します.

  2. KDJ指数などの他の指標を信号フィルタリングに追加する.

  3. 単一損失を抑えるために, Stop Loss メカニズムに加入する.

  4. ポジション管理機能が追加され,市場状況によって異なる取引割合が採用されます.

  5. 資金管理戦略の最適化,利益・損失比率などのリスク指標の設定

  6. 機械学習などのアルゴリズムをパラメータ最適化または信号判断に追加することを検討する.

要約する

SuperTrend双均線交差戦略は,単純なトレンド追跡戦略で,パラメータを調整して異なる周期に適応し,実用的な操作性が強い.他の技術指標と組み合わせて,拡張を最適化するとともに,リスク管理を行うことで,戦略の安定性をさらに強化することができる.この戦略は,習得し易いと同時に,拡大の可能性が大きいので,非常に実用的な量化取引戦略の考え方である.

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

strategy(title = "SuperTrend", shorttitle = "BTC")
ema5=ta.ema(close, 5)
ema2=ta.ema(close, 2)
 
demaFast =  request.security(syminfo.tickerid, "30", 2 * ema5 - ta.ema(ema5, 5)  )

plotchar((2 * ema5 - ta.ema(ema5, 5)), "d", "", location = location.top)
plotchar(demaFast, "fast", "", location = location.top)

demaSlow  = request.security(syminfo.tickerid,"30", 2 * ema2 - ta.ema(ema2, 2)  )
plotchar(demaSlow, "slow", "", location = location.top)

buy = ta.crossover(demaSlow, demaFast)
sell = ta.crossunder(demaSlow, demaFast)
strategy.entry("BUY", strategy.long, 1, when = buy)
strategy.entry("SELL", strategy.short, 1, when = sell )