TrumpBollingerEMAcandlestick Strategi

Penulis:ChaoZhang, Tarikh: 2023-10-07 15:30:27
Tag:

Ringkasan

Strategi ini menggunakan Bollinger Bands, EMA dan corak candlestick untuk perdagangan perjudian dua baris, yang tergolong dalam strategi perdagangan jangka pendek.

Prinsip-prinsip

Strategi ini terdiri daripada bahagian-bahagian berikut:

  1. Bollinger Bands Menghasilkan rel atas dan bawah berdasarkan harga penutupan dan penyimpangan standard.

  2. EMA Mengira purata bergerak eksponensial 21 hari dan menjana isyarat perdagangan apabila harga melintasi EMA.

  3. Corak Lilin Mengenal pasti titik pembalikan harga seperti penutup awan gelap bawah dan corak menembusi atas untuk mencetuskan perdagangan.

  4. Perjudian Dua Garis Pergi panjang dan pendek pada masa yang sama berdasarkan isyarat dari Bollinger, EMA crossover dan corak candlestick.

Logikanya ialah:

Menggunakan Bollinger Bands untuk mengenal pasti titik pembalikan yang berpotensi, pergi pendek di rel atas dan panjang di rel bawah. Mengira EMA 21 hari dan pergi lama pada salib emas, pergi pendek pada salib kematian. Juga menggunakan corak lilin untuk mengenal pasti pembalikan, pergi lama pada awan gelap bawah dan pendek pada tindikan atas. Gabungkan ketiga-tiga isyarat untuk membuat keputusan perdagangan dua arah akhir.

Strategi ini mengintegrasikan pelbagai isyarat pengesahan untuk meningkatkan kecekapan keputusan perdagangan.

Analisis Kelebihan

Kelebihan utama strategi ini ialah:

  1. Keakuratan yang lebih baik dengan pengesahan isyarat berbilang

Menggunakan Bollinger, EMA dan lilin bersama-sama meningkatkan ketepatan dengan mengesahkan isyarat. Ini membantu mengelakkan isyarat palsu dan perdagangan yang salah.

  1. Tanggapan tepat pada masanya dan menangkap pembalikan

Isyarat gabungan dengan cepat mengenal pasti titik pembalikan yang berpotensi untuk perdagangan tepat pada masanya sebelum pembalikan meluas.

  1. Keuntungan yang lebih tinggi dengan perdagangan dua baris

Memegang kedua-dua kedudukan panjang dan pendek keuntungan dari pergerakan besar dalam kedua-dua arah. Ini mengurangkan risiko di pasaran satu arah.

  1. Fleksibiliti untuk dagangan jangka pendek

Bollinger jangka pendek dan EMA membolehkan menangkap pergerakan jangka pendek, sesuai untuk perdagangan yang kerap dan bertindak balas terhadap turun naik frekuensi tinggi.

  1. Boleh digunakan secara langsung dan mudah digunakan

Kod strategi yang lengkap menjadikannya mudah digunakan untuk perdagangan langsung. Pilihan parameter yang munasabah juga menjadikannya sangat mudah digunakan untuk peniaga individu.

Analisis Risiko

Risiko yang berpotensi ialah:

  1. Kemungkinan Stop Loss berturut-turut

Whipsaw isyarat Bollinger, EMA dan candlestick boleh menyebabkan stop loss berturut-turut. Sesuaikan parameter untuk memastikan stop loss yang munasabah.

  1. Risiko yang lebih tinggi dalam perdagangan dua baris

Memegang kedua-dua panjang dan pendek boleh memperkuat kerugian. Modal yang mencukupi diperlukan untuk menyokong risiko. saiz kedudukan yang lebih rendah disyorkan.

  1. Pemantauan ketat diperlukan untuk perdagangan jangka pendek

Perdagangan jangka pendek yang kerap memerlukan pemantauan pasaran. Tetapkan stop profit / loss untuk mengehadkan kerugian besar yang tidak dijangka.

  1. Ruang pengoptimuman terhad

