
Strategi ini dikembangkan berdasarkan sistem perdagangan ekuilibrium terpusat. Ide utamanya adalah untuk mengidentifikasi peluang perdagangan terpusat dan terpusat, yang menggabungkan indikator teori garis rata dengan ekuilibrium terpusat dan aturan manajemen dana.
Strategi ini menggunakan sistem keseimbangan pandang pertama klasik sebagai referensi dasar. Komponen utama meliputi:
Garis pergeseran: Garis tengah. Menggambarkan tren tengah.
Garis acuan: Garis jangka panjang.
Garis depan: Garis prediksi masa depan. Garis yang mencerminkan tren masa depan.
Garis keterbelakangan: Garis masa lalu.
Berdasarkan hal tersebut, strategi ini telah diperbaiki sebagai berikut:
Pilihan parameter waktu mengikuti teori kuadrat bilangan ganjil, sehingga lebih sesuai dengan hukum pasar.
Meningkatkan aturan pengelolaan dana, termasuk stop loss, stop loss, ukuran posisi, dan lain-lain, untuk mengendalikan risiko perdagangan.
Dapat disesuaikan dengan jangkauan respon, sehingga tes strategi lebih komprehensif.
Secara khusus, persyaratan masuk multi-head termasuk bergeser melewati garis dasar, garis tertinggal di atas harga, harga di atas grafik awan, grafik awan memprediksi masa depan pasar banteng, dll. Syarat masuk kosong memerlukan bergeser melewati garis dasar, garis tertinggal di bawah harga, dll.
Peraturan manajemen uang mengharuskan stop loss 30% dan stop loss 5%; stop loss stop loss lebih dari 3 kali ATR pada garis putar.
Keuntungan dari strategi ini, yang menggabungkan indikator garis rata dan manajemen dana, terutama terlihat dalam:
Sistem keseimbangan pertama-tama sendiri mencerminkan tren jangka pendek, menengah dan panjang, entry/exit yang masuk akal.
Parameter optimasi teori kuadrat bilangan ganjil, sesuai dengan hukum statistik pasar.
Aturan pengelolaan dana secara efektif mengendalikan kerugian tunggal dan memastikan bahwa keuntungan lebih besar daripada kerugian.
Rentang pengembalian dapat disesuaikan, pengujian lebih komprehensif ROUND。
Secara keseluruhan, strategi ini secara komprehensif mempertimbangkan faktor-faktor seperti tren, pilihan parameter, kontrol risiko, dan lain-lain, sehingga dapat secara efektif mengidentifikasi peluang yang lebih sedikit, mengendalikan risiko perdagangan, dan memiliki kepraktisan yang sangat kuat.
Risiko utama dari strategi ini adalah:
Sistem kesetaraan mata yang mudah ditipu oleh penembusan palsu, menyebabkan masuk yang tidak perlu. Dapat digabungkan dengan sinyal penyaringan indikator yang lebih banyak.
Aturan stop loss yang tetap dapat dengan mudah disisipkan dan dapat diperkenalkan dengan stop loss yang dinamis.
Data retrospektif tidak komprehensif dan mungkin memperbesar efektivitas strategi. Perlu waktu yang lebih lama dan lebih banyak market retrospektif.
Strategi ini lebih cocok untuk pasar tren, yang mungkin tidak berkinerja baik. Kondisi masuk dapat dioptimalkan untuk mengidentifikasi tren.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Menambahkan penyaringan indikator untuk meningkatkan kualitas masuk. Indikator penilaian tambahan seperti MACD, KDJ dll.
Stop loss yang dinamis. Misalnya, stop loss N kali ATR untuk menembus garis rata-rata, stop loss di bawah level dukungan.
Validasi retrospektif multi-varietas. Validasi stabilitas strategi pada lebih banyak pasar dan data yang lebih panjang.
Membedakan tren dan menyusun pasar. Mengoptimalkan mekanisme masuk, sehingga dapat beradaptasi dengan situasi yang berbeda.
Strategi ini mempertimbangkan berbagai faktor, termasuk tren, pengelolaan dana, dan lain-lain. Strategi ini menggunakan indikator keseimbangan pertama untuk mengidentifikasi peluang perdagangan multihead yang pendek. Selain itu, aturan pengendalian risiko digunakan untuk mengendalikan kerugian tunggal.
/*backtest
start: 2023-11-27 00:00:00
end: 2023-12-27 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// Author Obarut
//@version=5
strategy("İchimoku Strategy With MM Short-Long",overlay=true,process_orders_on_close=true)
//Ichimoku Inputs
ts_period = input.int(8, minval=1, title="Tenkan-Sen Period")
ks_period = input.int(16, minval=1, title="Kijun-Sen Period")
ssb_period = input.int(24, minval=1, title="Senkou-Span B Period")
cs_offset = input.int(16, minval=1, title="Chikou-Span Offset")
ss_offset = input.int(8, minval=1, title="Senkou-Span Offset")
long_entry = input(true, title="Long Entry")
short_entry = input(true, title="Short Entry")
// Back Testing Period Inputs
fromday = input.int(defval=1,title="Start Date",minval=1,maxval=31)
frommonth = input.int(defval=1,title="Start Month",minval=1,maxval=12)
fromyear = input.int(defval=1980,title="Start Year",minval=1800, maxval=2100)
today = input.int(defval=1,title="En Date",minval=1,maxval=31)
tomonth = input.int(defval=1,title="End Month",minval=1,maxval=12)
toyear =input.int(defval=2100,title="End Year",minval=1800,maxval=2200)
start=timestamp(fromyear,frommonth,fromday,00,00)
finish=timestamp(toyear,tomonth,today,00,00)
timewindow= time>=start and time<=finish
//Ichimoku Componenets Calculation Function
middle(len) => math.avg(ta.lowest(len), ta.highest(len))
// Ichimoku Components
tenkan = middle(ts_period)
kijun = middle(ks_period)
senkouA = math.avg(tenkan, kijun)
senkouB = middle(ssb_period)
//Senkou Span Lines slopes
slopetenkan=(tenkan-tenkan[2])/tenkan
slopekijun= (kijun-kijun[2])/kijun
//Avarage True Range
atr = ta.atr(14)
//Senkou Span Lines
ss_above = math.max(senkouA[ss_offset-1], senkouB[ss_offset-1])
ss_below = math.min(senkouA[ss_offset-1], senkouB[ss_offset-1])
// Price Distance From Tenkan
distance = close - tenkan
// Price Distance from Kijun
distancek = close - kijun
// Entry/Exit Signals
tk_cross_kijun_bull = tenkan >= kijun//Tenkan Sen is greater than or equal to Kijun Sen
tk_cross_kijun_bear = tenkan <= kijun//Tenkan Sen is smaller than or equal to Kijun Sen
cs_cross_bull = close > high[cs_offset-1]//Chikou is above the price
cs_cross_bear = close < close[cs_offset-1]//Chikou is below the price
price_above_kumo = close > ss_above//Price is above the Kumo cloud
pbsenkA = close < ss_above // Price is below the Senkou Span which is higher
pasenkB = close > ss_below// Price is above the Senkou span which is lower
price_below_kumo = close < ss_below // Price is below Kumo cloud
future_kumo_bull = senkouA > senkouB and (ta.roc(senkouA,3)>0) and (ta.roc(senkouB,3)>=0) // Future Kumo cloud is bullish
pbtenkan=close<tenkan
tkbelowkij=tenkan<kijun
future_kumo_bear = senkouA < senkouB//Future Kumo cloud is bearish
// Price Distance From Tenken
disbull = distance < 2*atr
//Price Distance From Kijun
disbullk = distancek < 3*atr
//Price Above Tenkan Condition
patk = close > tenkan
// Kijun Above Senkou Span Condition
kjasenkA = kijun > ss_above
// Price Below Kijun Condition
pbkijun = close < kijun
//Consolidation Tenkan and Kijun are inside Kumo cloud
kijuninsidekumo= kijun<ss_above and kijun>ss_below
tenkaninsidekumo= tenkan<ss_above and tenkan>ss_below
consolidation=kijuninsidekumo and tenkaninsidekumo
//Bullish Entry Condition
bullish= tk_cross_kijun_bull and cs_cross_bull and price_above_kumo and future_kumo_bull and disbull and patk
and not consolidation
//Bullish exit
bearish=tk_cross_kijun_bear and pbsenkA and cs_cross_bear and future_kumo_bear
or price_below_kumo
// Bearish Entry Condition
bearish2=tk_cross_kijun_bear and pbtenkan and tkbelowkij and tkbelowkij and cs_cross_bear and future_kumo_bear
if(bullish and timewindow and long_entry )
strategy.entry("Long Entry", strategy.long)
if(bearish2 and timewindow and short_entry)
strategy.entry("Short Entry",strategy.short)
// Bearish Condition
lastentryprice = strategy.opentrades.entry_price(strategy.opentrades - 1)
// Take Profit or Stop Loss in Bearish
exit1= (close-tenkan)>3*atr and slopetenkan<=0
exit2= (close-lastentryprice)>5*atr and close<(tenkan-0.04*atr)
if(bearish and timewindow and not short_entry or exit1 or exit2 or (close>1.30*lastentryprice ) or (close< 0.95*lastentryprice))
strategy.close("Long Entry")
if(bullish and timewindow and not long_entry)
strategy.close("Short Entry")
if(time>finish)
strategy.close_all("time up")
plot(tenkan, color=#0496ff, title="Tenkan-Sen")
plot(kijun, color=#991515, title="Kijun-Sen")
plot(close, offset=-cs_offset+1, color=#2e640e, title="Chikou-Span")
sa=plot(senkouA, offset=ss_offset-1, color=color.rgb(17, 122, 21), title="Senkou-Span A")
sb=plot(senkouB, offset=ss_offset-1, color=color.rgb(88, 8, 8), title="Senkou-Span B")
fill(sa, sb, color = senkouA > senkouB ? color.rgb(198, 234, 198) : color.rgb(208, 153, 153), title="Cloud color")