Strategi ini menggabungkan kedua-dua petunjuk purata bergerak indeks (EMA) dan purata bergerak convergence divergence (MACD) untuk menghasilkan isyarat perdagangan, dan menggunakan tracking stop loss untuk mengawal risiko. Strategi ini digunakan untuk pergerakan trend, yang bertujuan untuk mengikuti trend jangka menengah untuk memegang kedudukan panjang.
Apabila garis EMA cepat melintasi garis EMA perlahan dan tiang histogram MACD menjadi kosong, strategi melakukan lebih banyak; apabila kedudukan kedudukan yang lebih tinggi wujud, tetapkan garis hentian pengesanan ke bawah, jika harga jatuh melebihi garis hentian dalam peratusan tertentu, hentikan dan keluar dari kedudukan kedudukan yang lebih tinggi.
Khususnya, strategi menggunakan 7 hari EMA dan 14 hari EMA untuk membina EMA yang cepat; menggunakan EMA 12 hari dikurangkan 26 hari EMA untuk nilai MACD, dan kemudian dengan EMA 9 hari untuk mendapatkan garis isyarat. Apabila EMA 7 hari melewati 14 hari EMA dan nilai MACD melewati isyarat, buatlah lebih banyak kedudukan; kemudian setkan satu garis hentikan ke bawah, jika harga lebih tinggi jatuh lebih dari satu peratusan, hentikan kerugian dan keluar dari banyak pesanan.
Strategi ini menggabungkan kedua-dua indikator EMA dan MACD, yang dapat menyaring penembusan palsu dengan berkesan. EMA menentukan arah trend, MACD menentukan titik jual beli, keduanya dapat mengurangkan frekuensi perdagangan dan meningkatkan kualiti isyarat. Tracking stop loss dapat meminimumkan perlindungan keuntungan yang telah dicapai, berhenti tepat pada masanya apabila berlaku keadaan yang tidak menguntungkan.
Retrospektif menunjukkan bahawa strategi ini juga dapat memperoleh hasil yang lebih baik dalam pasaran beruang, menunjukkan bahawa strategi ini mempunyai beberapa kecanggihan. Strategi ini tidak mempunyai frekuensi perdagangan yang tinggi, sesuai untuk memegang kedudukan jangka menengah dan panjang.
Strategi ini adalah berasaskan pada indikator dan ada risiko untuk diboikot. EMA dan MACD boleh menghasilkan banyak isyarat palsu ketika pasaran berada dalam tahap penyesuaian gegaran, yang menyebabkan perdagangan berlebihan dan kerugian.
Anda boleh mengurangkan isyarat palsu dengan memperluaskan parameter kitaran EMA dengan betul. Anda juga boleh menggabungkan isyarat penapis indikator lain, seperti penunjuk kuantitatif, penunjuk kadar turun naik, dan lain-lain. Selain itu, anda boleh menyesuaikan nisbah stop loss mengikut keadaan pasaran, untuk mengimbangi risiko stop loss dan pengaliran.
Anda boleh menguji pelbagai kombinasi kitaran EMA untuk mencari parameter kitaran yang lebih sesuai dengan strategi.
Anda boleh menapis isyarat dengan penunjuk lain, seperti RSI, KD, dan lain-lain, untuk meningkatkan kualiti isyarat.
Anda boleh menyesuaikan kadar hentian mengikut jenis yang berbeza, dan menetapkan hentian pengesanan dinamik untuk mengoptimumkan strategi hentian.
Anda boleh menggabungkan penembusan, bentuk dan lain-lain petunjuk teknikal untuk menetapkan lebih banyak keadaan untuk membuka dan menyimpan, menjadikan strategi lebih disesuaikan.
Pembelajaran mesin boleh diperkenalkan untuk meramalkan arah trend kitaran, membantu EMA menentukan trend keseluruhan.
Strategi ini agak mantap secara keseluruhan, dan juga dapat memperoleh keuntungan yang baik dalam pasaran beruang. Tetapi terdapat risiko tertentu untuk melakukan penarikan, yang memerlukan pengoptimuman parameter dan syarat penapisan.
/*backtest
start: 2023-09-12 00:00:00
end: 2023-09-19 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Coinrule
//@version=5
strategy('EMA and MACD with Trailing Stop Loss',
overlay=true,
initial_capital=1000,
process_orders_on_close=true,
default_qty_type=strategy.percent_of_equity,
default_qty_value=30,
commission_type=strategy.commission.percent,
commission_value=0.1)
showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2022, 1, 1, 0, 0)
notInTrade = strategy.position_size <= 0
// EMAs
fastEMA = ta.ema(close, 7)
slowEMA = ta.ema(close, 14)
plot(fastEMA, color = color.blue)
plot(slowEMA, color = color.green)
//buyCondition1 = ta.crossover(fastEMA, slowEMA)
buyCondition1 = fastEMA > slowEMA
// DMI and MACD inputs and calculations
[macd, macd_signal, macd_histogram] = ta.macd(close, 12, 26, 9)
buyCondition2 = ta.crossover(macd_signal, macd)
// Configure trail stop level with input options
longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01
shortTrailPerc = input.float(title='Trail Short Loss (%)', minval=0.0, step=0.1, defval=1) * 0.01
// Determine trail stop loss prices
longStopPrice = 0.0
shortStopPrice = 0.0
longStopPrice := if strategy.position_size > 0
stopValue = close * (1 - longTrailPerc)
math.max(stopValue, longStopPrice[1])
else
0
shortStopPrice := if strategy.position_size < 0
stopValue = close * (1 + shortTrailPerc)
math.min(stopValue, shortStopPrice[1])
else
999999
if (buyCondition1 and buyCondition2 and notInTrade and timePeriod)
strategy.entry(id="Long", direction = strategy.long)
strategy.exit(id="Exit", stop = longStopPrice, limit = shortStopPrice)
//if (sellCondition1 and sellCondition2 and notInTrade and timePeriod)
//strategy.close(id="Close", when = sellCondition1 or sellCondition2)