スーパートレンドに基づく5日、10日、20日移動平均クロスオーバー戦略


作成日: 2023-12-19 10:39:36 最終変更日: 2023-12-19 10:39:36
コピー: 0 クリック数: 4339
1
フォロー
1621
フォロワー

スーパートレンドに基づく5日、10日、20日移動平均クロスオーバー戦略

概要

この戦略は,5日目,10日目,20日目指数移動平均 ((EMA)) を計算し,超トレンド指標と組み合わせて,買入と売却のシグナルを生成する. 5日目線が10日目線を横切って,5日目線と10日目線が20日目線を横切ったときに買入シグナルを生成する. 10日目線が5日目線を横切って,10日目線が5日目線を横切って,5日目線が20日目線を横切って,5日目線と10日目線が20日目線を横切ったときに売出シグナルを生成する.

戦略原則

  1. 5日EMA,10日EMAと20日EMAを計算する.
  2. 超トレンド指標を計算する.
  3. 5日EMAが10日EMAより大きく,5日EMAと10日EMAが20日EMAより大きいとき,すなわち5日線と10日線が20日線を貫くとき,買取シグナルが生成する。
  4. 10日EMAが5日EMAより小さいとき,5日EMAと10日EMAが20日EMAより小さいとき,すなわち5日線と10日線の下の20日線を穿越して,セールシグナルを生成する.
  5. 同時に超トレンド指標と組み合わせて市場のトレンドを判断し,超トレンド指標が下向きのトレンドを示しているときにのみ買入シグナルを生じ,上向きのトレンドを示しているときにのみ売出シグナルを生じます.

戦略的優位性

  1. シンプルで有効で 分かりやすく実行可能
  2. 平均線と超トレンドを組み合わせると,判断信号はより正確で信頼できる.
  3. 5日,10日,20日3つの平均線を使用し,視野は総合的で,短期,中期,長期のトレンドを正確に判断する.
  4. 超トレンド判断技術と中短期均線技術を組み合わせることで,大規模な市場操作を避ける.
  5. 配置パラメータは柔軟で,異なる品種と市場状況に応じて調整・最適化することができる.
  6. 取引機会を正確に検知し,利益の比率が高くなる.
  7. シンプルで理解しやすく,拡張しやすく,カスタマイズしやすく.

戦略リスク

  1. 市場が激しく揺れ動いている大盘のなか,偽信号が多く,退出のタイミングが間違えるのが容易である.
  2. 均線システムはパラメータに非常に敏感で,パラメータを誤って設定すると損失が引き起こされる.
  3. 超トレンド多空判定には遅れがあるため,他の技術指標と組み合わせて確認する必要があります.
  4. 暴落や瞬間の空飛ぶなどの極端な状況に耐えられない.

主なリスクに対する解決策:

  1. 信号の二次確認は,より多くの技術指標または基本的分析と組み合わせて行われます.
  2. 損失を拡大しないようにするストップ・ローズ策を導入する.
  3. ショートラインと中長線指標の最適化パラメータの設定.
  4. 指数の変動率や超トレンド指標のパフォーマンスをリアルタイムで監視し,必要に応じて手動で介入する.

戦略最適化の方向性

  1. MACD,KDなど,より均等なシステムと技術指標の判断を組み合わせる.
  2. 自動ストップ・ストップ・ストップの追加策
  3. 異なる品種と市場の状況に応じて,超トレンドと均線システムのパラメータを最適化する.
  4. モデル評価を追加し,歴史データに基づいてパラメータの最適化と戦略の最適化を行う.
  5. 価格動向と潜在的取引機会を判断する機械学習予測モジュールを追加します.

要約する

この戦略は,5日,10日,20日3本の均線と超トレンド指標を用いて取引戦略を構築する.戦略はシンプルで高効率で,トレンド判断と発見の機会に優れている.同時に,強力なカスタマイズ性と拡張性がある.最適化の余地が広く,パラメータの調整,技術指標の追加,機械学習などの方法で戦略のパフォーマンスを継続的に改善し,より複雑な市場環境に適応することができる.

ストラテジーソースコード
/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
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/
// © aadilpatel07

//@version=4
strategy("5-10-20 Cross", overlay=true)
src = close, 
len1 = input(5, minval=1, title="EMA 1")
len2 = input(10, minval=1, title="EMA 2")
len3 = input(20, minval=1, title="EMA 3")

mult = input(type=input.float, defval=2)
len = input(type=input.integer, defval=14)
[superTrend, dir] = supertrend(mult, len)

ema1 = ema(src, len1)
ema2 = ema(src, len2)
ema3 = ema(src, len3)

//EMA Color
col1 = color.lime
col2 = color.blue
col3 = color.red

//EMA Plots
plot(series=ema1,color=col1, title="EMA1")
plot(series=ema2,color=col2, title="EMA2")
plot(series=ema3,color=col3, title="EMA3")

//plot SuperTrend
colResistance = dir == 1 and dir == dir[1] ? color.new(color.red, 100) : color.new(color.green, 100)
colSupport = dir == -1 and dir == dir[1] ? color.new(color.green, 0) : color.new(color.green, 10)
plot(superTrend, color = colResistance, linewidth=1)
plot(superTrend, color = colSupport, linewidth=1)

//longCondition = crossover(ema1, ema2) and crossover(ema1,ema3) and crossover(ema2,ema3)
longCondition = ema1 > ema2 and ema1 > ema3 and ema2 > ema3 and ema2 < ema1 and dir == -1
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

//shortCondition = crossover(ema2, ema1) and crossover(ema3,ema1) and crossover(ema3,ema2)
shortCondition = ema1 < ema2 and ema1 < ema3 and ema2 < ema3 and ema2 > ema1 and dir == 1
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)