二重移動平均間隔突破戦略に基づく


作成日: 2023-12-20 13:59:38 最終変更日: 2023-12-20 13:59:38
コピー: 0 クリック数: 716
1
フォロー
1621
フォロワー

二重移動平均間隔突破戦略に基づく

概要

この戦略は,異なる周期の平均線を計算して,価格が重要な平均線を破ったことを判断し,低リスクのトレンド追跡を実現する.

戦略原則

10日平均線で200日平均線を穿い,20日平均線で50日平均線を穿いるときは,多めにする.10日平均線で200日平均線を穿い,20日平均線で50日平均線を穿いるときは,空きにする.ここで,二重平均線によって判断すれば,偽突破を効果的にフィルターすることができる.

戦略はまず,10日,20日,50日,200日の4つの異なる周期の指数移動平均 ((EMA) を計算する.その中で,10日線は短期トレンドを代表し,20日線は中期トレンドを代表し,50日線は中期トレンドを代表し,200日線は長期トレンドを代表する.短期トレンド線を横切ったり下切ったりすると,価格が大きく上下突破する可能性があることを示している.しかし,一線平均の突破だけで判断すれば,偽突破が起こりやすい.そのため,戦略は二線平均の判断を採用している.すなわち,10日線と200日線は,短期トレンド関係を判断する第一道門であり,20日線と50日線は,中期トレンド関係を判断する第二道門である.

双重均線フィルタリングにより,偽突破の確率を効率的に低減し,生成された取引シグナルをより信頼性のあるものにする.

戦略的優位性

  1. 双均線判定を使用し,偽突破を効果的にフィルターし,信号をより信頼性のある
  2. 複数の時間周期で参加し,判断プロセスがより包括的で慎重になります.
  3. パラメータ設定はシンプルで,理解しやすく,使いやすい.

戦略リスク

  1. トレンドを把握する能力は高いが,逆転の機会は利用できない.
  2. トレンドが逆転すると,ストップダストが大きくなる可能性があります.
  3. 長い歴史データが必要で,新株やデータ不足で効果が悪くなる

平均線突破の幅を適正に緩和して改善するか,取引量確認などの他の指標を追加して最適化することができます.

戦略最適化の方向性

  1. 取引量を増やす確認 取引量により価格の突破を検証し,低量の偽突破で入場を避ける
  2. MACD,KDJなどの他の指標と組み合わせて補助的なものです.より多くの指標は,システムの安定性を向上させることができます.
  3. 自動最適化パラメータ。遺伝的アルゴリズムなどにより最適化10日,20日等平均線のパラメータ設定,異なる市場環境に対応。

概要として,この戦略全体は,二重均等線を主として,パラメータ最適化,取引量およびその他の指標で補足され,安定したトレンド追跡システムを効果的に構築できます.

要約する

この戦略は,全体的に,シンプルで実用的トレンド追跡戦略である.これは,二重平均線を主要取引判断基準として使用し,二重フィルタリングによって偽突破の確率を低減し,生成する信号はより信頼性が高い.同時に,パラメータ設定はシンプルで,使いやすい.優れたリスク管理とさらなる最適化により,戦略をより安定して収益性のあるものにすることができる.総じて,この戦略は,そのシンプルさにより,長期に渡って,量化取引の入門戦略として使用するのに適している.

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

//@version=3
strategy("Advancing Our Basic Strategy", overlay=true)

ema10 = ema(close, 10)
ema20 = ema(close, 20)
ema50 = ema(close, 50)
ema200 = ema(close, 200)

long = ema10 > ema200 and ema20 > ema50
short = ema10 < ema200 and ema20 < ema50
longcondition = long and long[10] and not long[11]
shortcondition = short and short[10] and not short[11]

closelong = ema10 < ema200 or ema20 < ema50 and not long[11]
closeshort = ema10 > ema200 or ema20 > ema50 and not short[11]

plot(ema10, title="10", color=green, linewidth=2)
plot(ema20, title="20", color=red, linewidth=3)
plot(ema50, title="50", color=purple, linewidth=2)
plot(ema200, title="200", color=blue, linewidth=3)

testPeriodStart = timestamp(2018,8,1,0,0)
testPeriodStop = timestamp(2038,8,30,0,0)

if time >= testPeriodStart and time <= testPeriodStop
    strategy.entry("Long", strategy.long, 1, when=longcondition)
    strategy.entry("Short", strategy.short, 1, when=shortcondition)
    

strategy.close("Long", when = closelong)
strategy.close("Short", when = closeshort)