
Strategi ini menghasilkan sinyal beli ketika harga melewati EMA di atas, menghasilkan sinyal jual ketika harga melewati EMA di bawah, dan menggunakan stop loss dinamis untuk mengelola risiko.
Logika inti dari strategi ini adalah:
Perhitungan ATR sebagai garis stop loss, nilai ATR digunakan untuk menghitung jarak stop loss nLoss
Untuk menentukan sumber harga berdasarkan opsi h dari Heikin Ashi, secara default gunakan harga close, jika dipilih Heikin Ashi maka gunakan harga close dari opsi tersebut
Definisi xATRTrailingStop sebagai tracking stop line yang dinamis, berdasarkan perbandingan harga dengan stop line dari K line sebelumnya, untuk menentukan stop line dari K line saat ini
Tentukan posisi pos, yang disetel ke 1 ((membuat lebih banyak) ketika harga melewati garis penghentian di atas, disetel ke -1 ((membuat kosong) ketika harga melewati garis penghentian di bawah, atau 0 ((posisi kosong))
Hitung nilai rata-rata EMA dari satu garis K, yang mendefinisikan indikator atas (sinyal beli) dan bawah (sinyal jual)
Setting trade entry and exit saat sinyal buy and sell terjadi
Fungsi barcolor digunakan untuk menandai warna garis K berdasarkan posisi
Gunakan plotshape untuk menandai sinyal saat membeli dan menjual
Strategi ini mengelola risiko melalui stop loss dinamis ATR, yang dapat masuk tepat waktu saat tren muncul, dan berhenti tepat waktu saat garis stop loss dipicu.
Strategi ini memiliki keuntungan sebagai berikut:
Dengan menggunakan ATR, stop loss dinamis dapat disesuaikan dengan tingkat fluktuasi pasar, dengan menjamin stop loss dan menghindari stop loss yang terlalu radikal yang dipicu oleh fluktuasi harga jangka pendek.
Dengan menggunakan EMA untuk menghasilkan sinyal perdagangan, Anda dapat menyaring transaksi yang tidak perlu yang disebabkan oleh beberapa terobosan palsu.
Memungkinkan untuk memilih Heikin Ashi sebagai sumber harga, yang dapat menyaring kebisingan untuk mengidentifikasi tren
Manajemen posisi yang jelas, melakukan lebih banyak posisi kosong yang jelas, menghindari seringnya transaksi yang disebabkan oleh penghentian kerugian
Sinyal perdagangan dan stop loss ditampilkan secara intuitif dengan garis, tanda, dan warna
Strategi logis sederhana dan jelas, mudah dipahami dan dimodifikasi
Siklus ATR yang dapat disesuaikan dan ATR stop loss multiplier untuk menyesuaikan dengan kondisi pasar yang berbeda
Secara keseluruhan, strategi ini mengintegrasikan teknik pelacakan tren dan stop loss dinamis, yang dapat secara efektif mengidentifikasi tren dan mengelola risiko, yang berlaku untuk perdagangan yang melacak tren lini tengah-panjang.
Strategi ini juga memiliki beberapa risiko:
EMA rata-rata menghasilkan sinyal perdagangan yang mungkin tertinggal, kehilangan peluang garis pendek
Jarak stop loss ditentukan oleh ATR, yang cenderung sering stop loss pada saat pasar bergejolak
Tidak mempertimbangkan faktor biaya, biaya transaksi bilateral akan mempengaruhi keuntungan
Tidak ada pengendalian posisi yang tepat, perlu perbaikan dalam pengelolaan dana
Efeknya tergantung pada optimasi parameter, parameter yang perlu disesuaikan untuk pasar yang berbeda
Di tengah-tengah pasar yang bergejolak, mudah untuk terjebak.
Memantau, mengintervensi, atau menghentikan strategi
Risiko dapat dikurangi dengan cara mengoptimalkan parameter yang tepat, mengatur kontrol posisi, dan menggabungkan sinyal penyaringan indikator lainnya. Dalam perdagangan langsung, ukuran posisi harus dikendalikan, efek strategi terus dimonitor, intervensi manual atau penutupan jika diperlukan.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Menyesuaikan parameter ATR untuk membuat stop loss lebih masuk akal di berbagai pasar
Uji indikator keseragaman yang berbeda untuk menyaring sinyal palsu lebih lanjut
Menambahkan indikator penilaian tren, mengidentifikasi arah tren, dan kemudian masuk
Mengatur kontrol posisi, membatasi jumlah posisi satu arah
Meningkatkan kondisi untuk membuka posisi, seperti volume transaksi, harga penutupan jauh dari garis rata-rata, dan sebagainya
Pertimbangkan faktor biaya, atur jarak stop loss berdasarkan biaya proses
Mengoptimalkan waktu pembelian dan penjualan, menggabungkan berbagai sinyal dan indikator
Setting partial stop atau mobile stop
Tambahkan fungsi optimasi parameter, optimasi parameter tes secara otomatis
Strategi ini dapat disempurnakan lebih lanjut dengan menggunakan berbagai indikator teknis dan metode optimasi secara komprehensif, sehingga dapat memberikan efek yang lebih stabil di lebih banyak pasar.
Strategi ini mengintegrasikan stop loss dinamis dan teknik pelacakan tren, dengan keuntungan seperti stop loss yang efektif, pelacakan yang lancar, dan mudah dipahami dan dioptimalkan, cocok untuk mengikuti pola tren garis tengah dan panjang. Namun, perhatikan juga pengendalian risiko, parameter optimasi. Jika strategi ini digunakan dengan baik, dalam pasar yang jelas tren, dapat memperoleh hasil yang baik. Secara keseluruhan, strategi ini memberikan ide perdagangan yang sederhana dan praktis untuk pelacakan tren dan manajemen 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)