
Strategi ini menggunakan indikator EMA untuk mengidentifikasi tren harga saham, dan menggabungkan sinyal jual beli dengan perhitungan standard spread, untuk mencapai strategi perdagangan yang melacak tren. Gagasan utama adalah menghitung perbedaan harga saat ini dengan EMA, dan menetapkan harga beli.
Strategi pertama menghitung perbedaan harga tutup dengan EMA yang panjangnya adalah ema_length v. Kemudian menghitung perbedaan standar siklus ema_length v. Kemudian menentukan koefisien arah beli k, k adalah 1 untuk membeli bullish dan k adalah -1 untuk membeli bullish. Kemudian menghitung sinyal beli pada ambang batas dev_limit, yaitu k kali dengan dev dan kemudian kali dengan faktor pembatasan.
Strategi ini menawarkan dua model:
Beli turun, beli dev_limit ketika v berada di bawah negatif, yaitu mengikuti tren turun.
Pembelian pada mata uang kripto, ketika dev_limit di v naik, berarti mengikuti tren kenaikan.
Secara keseluruhan, strategi ini memungkinkan pelacakan tren dengan mengkalkulasi secara dinamis perbedaan standar antara harga dan EMA, dan menetapkan ambang batas pembelian. Parameter faktor mengontrol sensitivitas sinyal pembelian. Panjang EMA mengontrol siklus EMA.
Strategi ini memiliki keuntungan sebagai berikut:
Menggunakan indikator EMA untuk mengidentifikasi arah tren harga, indikator EMA meluruskan harga, dan mengidentifikasi tren bekerja dengan baik.
Penghitungan margin dinamis dengan standar deviasi lebih mudah beradaptasi dengan perubahan pasar dibandingkan dengan margin tetap.
Dua mode pembelian dapat dipilih untuk melacak tren naik atau tren turun.
Parameter factor menyediakan ruang untuk menyesuaikan sensitivitas pembelian. Parameter ema_length dapat menyesuaikan parameter optimasi siklus EMA.
Strategi logisnya jelas dan sederhana, mudah dipahami dan dimodifikasi.
Strategi Posisi Manajemen yang Fleksibel dan Positif untuk Menjaga Tren Naik dan Turun
Strategi ini juga memiliki risiko sebagai berikut:
Indikator EMA terbelakang dan mungkin melewatkan titik balik tren.
Bergantung pada optimasi parameter, jika parameter tidak diatur dengan benar, mungkin terlalu sensitif atau lambat.
Mengikuti tren dapat menyebabkan kerugian besar jika tren berbalik.
Transformasi multispace sering menyebabkan transaksi sering.
Dalam situasi gempa besar, sinyal sering muncul dan biaya transaksi meningkat.
Untuk menghadapi risiko-risiko ini, Anda dapat mempertimbangkan untuk menambahkan strategi pengendalian risiko stop loss, mengoptimalkan pengujian kombinasi parameter untuk menemukan parameter terbaik, menambahkan kondisi penyaringan untuk menghindari terlalu sering perdagangan, dll.
Strategi ini dapat dioptimalkan dengan:
Uji efek parameter dari siklus EMA yang berbeda untuk menemukan panjang siklus EMA yang optimal.
Mengambil nilai yang berbeda dari faktor tes, mencari sensitivitas nilai terendah yang optimal.
Mengoptimalkan strategi manajemen posisi terbuka, misalnya dengan cara menaikkan posisi sesuai tren.
Tambahkan filter indikator lain untuk menghindari kesalahan perdagangan dalam situasi yang bergejolak.
Meningkatkan strategi stop loss untuk mengendalikan kerugian tunggal.
Mengoptimalkan parameter untuk kedua mode pembelian, mencari kombinasi parameter terbaik.
Studi tentang sinyal pembalikan tren, dan pengaturan untuk mematikan pelacakan tren.
Strategi ini didasarkan pada identifikasi arah tren EMA, dan secara dinamis menghitung threshold menghasilkan sinyal beli dan jual, untuk mencapai pelacakan tren. Logika strategi sederhana dan jelas, dapat secara fleksibel mengkonfigurasi manajemen posisi untuk secara aktif melacak tren. Strategi ini juga memiliki risiko tertentu, yang memerlukan pengujian optimasi pada kombinasi parameter, dan didukung dengan StopIteration strategi pengendalian risiko.
/*backtest
start: 2023-10-06 00:00:00
end: 2023-11-05 00:00:00
period: 1h
basePeriod: 15m
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/
// © Azzrael
// Based on EMA and EMA Oscilator https://www.tradingview.com/script/qM9wm0PW-EMA-Oscilator-Azzrael/
// (EMA - close) + Std Dev + Factor = detecting oversell/overbuy
// Long only!
// Pyramiding - sometimes, depends on ...
// There 2 enter strategies in one script
// 1 - Classic, buy on entering to OverSell zone (more profitable ~> 70%)
// 2 - Crazy, buy on entering to OverBuy zone (catching trend and pyramiding, more net profit)
// Exit - crossing zero of (EMA - close)
//@version=5
strategy("STR:EMA Oscilator [Azzrael]", overlay=false,
margin_long=100,
margin_short=100,
currency=currency.USD,
default_qty_type=strategy.percent_of_equity,
default_qty_value=30,
pyramiding=3)
entry_name="Buy"
ema_length = input.int(200, "Period", minval=2, step=10)
limit = input.float(1.7, "Factor", minval=1, step=0.1, maxval=10)
dno = input.string(defval="Buy on enter to OverSell", title="Model", options=["Buy on enter to OverSell", "Buy on enter to OverBuy"]) == "Buy on enter to OverSell"
v = close - ta.ema(close, ema_length)
dev = ta.stdev(v, ema_length)
k = dno ? -1 : 1
dev_limit = k*dev*limit
cond_long = dno ? ta.crossunder(v, dev_limit) : ta.crossover(v, dev_limit)
cond_close = ta.cross(v, 0)
// dev visualization
sig_col = (dno and v <= dev_limit) or (not dno and v >= dev_limit) ? color.green : color.new(color.blue, 80)
plot(dev_limit, color=color.green)
plot(k*dev, color=color.new(color.blue, 60))
plot(v, color=sig_col )
hline(0)
// Make love not war
strategy.entry(entry_name, strategy.long, when=cond_long)
strategy.close(entry_name, when=cond_close)