Strategi Mengikuti Trend Perpindahan Purata Pergerakan Pelbagai Sasaran

EMA SL TP
Tarikh penciptaan: 2025-02-08 15:22:15 Akhirnya diubah suai: 2025-02-08 15:22:15
Salin: 6 Bilangan klik: 391
1
fokus pada
1617
Pengikut

Strategi Mengikuti Trend Perpindahan Purata Pergerakan Pelbagai Sasaran

Gambaran keseluruhan

Strategi ini adalah sistem pengesanan trend berdasarkan isyarat persilangan garis rata (EMA). Ia menggunakan 34 kitaran EMA sebagai penunjuk trend utama, digabungkan dengan mekanisme pengendalian keuntungan dan risiko, untuk perdagangan automatik sepenuhnya. Inti strategi ini adalah untuk menangkap titik permulaan trend melalui persilangan harga dengan EMA, dan memaksimumkan peluang keuntungan dengan menetapkan sasaran keuntungan berganda.

Prinsip Strategi

Strategi ini adalah berasaskan kepada prinsip-prinsip teras berikut:

  1. Menggunakan EMA 34 kitaran sebagai penunjuk trend
  2. Apabila harga melintasi EMA ke atas, anda boleh membuat lebih banyak kedudukan di EMA
  3. Menggunakan sasaran keuntungan tiga kali ((5%, 10%, 15%) untuk mencapai penghentian batch)
  4. Tetapkan 7% stop loss untuk mengawal risiko
  5. Mengekalkan kedudukan 10% sebagai pegangan jangka panjang untuk menangkap trend besar
  6. Elakkan berdagang berlebihan dengan selang minimum 8 jam
  7. Dua cara untuk menyokong jumlah dagangan tetap dan saiz kedudukan dinamik

Kelebihan Strategik

  1. Reka bentuk untuk pelbagai tujuan keuntungan, berfungsi dengan baik dalam pelbagai keadaan pasaran
  2. Dengan mengekalkan sebahagian daripada kedudukan sebagai pegangan jangka panjang, anda boleh menikmati keuntungan daripada trend besar
  3. Menyokong perdagangan leverage yang boleh disesuaikan dengan pilihan risiko
  4. Mempunyai mekanisme untuk mencegah perdagangan berlebihan
  5. Fleksibiliti dalam pengurusan kedudukan, anda boleh memilih kedudukan tetap atau dinamik
  6. Automatik sepenuhnya, tiada intervensi manusia
  7. Parameter yang boleh disesuaikan untuk gaya dagangan yang berbeza

Risiko Strategik

  1. EMA sebagai penunjuk ketinggalan yang boleh menyebabkan kelewatan masa masuk
  2. Kemungkinan untuk membuat beberapa hentian dalam pasaran yang bergolak
  3. Menggunakan Leverage boleh Memaksimumkan Kerugian
  4. Stop loss peratusan tetap mungkin tidak fleksibel dalam pasaran yang bergolak tinggi
  5. Objektif keuntungan berganda boleh menyebabkan penarikan awal dari trend yang kuat Tindakan balas:
  • Disyorkan untuk digunakan dalam pasaran yang jelas
  • Peratusan Hentian yang disesuaikan dengan turun naik pasaran
  • Berhati-hati dengan Leverage
  • Pengukuran semula parameter pengoptimuman

Arah pengoptimuman strategi

  1. Meningkatkan penapis intensiti trend untuk meningkatkan kualiti kemasukan
  2. Memperkenalkan mekanisme hentian dinamik, seperti hentian ATR
  3. Menambah penunjuk pengesahan jumlah transaksi
  4. Membangunkan mekanisme sasaran keuntungan yang bersesuaian
  5. Tambah modul penilaian keadaan pasaran
  6. Mekanisme penyesuaian dinamik untuk mengoptimumkan selang dagangan Pengoptimuman ini dapat meningkatkan kestabilan dan keuntungan strategi dan mengurangkan kesan isyarat palsu.

ringkaskan

Ini adalah strategi trend-tracking yang dirancang dengan logik dan logik yang jelas. Dengan menangkap trend yang bersilang, anda dapat menguruskan risiko dengan menggunakan pelbagai sasaran keuntungan, dan menyimpan sebahagian daripada kedudukan untuk menangkap trend yang besar. Strategi ini sangat boleh disesuaikan dan sesuai untuk digunakan oleh peniaga yang mempunyai keutamaan risiko yang berbeza. Walaupun terdapat beberapa risiko yang wujud, keuntungan yang stabil dapat dicapai dengan pengaturan parameter dan pengurusan risiko yang wajar.

Kod 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")