Strategi ini memanfaatkan sinyal price breakout dan mekanisme stop loss osilasi untuk manajemen risiko. Ini panjang ketika harga memecahkan resistance dan pendek ketika harga memecahkan support. Pada saat yang sama, stop loss osilasi dan profit taking stop diterapkan untuk pengendalian risiko yang lebih baik.
Strategi ini didasarkan pada poin-poin utama berikut:
Menggunakan MA untuk menentukan arah tren. MA cepat dan lambat digambarkan, MA cepat melintasi di atas sinyal MA lambat tren bull, sementara melintasi di bawah sinyal bear trend.
Ketika harga melonjak dan melanggar swing high baru-baru ini, itu dianggap melanggar level resistance, pergi panjang.
Ketika harga turun dan melanggar swing low baru-baru ini, itu dianggap melanggar level support, pergi pendek.
Setelah masuk, garis stop loss ditetapkan dan terus menyesuaikan berdasarkan fluktuasi harga, membentuk mekanisme stop loss yang berosilasi.
Stop loss dan take profit exit. stop loss exit mengendalikan risiko, take profit mengunci keuntungan.
Secara khusus, ia menggunakan rata-rata harga tinggi dan rendah sebagai sumber, memetakan EMA cepat dan lambat untuk menentukan tren. Ketika EMA cepat naik di atas EMA lambat dan sinyal breakout resistensi muncul, ia pergi panjang. Ketika EMA cepat turun di bawah EMA lambat dan support breakout muncul, ia pergi pendek. Setelah masuk, harga terendah dalam periode tertentu ditetapkan sebagai garis stop loss, terus menyesuaikan seiring kenaikan harga. Take profit line dipetakan untuk mengunci keuntungan. Strategi secara efektif mengendalikan risiko sementara keuntungan dari tren.
Keuntungan dari strategi ini meliputi:
Mengikuti tren dapat menghasilkan keuntungan yang stabil dari tren jangka panjang.
Kontrol risiko yang sangat baik, stop osilasi dan stop pelindung dengan cepat mengurangi kerugian.
Sinyal yang akurat. resistensi long breakout dan support breakout short memberikan sinyal yang handal.
Peraturan sederhana, indikator dan sinyal yang mudah diikuti.
Adaptif pasar bekerja dengan baik di berbagai produk dan kondisi pasar.
Beberapa risiko yang perlu diperhatikan untuk strategi ini:
Risiko kegagalan breakout. harga mungkin memiliki throwback atau pullback setelah awal breakout, memicu stop loss.
Risiko optimasi parameter. pengaturan parameter yang buruk menyebabkan terlalu banyak atau terlalu sedikit sinyal. optimasi membutuhkan kewaspadaan.
Dalam kondisi ekstrem, EMA dapat berhenti bekerja atau tertinggal dari harga.
Risiko pembalikan tren. memegang posisi melawan tren membawa akumulasi kerugian ketika tren berbalik.
Pengaturan parameter yang tepat, kehilangan stop yang luas, mengikuti aturan yang ketat dapat sebagian besar mengurangi risiko di atas.
Strategi ini dapat ditingkatkan lagi dari aspek berikut:
Optimasi kerangka waktu, menyesuaikan periode perhitungan MAs dan pola harga, menemukan kombinasi terbaik.
Optimasi kemampuan beradaptasi, menyesuaikan parameter untuk produk yang berbeda.
Uji metode stop loss yang lebih canggih seperti trailing stop, Chandelier stop.
Ambil optimasi keuntungan. Mengadopsi adaptif atau keuntungan eksponensial mengambil keluar untuk imbalan yang lebih baik.
Tambahkan filter, tambahkan volume, volatilitas filter untuk menghindari kebocoran palsu.
Meningkatkan sinyal masuk, menggabungkan lebih banyak indikator atau pola untuk mengkonfirmasi entri.
Ini adalah strategi breakout yang efektif dengan pengendalian risiko yang baik, model keuntungan yang stabil dan aliran logika yang lurus. fine-tuning dan peningkatan modular dapat membuatnya lebih kuat dan beradaptasi dengan pasar yang kompleks.
/*backtest start: 2023-12-03 00:00:00 end: 2023-12-10 00:00:00 period: 30m 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/ // © EduardoMattje //@version=4 strategy("Reversal closing price", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, initial_capital=10000) src = input(hl2, "Price source") order_direction = input("Both", "Order direction", options=["Both", "Long", "Short"]) // EMA calculation and plot ema_long_period = input(80, "EMA long period") ema_short_period = input(8, "EMA short period") ema_long = ema(src, ema_long_period) ema_short = ema(src, ema_short_period) ema_bull = ema_short > ema_long ema_bear = ema_short < ema_long plot(ema_long, "EMA long", ema_bull ? color.green : color.red, 3) plot(ema_short, "EMA short", ema_bull ? color.green : color.red, 3) // Settings risk_reward_ratio = input(2.0, "Risk to reward ratio", minval=1.0, step=0.1) stop_lookback = input(3, "Stoploss candle lookback", minval=1) ema_cross_stop = input(true, "Close if EMA crosses in oposite direction") allow_retracing = input(true, "Allow price retracing") // RCP calculation rcp_bull = low[0] < low[1] and low[0] < low[2] and close[0] > close[1] rcp_bear = high[0] > high[1] and high[0] > high[2] and close[0] < close[1] // Order placement in_market = strategy.position_size != 0 long_condition = rcp_bull and ema_bull and not in_market and order_direction != "Short" short_condition = rcp_bear and ema_bear and not in_market and order_direction != "Long" bought = strategy.position_size[0] > strategy.position_size[1] and strategy.position_size[1] == 0 sold = strategy.position_size[0] < strategy.position_size[1] and strategy.position_size[1] == 0 closed = not in_market and in_market[1] long_position = strategy.position_size > 0 short_position = strategy.position_size < 0 buy_price = high + syminfo.mintick sell_price = low - syminfo.mintick if long_condition strategy.entry("Long", true, stop=buy_price) if short_condition strategy.entry("Short", false, stop=sell_price) if allow_retracing better_price_long = barssince(closed) > barssince(long_condition) and barssince(long_condition) >= 1 and not in_market and ema_bull and buy_price < valuewhen(long_condition, buy_price, 0) and buy_price[0] < buy_price[1] if better_price_long strategy.cancel("Long") strategy.entry("Long", true, stop=buy_price) better_price_short = barssince(closed) > barssince(short_condition) and barssince(short_condition) >= 1 and not in_market and ema_bear and sell_price > valuewhen(short_condition, sell_price, 0) and sell_price[0] > sell_price[1] if better_price_short strategy.cancel("Short") strategy.entry("Short", false, stop=sell_price) // Stoploss orders stop_price = long_position ? valuewhen(bought, lowest(stop_lookback)[1] - syminfo.mintick, 0) : short_position ? valuewhen(sold, highest(3)[1] + syminfo.mintick, 0) : na stop_comment = "Stoploss triggered" strategy.close("Long", low <= stop_price, stop_comment) strategy.close("Short", high >= stop_price, stop_comment) plot(stop_price, "Stop price", color.red, 2, plot.style_linebr) // EMA cross close orders if ema_cross_stop if long_position and ema_bear strategy.close("Long", comment=stop_comment) if short_position and ema_bull strategy.close("Short", comment=stop_comment) // Take profit orders stop_ticks = abs(strategy.position_avg_price - stop_price) take_profit_price = long_position ? valuewhen(bought, strategy.position_avg_price + stop_ticks * risk_reward_ratio, 0) : short_position ? valuewhen(sold, strategy.position_avg_price - (stop_ticks * risk_reward_ratio), 0) : na target_comment = "Take profit" strategy.close("Long", high >= take_profit_price, target_comment) strategy.close("Short", low <= take_profit_price, target_comment) plot(take_profit_price, "Target price", color.green, 2, plot.style_linebr)