Strategi ini menggabungkan carta awan Ichimoku dengan pelbagai penunjuk tambahan untuk mengesan trend. Ia terutamanya menggunakan awan Ichimoku untuk menentukan arah trend dan MACD, CMF, TSI dan penunjuk lain untuk menapis untuk meningkatkan kualiti isyarat. Ini adalah strategi trend yang kuat berdasarkan penilaian komprehensif pelbagai faktor.
Strategi ini terutamanya menggunakan transformasi awan Ichimoku untuk menilai arah trend. Ia pergi lama apabila Tenkan-sen melintasi di atas awan dan pergi pendek apabila Tenkan-sen melintasi di bawah. Sementara itu, ia menggunakan Chikou Span, histogram MACD, CMF dan TSI untuk penapisan pelbagai lapisan untuk memastikan kualiti isyarat.
Khususnya, isyarat panjang dicetuskan apabila:
Isyarat pendek diaktifkan apabila keadaan di atas terbalik. Dengan kriteria yang komprehensif, kebanyakan isyarat palsu dapat disaring dan trend utama di pasaran ditangkap.
Kelebihan terbesar strategi ini adalah menapis isyarat palsu dan menangkap trend yang kuat dengan menggabungkan beberapa penunjuk.
Melalui pertimbangan sedemikian, strategi dapat mengenal pasti sektor panas jangka menengah dan panjang dengan berkesan dan mendapat keuntungan daripada perdagangan trend.
Risiko utama strategi ini termasuk:
Penyelesaian:
Arah pengoptimuman utama:
Pengoptimuman parameter melalui lebih banyak backtests untuk mencari kombinasi parameter yang lebih baik
Tambah mekanisme stop loss untuk mengawal risiko
Tambah stop loss untuk mengunci keuntungan
Uji lebih banyak penunjuk untuk mencari gabungan penapis yang lebih baik
Tambah peraturan untuk membezakan pelarian sebenar
Strategi ini menggabungkan awan Ichimoku dengan berkesan dan pelbagai penunjuk tambahan. Penambahbaikan lanjut pada pengoptimuman parameter, mekanisme stop loss, pemilihan penunjuk dapat meningkatkan kestabilan dan kualiti isyarat untuk pulangan yang lebih tinggi. Strategi ini mempunyai nilai praktikal yang kuat.
/*backtest start: 2024-01-11 00:00:00 end: 2024-01-13 14:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © exlux99 //@version=4 strategy("Ichimoku with MACD/ CMF/ TSI", overlay=true, margin_long=0, margin_short=0) //Inputs ts_bars = input(10, minval=1, title="Tenkan-Sen Bars") ks_bars = input(30, minval=1, title="Kijun-Sen Bars") ssb_bars = input(52, minval=1, title="Senkou-Span B Bars") cs_offset = input(26, minval=1, title="Chikou-Span Offset") ss_offset = input(26, minval=1, title="Senkou-Span Offset") long_entry = input(true, title="Long Entry") short_entry = input(true, title="Short Entry") middle(len) => avg(lowest(len), highest(len)) // Ichimoku Components tenkan = middle(ts_bars) kijun = middle(ks_bars) senkouA = avg(tenkan, kijun) senkouB = middle(ssb_bars) ss_high = max(senkouA[ss_offset-1], senkouB[ss_offset-1]) ss_low = min(senkouA[ss_offset-1], senkouB[ss_offset-1]) // Entry/Exit Signals fast_length = input(title="Fast Length", type=input.integer, defval=17) slow_length = input(title="Slow Length", type=input.integer, defval=28) src = input(title="Source", type=input.source, defval=close) signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 5) sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=true) sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=true) // Calculating fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length) slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length) hist = macd - signal tk_cross_bull = tenkan > kijun tk_cross_bear = tenkan < kijun cs_cross_bull = mom(close, cs_offset-1) > 0 cs_cross_bear = mom(close, cs_offset-1) < 0 price_above_kumo = close > ss_high price_below_kumo = close < ss_low //CMF lengthA = input(8, minval=1, title="CMF Length") ad = close==high and close==low or high==low ? 0 : ((2*close-low-high)/(high-low))*volume mf = sum(ad, lengthA) / sum(volume, lengthA) //TSI long = input(title="Long Length", type=input.integer, defval=8) short = input(title="Short Length", type=input.integer, defval=8) price = close double_smooth(src, long, short) => fist_smooth = ema(src, long) ema(fist_smooth, short) pc = change(price) double_smoothed_pc = double_smooth(pc, long, short) double_smoothed_abs_pc = double_smooth(abs(pc), long, short) tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc) bullish = tk_cross_bull and cs_cross_bull and price_above_kumo and hist > 0 and mf > 0.1 and tsi_value > 0 bearish = tk_cross_bear and cs_cross_bear and price_below_kumo and hist < 0 and mf < -0.1 and tsi_value < 0 strategy.entry("Long", strategy.long, when=bullish and long_entry) strategy.entry("Short", strategy.short, when=bearish and short_entry) strategy.close("Long", when=bearish and not short_entry) strategy.close("Short", when=bullish and not long_entry)