Strategi ini menggunakan Bollinger Bands, EMA dan pola candlestick untuk perdagangan judi dual-line, yang termasuk dalam strategi perdagangan jangka pendek.
Strategi ini terdiri dari bagian-bagian berikut:
Bollinger Bands Menghasilkan rel atas dan bawah berdasarkan harga penutupan dan standar deviasi.
EMA Menghitung rata-rata bergerak eksponensial 21 hari dan menghasilkan sinyal perdagangan ketika harga melintasi EMA.
Pola Lilin Mengidentifikasi titik pembalikan harga seperti penutup awan gelap bawah dan pola tindikan atas untuk memicu perdagangan.
Perjudian Dua Garis Pergi panjang dan pendek secara bersamaan berdasarkan sinyal dari Bollinger, EMA crossover dan pola candlestick.
Logikanya adalah:
Gunakan Bollinger Bands untuk mengidentifikasi titik pembalikan potensial, pergi pendek di rel atas dan panjang di rel bawah. Hitung EMA 21 hari dan pergi panjang di salib emas, pergi pendek di salib kematian. Juga gunakan pola lilin untuk mengidentifikasi pembalikan, pergi panjang di bawah awan gelap dan pendek di atas tindikan. Gabungkan ketiga sinyal untuk membuat keputusan perdagangan dua arah akhir.
Strategi ini mengintegrasikan beberapa sinyal konfirmasi untuk meningkatkan efisiensi keputusan perdagangan.
Keuntungan utama dari strategi ini adalah:
Menggunakan Bollinger, EMA dan candlestick bersama-sama meningkatkan akurasi dengan memvalidasi sinyal. Ini membantu menghindari sinyal palsu dan perdagangan yang salah.
Sinyal gabungan dengan cepat mengidentifikasi titik pembalikan potensial untuk perdagangan tepat waktu sebelum pembalikan meluas.
Menyimpan posisi panjang dan pendek menguntungkan dari pergerakan besar ke kedua arah.
Bollinger dan EMA jangka pendek memungkinkan menangkap pergerakan jangka pendek, cocok untuk perdagangan yang sering dan menanggapi fluktuasi frekuensi tinggi.
Kode strategi lengkap membuatnya dapat digunakan langsung untuk perdagangan langsung. Pilihan parameter yang wajar juga membuatnya sangat mudah digunakan untuk pedagang individu.
Risiko potensial adalah:
Whipsaw dari sinyal Bollinger, EMA dan candlestick dapat menyebabkan stop loss berturut-turut. Sesuaikan parameter untuk memastikan stop loss yang wajar.
Memegang baik panjang maupun pendek dapat memperkuat kerugian. modal yang cukup diperlukan untuk mendukung risiko. ukuran posisi yang lebih rendah dianjurkan.
Mengatur stop profit/loss untuk membatasi kerugian besar yang tak terduga.
Bollinger dan EMA memiliki ruang optimasi yang relatif kecil.
Bagian dari strategi ini bergantung pada sinyal candlestick yang kadang-kadang tidak jelas.
Strategi ini dapat ditingkatkan dalam hal berikut:
Menambahkan indikator lain seperti KD, MACD mendiversifikasi sumber sinyal dan meningkatkan akurasi keputusan.
Menggunakan algoritma ML untuk menganalisis data historis dan meningkatkan atau mengganti beberapa sinyal indikator untuk mengurangi intervensi manual.
Memperkenalkan adaptif stop profit berdasarkan kinerja, dan trailing stop loss untuk mengurangi risiko.
Mengoptimalkan alokasi modal, ukuran posisi dan strategi pengendalian risiko sesuai dengan kondisi pasar.
Menggunakan backtesting dan perdagangan kertas untuk berulang kali mengoptimalkan parameter dan membantu keputusan perdagangan langsung.
Parameterisasi strategi berdasarkan hasil backtest dan menggabungkan ke dalam sistem perdagangan otomatis untuk eksekusi hands-free.
Strategi ini mengintegrasikan sinyal Bollinger, EMA dan candlestick untuk validasi ganda. Perdagangan dua baris lebih meningkatkan profitabilitas. Dengan respons cepat, ini cocok untuk perdagangan sering jangka pendek. Stop profit / loss yang efektif dan optimasi parameter dapat lebih meningkatkan kinerja sambil mengurangi risiko. Secara keseluruhan, strategi sederhana dan praktis ini memiliki nilai praktis 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")