Strategi ini dinamakan sebagai strategi perdagangan kuantitatif yang berasaskan penembusan awan dan indikator ADX. Ia menggabungkan analisis teknikal grafik awan dan indeks trend rata-rata (ADX) untuk menentukan kapan untuk membina kedudukan overhead atau kosong. Secara khusus, ia membina kedudukan apabila harga menembusi kawasan penting dari grafik awan dan indikator ADX menunjukkan trend yang kuat.
Strategi ini menggunakan corak grafik awan dalam indikator awan untuk menentukan kawasan sokongan dan rintangan penting. Ia juga menggabungkan kekuatan trend dengan indikator ADX. Peraturan strategi perdagangan khusus adalah sebagai berikut:
Tanda-tanda penubuhan gudang berbilang kepala:
Isyarat untuk membina gudang kosong:
Strategi ini digabungkan dengan analisis grafik teknikal dan indikator analisis trend, yang dapat menentukan pergerakan pasaran dan kawasan yang kuat. Kelebihan spesifiknya adalah sebagai berikut:
Strategi ini juga mempunyai beberapa risiko, yang kebanyakannya tertumpu pada ketidakstabilan yang ditentukan oleh indeks ADX. Risiko dan penyelesaian khusus adalah sebagai berikut:
Strategi ini juga boleh dioptimumkan dalam beberapa aspek:
Strategi ini menggabungkan analisis grafik awan dan indikator penilaian trend ADX, membentuk satu set strategi perdagangan kuantitatif yang jelas dan lengkap. Ia menentukan kawasan rintangan sokongan utama sambil mengimbangi penilaian trend, dapat menangkap peluang pasaran dengan berkesan.
/*backtest
start: 2023-01-26 00:00:00
end: 2024-02-01 00:00:00
period: 1d
basePeriod: 1h
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/
// © Coinrule
//@version=5
strategy('Ichimoku Cloud with ADX (By Coinrule)',
overlay=true,
initial_capital=1000,
process_orders_on_close=true,
default_qty_type=strategy.percent_of_equity,
default_qty_value=30,
commission_type=strategy.commission.percent,
commission_value=0.1)
showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2022, 1, 1, 0, 0)
// Stop Loss and Take Profit for Shorting
Stop_loss = input(1) / 100
Take_profit = input(5) / 100
longStopPrice = strategy.position_avg_price * (1 - Stop_loss)
longTakeProfit = strategy.position_avg_price * (1 + Take_profit)
// Inputs
ts_bars = input.int(9, minval=1, title='Tenkan-Sen Bars')
ks_bars = input.int(26, minval=1, title='Kijun-Sen Bars')
ssb_bars = input.int(52, minval=1, title='Senkou-Span B Bars')
cs_offset = input.int(26, minval=1, title='Chikou-Span Offset')
ss_offset = input.int(26, minval=1, title='Senkou-Span Offset')
long_entry = input(true, title='Long Entry')
short_entry = input(true, title='Short Entry')
middle(len) => math.avg(ta.lowest(len), ta.highest(len))
// Ichimoku Components
tenkan = middle(ts_bars)
kijun = middle(ks_bars)
senkouA = math.avg(tenkan, kijun)
senkouB = middle(ssb_bars)
// Plot Ichimoku Kinko Hyo
plot(tenkan, color=color.new(#0496ff, 0), title='Tenkan-Sen')
plot(kijun, color=color.new(#991515, 0), title='Kijun-Sen')
plot(close, offset=-cs_offset + 1, color=color.new(#459915, 0), title='Chikou-Span')
sa = plot(senkouA, offset=ss_offset - 1, color=color.new(color.green, 0), title='Senkou-Span A')
sb = plot(senkouB, offset=ss_offset - 1, color=color.new(color.red, 0), title='Senkou-Span B')
fill(sa, sb, color=senkouA > senkouB ? color.green : color.red, title='Cloud color', transp=90)
ss_high = math.max(senkouA[ss_offset - 1], senkouB[ss_offset - 1])
ss_low = math.min(senkouA[ss_offset - 1], senkouB[ss_offset - 1])
// ADX
[pos_dm, neg_dm, avg_dm] = ta.dmi(14, 14)
// Entry/Exit Signals
tk_cross_bull = tenkan > kijun
tk_cross_bear = tenkan < kijun
cs_cross_bull = ta.mom(close, cs_offset - 1) > 0
cs_cross_bear = ta.mom(close, cs_offset - 1) < 0
price_above_kumo = close > ss_high
price_below_kumo = close < ss_low
bullish = tk_cross_bull and cs_cross_bull and price_above_kumo and avg_dm < 45 and pos_dm > neg_dm
bearish = tk_cross_bear and cs_cross_bear and price_below_kumo and avg_dm > 45 and pos_dm < neg_dm
strategy.entry('Long', strategy.long, when=bullish and long_entry and timePeriod)
strategy.close('Long', when=bearish and not short_entry)
strategy.entry('Short', strategy.short, when=bearish and short_entry and timePeriod)
strategy.close('Short', when=bullish and not long_entry)