Bollinger dan EMA mempunyai ruang pengoptimuman yang agak kecil.

  1. Corak candlestick biasa boleh tidak jelas

Sebahagian daripada strategi ini bergantung pada isyarat candlestick yang kadang-kadang tidak jelas.

Arahan pengoptimuman

Strategi ini boleh ditingkatkan dalam aspek berikut:

  1. Mengintegrasikan lebih banyak isyarat penunjuk

Menambah penunjuk lain seperti KD, MACD mempelbagaikan sumber isyarat dan meningkatkan ketepatan keputusan.

  1. Menggabungkan pembelajaran mesin

Menggunakan algoritma ML untuk menganalisis data sejarah dan meningkatkan atau menggantikan beberapa isyarat penunjuk untuk mengurangkan campur tangan manual.

  1. Mengoptimumkan Stop Profit/Loss

Memperkenalkan keuntungan berhenti adaptif berdasarkan prestasi, dan kehilangan berhenti untuk mengurangkan risiko.

  1. Meningkatkan pengurusan risiko

Mengoptimumkan peruntukan modal, saiz kedudukan dan strategi kawalan risiko mengikut keadaan pasaran.

  1. Ujian balik kuantitatif dan pengoptimuman

Menggunakan backtesting dan perdagangan kertas untuk mengoptimumkan parameter berulang kali dan membantu keputusan perdagangan langsung.

  1. Perdagangan automatik

Parameter strategi berdasarkan hasil backtest dan menggabungkan ke dalam sistem perdagangan automatik untuk pelaksanaan bebas tangan.

Kesimpulan

Strategi ini mengintegrasikan isyarat Bollinger, EMA dan candlestick untuk pengesahan berbilang. Dagangan dua baris lebih meningkatkan keuntungan. Dengan tindak balas cepat, ia sesuai untuk perdagangan kerap jangka pendek. Henti keuntungan / kerugian yang berkesan dan pengoptimuman parameter dapat meningkatkan prestasi sambil mengurangkan risiko. Secara keseluruhan, strategi yang mudah dan praktikal ini mempunyai nilai praktikal yang kuat.


