Strategi Mengikuti Tren Crossover Rata-rata Pergerakan Target Ganda

EMA SL TP
Tanggal Pembuatan: 2025-02-08 15:22:15 Akhirnya memodifikasi: 2025-02-08 15:22:15
menyalin: 6 Jumlah klik: 391
1
fokus pada
1617
Pengikut

Strategi Mengikuti Tren Crossover Rata-rata Pergerakan Target Ganda

Ringkasan

Strategi ini adalah sistem pelacakan tren yang didasarkan pada sinyal persilangan rata-rata (EMA). Strategi ini menggunakan 34 siklus EMA sebagai indikator tren utama, yang dikombinasikan dengan mekanisme pengendalian keuntungan dan risiko, yang memungkinkan perdagangan otomatis. Inti dari strategi ini adalah menangkap titik awal tren melalui persilangan harga dengan EMA, dan memaksimalkan peluang keuntungan dengan menetapkan tujuan keuntungan ganda.

Prinsip Strategi

Strategi ini didasarkan pada prinsip-prinsip inti berikut:

  1. Menggunakan 34 siklus EMA sebagai indikator untuk menilai tren
  2. Ketika harga melintasi EMA ke atas, posisi di posisi harga EMA lebih besar
  3. Menggunakan target keuntungan tiga kali lipat ((5%, 10%, 15%) untuk mencapai batch stop
  4. Setel Stop Loss 7% untuk mengendalikan risiko
  5. Menyimpan posisi 10% sebagai posisi jangka panjang untuk menangkap tren besar
  6. Hindari over-trading dengan interval minimum 8 jam
  7. Mendukung volume perdagangan tetap dan ukuran posisi dinamis

Keunggulan Strategis

  1. Desain dengan tujuan keuntungan yang beragam, dapat bekerja dengan baik di berbagai lingkungan pasar
  2. Dengan mempertahankan sebagian posisi sebagai pegangan jangka panjang, Anda dapat menikmati keuntungan dari tren besar.
  3. Mendukung perdagangan leverage, dapat disesuaikan dengan preferensi risiko
  4. Memiliki mekanisme untuk mencegah perdagangan berlebihan
  5. Fleksibilitas dalam mengelola posisi, dengan pilihan posisi tetap atau dinamis
  6. Otomatisasi penuh, tanpa intervensi manusia
  7. Parameter yang dapat disesuaikan dengan gaya perdagangan yang berbeda

Risiko Strategis

  1. EMA sebagai indikator keterlambatan dapat menyebabkan penundaan waktu masuk
  2. Beberapa stop loss mungkin terjadi di pasar yang bergejolak
  3. Menggunakan Leverage Dapat Memperbesar Kerugian
  4. Stop loss persentase tetap mungkin tidak cukup fleksibel di pasar yang bergejolak
  5. Target keuntungan ganda dapat menyebabkan keluar prematur dari tren yang kuat Tindakan penanggulangan:
  • Disarankan untuk digunakan di pasar dengan tren yang jelas
  • Rasio stop loss disesuaikan dengan fluktuasi pasar
  • Berhati-hatilah Menggunakan Leverage
  • Pengukuran kembali parameter optimasi

Arah optimasi strategi

  1. Meningkatkan intensitas filter tren, meningkatkan kualitas masuk
  2. Memperkenalkan mekanisme stop loss dinamis, seperti stop loss ATR
  3. Menambahkan indikator konfirmasi transaksi
  4. Mengembangkan Mekanisme Target Keuntungan Adaptif
  5. Menambahkan modul penilaian kondisi pasar
  6. Mekanisme penyesuaian dinamis untuk mengoptimalkan interval transaksi Optimasi ini dapat meningkatkan stabilitas dan profitabilitas strategi, mengurangi dampak dari sinyal palsu.

Meringkaskan

Ini adalah strategi pelacakan tren yang dirancang secara rasional dan logis. Mengambil risiko dengan menangkap tren secara merata, menggunakan beberapa target keuntungan, dan mempertahankan sebagian posisi untuk menangkap tren besar. Strategi ini sangat dapat disesuaikan untuk digunakan oleh pedagang dengan preferensi risiko yang berbeda.

Kode Sumber Strategi
/*backtest
start: 2024-02-08 00:00:00
end: 2025-02-06 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA25 Long Strategy", overlay=true)

// Inputs
initial_capital = input.float(50000, title="Initial Capital ($)")
leverage = input.int(1, title="Leverage")
mode = input.string("Fixed Volume", title="Position Sizing Mode", options=["Fixed Volume", "Current Balance"])
ema_length = input.int(34, title="EMA Length")
stop_loss_percent = input.float(7, title="Stop Loss (%)", step=0.1) / 100
take_profit_1_percent = input.float(5, title="Take Profit 1 (%)", step=0.1) / 100
take_profit_2_percent = input.float(10, title="Take Profit 2 (%)", step=0.1) / 100
take_profit_3_percent = input.float(15, title="Take Profit 3 (%)", step=0.1) / 100
position_size_percent = input.float(100, title="Position Size (%)", step=1) / 100
long_term_hold_percent = input.float(10, title="Long Term Hold (%)", step=1) / 100
trade_delay = input.int(8, title="Trade Delay (hours)", minval=1) * 60  // Convert hours to minutes

// Calculate EMA
ema = ta.ema(close, ema_length)
// Plot EMA
plot(ema, title="EMA25", color=color.blue)

// Determine if a new trade can be placed
var float last_trade_time = na
can_trade = na(last_trade_time) or (time - last_trade_time) > trade_delay * 60 * 1000

// Determine position size based on selected mode
var float position_size = na
if (mode == "Fixed Volume")
    position_size := initial_capital * leverage * position_size_percent / close
else
    position_size := strategy.equity * leverage * position_size_percent / close

// Entry Condition
var float entry_price = na
price_crossed_ema_up = ta.crossover(close, ema)
price_crossed_ema_down = ta.crossunder(close, ema)

if ((price_crossed_ema_up or price_crossed_ema_down) and can_trade)
    entry_price := ema
    strategy.entry("Long", strategy.long, qty=position_size, limit=entry_price)
    last_trade_time := time
    label.new(bar_index, entry_price, text="Entry", color=color.green, style=label.style_label_up, textcolor=color.white, size=size.small)

// Stop Loss
strategy.exit("Stop Loss", from_entry="Long", stop=entry_price * (1 - stop_loss_percent))

// Take Profits
take_profit_1_price = entry_price * (1 + take_profit_1_percent)
take_profit_2_price = entry_price * (1 + take_profit_2_percent)
take_profit_3_price = entry_price * (1 + take_profit_3_percent)

strategy.exit("Take Profit 1", from_entry="Long", limit=take_profit_1_price, qty=position_size / 3)
strategy.exit("Take Profit 2", from_entry="Long", limit=take_profit_2_price, qty=position_size / 3)
strategy.exit("Take Profit 3", from_entry="Long", limit=take_profit_3_price, qty=position_size / 3)

// Long Term Hold (10% of position)
hold_qty = position_size * long_term_hold_percent
if (strategy.position_size > hold_qty)
    strategy.close("Long Term Hold")