Strategi ini secara komprehensif menggunakan penunjuk teknikal seperti Ichimoku Kinko Hyo, Macd, Chaikin Money Flow dan Tsi Oscillator untuk menilai dengan tepat arah trend pasaran untuk perdagangan jangka pendek.
Strategi ini menggunakan garisan Tenkan-sen, garisan Kijun-sen, garisan Senkou Span A dan garisan Senkou Span B di Ichimoku untuk menilai trend harga intraday. Pada masa yang sama, ia menggabungkan isyarat silang garisan purata bergerak cepat dan perlahan Macd dan penunjuk aliran wang dan penunjuk osilasi untuk menentukan aliran masuk dan keluar dana. Selepas penghakiman komprehensif beberapa penunjuk, keputusan beli dan jual dibuat.
Apabila garisan Tenkan-sen melintasi di atas garisan Kijun-sen, Chikou Span berada di atas paksi 0, dan harga penutupan berada di atas awan Ichimoku, ia adalah isyarat kenaikan. Sebaliknya, apabila garisan Tenkan-sen melintasi di bawah garis Kijun-sen, Chikou Span berada di bawah paksi 0, dan harga penutupan berada di bawah awan, ia adalah isyarat penurunan. Pada masa yang sama, strategi mengesan sama ada histogram MACD positif dan sama ada penunjuk Chaikin Money Flow dan osilator TSI positif ke arah yang sama. Jika penunjuk naik ke arah yang sama, kedudukan panjang dibuka dengan membeli, dan jika penunjuk menurun ke arah yang sama, kedudukan pendek dibuka dengan menjual.
Apabila penunjuk mengeluarkan isyarat bertentangan dengan yang sebelumnya, perdagangan terbalik dibuat untuk meratakan kedudukan sebelumnya.
Menggunakan gabungan beberapa penunjuk meningkatkan ketepatan penilaian.
Operasi jangka pendek mengesan turun naik pasaran dalam masa nyata.
Tiada campur tangan manual, perdagangan algoritma sepenuhnya automatik.
Penghakiman gabungan beberapa penunjuk yang bullish atau bearish pada masa yang sama mempunyai risiko penilaian yang salah.
Perdagangan jangka pendek frekuensi tinggi mempunyai yuran komisen yang agak tinggi dan sukar untuk menangkap trend.
Tiada tetapan stop loss boleh membawa kepada kerugian yang lebih besar. Titik stop loss yang sesuai atau pergerakan stop loss boleh ditetapkan berdasarkan ATR.
Mengoptimumkan kombinasi parameter. Sesuaikan parameter purata bergerak untuk menyesuaikan diri dengan kitaran dan varieti yang berbeza.
Tingkatkan mekanisme stop loss. Tetapkan garis stop loss dinamik digabungkan dengan penunjuk ATR.
Tingkatkan pengurusan kedudukan. Sesuaikan secara dinamik perkadaran jumlah dagangan.
Menggabungkan teknologi pembelajaran mesin untuk mengoptimumkan penunjuk dan isyarat.
Strategi ini secara komprehensif menggunakan beberapa penunjuk teknikal untuk menentukan turun naik trend dalam masa nyata untuk perdagangan jangka pendek frekuensi tinggi. Walaupun terdapat beberapa risiko, ia boleh ditingkatkan melalui pengoptimuman. Strategi ini bernilai penyelidikan mendalam dan pengesahan perdagangan langsung. Dengan meningkatkan penghentian kerugian dan pengurusan kedudukan, risiko perdagangan dapat dikurangkan.
/*backtest start: 2023-10-01 00:00:00 end: 2023-10-31 23:59:59 period: 1h basePeriod: 15m 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)