/*backtest
start: 2022-09-30 00:00:00
end: 2023-10-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//Design by MrPhu in August,10,2018
strategy("TrumpShipper_Long_Short V26", overlay=true)
filterFractals = input(true, title=" Follow Code #Trump On/Off")
dt = 0.0001
confidence=(request.security(syminfo.tickerid, 'D', close)-request.security(syminfo.tickerid, 'D', close[1]))/request.security(syminfo.tickerid, 'D', close[1])
prediction = confidence > dt ? true : confidence < -dt ? false : prediction[1]

if (prediction)
    strategy.exit("Close", "Short ")
    strategy.entry("Long ", strategy.long)

if (not prediction)
    strategy.exit("Close", "Long ")
    strategy.entry("Short ", strategy.short)
///////////Bollinger Band///////////////
length = 20
crc = close, title="Source"
mult = 2.0
basis = sma(crc, length)
dev = mult * stdev(crc, length)
upper = basis + dev
lower = basis - dev
spanColor = prediction ? green : red, transp=90

p1 = plot(upper, title="Short", style=line, linewidth=1, color=spanColor)
p2 = plot(lower, title="Long", style=line, linewidth=1, color=spanColor)

fill(p1, p2, color=spanColor, transp=90, title="Fill")

/////////////
Optional_TimeFrame = 'D'

M_HIGH = request.security(syminfo.tickerid, Optional_TimeFrame, high)
M_OPEN = request.security(syminfo.tickerid, Optional_TimeFrame, open)
M_LOW = request.security(syminfo.tickerid, Optional_TimeFrame, low)

H_RANGE = M_HIGH-M_OPEN
L_RANGE = M_OPEN-M_LOW

H_236 = M_HIGH - H_RANGE * 0.236
H_382 = M_HIGH - H_RANGE * 0.382
H_500 = M_HIGH - H_RANGE * 0.500
H_618 = M_HIGH - H_RANGE * 0.618
H_764 = M_HIGH - H_RANGE * 0.764

L_236 = M_LOW + L_RANGE * 0.236
L_382 = M_LOW + L_RANGE * 0.382
L_500 = M_LOW + L_RANGE * 0.500
L_618 = M_LOW + L_RANGE * 0.618
L_764 = M_LOW + L_RANGE * 0.764

pl1=plot(M_HIGH, color=M_HIGH != M_HIGH[1] ?na:black, style=line, linewidth=1, transp=80)

pl2=plot(H_236, color=H_236 != H_236[1] ?na:gray, style=line, linewidth=1, transp=80)
pl3=plot(H_382, color=H_382 != H_382[1] ?na:black, style=line, linewidth=1, transp=80)
pl4=plot(H_500, color=H_500 != H_500[1] ?na:red, style=line, linewidth=1, transp=80)
pl5=plot(H_618, color=H_618 != H_618[1] ?na:gray, style=line, linewidth=1, transp=80)
pl6=plot(H_764, color=H_764 != H_764[1] ?na:gray, style=line, linewidth=1, transp=80)

pl7=plot(M_OPEN, color=M_OPEN != M_OPEN[1] ?na:blue, style=line, linewidth=2)

pl8=plot(L_236, color=L_236 != L_236[1] ?na:gray, style=line, linewidth=1, transp=80)
pl9=plot(L_382, color=L_382 != L_382[1] ?na:black, style=line, linewidth=1, transp=80)
pl10=plot(L_500, color=L_500 != L_500[1] ?na:red, style=line, linewidth=1, transp=80)
pl11=plot(L_618, color=L_618 != L_618[1] ?na:black, style=line, linewidth=1, transp=80)
pl12=plot(L_764, color=L_764 != L_764[1] ?na:gray, style=line, linewidth=1, transp=80)

pl13=plot(M_LOW, color=M_LOW != M_LOW[1] ?na:black, style=line, linewidth=1, transp=80)

SHOW_MA = false
MA_SRC = hlc3
MA_LENGTH = 21

_MA = ema(MA_SRC, MA_LENGTH)
pl14=plot(not SHOW_MA ? na : _MA, color=teal, linewidth=2)

SHOW_SIGNALS = true

BUYX(_F) => cross(_F, MA_SRC) and rising(_MA, 1)
SELX(_F) => cross(_F, MA_SRC) and falling(_MA, 1)

SEL_SIGNAL = SELX(H_236) or SELX(H_382) or SELX(H_500) or SELX(H_618) or SELX(H_764) or SELX(L_236) or SELX(L_382) or SELX(L_500) or SELX(L_618) or SELX(H_764)

BUY_SIGNAL = BUYX(H_236) or BUYX(H_382) or BUYX(H_500) or BUYX(H_618) or BUYX(H_764) or BUYX(L_236) or BUYX(L_382) or BUYX(L_500) or BUYX(L_618) or BUYX(H_764)

//================= Chart 30m =================/////
//Jurij
h_left = 10
h_right = 10
//barCount = nz(barCount[1]) + 1
//check history and realtime PTZ
h_left_low = lowest(h_left)
h_left_high = highest(h_left)
newlow = low <= h_left_low
newhigh = high >= h_left_high
central_bar_low = low[h_right + 1]
central_bar_high = high[h_right + 1]
full_zone_low = lowest(h_left + h_right + 1)
full_zone_high = highest(h_left + h_right + 1)
central_bar_is_highest = central_bar_high >= full_zone_high
central_bar_is_lowest = central_bar_low <= full_zone_low
plotchar(central_bar_is_highest ? -1 : 0, offset=-h_right-1 ,color=red, text="Top")
plotchar(central_bar_is_lowest ? 1 : 0, offset=-h_right-1 ,location=location.belowbar, color=green, text="Bottom")

Lebih lanjut