資源の読み込みに... 荷物...

多指標トレンド 取引オプションの追跡 EMAクロス戦略

作者: リン・ハーンチャオチャン開催日:2024年12月20日 14:49:04
タグ:エイマSMAVWAPマックドRSITP

img

概要

この戦略は,複数の技術指標を組み合わせたトレンドフォローオプション取引システムである. EMAクロスオーバーをコア信号として使用し,SMAとVWAPとともにトレンド確認を目的とし,MACDとRSIをシグナルフィルタリングのための補完指標として利用している.この戦略はリスク管理のために固定利益率を採用し,厳格なエントリー条件とポジション管理を通じて取引成功を向上させる.

戦略の原則

この戦略は,8期および21期EMAのクロスオーバーを主要な取引信号として使用する. 短期EMAが長期EMAを超越し,以下の条件を満たすとき,ロング (コール) シグナルが誘発される. 価格は100期および200期SMA以上,MACD線は信号線以上,RSIは50以上である. ショート (プット) シグナルは反対条件下で誘発される. VWAPは相対価格ポジションを評価するのに役立つ価格重量基準として組み込まれている. 各取引は5%のテイク・プロフィートレベルを持つ1つの契約の固定ポジションサイズを使用する. 戦略は,1度に1つのポジションのみを保持することを確保するために,フラグOpenのポジションの状態を使用してポジションを追跡する.

戦略 の 利点

  1. 複数の指標がシネージで働き,異なる期間や指標の種類を通して信号を相互検証する
  2. トレンドフォローとモメントインジケーターを組み合わせて,トレンドと短期モメントの両方を把握します.
  3. 固定 的 な 利潤 率 は,利潤 を 保護 し,過度の 貪欲 を 防止 する
  4. 厳格なポジション管理は,重複するポジションを防止し,リスクリスクを軽減します
  5. EMA,SMA,VWAPの動向と信号マーカーを含む明確な可視化

戦略リスク

  1. 異なる市場で頻繁に誤った信号を生む可能性があります
  2. 固定利益率は利益の可能性を制限する可能性があります
  3. ストップ・ロスの欠如は,極端な市場状況で重大な損失につながる可能性があります.
  4. 複数の指標が信号の遅延を引き起こす可能性があります.
  5. 低流動性を持つオプション契約では,滑りリスクに直面する可能性があります.

戦略の最適化方向

  1. 市場変動に基づく適応性のある得益とストップ・ロスのメカニズムを実施する
  2. ポジションサイズ化モジュールを追加して,アカウントサイズと市場状況に基づいて動的に調整します.
  3. 高波動性環境における戦略パラメータを調整するための波動性フィルターを含む.
  4. 固定期間の代わりに適応期間の考慮で指標パラメータを最適化
  5. 高波動性のある市場開閉期間の取引を避けるために時間フィルターを追加します.

概要

これは,よく構造化され,論理的に健全な多指標トレンドフォローオプション取引戦略である.複数の技術指標の調整を通じて取引信号の信頼性を向上させ,固定されたテイク・プロフィートレベルを使用してリスクを管理する. 戦略にはいくつかの固有リスクがある一方で,提案された最適化方向は安定性と収益性をさらに向上させることができる. 戦略の可視化デザインは,トレーダーが直感的に取引信号を理解し実行するのを助けます.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("OptionsMillionaire Strategy with Take Profit Only", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1)

// Define custom magenta color
magenta = color.rgb(255, 0, 255)  // RGB for magenta

// Input settings for Moving Averages
ema8 = ta.ema(close, 8)
ema21 = ta.ema(close, 21)
sma100 = ta.sma(close, 100)
sma200 = ta.sma(close, 200)
vwap = ta.vwap(close)  // Fixed VWAP calculation

// Input settings for MACD and RSI
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
rsi = ta.rsi(close, 14)

// Define trend direction
isBullish = ema8 > ema21 and close > sma100 and close > sma200
isBearish = ema8 < ema21 and close < sma100 and close < sma200

// Buy (Call) Signal
callSignal = ta.crossover(ema8, ema21) and isBullish and macdLine > signalLine and rsi > 50

// Sell (Put) Signal
putSignal = ta.crossunder(ema8, ema21) and isBearish and macdLine < signalLine and rsi < 50

// Define Position Size and Take-Profit Level
positionSize = 1  // Position size set to 1 (each trade will use one contract)
takeProfitPercent = 5  // Take profit is 5%

// Variables to track entry price and whether the position is opened
var float entryPrice = na  // To store the entry price
var bool positionOpen = false  // To check if a position is open

// Backtesting Execution
if callSignal and not positionOpen
    // Enter long position (call)
    strategy.entry("Call", strategy.long, qty=positionSize)
    entryPrice := close  // Store the entry price
    positionOpen := true  // Set position as opened

if putSignal and not positionOpen
    // Enter short position (put)
    strategy.entry("Put", strategy.short, qty=positionSize)
    entryPrice := close  // Store the entry price
    positionOpen := true  // Set position as opened

// Only check for take profit after position is open
if positionOpen
    // Calculate take-profit level (5% above entry price for long, 5% below for short)
    takeProfitLevel = entryPrice * (1 + takeProfitPercent / 100)

    // Exit conditions (only take profit)
    if strategy.position_size > 0
        // Long position (call)
        if close >= takeProfitLevel
            strategy.exit("Take Profit", "Call", limit=takeProfitLevel)
    if strategy.position_size < 0
        // Short position (put)
        if close <= takeProfitLevel
            strategy.exit("Take Profit", "Put", limit=takeProfitLevel)

// Reset position when it is closed (this happens when an exit is triggered)
if strategy.position_size == 0
    positionOpen := false  // Reset positionOpen flag

// Plot EMAs
plot(ema8, color=magenta, linewidth=2, title="8 EMA")
plot(ema21, color=color.green, linewidth=2, title="21 EMA")

// Plot SMAs
plot(sma100, color=color.orange, linewidth=1, title="100 SMA")
plot(sma200, color=color.blue, linewidth=1, title="200 SMA")

// Plot VWAP
plot(vwap, color=color.white, style=plot.style_circles, title="VWAP")

// Highlight buy and sell zones
bgcolor(callSignal ? color.new(color.green, 90) : na, title="Call Signal Background")
bgcolor(putSignal ? color.new(color.red, 90) : na, title="Put Signal Background")

// Add buy and sell markers (buy below, sell above)
plotshape(series=callSignal, style=shape.labelup, location=location.belowbar, color=color.green, text="Buy", title="Call Signal Marker")
plotshape(series=putSignal, style=shape.labeldown, location=location.abovebar, color=color.red, text="Sell", title="Put Signal Marker")


関連性

もっと