Ini adalah strategi perdagangan jangka pendek berdasarkan momentum breakout dan mean reverson. Ini menggabungkan beberapa indikator termasuk moving average, pola candlestick, volume dan volatilitas untuk mengidentifikasi peluang arah dengan momentum breakout untuk menangkap tren jangka pendek.
Gunakan EMA 3 hari sebagai garis rata-rata bergerak referensi.
Harga buka lebih tinggi dari harga OHLC hari sebelumnya (rata-rata harga buka, tinggi, rendah dan tutup).
Volume lebih rendah dari volume hari sebelumnya. Ini menunjukkan momentum yang tidak cukup, yang mendukung penembusan arah (Cond03).
Harga penutupan keluar dari kisaran harga hari sebelumnya. Ini menandakan terobosan (Cond04).
Ketika semua 4 kondisi di atas terpenuhi, pergi panjang (Entry).
Aturan keluar: tutup posisi jika bar sejak masuk melebihi 10 atau profit maksimum menutup mencapai 5 (Exits).
Strategi ini menggabungkan beberapa indikator untuk menentukan arah terobosan pasar untuk menangkap tren jangka pendek.
Menggunakan beberapa indikator membantu menyaring kebocoran palsu dan mengidentifikasi kebocoran yang valid.
Momentum yang tidak cukup mendukung arah breakout dan tren ignition, memungkinkan menangkap arah yang lebih jelas peluang.
Frekuensi perdagangan yang tinggi cocok untuk perdagangan jangka pendek untuk mengunci keuntungan kecil yang cepat.
Stop loss dan take profit yang wajar memungkinkan kerugian perdagangan tunggal yang efektif dan pengendalian risiko.
Berbagai perdagangan terbuka secara bersamaan menimbulkan risiko perdagangan berlebihan.
Pengaturan parameter statis mungkin terlalu kaku. parameter adaptif dapat diperkenalkan.
Probabilitas gagal breakout ada, yang dapat menyebabkan kehilangan perdagangan.
Fokus hanya pada informasi jangka pendek tanpa pemahaman yang komprehensif tentang tren utama.
Stop loss point mungkin terlalu ketat. bisa memperluas ke 20-30 bar.
Menggabungkan penentuan tren untuk menghindari perdagangan melawan tren utama. Rata-rata bergerak jangka panjang dapat ditambahkan untuk hanya mengambil perdagangan di sepanjang arah tren utama.
Optimalkan pengaturan parameter. Periode EMA, parameter breakout dapat diuji dan dioptimalkan agar sesuai dengan kondisi pasar yang berbeda. Parameter adaptif juga dapat digunakan untuk penyesuaian otomatis.
Indikator tambahan lainnya seperti A/D, Bollinger Band Width, RSI dapat ditambahkan untuk memverifikasi validitas breakout dan mengurangi breakout palsu.
Backtest secara ekstensif, memeriksa kinerja di bawah kondisi pasar yang ekstrim.
Mempertimbangkan trailing stop loss, persentase stop loss, adaptive stop loss dll untuk membuat stop lebih fleksibel.
Strategi ini mengintegrasikan EMA, volume, volatilitas dan indikator lainnya untuk mengidentifikasi peluang jangka pendek dengan momentum. Ini adalah strategi breakout jangka pendek khas dengan pengembalian yang sering dan operasi gesit untuk mengunci keuntungan cepat. Tetapi terlalu banyak berfokus pada informasi terbaru tanpa pemahaman yang komprehensif tentang tren utama. Kita dapat mengoptimalkannya dengan memasukkan faktor tren, mengoptimalkan parameter, meningkatkan validitas breakout, menguji kondisi ekstrem untuk membuat strategi lebih kuat dan adaptif.
/*backtest start: 2023-10-01 00:00:00 end: 2023-10-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Free Strategy #01 (ES / SPY)", overlay=true) // Inputs Quantity = input(1, minval=1, title="Quantity") EmaPeriod = input(3, minval=1, title="EMA Period") MaxProfitCloses = input(5, minval=1, title="Max Profit Close") MaxBars = input(10, minval=1, title="Max Total Bars") // Misc Variables src = close BarsSinceEntry = 0 MaxProfitCount = 0 Ema = ema(close, EmaPeriod) OHLC = (open + high + low + close) / 4.0 // Conditions Cond00 = strategy.position_size == 0 Cond01 = close < Ema Cond02 = open > OHLC Cond03 = volume <= volume[1] Cond04 = (close < min(open[1], close[1]) or close > max(open[1], close[1])) // Update Exit Variables BarsSinceEntry := Cond00 ? 0 : nz(BarsSinceEntry[1]) + 1 MaxProfitCount := Cond00 ? 0 : (close > strategy.position_avg_price and BarsSinceEntry > 1) ? nz(MaxProfitCount[1]) + 1 : nz(MaxProfitCount[1]) // Entries strategy.entry(id="L1", long=true, qty=Quantity, when=(Cond00 and Cond01 and Cond02 and Cond03 and Cond04)) // Exits strategy.close("L1", (BarsSinceEntry - 1 >= MaxBars or MaxProfitCount >= MaxProfitCloses))