この戦略は,複数の技術指標を組み合わせたトレンドフォローオプション取引システムである. EMAクロスオーバーをコア信号として使用し,SMAとVWAPとともにトレンド確認を目的とし,MACDとRSIをシグナルフィルタリングのための補完指標として利用している.この戦略はリスク管理のために固定利益率を採用し,厳格なエントリー条件とポジション管理を通じて取引成功を向上させる.
この戦略は,8期および21期EMAのクロスオーバーを主要な取引信号として使用する. 短期EMAが長期EMAを超越し,以下の条件を満たすとき,ロング (コール) シグナルが誘発される. 価格は100期および200期SMA以上,MACD線は信号線以上,RSIは50以上である. ショート (プット) シグナルは反対条件下で誘発される. VWAPは相対価格ポジションを評価するのに役立つ価格重量基準として組み込まれている. 各取引は5%のテイク・プロフィートレベルを持つ1つの契約の固定ポジションサイズを使用する. 戦略は,1度に1つのポジションのみを保持することを確保するために,フラグOpenのポジションの状態を使用してポジションを追跡する.
これは,よく構造化され,論理的に健全な多指標トレンドフォローオプション取引戦略である.複数の技術指標の調整を通じて取引信号の信頼性を向上させ,固定されたテイク・プロフィートレベルを使用してリスクを管理する. 戦略にはいくつかの固有リスクがある一方で,提案された最適化方向は安定性と収益性をさらに向上させることができる. 戦略の可視化デザインは,トレーダーが直感的に取引信号を理解し実行するのを助けます.
/*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")