
Strategi ini menggunakan pelbagai petunjuk teknikal seperti carta keseimbangan, indikator Macd, indikator aliran wang Chaikin dan indikator goyah Tsi untuk menentukan arah trend pasaran dengan tepat dan melakukan perdagangan garis pendek.
Strategi menggunakan indikator seperti garis horizon, garis rujukan, dan garis terdahulu dalam carta keseimbangan pertama untuk menentukan trend harga dalam sehari. Di samping itu, gabungan Macd dengan isyarat persilangan garis rata-rata yang cepat dan perlahan, serta indikator aliran wang dan indikator goyah untuk menentukan aliran masuk dan keluar dana.
Apabila garis dasar melintasi cakrawala, garis pendahuluan berada di atas 0 dan harga penutupan berada di atas awan pada carta keseimbangan pertama, ia adalah isyarat bullish. Sebaliknya, apabila garis dasar melintasi cakrawala, garis pendahuluan berada di bawah 0 dan harga penutupan berada di bawah awan, ia adalah isyarat bullish. Strategi ini juga mengesan sama ada carta Macd adalah positif dan sama ada indikator aliran emas Chaikin dan indikator getaran adalah positif.
Apabila penunjuk mengeluarkan isyarat yang berlawanan dengan yang sebelumnya, lakukan perdagangan terbalik sebelum meratakan kedudukan.
Menggunakan pelbagai pengukuran untuk meningkatkan ketepatan penilaian.
Ia juga boleh digunakan untuk mengesan pergerakan pasaran dalam masa nyata.
Tidak memerlukan campur tangan manusia, perdagangan algoritma sepenuhnya automatik.
Keputusan yang sama terhadap pelbagai penunjuk penunjuk mudah menimbulkan risiko kesalahan. Ia boleh meredakan syarat-syarat penilaian sebahagiannya dengan sewajarnya, mengurangkan kadar kesalahan.
Perdagangan pendek frekuensi tinggi mempunyai yuran yang lebih tinggi dan sukar untuk menangkap trend. Anda boleh memanjangkan tempoh pegangan dengan sewajarnya, mengejar keuntungan tambahan untuk menebus kos.
Tetapan tanpa kerugian boleh menyebabkan kerugian yang lebih besar. Boleh digabungkan dengan ATR untuk menetapkan titik hentian yang sesuai atau hentian bergerak.
Mengoptimumkan kombinasi parameter. Sesuaikan parameter garis purata untuk menyesuaikan diri dengan tempoh dan varieti yang berbeza.
Menambah mekanisme penangguhan kerugian. Dalam kombinasi dengan penunjuk ATR, garis penangguhan bergerak ditetapkan secara dinamik.
Menambah pengurusan kedudukan. Menyesuaikan kadar jumlah dagangan secara dinamik.
Menggabungkan teknologi pembelajaran mesin untuk mengoptimumkan petunjuk dan isyarat.
Strategi ini menggunakan pelbagai indikator teknikal untuk menilai pergerakan trend dalam masa nyata dan melakukan perdagangan garis pendek frekuensi tinggi. Walaupun terdapat risiko tertentu, ia boleh diperbaiki dengan pengoptimuman. Strategi ini layak untuk dikaji lebih lanjut dan diuji secara langsung, untuk mengurangkan risiko perdagangan dengan menambah stop loss dan pengurusan kedudukan.
/*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)