Strategi ini disebut
Prinsip utama dari strategi ini adalah untuk menangkap peluang rebound di pasar yang terikat kisaran dengan menggunakan reversi rata-rata bergerak jangka pendek. Secara khusus, ketika harga menembus rata-rata bergerak siklus yang lebih lama (seperti MA 20 hari dan 50 hari) dan menunjukkan tanda-tanda overselling yang kuat, harga cenderung bangkit kembali sampai batas tertentu karena karakteristik reversi rata-rata fluktuasi pasar. Pada saat ini, jika rata-rata bergerak siklus yang lebih pendek (seperti MA 10 hari) menunjukkan sinyal pembalikan ke atas, itu akan menjadi waktu yang tepat untuk membeli. Dalam strategi ini, ia akan membeli ketika harga tutup di bawah MA 20 hari sementara di atas MA 50 hari, untuk menangkap rebound dengan pembalikan MA jangka pendek.
Logika entri spesifik adalah: Beli 1 lot ketika harga menembus MA 20 hari, tambahkan 1 lot saat menembus MA 50 hari, terus tambahkan 1 lot saat menembus MA 100 hari, dan tambahkan hingga 1 lot saat menembus MA 200 hari, untuk maksimal 4 lot. Ambil keuntungan setelah mencapai target yang telah ditetapkan sebelumnya. Ini juga menetapkan waktu dan kondisi stop loss.
Secara umum, ini adalah strategi perdagangan MA klasik dan universal. Ini dengan benar memanfaatkan fitur pelunturan MA, dikombinasikan dengan beberapa MA untuk mengidentifikasi peluang pembelian jangka pendek. Ini mengendalikan risiko dengan piramida pesanan dan mengambil keuntungan tepat waktu. Tetapi responsnya terhadap peristiwa pasar seperti berita kebijakan yang signifikan mungkin lebih pasif. Ini adalah sesuatu yang dapat dioptimalkan lebih lanjut. Secara keseluruhan, dengan peningkatan yang tepat dalam optimasi parameter dan kontrol risiko, strategi ini dapat memperoleh hasil kelebihan yang stabil.
/*backtest start: 2023-12-13 00:00:00 end: 2023-12-20 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA_zorba1", shorttitle="zorba_ema", overlay=true) // Input parameters qt1 = input.int(5, title="Quantity 1", minval=1) qt2 = input.int(10, title="Quantity 2", minval=1) qt3 = input.int(15, title="Quantity 3", minval=1) qt4 = input.int(20, 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) // Date range filter start_date = timestamp(year=2021, month=1, day=1) end_date = timestamp(year=2024, month=10, day=27) in_date_range = true // Profit condition profit_percentage = input(1, title="Profit Percentage") // Adjust this value as needed // Pyramiding setting pyramiding = input.int(2, 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 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 profit_condition and close < low[1] and close < low[2] // Exit condition for when today's close is less than the previous day's low //exit_condition_3 = close < low[1] // 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)