この戦略は,高い確率の取引機会を把握するために,EMA,MACD,VWAP,RSIなどの複数の指標を組み合わせます. EMAを使用してトレンド方向,MACDをモメンタム,VWAPをボリューム,RSIをオーバーバイトおよびオーバーセール条件に決定します.この戦略は,利益を保護するためにトラリングストップロスを使用しながら,これらの指標の組み合わせに基づいて購入および販売信号を生成します.
この戦略は,市場状況を評価し,利益を保護するためにトレーリングストップロスを使用しながら複数の指標を組み合わせ,取引信号を生成する. 戦略パラメータは,ユーザーの好みに合わせて調整され,戦略の柔軟性を高める. しかし,戦略は不安定な市場では不良なパフォーマンスを発揮し,トレンド逆転中に大きな引き下げに直面する可能性があります. そのため,さまざまな市場や楽器のために最適化および改善する必要があります. 将来の最適化は,戦略の安定性と収益性を向上させるために,より多くのフィルタリング条件,ダイナミックストップロスの方法,パラメータ最適化,ポジションサイズを追加することを検討することができます.
/*backtest start: 2024-04-01 00:00:00 end: 2024-04-30 23:59:59 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Intraday Strategy", overlay=true) // Input parameters emaLength = input.int(50, title="EMA Length") macdShort = input.int(12, title="MACD Short Period") macdLong = input.int(26, title="MACD Long Period") macdSignal = input.int(9, title="MACD Signal Period") rsiLength = input.int(14, title="RSI Length") rsiOverbought = input.int(70, title="RSI Overbought Level") rsiOversold = input.int(30, title="RSI Oversold Level") risk = input.float(1, title="Risk Percentage", minval=0.1, step=0.1) trailOffset = input.float(0.5, title="Trailing Stop Offset", minval=0.1, step=0.1) // Calculating indicators ema = ta.ema(close, emaLength) [macdLine, signalLine, _] = ta.macd(close, macdShort, macdLong, macdSignal) rsi = ta.rsi(close, rsiLength) vwap = ta.vwap(close) // Entry conditions longCondition = ta.crossover(macdLine, signalLine) and close > ema and rsi < rsiOverbought and close > vwap shortCondition = ta.crossunder(macdLine, signalLine) and close < ema and rsi > rsiOversold and close < vwap // Exit conditions longExitCondition = ta.crossunder(macdLine, signalLine) or close < ema shortExitCondition = ta.crossover(macdLine, signalLine) or close > ema // Position sizing based on risk percentage capital = strategy.equity positionSize = (capital * (risk / 100)) / close // Executing trades if (longCondition) strategy.entry("Long", strategy.long, qty=1) if (shortCondition) strategy.entry("Short", strategy.short, qty=1) if (longExitCondition) strategy.close("Long") if (shortExitCondition) strategy.close("Short") // Trailing stop loss if (strategy.position_size > 0) strategy.exit("Trailing Stop Long", from_entry="Long", trail_price=close, trail_offset=trailOffset) if (strategy.position_size < 0) strategy.exit("Trailing Stop Short", from_entry="Short", trail_price=close, trail_offset=trailOffset) // Plotting indicators plot(ema, title="EMA", color=color.blue) hline(rsiOverbought, "Overbought", color=color.red) hline(rsiOversold, "Oversold", color=color.green) plot(rsi, title="RSI", color=color.purple) plot(vwap, title="VWAP", color=color.orange)