
Strategi ini menggunakan bentuk persilangan rata-rata dari siklus yang berbeda dan indikator RSI untuk menilai waktu jual beli pasar. Strategi ini dapat dioptimalkan secara real-time dengan menyesuaikan parameter.
Strategi ini terutama menggunakan EMA untuk menentukan kapan harus membeli dan menjual. Strategi ini juga digunakan untuk menentukan kapan harus membeli dan menjual dengan menggunakan indikator RSI.
Secara khusus, logika penilaian sinyal beli adalah: beli saat harga melewati EMA20 di bawah dan EMA50 di atas membentuk garpu emas, sehingga dapat lebih efektif menentukan titik pembalikan tren. Selain itu, Anda juga harus memenuhi kondisi harga penutupan yang lebih kecil dari harga buka dan lebih rendah dari harga terendah sehari sebelumnya, yang dapat menghilangkan beberapa terobosan palsu.
Kami menempatkan parameter yang berbeda pada kondisi pembelian di atas, dan membangun 4 aturan pembelian yang masing-masing sesuai dengan periode rata-rata yang berbeda dan jumlah water_level. Ini dapat dicapai dengan cara membangun posisi secara batch, untuk mencapai distribusi rata-rata jumlah.
Untuk menjual dan keluar, kriteria penilaian adalah: menjual ketika harga di atas melewati EMA10 membentuk dead fork dan indikator RSI menunjukkan sinyal overbought; atau menjual ketika harga di bawah melewati EMA10 membentuk dead fork dan indikator RSI menunjukkan oversold. Selain itu, juga diperiksa syarat untuk memenuhi rasio keuntungan tertentu.
Keuntungan terbesar dari strategi ini adalah dengan menentukan titik balik pasar melalui bentuk persimpangan garis rata, untuk melacak tren. Dibandingkan dengan sistem garis rata tunggal, metode persimpangan dua garis rata dapat memfilter beberapa sinyal palsu. Selain itu, strategi ini juga memperkenalkan indikator RSI untuk menentukan zona overbought dan oversold, yang juga dapat secara efektif mengurangi risiko perdagangan.
Keuntungan lain adalah dengan mengatur parameter untuk membuat posisi batch, cara penambangan piramida ini memungkinkan harga biaya terus bergerak ke bawah, mendapatkan keuntungan maksimal ketika tren muncul. Pada saat yang sama, penyebaran jumlah juga dimungkinkan, mengurangi risiko jumlah tunggal.
Risiko utama dari strategi ini adalah:
Sistem linier sendiri sangat sensitif terhadap keterlambatan dan tidak dapat bereaksi terhadap kejadian yang terjadi, yang dapat menyebabkan tidak dapat menghentikan kerugian secara tepat waktu. Risiko ini dapat dikurangi dengan menambahkan titik berhenti.
Strategi ini tidak membatasi jangka waktu pembelian, jika konfigurasi yang salah mungkin akan membeli lebih awal, sehingga terjebak dalam jangka waktu penyelesaian. Risiko ini dapat diselesaikan dengan membatasi jangka waktu pembelian.
Cara batch-building dalam strategi ini dapat menyebabkan risiko posisi yang terlalu besar dan tidak dapat menanggung penembusan unilateral. Ini dapat mengurangi sebagian risiko ini dengan menyesuaikan parameter level air dan menambahkan mekanisme pengendalian risiko.
Strategi ini juga dapat dioptimalkan dari beberapa arah:
Menambahkan strategi stop loss, stop loss ketika harga turun di bawah beberapa titik dukungan kunci, yang dapat secara efektif mengendalikan risiko penurunan.
Tambahkan modul verifikasi pra-transaksi untuk menilai arah tren skala besar, dan hanya melakukan posisi ketika tren naik, yang dapat menghindari risiko perdagangan mundur.
Pembatasan jangka waktu pembelian, hanya dalam jangka waktu tertentu untuk melakukan penambahan, untuk menghindari pembukaan posisi terlalu dini.
Menggunakan algoritma pembelajaran mesin yang digabungkan dengan penilaian multi-faktor pada saat pembelian dapat meningkatkan peluang strategi.
Artikel ini menjelaskan strategi kuantitatif garis panjang, yang menggunakan bentuk silang garis ganda yang sama untuk menentukan titik masuk dengan indikator RSI, dan mendapatkan efisiensi maksimal dengan cara membangun saham secara bertahap. Strategi ini dapat diterapkan pada sebagian besar indeks dan saham melalui penyesuaian parameter, merupakan strategi pelacakan garis panjang yang lebih umum.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA_zorba1", shorttitle="3 NIFTY RSI EMA", overlay=true)
// Input parameters
qt1 = input.int(1, title="Quantity 1", minval=1)
qt2 = input.int(2, title="Quantity 2", minval=1)
qt3 = input.int(3, title="Quantity 3", minval=1)
qt4 = input.int(4, title="Quantity 4", minval=1)
ema10 = ta.ema(close, 10)
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)
ema100 = ta.ema(close, 100)
ema200 = ta.ema(close, 200)
// RSI(14) condition
rsi_threshold = 65
rsi_crossed_above_70 = ta.rsi(close, 14) > rsi_threshold
rsi_crossed_above_70_two_days_ago = ta.rsi(close[5], 14) > rsi_threshold or ta.rsi(close[4], 14) > rsi_threshold or ta.rsi(close[3], 14) > rsi_threshold
rsi_crossed_above_70_yesterday = ta.rsi(close[1], 14) > rsi_threshold
// Date range filter
start_date = timestamp(year=2021, month=1, day=1)
end_date = timestamp(year=2024, month=1, day=1)
in_date_range = true
// Profit condition
profit_percentage = input(1, title="Profit Percentage") // Adjust this value as needed
// Pyramiding setting
pyramiding = input.int(1, title="Pyramiding", minval=1, maxval=10)
// Buy conditions
buy_condition_1 = in_date_range and close < ema20 and close > ema50 and close < open and close < low[1]
buy_condition_2 = in_date_range and close < ema50 and close > ema100 and close < open and close < low[1]
buy_condition_3 = in_date_range and close < ema100 and close > ema200 and close < open and close < low[1]
buy_condition_4 = in_date_range and close < ema200 and close < open and close < low[1]
// Exit conditions
profit_condition = strategy.position_avg_price * (1 + profit_percentage / 100) <= close
exit_condition_1 = in_date_range and ((close > ema10 and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and rsi_crossed_above_70_two_days_ago) and profit_condition and close < low[1] and close < low[2]
exit_condition_2 = in_date_range and ((close < ema10 and close[1] > ema10 and close < close[1] and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and rsi_crossed_above_70_yesterday) and profit_condition and close < low[1] and close < low[2]
// Strategy logic
strategy.entry("Buy1", strategy.long, qty=qt1 * pyramiding, when=buy_condition_1)
strategy.entry("Buy2", strategy.long, qty=qt2 * pyramiding, when=buy_condition_2)
strategy.entry("Buy3", strategy.long, qty=qt3 * pyramiding, when=buy_condition_3)
strategy.entry("Buy4", strategy.long, qty=qt4 * pyramiding, when=buy_condition_4)
strategy.close("Buy1", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy2", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy3", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy4", when=exit_condition_1 or exit_condition_2)