Strategi GM-8 & ADX Dual Moving Average adalah strategi perdagangan kuantitatif yang menggabungkan beberapa indikator teknis. Ini memanfaatkan indikator GM-8, indikator ADX, dan indikator EMA kedua untuk mengidentifikasi sinyal beli dan jual potensial. Indikator GM-8 digunakan untuk menentukan tren harga, indikator ADX digunakan untuk mengkonfirmasi kekuatan tren, dan indikator EMA kedua digunakan untuk membantu menentukan arah tren. Sinyal beli dan jual dihasilkan ketika harga menembus rata-rata bergerak GM-8 dan indikator ADX berada di atas ambang batas. Keuntungan dari strategi ini terletak pada kombinasi beberapa indikator, yang meningkatkan keandalan sinyal. Namun, ini juga membawa risiko tertentu, seperti sinyal palsu dan lag. Arah optimasi strategi termasuk pengoptimalan parameter, mengoptimalkan stop-loss dan mengambil-profit, dll. Secara keseluruhan, GM-8 & ADX Dual Moving Average adalah strategi perdagangan yang relatif matang yang lebih lanjut yang menambah penelitian dan keuntungan.
Prinsip dari GM-8 & ADX Dual Moving Average Strategy adalah sebagai berikut:
Strategi GM-8 & ADX Dual Moving Average adalah strategi perdagangan kuantitatif klasik yang menggabungkan beberapa indikator teknis untuk mengidentifikasi sinyal beli dan jual. Keuntungan dari strategi ini terletak pada logika yang sederhana dan jelas, sinyal yang relatif dapat diandalkan, dan kesesuaian untuk pemula untuk belajar dan menggunakan. Namun, juga membawa risiko seperti pengenalan tren yang tertinggal, perdagangan yang sering, dan kesulitan dalam pemilihan parameter. Untuk meningkatkan kinerja strategi, langkah-langkah optimasi seperti memperkenalkan lebih banyak kondisi penyaringan, mempermudah waktu masuk dan keluar, menyesuaikan parameter secara dinamis, dan menambahkan manajemen posisi dapat dipertimbangkan. Secara keseluruhan, Strategi GM-8 & ADX Dual Moving Average menyediakan kerangka dasar yang baik untuk perdagangan kuantitatif dan layak disempurnakan dan ditingkatkan secara terus menerus dalam praktek.
/*backtest start: 2023-04-24 00:00:00 end: 2024-04-29 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("GM-8 and ADX Strategy with Second EMA", overlay=true) // Input parameters gm_period = input(15, title="GM-15 Period") second_ema_period = input(59, title="Second EMA Period") adx_period = input(8, title="ADX Period") adx_threshold = input(34, title="ADX Threshold") lot_size = input.float(0.4, title="Lot Size") // Calculate the ADX manually adx(high, low, close, length) => sum_truerange = 0.0 sum_plusDM = 0.0 sum_minusDM = 0.0 for i = 1 to length truerange_calc = high[i] - low[i] truerange_prev_close = high[i] - close[i-1] truerange_close = low[i] - close[i-1] truerange_calc := truerange_prev_close > truerange_calc ? truerange_prev_close : truerange_calc truerange_calc := truerange_close > truerange_calc ? truerange_close : truerange_calc sum_truerange := sum_truerange + truerange_calc plusDM = high[i] - high[i-1] > low[i-1] - low[i] and high[i] - high[i-1] > 0 ? high[i] - high[i-1] : 0 sum_plusDM := sum_plusDM + plusDM minusDM = low[i-1] - low[i] > high[i] - high[i-1] and low[i-1] - low[i] > 0 ? low[i-1] - low[i] : 0 sum_minusDM := sum_minusDM + minusDM plusDI = sum_plusDM / sum_truerange * 100 minusDI = sum_minusDM / sum_truerange * 100 sumDI = plusDI + minusDI adx_value = 100 * (plusDI - minusDI) / (sumDI == 0 ? 1 : sumDI) // Calculate indicators gm_8 = ta.sma(close, gm_period) second_ema = ta.ema(close, second_ema_period) adx_value = adx(high, low, close, adx_period) // Define buy and sell conditions buy_condition = ta.crossover(close, gm_8) and close > gm_8 and close > second_ema and adx_value > adx_threshold sell_condition = ta.crossunder(close, gm_8) and close < gm_8 and close < second_ema and adx_value > adx_threshold // Entry and exit logic if (buy_condition) strategy.entry("Buy", strategy.long, qty=lot_size) if (sell_condition) strategy.entry("Sell", strategy.short, qty=lot_size) // Exit conditions exit_buy_condition = ta.crossunder(close, gm_8) and close < gm_8 exit_sell_condition = ta.crossover(close, gm_8) and close > gm_8 if (exit_buy_condition) strategy.close("Buy") if (exit_sell_condition) strategy.close("Sell")