Strategi gabungan corak EMA bingkai berbilang masa dan corak candlestick


Tarikh penciptaan: 2024-02-21 15:00:06 Akhirnya diubah suai: 2024-02-21 15:00:06
Salin: 0 Bilangan klik: 585
1
fokus pada
1617
Pengikut

Strategi gabungan corak EMA bingkai berbilang masa dan corak candlestick

Gambaran keseluruhan

Strategi ini menggabungkan parameter EMA kerangka masa berbilang dengan penilaian bentuk K-line, untuk menangkap isyarat garis panjang yang lebih sensitif dan berhenti kehilangan.

Prinsip Strategi

Kaedah ini adalah berdasarkan kepada beberapa petunjuk berikut:

  1. EMA rata-rata: menggunakan 13 kitaran, 21 kitaran 2 kumpulan EMA, menilai harga pecah membentuk isyarat dagangan.

  2. K-Line Form: menentukan arah entiti K-Line, digunakan bersama-sama dengan penunjuk EMA, penapis penembusan palsu.

  3. Rintangan sokongan: Dibina pada titik tertinggi 10 kitaran terkini, untuk menilai penembusan melalui kawasan yang meningkatkan kebolehpercayaan isyarat.

  4. Peningkatan poin: 120 kitaran harga penutupan ditutup pada harga pembukaan dibuka sebagai keputusan tambahan apabila ia dilihat sebagai kenaikan poin.

Peraturan penjanaan isyarat dagangan ialah:

  1. Isyarat pelbagai: EMA pantas ke atas menembusi EMA perlahan, dan untuk garis K yang berlawanan, tutup gudang kosong terbuka lebih banyak.

  2. Isyarat kosong: EMA pantas turun dari EMA perlahan, dan untuk garis K yang negatif, meratakan kedudukan yang lebih tinggi.

  3. Penarikan Stop Loss: Penarikan Stop Loss dari kedudukan semasa apabila isyarat balas tangan dikeluarkan.

Kelebihan Strategik

  1. Lebih banyak kerangka masa EMA untuk menilai trend dengan lebih yakin dan mengelakkan penembusan palsu
  2. Penapisan digabungkan dengan arah entiti K untuk mengenal pasti trend dengan lebih tepat.
  3. Menambah penilaian masa dan menyokong penilaian rintangan, memastikan kualiti isyarat.
  4. Mengambil langkah-langkah untuk mengurangkan risiko kerugian dengan mengambil tindakan balas.

Risiko Strategik

  1. Penembusan yang tidak berkesan membawa risiko kerugian. Walaupun dengan pengenalan penghakiman entiti EMA dan K-line dalam jangka masa yang lebih banyak, kesan penembusan yang tidak berkesan terhadap strategi tidak dapat dielakkan sepenuhnya.
  2. Parameter pilihan risiko. Pengaturan parameter yang tidak betul seperti kitaran EMA, kitaran penghakiman K-line, dan lain-lain boleh menyebabkan kualiti isyarat menurun.
  3. Risiko kegagalan rintangan sokongan. Kerosakan rintangan sokongan sejarah adalah perkara biasa, yang juga boleh menyebabkan isyarat tidak mempunyai momentum yang mencukupi apabila dihasilkan.
  4. Risiko ketidaksempurnaan mengikut masa. Keadaan mengikut masa adalah berubah-ubah dan tidak boleh bergantung sepenuhnya pada penilaian mengikut masa.

Risiko di atas boleh dikurangkan dengan mengelakkan pengoptimuman berlebihan, memilih parameter dengan berhati-hati, dan mengawal saiz kedudukan dengan ketat.

Arah pengoptimuman strategi

  1. Memperkenalkan model pembelajaran mesin untuk membantu penghakiman. Ia boleh melatih model klasifikasi untuk menentukan arah entiti K-baris, meningkatkan ketepatan penghakiman.
  2. Menambah mekanisme penangguhan yang bersesuaian seperti trailing stop atau penangguhan berdasarkan kadar turun naik.
  3. Menggabungkan analisis emosi. Memperkenalkan mekanisme penilaian pendapat media tertentu untuk mengelakkan berita negatif yang besar mempengaruhi strategi.
  4. Menambah modul pengurusan kedudukan. Seperti memperkenalkan peratusan kedudukan tetap, atau modul penyesuaian kedudukan berdasarkan pengurusan dana.

ringkaskan

Strategi ini mengintegrasikan indikator EMA kerangka masa berbilang dengan penilaian entiti K-line, untuk mencapai penilaian trend yang lebih dipercayai. Pada masa yang sama, ia digabungkan dengan keadaan sokongan rintangan dan pemisahan masa untuk membantu memastikan kualiti isyarat. Dengan mekanisme penangguhan isyarat anti-tangan, penangguhan tunggal dapat dikawal dengan berkesan.

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

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