2つの移動平均のターニングポイント戦略

作者: リン・ハーンチャオチャン,日付: 2023年10月24日 12:19:04
タグ:

img

概要

双均線回転点取引戦略は,均線交差に基づく取引戦略である.この戦略は,2つの異なるパラメータ設定の移動平均線を使用して,それらの回転状況に基づいて入口と出口の時刻を判断する.この戦略は,単純で直感的で,実行が容易で,中長線取引に適している.

戦略の原理

この戦略は,Priceを価格入力源として使用し,それぞれ2つの異なるパラメータの平均線,SMA1とSMA2を計算する.この戦略は,ROC指標を使用して均線の転移を判断する.SMA1のROC値が設定された正値を超えると,SMA1は上向きに転移すると考え,SMA1の上昇信号を記録する.SMA1のROC値が設定された負値を破ると,SMA1は下向きに転移すると考え,SMA1のダウン信号を記録する.SMA2の判断論理は類似している.

SMA1が上向きで上KラインSMA2が下向きで,買い信号が発生し,多くなっている.SMA1が下向きで上KラインSMA2が上向きで,売り信号が発生し,空いている.

この戦略は,取引方向を決定する2つの均線の転移,入場時刻を決定する1つの均線の転移,および入場時刻の傾向の変化を確実にする2つの均線交差を使用して,誤った突破を効果的にフィルタリングします.

優位性分析

  • 双均線交差と転向判断を使用して,誤った突破を効果的にフィルタリングし,エントリー精度を向上させる.

  • 均線転移とROC指標の組み合わせにより,転移時刻を明確に判断し,頻繁な取引を避けることができます.

  • 中間線と長線の両均線を用いて,主要なトレンドを追跡し,大きなトレンド利益を得ることができます.

  • 戦略論理はシンプルで明確で,理解しやすい実装であり,量化取引の初心者にとって適しています.

  • 異なる市場環境に適応するパラメータをカスタマイズできます.

リスク分析

  • 双等線交差は,波動する市場において多くの偽信号を生み,損失を招く可能性がある.

  • ROCパラメータは精密に最適化する必要がある.そうでなければ,転向認識に誤りがあり,戦略のパフォーマンスに影響を与える.

  • 大型サイクルの波動市場は,多重停止損失を引き起こす可能性があり,停止損失の幅を拡大することで回避できる.

  • 平均的な指標のみを基に,重要なニュースなどの緊急事態に反応するのが困難で,損失を引き起こす可能性があります.

  • パラメータを最適化した適合問題,テストサイクルの長さ,さまざまな業界を含むことに注意してください.

優化方向

  • 移動平均線パラメータを最適化し,最適な平均線周期組み合わせを探します

  • ROC パラメータを最適化し,方向認識の精度を向上させる

  • 増設されたストップ損失メカニズムで,カスタム価格レベルを突破するダイナミックストップ損失が可能

  • 取引量指標のトリガーなどの追加条件を追加し,偽の突破を避ける

  • MACD,BOLLなどの他の指標と組み合わせて,意思決定効果を向上させる

  • 機械学習などの方法を使用して,市場変化に合わせてパラメータを自動的に最適化します.

概要

双均線回転点戦略は,全体としてシンプルで実用的な傾向追跡戦略である. 基本的均線指標だけで実現し,論理が明確で理解が容易で,量化取引の初心者向けに学び,実践するのに最適である. 参数最適化とストップ損失メカニズムの最適化によって戦略の安定性を大幅に向上させることができる. 他の補助指標と組み合わせることで戦略効果をさらに強化することができる. この戦略は高度にカスタマイズされ,さまざまな市場環境で柔軟に適用できる. これは推奨される双均線取引戦略である.

概要

ダブル・ムービング・平均ターニングポイント戦略 (Dual Moving Average Turning Point strategy) は,移動平均クロスオーバーに基づいたトレンドフォロー戦略である.異なるパラメータ設定を持つ2つの移動平均を使用し,ターニング方向に応じてエントリーと出口点を決定する.この戦略はシンプルで直感的で,実装が容易で,中長期取引に適している.

戦略の論理

この戦略は価格を価格入力ソースとして使用し,異なるパラメータを持つ2つの移動平均,SMA1とSMA2を計算する.移動平均の回転方向を決定するためにROC指標を使用する.SMA1のROC値が正の値を超えると,それはSMA1の上昇回転とみなされ,上昇信号が記録される.SMA1のROC値が負の値を突破すると,それはSMA1の低下回転とみなされ,ダウン信号が記録される.SMA2の判断論理は類似している.

