Jadual Keseimbangan Campuran Ichimoku Macd dan Tsi Strategi Gabungan

Penulis:ChaoZhang, Tarikh: 2023-11-27 11:50:43
Tag:

img

I. Ringkasan Strategi

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.

II. Prinsip Strategi

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.

III. Kelebihan Strategi

  1. Menggunakan gabungan beberapa penunjuk meningkatkan ketepatan penilaian.

  2. Operasi jangka pendek mengesan turun naik pasaran dalam masa nyata.

  3. Tiada campur tangan manual, perdagangan algoritma sepenuhnya automatik.

IV. Risiko Strategi dan Penyelesaian

  1. Penghakiman gabungan beberapa penunjuk yang bullish atau bearish pada masa yang sama mempunyai risiko penilaian yang salah.

  2. Perdagangan jangka pendek frekuensi tinggi mempunyai yuran komisen yang agak tinggi dan sukar untuk menangkap trend.

  3. Tiada tetapan stop loss boleh membawa kepada kerugian yang lebih besar. Titik stop loss yang sesuai atau pergerakan stop loss boleh ditetapkan berdasarkan ATR.

V. Arahan untuk Pengoptimuman Strategi

  1. Mengoptimumkan kombinasi parameter. Sesuaikan parameter purata bergerak untuk menyesuaikan diri dengan kitaran dan varieti yang berbeza.

  2. Tingkatkan mekanisme stop loss. Tetapkan garis stop loss dinamik digabungkan dengan penunjuk ATR.

  3. Tingkatkan pengurusan kedudukan. Sesuaikan secara dinamik perkadaran jumlah dagangan.

  4. Menggabungkan teknologi pembelajaran mesin untuk mengoptimumkan penunjuk dan isyarat.

VI. Kesimpulan

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)

Lebih lanjut