Strategi ini menentukan arah panjang/pendek dengan menilai arah rata-rata bergerak eksponensial (EMA). Ini pergi panjang ketika ada pola bullish engulfing dan volume perdagangan yang diperbesar. Ini menutup posisi ketika arah EMA terbalik atau pola engulfing bearish terjadi.
Gunakan dua EMA dengan parameter yang berbeda untuk menentukan tren pasar. jika EMA pendek berada di atas EMA panjang, itu adalah pasar bull, jika tidak itu adalah pasar bear.
Ketika pasar bullish, jika pola bullish engulfing muncul dan volume perdagangan 1,2 kali lebih besar dari bar sebelumnya, sinyal panjang dipicu.
Ketika tren pasar terbalik, yaitu EMA pendek melintasi EMA panjang, itu menunjukkan momentum bulls yang melemah dan posisi yang ada harus ditutup.
Menggunakan EMA ganda untuk menentukan struktur pasar dapat dengan akurat menilai status bull/bear.
Pola engulfing menunjukkan momentum satu sisi tiba-tiba meningkat, yang dapat menangkap tren utama.
Dengan tidak menetapkan harga stop loss tetapi menggunakan pembalikan struktur pasar untuk menghentikan kerugian, slippage yang tidak perlu dapat dikurangi.
EMA ganda juga dapat salah menilai struktur pasar, sehingga kehilangan tren atau salah pergi panjang.
Pola engulfing dapat disesatkan oleh pasar yang berbeda. Lebih banyak filter dapat ditambahkan untuk menghindari perdagangan palsu.
Tidak memiliki harga stop loss dapat menyebabkan kerugian yang lebih besar.
Lebih banyak indikator seperti MACD, A / D dapat digunakan untuk menentukan panjang / pendek.
Tambahkan harga stop loss tetap moderat berdasarkan kebutuhan.
Mengoptimalkan periode EMA berdasarkan karakteristik perdagangan simbol.
Logika strategi ini jelas dan mudah dimengerti, menggunakan EMA untuk menentukan struktur dan pola penyerapan untuk menangkap breakout. Keuntungannya adalah logika penilaian sederhana dan sinyal perdagangan yang jelas.
/*backtest start: 2023-11-06 00:00:00 end: 2023-12-06 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // @version=5 // # ========================================================================= # // # | STRATEGY | // # ========================================================================= # strategy( title = "fpemehd Strategy001", shorttitle = "f_001", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 10000000, currency = currency.USD, slippage = 0, commission_type = strategy.commission.cash_per_order, commission_value = 0.01, process_orders_on_close = true) // # ========================================================================= # // # | STRATEGY | // # ========================================================================= # // Inputs I_start_date = input (defval = timestamp("20 Jan 1990 00:00 +0900")) I_finish_date = input(defval = timestamp("20 Dec 2030 00:00 +0900")) I_short_ema = input.int(defval = 15 , title = "Short EMA", minval = 1 , maxval = 300 , step = 1) I_long_ema = input.int(defval = 30 , title = "Long EMA", minval = 1 , maxval = 300 , step = 1) I_body = input.float(defval = 1 , title = "Size of Body", minval = 1 , maxval = 5 , step = 0.1) time_cond = true // Calculate Engulfing Candles C_uptrend = false C_downtrend = false C_ema_short = ta.ema(source = close, length = I_short_ema) C_ema_long = ta.ema(source = close, length = I_long_ema) C_uptrend := close > C_ema_short and C_ema_short > C_ema_long C_downtrend := close < C_ema_short and C_ema_short < C_ema_long C_pre_body = math.abs(open[1]-close[1]) C_pre_body_ratio = (math.abs(open[1]-close[1])) / (math.abs(high[1]-low[1])) * 100 C_now_body = math.abs(open-close) C_now_body_ratio = (math.abs(open-close)) / (math.abs(high-low)) * 100 C_bullish_engulfing = (open[1] > close[1] and open <= close) and (low < low[1] and high > high[1]) C_bearish_engulfing = (open[1] < close[1] and open >= close) and (low < low[1] and high > high[1]) C_avoid_doge = (C_pre_body_ratio > I_body and C_now_body_ratio > I_body) ? true : false C_volume_filter = volume > volume[1] * 1.2 // Signals long_signal = C_uptrend and C_bullish_engulfing and C_avoid_doge and C_volume_filter close_signal = C_downtrend or C_bearish_engulfing if long_signal and time_cond strategy.entry(id = "Long", direction = strategy.long) if close_signal and time_cond strategy.close(id = "Long")