Strategi henti untung dan henti rugi purata pindah silang berganda

EMA MACD KDJ ADX
Tarikh penciptaan: 2024-06-03 11:02:26 Akhirnya diubah suai: 2024-06-03 11:02:26
Salin: 0 Bilangan klik: 311
1
fokus pada
1217
Pengikut

Strategi henti untung dan henti rugi purata pindah silang berganda

Gambaran keseluruhan

Strategi ini menggunakan persilangan dua purata bergerak indeks ((EMA) dari dua kitaran yang berbeza sebagai isyarat perdagangan, sambil menetapkan titik-titik berhenti dan berhenti yang tetap. Apabila EMA jangka pendek dari bawah ke atas melintasi EMA jangka panjang, posisi dibuka lebih banyak; apabila EMA jangka pendek dari atas ke bawah melintasi EMA jangka panjang, posisi dibuka kosong. Apabila perdagangan ditetapkan dengan titik-titik berhenti dan berhenti untuk mengawal risiko dan mengunci keuntungan.

Prinsip Strategi

  1. Hitung EMA dua kitaran yang berbeza, dengan asumsi 5 kitaran dan 200 kitaran.
  2. Apabila 5 kitaran EMA dari bawah ke atas melintasi 200 kitaran EMA, menghasilkan isyarat melakukan lebih; apabila 5 kitaran EMA dari atas ke bawah melintasi 200 kitaran EMA, menghasilkan isyarat melakukan lebih.
  3. Selepas membuka kedudukan, tetapkan mata hentian (default 50) dan mata hentian (default 200).
  4. Apabila harga menyentuh titik hentian atau titik hentian, atau memegang kedudukan mencapai 200 kitaran perdagangan, posisi kosong keluar.
  5. Jumlah titik henti rugi boleh disesuaikan dengan jumlah dagangan dalam carta.

Kelebihan Strategik

  1. Mudah difahami: Strategi ini jelas, mudah difahami dan dilaksanakan.
  2. Pengesanan Trend: Menggunakan ciri-ciri trend EMA untuk menangkap trend pasaran dengan lebih baik.
  3. Kawalan risiko: Tetapkan titik berhenti tetap untuk mengawal risiko perdagangan tunggal.
  4. Fleksibiliti: Stop Loss Points boleh disesuaikan dengan turun naik pasaran dan pilihan risiko individu.

Risiko Strategik

  1. Isyarat palsu: EMA yang bersilang mungkin menghasilkan isyarat palsu, yang menyebabkan perdagangan yang kerap dan kehilangan dana.
  2. EMA adalah penunjuk yang ketinggalan, mungkin memberi isyarat hanya selepas trend telah terbentuk, kehilangan peluang masuk terbaik.
  3. Pasaran penyusunan: Dalam pasaran penyusunan, persilangan EMA yang kerap boleh menyebabkan perdagangan kerugian berturut-turut.
  4. Penutupan titik tetap: Penutupan titik tetap mungkin tidak dapat menyesuaikan diri dengan perubahan kadar turun naik pasaran, yang menyebabkan kedudukan penutupan tidak betul.

Arah pengoptimuman strategi

  1. Memperkenalkan lebih banyak petunjuk: Gabungan dengan petunjuk teknikal lain seperti MACD, RSI dan lain-lain, meningkatkan kebolehpercayaan isyarat.
  2. Parameter pengoptimuman: untuk mengoptimumkan parameter seperti kitaran EMA, bilangan titik hentian hentian, dan lain-lain untuk meningkatkan prestasi strategi.
  3. Hentian dinamik: menyesuaikan titik hentian mengikut pergerakan turun naik pasaran, untuk menyesuaikan diri dengan perubahan pasaran.
  4. Pengurusan kedudukan: memperkenalkan peraturan pengurusan kedudukan, seperti penyesuaian kedudukan berdasarkan risiko, meningkatkan pendapatan selepas penyesuaian risiko.
  5. Penapis: Tambah syarat penapis isyarat transaksi, seperti jumlah transaksi, bentuk harga, dan lain-lain, untuk meningkatkan kualiti isyarat.

ringkaskan

Strategi berhenti berhenti dua hala adalah strategi perdagangan yang mudah digunakan, menghasilkan isyarat perdagangan melalui EMA silang, sambil menetapkan beberapa titik berhenti berhenti untuk mengawal risiko. Kelebihan strategi ini adalah bahawa logiknya jelas, mudah dilaksanakan, dan dapat menangkap tren pasaran dengan lebih baik. Tetapi ada juga risiko seperti isyarat palsu, kelewatan trend, pasaran penarikan dan berhenti tetap. Arah pengoptimuman termasuk memperkenalkan lebih banyak parameter pengoptimuman indikator, kehilangan dinamik, pengurusan kedudukan dan penapis tambahan.

Kod sumber strategi
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=5
strategy("EMA5 Cross EAM200 && SL/TP 50 and 200 Point Target", overlay=true)

// Define input parameters for EMA lengths
ema_5 = input.int(5, title="Fast EMA Length")
ema_200 = input.int(200, title="Slow EMA Length")

// Define input parameters for stop loss and profit target in points
stopLossPoints = input.float(50, title="Stop Loss (Points)")
profitTargetPoints = input.float(200, title="Profit Target (Points)")

// Calculate EMAs
price = close
emafast = ta.ema(price, ema_5)
emaslow = ta.ema(price, ema_200)

// Plot EMAs on chart
plot(emafast, title="5-period EMA", color=color.black)
plot(emaslow, title="200-period EMA", color=color.blue)

// Extra lines if needed
ema_13 = input.int(13, title="13 EMA")
ema_13_line = ta.ema(price, ema_13)
plot(ema_13_line, title="13-period EMA", color=color.rgb(156, 39, 176, 90))

ema_20 = input.int(20, title="20 EMA")
ema_20_line = ta.ema(price, ema_20)
plot(ema_20_line, title="20-period EMA", color=color.red)


// Define entry conditions
longCondition = ta.crossover(emafast, emaslow)
shortCondition = ta.crossunder(emafast, emaslow)

// Counter to keep track of the number of bars since the entry
var int barCount = na

// Reset counter and enter long trade
if (longCondition)
    strategy.entry("Long", strategy.long, comment="Long")
    barCount := 0

// Reset counter and enter short trade
if (shortCondition)
    strategy.entry("Short", strategy.short, comment="Short")
    barCount := 0

// Increment counter if in trade
if (strategy.opentrades > 0)
    barCount += 1

// Calculate entry price
entryPrice = strategy.position_avg_price

// Exit long trade if stop loss, profit target hit, or 200 points have been reached
if (strategy.position_size > 0)
    strategy.exit("Take Profit/Stop Loss", "Long", stop=entryPrice - stopLossPoints, limit=entryPrice + profitTargetPoints)

// Exit short trade if stop loss, profit target hit, or 200 points have been reached
if (strategy.position_size < 0)
    strategy.exit("Take Profit/Stop Loss", "Short", stop=entryPrice + stopLossPoints, limit=entryPrice - profitTargetPoints)