この戦略は,Gチャネル,RSI,MACD指標を統合した高度なトレンドフォローティングシステムである.モメンタム指標を組み合わせながら,サポートとレジスタンスゾーンを動的に計算することによって,高い確率の取引機会を特定する.コアは,より正確な信号生成のためにモメンタム変化を確認するために,RSIとMACDを使用して,市場傾向を決定するためにカスタムGチャネル指標を使用することにある.
この戦略は,シグナル信頼性を確保するために三重フィルタリングメカニズムを使用している.まず,Gチャネルは,指定された期間における最大値と最低値を計算することによって,サポートとレジスタンスゾーンを動的に構築する.価格がチャネルを突破すると,システムは潜在的なトレンド逆転点を特定する.次に,RSIインジケーターは,市場は過買いまたは過売状態にあるかどうかを確認し,より価値のある取引機会をフィルタリングするのに役立ちます.最後に,MACDインジケーターはヒストグラム値を通じてモメント方向と強さを確認します.すべての3つの条件を満たしたときにのみ取引信号が生成されます.
この戦略は,複数の技術指標の包括的な使用を通じて完全な取引システムを構築する.その主な利点は,多次元信号確認メカニズムと包括的なリスク管理システムにある.継続的な最適化と改善を通じて,この戦略は,さまざまな市場環境で安定したパフォーマンスを維持する約束を示している.トレーダーは,ライブ取引の前に,異なるパラメータの組み合わせを徹底的にテストし,特定の市場特性に基づいて適切な調整を行うことをお勧めする.
/*backtest start: 2024-11-19 00:00:00 end: 2024-12-18 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=6 strategy("VinSpace Optimized Strategy", shorttitle="VinSpace Magic", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10) // Input Parameters length = input.int(100, title="Length") src = input(close, title="Source") stop_loss_pct = input.float(1, title="Stop Loss (%)") / 100 take_profit_pct = input.float(3, title="Take Profit (%)") / 100 rsi_length = input.int(14, title="RSI Length") rsi_overbought = input.int(70, title="RSI Overbought") rsi_oversold = input.int(30, title="RSI Oversold") macd_short = input.int(12, title="MACD Short Length") macd_long = input.int(26, title="MACD Long Length") macd_signal = input.int(9, title="MACD Signal Length") // ---- G-Channel Calculations ---- var float a = na var float b = na a := math.max(src, na(a[1]) ? src : a[1]) - (na(a[1]) ? 0 : (a[1] - b[1]) / length) b := math.min(src, na(b[1]) ? src : b[1]) + (na(a[1]) ? 0 : (a[1] - b[1]) / length) avg = (a + b) / 2 // ---- RSI Calculation ---- rsi = ta.rsi(src, rsi_length) // ---- MACD Calculation ---- [macdLine, signalLine, _] = ta.macd(src, macd_short, macd_long, macd_signal) macd_hist = macdLine - signalLine // ---- Trend Detection Logic ---- crossup = b[1] < close[1] and b > close crossdn = a[1] < close[1] and a > close bullish = ta.barssince(crossdn) <= ta.barssince(crossup) c = bullish ? color.new(color.green, 0) : color.new(color.red, 0) // Plotting the Average p1 = plot(avg, "Average", color=c, linewidth=2) p2 = plot(close, "Close price", color=c, linewidth=1) // Adjusted fill with transparency fill(p1, p2, color=color.new(c, 90)) // ---- Buy and Sell Signals ---- showcross = input(true, title="Show Buy/Sell Labels") plotshape(showcross and bullish and not bullish[1], location=location.belowbar, style=shape.labelup, color=color.green, size=size.small, text="Buy", textcolor=color.white, offset=-1) plotshape(showcross and not bullish and bullish[1], location=location.abovebar, style=shape.labeldown, color=color.red, size=size.small, text="Sell", textcolor=color.white, offset=-1) // ---- Entry and Exit Conditions ---- enterLong = bullish and rsi < rsi_oversold and macd_hist > 0 enterShort = not bullish and rsi > rsi_overbought and macd_hist < 0 // Exit Conditions exitLong = ta.crossunder(close, avg) or rsi > rsi_overbought exitShort = ta.crossover(close, avg) or rsi < rsi_oversold // Position Size (example: 10% of equity) posSize = 1 // Submit Entry Orders if enterLong strategy.entry("EL", strategy.long, qty=posSize) if enterShort strategy.entry("ES", strategy.short, qty=posSize) // Submit Exit Orders if exitLong strategy.close("EL") if exitShort strategy.close("ES") // Set Stop Loss and Take Profit for the trades strategy.exit("Take Profit/Stop Loss Long", from_entry="EL", loss=stop_loss_pct * close, profit=take_profit_pct * close) strategy.exit("Take Profit/Stop Loss Short", from_entry="ES", loss=stop_loss_pct * close, profit=take_profit_pct * close)