2つの移動平均のクロスオーバー戦略

作者: リン・ハーンチャオチャン,日付: 2024-02-27 13:51:51
タグ:

img

概要

この戦略は20期単動平均 (SMA) と21期指数動平均 (EMA) を計算し,プロットし,価格変動ゾーンを視覚化するためにそれらの間の色を埋めます.価格が20期SMAを超えると購入信号を生成し,価格が21期EMAを下回ると販売信号を生成します.この戦略には,トラッキングストップ損失および利益を取ること機能もあります.

戦略の論理

二重移動平均クロスオーバー戦略の核心理念は,高速移動平均と遅移動平均の間のクロスオーバーを取引信号として利用することです.20期SMAは価格変化により速く反応し,21期EMAはわずかに遅れているがよりスムーズです.短期および長期トレンドが一貫しているとき,すなわち2つの移動平均が上下交差すると,トレンドが強化され,取引決定がより利益を得ることが可能性が高いことを示します.

閉じる価格が20期SMAを超えると,短期と長期の両方が上昇傾向にあることを示します.21期EMAを下回ると,短期と長期の両方が下落傾向にあることを示します.出口シグナルはエントリーシグナルとは反対です.例えば,価格が20期SMAを下回ると,ロングポジションを閉じる.価格が21期EMAを下回ると,ショートポジションを閉じる.

また,このフィールテクニックは,2つの移動平均値の間の色をフィールして,市場動向を判断するのに役立つ視覚指標を形成するために使用されます.

利点

二重移動平均のクロスオーバー戦略には以下の利点があります.

  1. シンプルな論理と理解し実行しやすい
  2. 2つの移動平均値のクロスオーバーは,トレンド方向の変化を信頼的に示す.
  3. 視覚指標は,価格変動レベルを直感的に表示します.
  4. ストップ・ロストと利益引き継ぎは 利益を固定しリスクを軽減します
  5. この戦略に基づいて様々な最適化のための高度な拡張性.

リスク

この戦略にはいくつかのリスクもあります:

  1. 範囲内でのシグナルを誤って発信する.
  2. 誤ったストップ・ロースとテイク・プロフィートの設定は,損失または利益減少につながる可能性があります.
  3. パラメータの調整が不十分 (例えば期間長さ) は戦略のパフォーマンスに悪影響を及ぼす可能性があります.
  4. 自動取引は連続した損失を引き起こす可能性があります

上記のリスクに対処するために,以下の措置が可決されます.

  1. フィルターを追加して,乱雑な時期に入らないようにします.
  2. ストップ・ロスの最適化と,リスク・リターンのバランスの取れ
  3. パラメータの安定性を試験し,市場に適したパラメータを選択する.
  4. 特殊な状況で手動で介入して 損失を拡大させないようにする

増進 の 機会

戦略は以下の点で改善できる:

  1. 誤ったブレイクを避けるため,ボリュームや波動性などの他の技術指標フィルターを追加する.
  2. 機械学習に基づく移動平均パラメータを動的に最適化します
  3. 意思決定を改善するために 感情とニュース分析を組み込む
  4. 市場状況に基づいてストップ・ロスのスケールを調整するための適応型ストップ・ロスのメカニズムを組み込む.

概要

この戦略は,高速および遅い移動平均間のクロスオーバーを使用してトレンド変化を特定し,対応する長期および短期的な決定を下します. シンプルさ,直感性,実装の容易さなどの利点がありますが,いくつかのリスクも伴います. リスクはパラメータ最適化,フィルター追加,手動監督などによって軽減され,パフォーマンスは向上できます. 戦略は大きな拡張性があり,深く研究および適用に値します.


/*backtest
start: 2024-01-27 00:00:00
end: 2024-02-26 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("BMSB Breakout Strategy", shorttitle="BMSB Breakout", overlay=true)

source = close
smaLength = 20
emaLength = 21

sma = ta.sma(source, smaLength)
ema = ta.ema(source, emaLength)

outSma = request.security(syminfo.tickerid, timeframe.period, sma)
outEma = request.security(syminfo.tickerid, timeframe.period, ema)

smaPlot = plot(outSma, color=color.new(color.red, 0), title='20w SMA')
emaPlot = plot(outEma, color=color.new(color.green, 0), title='21w EMA')

fill(smaPlot, emaPlot, color=color.new(color.orange, 75), fillgaps=true)

// Definir condiciones para la estrategia de compra y venta
buyCondition = ta.crossover(close, outSma)
sellCondition = ta.crossunder(close, outEma)

// Entrada larga (compra) y salida corta
strategy.entry("Long", strategy.long, when=buyCondition and not na(sellCondition))
strategy.close("Short", when=buyCondition)

// Entrada corta (venta) y salida larga
strategy.entry("Short", strategy.short, when=sellCondition and not na(buyCondition))
strategy.close("Long", when=sellCondition)

// Puedes ajustar la configuración de la estrategia y los valores predeterminados según tus preferencias

plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.triangleup, title="Buy Signal")
plotshape(series=sellCondition, location=location.abovebar, color=color.red, style=shape.triangledown, title="Sell Signal")


もっと