双均線回転点取引戦略は,均線交差に基づく取引戦略である.この戦略は,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
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)