
Strategi ini menghasilkan isyarat beli apabila harga melintasi EMA di atas dan isyarat jual apabila harga melintasi EMA di bawah, dan menggunakan stop loss dinamik untuk menguruskan risiko.
Logik utama strategi ini ialah:
Hitung ATR sebagai garis henti, nilai ATR digunakan untuk mengira jarak henti nLoss
Untuk menentukan sumber harga berdasarkan pilihan pilihan Heikin Ashi h, secara lalai menggunakan harga penutupan close, jika dipilih Heikin Ashi maka menggunakan harga penutupan untuk pilihan tersebut
Definisi xATRTrailingStop sebagai trailing stop line yang bergerak, berdasarkan perbandingan harga dengan stop line K sebelumnya, untuk menentukan stop line K semasa
Mendefinisikan pos, yang ditetapkan sebagai 1 ((membuat lebih banyak apabila harga melewati barisan penghentian), yang ditetapkan sebagai -1 ((membuat kosong apabila harga melewati barisan penghentian), atau 0 ((mempunyai kosong)
Mengira nilai garis purata EMA pada satu baris K, mentakrifkan indikator atas (sinyal beli) dan bawah (sinyal jual)
Setting trade entry and exit semasa berlaku tanda beli dan jual
Fungsi barcolor digunakan untuk menandakan warna garis K berdasarkan kedudukan
Gunakan plotshape untuk menandakan isyarat semasa membeli dan menjual
Strategi ini menguruskan risiko dengan menghentikan dinamik ATR, untuk memasuki dalam masa yang tepat apabila trend muncul, dan berhenti dalam masa yang tepat apabila garis berhenti dipicu.
Strategi ini mempunyai kelebihan berikut:
Dengan menggunakan ATR, anda boleh menyesuaikan jarak hentian mengikut tahap turun naik pasaran, sambil menjamin hentian dan mengelakkan hentian yang terlalu radikal yang dicetuskan oleh turun naik harga jangka pendek
EMA digunakan untuk menghasilkan isyarat dagangan yang boleh menyaring beberapa transaksi yang tidak perlu yang disebabkan oleh penembusan palsu
Ianya membolehkan pilihan Heikin Ashi sebagai sumber harga dan boleh menapis bunyi bising untuk mengenal pasti trend
Pengurusan kedudukan yang jelas, lebih banyak kedudukan kosong yang jelas, mengelakkan perdagangan yang sering dijejaki yang menyebabkan kerugian
Menunjukkan isyarat perdagangan dan halangan secara visual melalui garis, penanda dan warna
Logik strategi ringkas dan jelas, mudah difahami dan diubah suai
Siklus ATR dan ATR Stop Loss Factor yang boleh disesuaikan untuk menyesuaikan diri dengan keadaan pasaran yang berbeza
Secara keseluruhannya, strategi ini mengintegrasikan teknologi trend tracking dan stop loss dinamik untuk mengenal pasti trend dengan berkesan dan menguruskan risiko, sesuai untuk perdagangan yang mengikuti trend garis tengah dan panjang.
Strategi ini juga mempunyai risiko:
EMA rata-rata menghasilkan isyarat dagangan yang mungkin terlewat, kehilangan peluang garis pendek
Jarak hentian ditentukan oleh ATR, mudah terputus semasa turun naik pasaran
Bayaran dua hala dalam urus niaga sebenar, tanpa mengira kos, menjejaskan keuntungan
Tidak ada kawalan kedudukan yang betul dan perlu diperbaiki dalam pengurusan wang
Kesan bergantung pada pengoptimuman parameter, parameter yang perlu disesuaikan untuk pasaran yang berbeza
Mudah Terjerat di Tengah Pergolakan Pasar
Memantau, campur tangan atau menghentikan strategi
Risiko boleh dikurangkan dengan cara mengoptimumkan parameter yang sesuai, mengatur kawalan kedudukan, menggabungkan isyarat penapis petunjuk lain dan lain-lain. Dalam perdagangan cakera hidup, anda perlu mengawal saiz kedudukan, terus memantau kesan strategi, campur tangan atau penutupan manual jika perlu.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Menyesuaikan parameter ATR untuk membuat jarak henti lebih munasabah dalam pasaran yang berbeza
Uji penunjuk keserasian yang berbeza untuk menyaring lebih jauh isyarat palsu
Menambah indikator penilaian trend, mengenal pasti arah trend dan masuk semula
Tetapkan kawalan kedudukan untuk mengehadkan jumlah kedudukan satu arah
Meningkatkan syarat untuk membuka kedudukan, seperti jumlah dagangan, harga penutupan jauh dari garis purata dan sebagainya
Mengambil kira faktor kos, menetapkan jarak hentian kerugian berdasarkan bayaran bayaran
Mengoptimumkan masa beli dan jual, menggabungkan pelbagai isyarat dan petunjuk
Tetapkan penangguhan separa atau penangguhan bergerak
Tambah fungsi pengoptimuman parameter, mengoptimumkan parameter ujian secara automatik
Strategi ini dapat disempurnakan lagi dengan menggunakan pelbagai petunjuk teknikal dan kaedah pengoptimuman secara komprehensif, untuk mendapatkan kesan yang lebih stabil di lebih banyak pasaran.
Strategi ini mengintegrasikan teknologi berhenti dinamik dan trend tracking, dengan kelebihan seperti berhenti yang berkesan, mengikuti dengan lancar, mudah difahami dan dioptimumkan, sesuai untuk mengikuti pola trend garis tengah dan panjang. Tetapi juga perlu berhati-hati untuk mengawal risiko, parameter pengoptimuman. Jika menggunakan strategi ini dengan baik, anda boleh mendapatkan hasil yang baik di pasaran yang jelas trend. Secara keseluruhan, strategi ini memberikan pemikiran perdagangan yang ringkas dan praktikal untuk trend tracking dan pengurusan risiko.
/*backtest
start: 2022-10-25 00:00:00
end: 2023-10-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="UT Bot Strategy", overlay = true)
//CREDITS to HPotter for the orginal code. The guy trying to sell this as his own is a scammer lol.
// Inputs
a = input(1, title = "Key Vaule. 'This changes the sensitivity'")
c = input(10, title = "ATR Period")
h = input(false, title = "Signals from Heikin Ashi Candles")
xATR = atr(c)
nLoss = a * xATR
src = h ? security(heikinashi(syminfo.tickerid), timeframe.period, close, lookahead = false) : close
xATRTrailingStop = 0.0
xATRTrailingStop := iff(src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), src - nLoss),
iff(src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), src + nLoss),
iff(src > nz(xATRTrailingStop[1], 0), src - nLoss, src + nLoss)))
pos = 0
pos := iff(src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0), 1,
iff(src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0)))
xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue
ema = ema(src,1)
above = crossover(ema, xATRTrailingStop)
below = crossover(xATRTrailingStop, ema)
buy = src > xATRTrailingStop and above
sell = src < xATRTrailingStop and below
barbuy = src > xATRTrailingStop
barsell = src < xATRTrailingStop
plotshape(buy, title = "Buy", text = 'Buy', style = shape.labelup, location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny)
plotshape(sell, title = "Sell", text = 'Sell', style = shape.labeldown, location = location.abovebar, color= color.red, textcolor = color.white, transp = 0, size = size.tiny)
barcolor(barbuy ? color.green : na)
barcolor(barsell ? color.red : na)
strategy.entry("long", true, when = buy)
strategy.entry("short", false, when = sell)