Strategi ini disebut
Strategi ini terdiri dari dua bagian:
Indikator DEMA. Indikator ini menghitung rata-rata bergerak eksponensial 20 hari dan 2 hari. Ini menghasilkan sinyal perdagangan ketika harga menembus garis 2 hari dari atas atau menembus garis 20 hari dari bawah.
(Highest Price - Lowest Price) /Close Price Volatility Index. Indeks ini mencerminkan rentang fluktuasi harga dalam satu periode. Di sini kita menghitung rata-rata bergerak sederhana 16 hari dari indeks volatilitas selama 20 bar terakhir. Ketika volatilitas bar saat ini lebih tinggi atau lebih rendah dari nilai rata-rata ini, itu menghasilkan sinyal perdagangan.
Jika DEMA dan indeks volatilitas memberikan sinyal pada saat yang sama, pesanan perdagangan panjang atau pendek akhir akan dihasilkan.
Strategi ini memiliki keuntungan berikut:
Menggabungkan beberapa indikator dapat mengurangi sinyal palsu dan meningkatkan keandalan sinyal.
Garis 20 hari dapat secara efektif mengidentifikasi tren jangka menengah hingga panjang, dan garis 2 hari dapat menangkap fluktuasi jangka pendek, membuat kombinasi dapat disesuaikan dengan lingkungan pasar yang berbeda.
Indeks volatilitas dapat secara efektif mencerminkan volatilitas pasar dan peluang perdagangan.
Dengan menyesuaikan parameter, ia dapat beradaptasi dengan produk dan pasar siklus yang berbeda.
Strategi ini juga memiliki beberapa risiko:
Dalam tren volatilitas rendah, indeks volatilitas dapat menghasilkan sinyal yang salah.
Dalam pasar satu arah yang cepat, EMA ganda mungkin tertinggal.
Perkembangan kompleksitas dari beberapa indikator juga meningkatkan risiko optimasi yang berlebihan. pengujian backtesting dan pengujian stabilitas parameter yang komprehensif diperlukan.
Strategi ini juga dapat dioptimalkan dalam aspek berikut:
Menambahkan mekanisme stop loss dapat secara efektif mengendalikan kerugian per order.
Mengoptimalkan parameter untuk produk dan siklus yang berbeda untuk meningkatkan kemampuan beradaptasi.
Meningkatkan indikator likuiditas dan volatilitas untuk meningkatkan kualitas sinyal.
Menambahkan algoritma pembelajaran mesin untuk mencapai parameter dinamis dan penyesuaian berat.
Dengan menggabungkan EMA ganda dan indeks volatilitas, strategi ini dapat mencapai kinerja perdagangan yang baik di pasar yang sedang tren dan volatile. Ada juga risiko tertentu yang membutuhkan optimasi dan perbaikan lebih lanjut.
/*backtest start: 2023-11-17 00:00:00 end: 2023-12-17 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 12/04/2022 // This is combo strategies for get a cumulative signal. // // First strategy // This indicator plots 2/20 exponential moving average. For the Mov // Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met. // // Second strategy // This histogram displays (high-low)/close // Can be applied to any time frame. // // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// EMA20(Length) => pos = 0.0 xPrice = close xXA = ta.ema(xPrice, Length) nHH = math.max(high, high[1]) nLL = math.min(low, low[1]) nXS = nLL > xXA or nHH < xXA ? nLL : nHH iff_1 = nXS < close[1] ? 1 : nz(pos[1], 0) pos := nXS > close[1] ? -1 : iff_1 pos HLCH(input_barsback,input_percentorprice,input_smalength) => pos = 0.0 xPrice = (high-low)/close xPriceHL = (high-low) xPrice1 = input_percentorprice ? xPrice * 100: xPriceHL xPrice1SMA = ta.sma(math.abs(xPrice1), input_smalength) pos := xPrice1SMA[input_barsback] > math.abs(xPrice1) ? 1 : xPrice1SMA[input_barsback] < math.abs(xPrice1) ? -1 : nz(pos[1], 0) pos strategy(title='Combo 2/20 EMA & (H-L)/C Histogram', shorttitle='Combo', overlay=true) var I1 = '●═════ 2/20 EMA ═════●' Length = input.int(14, minval=1, group=I1) var I2 = '●═════ (H-L)/C Histogram ═════●' input_barsback = input(20, title="Look Back", group=I2) input_percentorprice = input(false, title="% change", group=I2) input_smalength = input(16, title="SMA Length", group=I2) var misc = '●═════ MISC ═════●' reverse = input.bool(false, title='Trade reverse', group=misc) var timePeriodHeader = '●═════ Time Start ═════●' d = input.int(1, title='From Day', minval=1, maxval=31, group=timePeriodHeader) m = input.int(1, title='From Month', minval=1, maxval=12, group=timePeriodHeader) y = input.int(2005, title='From Year', minval=0, group=timePeriodHeader) StartTrade = time > timestamp(y, m, d, 00, 00) ? true : false posEMA20 = EMA20(Length) prePosHLCH = HLCH(input_barsback,input_percentorprice,input_smalength) iff_1 = posEMA20 == -1 and prePosHLCH == -1 and StartTrade ? -1 : 0 pos = posEMA20 == 1 and prePosHLCH == 1 and StartTrade ? 1 : iff_1 iff_2 = reverse and pos == -1 ? 1 : pos possig = reverse and pos == 1 ? -1 : iff_2 if possig == 1 strategy.entry('Long', strategy.long) if possig == -1 strategy.entry('Short', strategy.short) if possig == 0 strategy.close_all() barcolor(possig == -1 ? #b50404 : possig == 1 ? #079605 : #0536b3)