SMA1が上向き,前行SMA2が下向きになると,買い信号が生成され,ロングになります.SMA1が下向き,前行SMA2が上向きになると,売り信号が生成され,ショートになります.

この戦略は,取引方向を決定するために2つの移動平均値のターニング方向と,エントリータイミングを確認するために1つの移動平均値のターニング方向を使用する.ダブル移動平均値クロスオーバーは,市場に入るとトレンドが変化することを保証し,偽のブレイクを避けるのに役立ちます.

利点分析

  • 二重移動平均のクロスオーバーとターニングポイントを使用することで,誤ったブレイクを効果的にフィルタリングし,入力精度を向上させることができます.

  • 移動平均のターニングポイントとROC指標を組み合わせることで,ターニングポイントを明確に特定し,頻繁な取引を回避できます.

  • 中期から長期間の二重移動平均を採用することで 主なトレンドを追跡し,かなりのトレンド利益を得ることができます.

  • 戦略の論理はシンプルで明確で,理解し実行しやすく,量子取引の初心者にも適しています.

  • パーソナライズ可能なパラメータは 異なる市場環境に適しており 適応性が高い.

リスク分析

  • 二重移動平均のクロスオーバーは,変動市場の多くの誤った信号を生み出し,損失を引き起こす可能性があります.

  • ROCパラメータは精密な最適化が必要で,そうでなければターン認識はエラーがあり,戦略性能に影響します.

  • 定期的な大きな範囲の市場は,多重にストップ・ロスを引き起こす可能性があります.ストップ・ロスの範囲を拡大することで,それを回避できます.

  • 移動平均値のみを頼りにすると,大きなニュースのような突然の出来事に対して反応することは困難で,損失につながる可能性があります.

  • パラメータ最適化における過適性問題に注意してください.テスト期間は,異なる市場条件を含めるのに十分な長さでなければなりません.

オプティマイゼーションの方向性

  • 最適な移動平均期間の組み合わせを見つけるために移動平均のパラメータを最適化します.

  • ROCパラメータを最適化して ターニングポイント認識の精度を向上させる

  • パーソナライズド価格レベルを突破したダイナミックストップロスのようなストップロスのメカニズムを追加します

  • 誤ったブレイクを避けるため,ボリュームインジケーターのような追加条件を追加します.

  • MACD,BOLLなどの他の指標を組み込むことで 意思決定を改善できます

  • マシン・ラーニングなどを使って パラメータを自動最適化し 市場の変化に適応します

概要

概要すると,ダブル・ムービング・平均ターニングポイント戦略は,トレンドフォロー戦略のシンプルで実用的な方法です. 基本的なムービング・平均指標で実装することができ,明確でわかりやすい論理を持ち,量子トレーディング初心者にとって学び,実践するのに非常に適しています. パラメータ最適化とストップ損失最適化により,戦略の安定性が大幅に向上できます. 他の補助指標と組み合わせることで,戦略をさらに強化できます.高度にカスタマイズ可能な戦略は,異なる市場環境に柔軟に適用され,推奨されるダブル・ムービング・平均取引戦略です.

[/トランス]


/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-23 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("MA Turning Point Strategy", overlay=true)
src = input(close, title="Source")

price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(25, title="1st MA Length")
type1 = input("HMA", "1st MA Type", options=["SMA", "EMA", "HMA", "VWMA"])
f_hma(_src, _length)=>
    _return = wma((2*wma(_src, _length/2))-wma(_src, _length), round(sqrt(_length)))

price1 = if (type1 == "SMA")
    sma(price, ma1)
else
    if (type1 == "EMA")
        ema(price, ma1)
    else
        if (type1 == "VWMA")
            vwma(price, ma1)
        else
            f_hma(price, ma1)
    
plot(series=price1, style=line,  title="1st MA", color=blue, linewidth=2, transp=0)

lookback1 = input(1, "Lookback 1")
roc1 = roc(price1, lookback1)

ma1up = false
ma1down = false
ma2up = false
ma2down = false

ma1up := nz(ma1up[1])
ma1down := nz(ma1down[1])
ma2up := nz(ma2up[1])
ma2down := nz(ma2down[1])

trendStrength1 = input(2.5, title="Minimum slope magnitude * 100", type=float) * 0.01

if crossover(roc1, trendStrength1)
    ma1up := true
    ma1down := false
    
if crossunder(roc1, -trendStrength1) 
    ma1up := false
    ma1down := true

longCondition = ma1up and ma1down[1]
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = ma1down and ma1up[1]
if (shortCondition)
    strategy.entry("Short", strategy.short)



もっと