この戦略は,イチモク・クラウド,相対強度指数 (RSI),移動平均収束分差 (MACD),より高いタイムフレーム (HTF) 分差,指数関数移動平均 (EMA) クロスオーバーを含む複数の技術指標を組み合わせた包括的な取引システムです.この戦略は,複数の信号の確認を使用して,取引の精度を向上させ,異なるタイムフレームからの市場情報を活用して,より信頼できる取引機会を把握します.
この戦略の基本原則は,多層技術分析を通じて取引信号を確認することである. 全体の市場動向を決定するためにイチモク・クラウドのコンポーネントを使用し,市場過剰購入/過剰販売状態を判断するためにRSIを組み合わせ,トレンドモメンタム変化を特定するためにMACDを使用し,HTFRSIとMACD差異を通じて潜在的なトレンド逆転信号を捕捉する. さらに,この戦略は EMA50とEMA100クロスオーバーを確認するために組み込み,EMA200を主要なトレンドフィルターとして使用し,多層取引確認システムを作成する.
この戦略は,複数の技術指標の調整を通じて比較的完全な取引システムを構築する.その強みは多次元信号確認メカニズムにあるが,パラメータ最適化と市場適応性の課題に直面している.提案された最適化方向性を通じて,戦略は,強固性を維持しながら,異なる市場環境でパフォーマンスをさらに向上させる可能性がある.
/*backtest start: 2024-01-17 00:00:00 end: 2025-01-16 00:00:00 period: 3h basePeriod: 3h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=6 strategy("Ichimoku + RSI + MACD + HTF Divergence + EMA Cross Strategy", overlay=true) // تنظیمات تایمفریم بالاتر htf_timeframe = input.timeframe("D", title="تایمفریم بالاتر") // تنظیمات پارامترهای ایچیموکو tenkan_period = input(9, title="Tenkan Sen Period") kijun_period = input(26, title="Kijun Sen Period") senkou_span_b_period = input(52, title="Senkou Span B Period") displacement = input(26, title="Displacement") // محاسبه خطوط ایچیموکو tenkan_sen = (ta.highest(high, tenkan_period) + ta.lowest(low, tenkan_period)) / 2 kijun_sen = (ta.highest(high, kijun_period) + ta.lowest(low, kijun_period)) / 2 senkou_span_a = (tenkan_sen + kijun_sen) / 2 senkou_span_b = (ta.highest(high, senkou_span_b_period) + ta.lowest(low, senkou_span_b_period)) / 2 chikou_span = close // قیمت بسته شدن فعلی // رسم خطوط ایچیموکو plot(tenkan_sen, color=color.blue, title="Tenkan Sen") plot(kijun_sen, color=color.red, title="Kijun Sen") plot(senkou_span_a, offset=displacement, color=color.green, title="Senkou Span A") plot(senkou_span_b, offset=displacement, color=color.orange, title="Senkou Span B") plot(chikou_span, offset=-displacement, color=color.purple, title="Chikou Span") // رنگآمیزی ابر ایچیموکو fill(plot(senkou_span_a, offset=displacement, color=color.green, title="Senkou Span A"), plot(senkou_span_b, offset=displacement, color=color.orange, title="Senkou Span B"), color=senkou_span_a > senkou_span_b ? color.new(color.green, 90) : color.new(color.red, 90), title="Cloud") // تنظیمات RSI rsi_length = input(14, title="RSI Length") rsi_overbought = input(70, title="RSI Overbought Level") rsi_oversold = input(30, title="RSI Oversold Level") // محاسبه RSI rsi_value = ta.rsi(close, rsi_length) // تنظیمات MACD fast_length = input(12, title="MACD Fast Length") slow_length = input(26, title="MACD Slow Length") signal_smoothing = input(9, title="MACD Signal Smoothing") // محاسبه MACD [macd_line, signal_line, hist_line] = ta.macd(close, fast_length, slow_length, signal_smoothing) // شناسایی واگراییها در تایمفریم بالاتر f_find_divergence(src, lower, upper) => var int divergence = na // تعریف نوع متغیر بهصورت صریح if (src >= upper and src[1] < upper) divergence := 1 // واگرایی نزولی else if (src <= lower and src[1] > lower) divergence := -1 // واگرایی صعودی divergence // محاسبه RSI و MACD در تایمفریم بالاتر htf_rsi_value = request.security(syminfo.tickerid, htf_timeframe, rsi_value) htf_macd_line = request.security(syminfo.tickerid, htf_timeframe, macd_line) // شناسایی واگراییها در تایمفریم بالاتر htf_rsi_divergence = f_find_divergence(htf_rsi_value, rsi_oversold, rsi_overbought) htf_macd_divergence = f_find_divergence(htf_macd_line, 0, 0) // فیلتر روند با EMA 200 ema_200 = ta.ema(close, 200) // اضافه کردن EMA 50 و 100 ema_50 = ta.ema(close, 50) ema_100 = ta.ema(close, 100) // کراسهای EMA ema_cross_up = ta.crossover(ema_50, ema_100) // کراس صعودی EMA 50 و 100 ema_cross_down = ta.crossunder(ema_50, ema_100) // کراس نزولی EMA 50 و 100 // شرایط ورود و خروج long_condition = (close > senkou_span_a and close > senkou_span_b) and // قیمت بالای ابر (rsi_value > 50) and // RSI بالای 50 (macd_line > signal_line) and // MACD خط سیگنال را قطع کرده (htf_rsi_divergence == -1 or htf_macd_divergence == -1) and // واگرایی صعودی در تایمفریم بالاتر (close > ema_200) and // قیمت بالای EMA 200 (ema_cross_up) // کراس صعودی EMA 50 و 100 short_condition = (close < senkou_span_a and close < senkou_span_b) and // قیمت زیر ابر (rsi_value < 50) and // RSI زیر 50 (macd_line < signal_line) and // MACD خط سیگنال را قطع کرده (htf_rsi_divergence == 1 or htf_macd_divergence == 1) and // واگرایی نزولی در تایمفریم بالاتر (close < ema_200) and // قیمت زیر EMA 200 (ema_cross_down) // کراس نزولی EMA 50 و 100 // نمایش نقاط ورود در چارت plotshape(series=long_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.small) plotshape(series=short_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.small) // اجرای استراتژی if (long_condition) strategy.entry("Long", strategy.long) if (short_condition) strategy.entry("Short", strategy.short)