EMA/MAのクロスオーバーオプション取引戦略

作者: リン・ハーンチャオチャン, 日付: 2024-01-16 14:14:42
タグ:

img

概要

これは,指数的な移動平均線 (EMA) と移動平均線 (MA) のクロスオーバーをベースとした短期オプション取引戦略で,取引信号を生成する. 速い EMA が低い MA を下から横切ったときに買い信号を生成し,速い EMA が低い MA を下から横切ったときに売り信号を生成する.

戦略の論理

この戦略は,異なるパラメータを持つ2つの EMA/MAを使用します. 1つの高速 EMAと1つの遅い MA.高速 EMA期間は50に設定され,遅い MA期間は100に設定されています. EMAは価格変化により速く反応し,MAはよりゆっくり反応します.

短期的な物価急上昇が加速すると,速いEMAは低調なMAを下から突破し,買い信号を生成します.これは上昇傾向の上昇を示し,コールオプションの購入または購入を検討するのに適しています.

短期的な価格下落が加速すると,速いEMAは緩やかなMAを下回り,売り信号を生成します.これは下落傾向の上昇を示し,売りオプションの販売または購入の機会を示します.

短期的なトレンドと市場情勢を決定するために,速いEMA/MAと遅いEMAのクロスオーバーを捕捉することで,比較的短期的な価格変動から利益を得るために,適時なオプション取引を実行することができます.

利点分析

この戦略の主な利点は以下の通りです.

  1. 短期の変動を把握するための迅速な応答.高速EMAと遅いMAのクロスオーバーは,短期間の上昇と下落の価格逆転を迅速に検出します.

  2. 単純に実行できます.複雑な計算なしで2つの移動平均のクロスオーバーを監視する必要があります.

  3. オプションや株式の取引のための柔軟なアプリケーションです.信号に基づいてロング/ショート,またはそれに応じてオプションの取引を行うことができます.

  4. 明確なストップ・ロストで制御可能なリスク. 取引ごとに損失を制限するために,ストップ・ロストポイントを事前に設定します.

リスク分析

注意すべきリスクは:

  1. 潜在的なウィップソー信号と範囲の市場は,過剰な取引とコストの増加を引き起こす可能性があります.過剰な取引を避けるためにストップロスを拡大することができます.

  2. 連続的なストップ・ロスのトリガーで持続的な市場下落傾向に脆弱である. 資本の維持のために長期の熊期の停止戦略を検討する.

  3. 大事なニュースイベントによる価格急上昇は,ポジションを早急に停止したり,損失を大幅に拡大したりする可能性があります. 大事なイベントの周りに戦略を採用する適切性を注意深く評価してください.

増進 の 機会

戦略の強化の方法:

  1. 動的ストップ・ロスは波動性に基づいており,価格変動レベルに応じてリアルタイムでストップ・ロスを調整し,強制退出の可能性を最小限に抑える.

  2. 複数のタイムフレームの EMA を統合する.反トレンド取引を避けるために,全体的なトレンドを測定するために,日々のEMA と週間のEMA を追加する.

  3. RSIフィルター.RSIを使用して,過買いと過売りレベルを特定し,いくつかのノイズ信号をフィルタリングします.

  4. 機械学習波動性予測.LSTMモデルを使用して価格波動性とリスクを予測し,ポジションサイズとストップロスを動的に調整します.

結論

この短期EMA/MAクロスオーバー戦略は,EMAとMAのクロスオーバーを迅速に監視することで,短期トレンド変化と市場の感情を把握し,適切な取引を行う.実行が簡単であるにもかかわらず,リスクには過剰なウィップソーと持続的な引き下げが含まれます.ストップロスの最適化,複数のタイムフレーム,シグナルフィルタリング,機械学習予測の改善はリスク管理と収益性の向上を支援することができます.


/*backtest
start: 2023-01-09 00:00:00
end: 2024-01-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Backtest single EMA cross", overlay=true)

qty = input(100000, "Buy quantity")

testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testStartHour = input(0, "Backtest Start Hour")
testStartMin = input(0, "Backtest Start Minute")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, testStartHour, testStartMin)
testStopYear = input(2099, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)
testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and time >= testPeriodStart and time <= testPeriodStop ? 
   #00FF00 : na
testPeriod() => true


ema1 = input(50, title="Select EMA 1")
ema2 = input(100, title="Select EMA 2")

expo = ema(close, ema1)
ma = ema(close, ema2)

avg_1 = avg(expo, ma)
s2 = cross(expo, ma) ? avg_1 : na
//plot(s2, style=plot.style_line, linewidth=3, color=color.red, transp=0)

p1 = plot(expo, color=#00FFFF, linewidth=2, transp=0)
p2 = plot(ma, color=color.orange, linewidth=2, transp=0)
fill(p1, p2, color=color.white, transp=80)


longCondition = crossover(expo, ma)

shortCondition = crossunder(expo, ma)

exitlongCondition = crossunder(expo, ma)

exitshortCondition = crossover(expo, ma) 


if testPeriod()
    strategy.entry("Long", strategy.long, when=longCondition)
    strategy.entry("Short", strategy.short, when=shortCondition)

plotshape(longCondition, title = "Buy Signal", text ="BUY", textcolor = #FFFFFF , style=shape.labelup, size = size.normal, location=location.belowbar, color = #1B8112, transp = 0)
plotshape(shortCondition, title = "Sell Signal", text ="SELL", textcolor = #FFFFFF, style=shape.labeldown, size = size.normal, location=location.abovebar, color = #FF5733, transp = 0)




もっと