Strategi perdagangan trailing stop loss berdasarkan indikator EMA dan MACD


Tanggal Pembuatan: 2023-09-20 11:21:14 Akhirnya memodifikasi: 2023-09-20 11:21:14
menyalin: 0 Jumlah klik: 882
1
fokus pada
1617
Pengikut

Ringkasan

Strategi ini menggabungkan indeks moving average (EMA) dan moving average convergence divergence (MACD) untuk menghasilkan sinyal perdagangan dan menggunakan tracking stop loss untuk mengendalikan risiko. Strategi ini berlaku untuk tren, yang bertujuan untuk melacak tren jangka panjang.

Prinsip Strategi

Ketika EMA cepat melintasi EMA lambat dan kolom histogram MACD kosong, strategi melakukan over; ketika posisi over ada, atur jalur stop loss ke bawah, jika harga turun lebih dari batas stop loss, stop loss akan keluar dari posisi over.

Secara khusus, strategi menggunakan 7 hari EMA dan 14 hari EMA untuk membangun EMA yang cepat; menggunakan 12 hari EMA dikurangi 26 hari EMA untuk mendapatkan MACD, dan kemudian dengan 9 hari EMA untuk mendapatkan garis sinyal. Ketika 7 hari EMA melewati 14 hari EMA dan MACD melewati sinyal, melakukan overopening; kemudian mengatur tracking stop loss ke bawah, jika harga lebih tinggi jatuh lebih dari persentase tertentu, stop loss dan keluar dari melakukan multi order.

Analisis Keunggulan

Strategi ini menggabungkan dua indikator EMA dan MACD, yang dapat secara efektif menyaring terobosan palsu. EMA menilai arah tren, MACD menilai titik jual beli, keduanya dapat mengurangi frekuensi perdagangan dan meningkatkan kualitas sinyal. Tracking stop loss dapat memaksimalkan perlindungan dari keuntungan yang telah dicapai, dan berhenti tepat waktu jika terjadi situasi yang sangat tidak menguntungkan.

Retrospektif menunjukkan bahwa strategi ini juga bisa mendapatkan hasil yang lebih baik di pasar beruang, yang menunjukkan bahwa strategi ini memiliki beberapa robustness. Strategi ini tidak memiliki frekuensi perdagangan yang tinggi, cocok untuk memegang posisi jangka menengah dan panjang.

Analisis risiko

Strategi ini didasarkan pada indikator, dan ada risiko untuk melakukan arbitrage. EMA dan MACD dapat menghasilkan sejumlah besar sinyal palsu ketika pasar berada dalam fase penyesuaian getaran, yang menyebabkan overtrading dan kerugian. Tracking stop loss hanya efektif untuk menembus ke bawah dan tidak dapat menanggapi penurunan besar setelah menembus ke atas.

Anda dapat mengurangi sinyal palsu dengan memperluas parameter siklus EMA secara tepat. Anda juga dapat menggabungkan sinyal penyaringan indikator lain, seperti indikator kuantitatif, indikator volatilitas, dan lain-lain. Selain itu, Anda dapat menyesuaikan rasio stop loss sesuai dengan kondisi pasar untuk menyeimbangkan risiko stop loss dan arbitrage.

Arah optimasi

  1. Anda dapat menguji kombinasi siklus EMA yang berbeda untuk menemukan parameter siklus yang lebih sesuai dengan strategi.

  2. Anda dapat menambahkan indikator lain untuk memfilter sinyal, seperti RSI, KD, dll, untuk meningkatkan kualitas sinyal.

  3. Anda dapat menyesuaikan stop loss rasio sesuai dengan varietas yang berbeda, dan mengatur stop loss pelacakan dinamis untuk mengoptimalkan strategi stop loss.

  4. Anda dapat menggabungkan indikator teknis seperti terobosan, bentuk, dan lain-lain untuk mengatur lebih banyak kondisi untuk membuka dan menyimpan posisi, sehingga strategi Anda lebih disesuaikan.

  5. Pembelajaran mesin dapat diperkenalkan untuk memprediksi arah tren siklus, membantu EMA menentukan tren keseluruhan.

Meringkaskan

Strategi ini secara keseluruhan cukup kuat dan dapat menghasilkan keuntungan yang baik di pasar beruang. Namun, ada risiko tertentu untuk melakukan arbitrage dan perlu mengoptimalkan parameter dan kondisi penyaringan. Strategi ini akan lebih efektif jika dapat digabungkan dengan indikator teknis lainnya dan pembelajaran mesin untuk meningkatkan pengoptimalan. Secara keseluruhan, strategi ini memberikan template yang dapat diandalkan untuk perdagangan kuantitatif.

Kode Sumber Strategi
/*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)