Strategi kombinasi pola breakout dan candlestick EMA multi-frame


Tanggal Pembuatan: 2024-02-21 15:00:06 Akhirnya memodifikasi: 2024-02-21 15:00:06
menyalin: 0 Jumlah klik: 585
1
fokus pada
1617
Pengikut

Strategi kombinasi pola breakout dan candlestick EMA multi-frame

Ringkasan

Strategi ini menggabungkan indikator EMA multi-frame dengan penilaian bentuk K-line, untuk menangkap sinyal garis panjang yang lebih sensitif dan menghentikan kehilangan.

Prinsip Strategi

Strategi ini didasarkan pada beberapa indikator:

  1. EMA rata-rata: menggunakan 13 siklus, 21 siklus 2 kelompok EMA, menilai harga terobosan membentuk sinyal perdagangan.

  2. K-line formasi: menentukan arah entitas K-line, digunakan bersama dengan indikator EMA, memfilter penembusan palsu.

  3. Resistensi Dukungan: Menggunakan konstruksi 10 siklus terbaru highest tinggi, menilai terobosan melalui daerah ini meningkatkan keandalan sinyal.

  4. Saat naik poin: 120 siklus close close harga di atas open open harga dinilai sebagai naik poin, sebagai penilaian tambahan.

Aturan untuk menghasilkan sinyal perdagangan adalah:

  1. Sinyal multihead: EMA cepat ke atas menembus EMA lambat, dan untuk garis K yang berlawanan, tutup posisi kosong terbuka.

  2. Sinyal kosong: EMA cepat turun dari EMA lambat, dan untuk garis K negatif, meratakan posisi.

  3. Stop loss exit: Stop loss exit dari posisi saat ini pada saat ada sinyal backhand.

Keunggulan Strategis

  1. Indikator EMA dalam kerangka waktu yang lebih banyak, lebih dapat dipercaya untuk menilai tren, dan menghindari false breaks.
  2. Filter dengan arah entitas K-line, identifikasi tren lebih akurat.
  3. Menambahkan penilaian waktu dan mendukung penilaian resistensi untuk memastikan kualitas sinyal.
  4. Mengadopsi metode penarikan tangan sebagai stop loss untuk mengurangi risiko kerugian.

Risiko Strategis

  1. Penembusan yang tidak efektif membawa risiko kerugian. Bahkan dengan memperkenalkan penilaian entitas EMA dan K-line dalam beberapa kerangka waktu, dampak penembusan yang tidak efektif terhadap strategi tidak dapat sepenuhnya dihindari.
  2. Parameter pilihan risiko. Periode EMA, K-Line Periode penilaian parameter yang tidak tepat, dapat menyebabkan penurunan kualitas sinyal.
  3. Risiko kegagalan resistansi dukungan. Kekalahan resistansi dukungan historis adalah situasi umum, yang juga dapat menyebabkan tidak cukup momentum saat sinyal dihasilkan.
  4. Risiko kegagalan waktu. Situasi berubah dari waktu ke waktu, tidak dapat sepenuhnya bergantung pada penilaian waktu.

Risiko di atas dapat diatasi dengan menghindari optimasi berlebihan, memilih parameter dengan hati-hati, dan mengendalikan ukuran posisi secara ketat.

Arah optimasi strategi

  1. Masukkan model pembelajaran mesin untuk membantu penilaian. Model klasifikasi dapat dilatih untuk menilai arah entitas garis K, meningkatkan akurasi penilaian.
  2. Menambahkan mekanisme penutupan kerugian yang beradaptasi, seperti trailing stop atau stop loss berdasarkan fluktuasi.
  3. Menggabungkan analisis emosi dengan mekanisme penilaian opini media tertentu untuk menghindari dampak berita negatif yang signifikan terhadap strategi.
  4. Menambahkan modul manajemen posisi. Seperti memperkenalkan rasio posisi tetap, atau modul pengaturan posisi berdasarkan manajemen dana.

Meringkaskan

Strategi ini mengintegrasikan indikator EMA kerangka multi waktu dengan penilaian entitas K-line, untuk mencapai penilaian tren yang lebih andal. Pada saat yang sama, kombinasi dukungan resistensi dan situasi waktu untuk membantu memastikan kualitas sinyal. Dengan mekanisme sinyal anti-tangan, stop loss dapat dikontrol secara efektif. Strategi dapat dioptimalkan di masa depan dengan memperkenalkan model pembelajaran mesin, stop loss adaptif, analisis emosi dan modul manajemen posisi, dan lain-lain.

Kode Sumber Strategi
/*backtest
start: 2023-02-14 00:00:00
end: 2024-02-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title='ck - CryptoSniper Longs Only (Strategy)', shorttitle='ck - CryptoSniper Longs (S) v1', overlay=true, precision=2, commission_value=0.25, default_qty_type=strategy.percent_of_equity, pyramiding=0, default_qty_value=100, initial_capital=100)

open_long = 0
close_position = 0
last_long=close
last_short=close

//Candle body resistance Channel-----------------------------//
len = 34
src = input(close, title="Candle body resistance Channel")
out = sma(src, len)
last8h = highest(close, 13)
lastl8 = lowest(close, 13)
bearish = cross(close,out) == 1 and falling(close, 1)
bullish = cross(close,out) == 1 and rising(close, 1)
channel2=false

//-----------------Support and Resistance 
RST = input(title='Support / Resistance length:', defval=10) 
RSTT = valuewhen(high >= highest(high, RST), high, 0)
RSTB = valuewhen(low <= lowest(low, RST), low, 0)

//--------------------Trend colour ema------------------------------------------------// 
src0 = close, len0 = input(13, minval=1, title="EMA 1")
ema0 = ema(src0, len0)
direction = rising(ema0, 2) ? +1 : falling(ema0, 2) ? -1 : 0

//-------------------- ema 2------------------------------------------------//
src02 = close, len02 = input(21, minval=1, title="EMA 2")
ema02 = ema(src02, len02)
direction2 = rising(ema02, 2) ? +1 : falling(ema02, 2) ? -1 : 0

//=============Hull MA//
show_hma = false
hma_src = input(close, title="HullMA Source:")
hma_base_length = input(8, minval=1, title="HullMA Base Length:")
hma_length_scalar = input(5, minval=0, title="HullMA Length Scalar:")
hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))

//============ signal Generator ==================================//
Period=input(title='Period', defval='120')
ch1 = request.security(syminfo.tickerid, Period, open)
ch2 = request.security(syminfo.tickerid, Period, close)

// Signals//
long = crossover(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open))
short = crossunder(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open))
last_long := long ? time : nz(last_long[1])
last_short := short ? time : nz(last_short[1])
long_signal = crossover(last_long, last_short) ? 1 : -1
short_signal = crossover(last_short, last_long) ? -1 : 1

if (long_signal == 1)
    strategy.entry("Long Open", strategy.long)

if (short_signal == -1)
    strategy.close("Long Open")
    
if (long_signal[1] == 1 and short_signal[1] == 1)
    open_long := 1
    close_position := 0

if (short_signal[1] == -1 and long_signal[1] == -1)
    open_long := 0
    close_position := 1

plotshape(open_long == 1, title="Open Long", location=location.belowbar, style=shape.triangleup, size=size.small, color=green, transp=10)
plotshape(close_position == 1, title="Close Long", location=location.abovebar, style=shape.triangledown, size=size.small, color=red, transp=10)
//plot(0, title="Trigger", color=white)

///////////////////////////////////////////////////////////////////////////////////////////