Ichimoku Cloud Quant Scalping Strategy adalah strategi kuantitatif garis pendek yang menggabungkan carta keseimbangan pertama dan indeks arah purata. Strategi ini menggunakan indikator Ichimoku Cloud untuk menentukan arah trend, dengan penapis indikator ADX untuk pasaran bukan trend, untuk melakukan operasi garis pendek dalam keadaan trend.
Strategi ini terdiri daripada dua bahagian utama:
Indeks Awan Ichimoku untuk Menentukan Arah Trend
Apabila harga di atas awan adalah tren multihead, di bawah adalah tren kosong. Strategi menilai perubahan trend dengan memecahkan Garis Konversi.
ADX lebih besar daripada 20 menunjukkan keadaan trend, ketika strategi menghasilkan isyarat perdagangan. Kurang daripada 20 menunjukkan penumpuan, ketika strategi tidak diperdagangkan.
Peraturan transaksi:
Strategi ini mempunyai kelebihan berikut:
Ichimoku Cloud Indicator dapat menentukan arah dan titik perubahan trend dengan tepat, dan dengan ADX Indicator, penyaringan pasaran untuk mengelakkan penembusan palsu.
Kawalan penarikan balik. Tetapan stop loss 150 untuk mengawal kerugian tunggal.
Rasio keuntungan dan kerugian yang tinggi. Stop loss adalah 200 mata, stop loss adalah 150 mata, rasio keuntungan dan kerugian sehingga 1.33, mudah untuk mendapat keuntungan.
Frekuensi dagangan sederhana. Dagangan hanya dalam keadaan yang sedang tren, tidak kerap masuk ke pasaran.
Strategi ini juga mempunyai risiko:
Risiko kegagalan penghakiman trend. Indeks Awan Ichimoku akan menghasilkan isyarat yang salah apabila penghakiman trend bertukar kepada kegagalan.
Hentikan kerugian yang dilalui oleh risiko. Hentikan kerugian dalam keadaan yang cepat mungkin dapat ditembusi. Anda boleh menetapkan hentikan bergerak atau mempertimbangkan untuk meningkatkan jangkauan hentikan kerugian.
Risiko dagangan malam dan sebelum tutup. Strategi secara lalai hanya berlaku pada perdagangan hari, penilaian malam dan sebelum tutup mungkin tidak berkesan. Anda boleh menetapkan perdagangan 24 jam atau membuat strategi perdagangan secara berasingan selepas tutup sebelum tutup.
Strategi ini boleh dioptimumkan dalam beberapa arah:
Optimasi parameter indikator awan Ichimoku. Anda boleh menguji pelbagai parameter garisan penukaran, garisan asas dan garisan pilihan untuk mencari kombinasi parameter yang terbaik.
Parameter ADX dan pengoptimuman had. Anda boleh menguji parameter kitaran ADX dan nilai had filter untuk mencari parameter yang optimum.
Optimasi Stop Loss. Titik Stop Loss yang optimum boleh ditentukan berdasarkan data sejarah.
Strategi berhenti bergerak. Tetapkan berhenti bergerak untuk lebih baik mengikuti trend keuntungan.
Indikator bantuan untuk menilai trend. Menambah trend penilaian bantuan indikator seperti MACD, KD, meningkatkan ketepatan isyarat.
Pengoptimuman adaptasi. Menetapkan parameter strategi perdagangan secara berasingan untuk varieti yang berbeza.
Ichimoku Cloud Quantitative Short Line Strategy mengintegrasikan kelebihan Ichimoku Cloud Indicator dan ADX Indicator, baik untuk menentukan titik perubahan trend dengan tepat, tetapi juga untuk menghapuskan pasaran yang betul, untuk mengelakkan isyarat palsu. Strategi ini mempunyai nisbah kerugian yang tinggi, pengunduran yang boleh dikawal, sesuai untuk mengikuti trend untuk melakukan operasi garis pendek.
/*backtest
start: 2023-12-13 00:00:00
end: 2023-12-20 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy(title='[STRATEGY][RS]Spot/Binary Scalper V0', shorttitle='IC', overlay=true, initial_capital=100000, currency=currency.USD)
// || Adapted from:
// || http://www.binaryoptionsedge.com/topic/1414-ta-spot-scalping-it-works-damn-good/?hl=singh
// || Ichimoku cloud:
conversionPeriods = input(title='Conversion Periods:', defval=7, minval=1),
basePeriods = 26//input(title='Base Periods', defval=26, minval=1)
laggingSpan2Periods = 52//input(title='Lagging Span:', defval=52, minval=1),
displacement = 26//input(title='Displacement:', defval=26, minval=1)
f_donchian(_len) => avg(lowest(_len), highest(_len))
f_ichimoku_cloud(_conversion_periods, _base_periods, _lagging_span)=>
_conversion_line = f_donchian(_conversion_periods)
_base_line = f_donchian(_base_periods)
_lead_line1 = avg(_conversion_line, _base_line)
_lead_line2 = f_donchian(_lagging_span)
[_conversion_line, _base_line, _lead_line1, _lead_line2]
[conversionLine, baseLine, leadLine1, leadLine2] = f_ichimoku_cloud(conversionPeriods, basePeriods, laggingSpan2Periods)
//ps0 = plot(title='A', series=leadLine1, color=green, linewidth=2)
//ps1 = plot(title='B', series=leadLine2, color=red, linewidth=2)
//fill(title='AB', plot1=ps0, plot2=ps1, color=blue, transp=80)
//plot(title='Base', series=baseLine, color=blue, linewidth=1, offset=displacement)
plot(title='Conversion', series=conversionLine, color=blue, linewidth=1)
// ||----------------------------------------------------------------------------------------------------------------------------------------------||
// || ADX
len = input(title="Length", defval=14)
th = input(title="threshold", defval=20)
TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1])))
DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0
DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0
SmoothedTrueRange = nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/len) + TrueRange
SmoothedDirectionalMovementPlus = nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1])/len) + DirectionalMovementPlus
SmoothedDirectionalMovementMinus = nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1])/len) + DirectionalMovementMinus
DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100
DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100
DX = abs(DIPlus-DIMinus) / (DIPlus+DIMinus)*100
ADX = sma(DX, len)
// ||----------------------------------------------------------------------------------------------------------------------------------------------||
// || Trade session:
USE_TRADESESSION = input(title='Use Trading Session?', type=bool, defval=true)
trade_session = input(title='Trade Session:', defval='0400-1500', confirm=false)
istradingsession = not USE_TRADESESSION ? false : not na(time('1', trade_session))
bgcolor(istradingsession?gray:na)
// ||----------------------------------------------------------------------------------------------------------------------------------------------||
// || Strategy:
trade_size = input(title='Trade Size:', defval=1)
stop_loss_in_ticks = input(title='Stop Loss in ticks:', defval=150)
take_profit_in_ticks = input(title='Take Profit in ticks:', defval=200)
buy_icloud_signal = open < conversionLine and close > conversionLine
buy_adx_signal = DIPlus > 20
buy_signal = istradingsession and buy_icloud_signal and buy_adx_signal
sel_icloud_signal = open > conversionLine and close < conversionLine
sel_adx_signal = DIMinus > 20
sel_signal = istradingsession and sel_icloud_signal and sel_adx_signal
strategy.order('buy', long=true, qty=trade_size, comment='buy', when=buy_signal)
strategy.order('sel', long=false, qty=trade_size, comment='sel', when=sel_signal)
strategy.exit('exit buy', from_entry='buy', profit=take_profit_in_ticks, loss=stop_loss_in_ticks)
strategy.exit('exit sel', from_entry='sel', profit=take_profit_in_ticks, loss=stop_loss_in_ticks)