Strategi tren turun berdasarkan EMA dan Fibonacci retracement


Tanggal Pembuatan: 2023-09-21 21:36:16 Akhirnya memodifikasi: 2023-09-21 21:36:16
menyalin: 1 Jumlah klik: 827
1
fokus pada
1617
Pengikut

Ringkasan

Strategi ini menggunakan indikator EMA untuk menentukan arah tren, dan digabungkan dengan adaptasi Fibonacci retracement untuk menentukan titik balik secara otomatis, untuk mencapai low buy high sell, dan menangkap tren turun. Operasi strategi sering, cocok untuk perdagangan garis pendek.

Prinsip Strategi

  1. Menggunakan 9 hari EMA dan 21 hari EMA membentuk garpu mata uang untuk menentukan arah tren. 21 hari EMA bawah menembus 55 hari EMA dianggap sebagai sinyal awal tren menurun.

  2. Fibonacci Retracement Adaptive, dengan durasi 100 siklus, secara otomatis menentukan rasio retracement kritis berdasarkan rentang pergerakan harga terbaru.

  3. Ketika harga menembus 0,236 Fibonacci retracement, dianggap sebagai sinyal reversal, dan posisi yang ada di posisi kosong.

  4. Ketika EMA 9 di bawah EMA 21 dan harga lebih rendah dari titik tertinggi Fibonacci, bukalah.

  5. Keterbatasan untuk keluar dari keuntungan ganda adalah untuk menembus EMA 200-hari. Keterbatasan untuk keluar dari kerugian udara adalah untuk menembus pengembalian Fibonacci 0.236.

Keunggulan Strategis

  • Menggunakan EMA untuk menentukan arah tren, sinyal operasi sederhana dan jelas

  • Adaptasi Fibonacci retracement, tidak perlu menentukan parameter secara manual

  • Operasi strategi sering, dapat menangkap perubahan garis pendek, dan menerapkan strategi frekuensi tinggi

  • Menggunakan titik balik kunci untuk menentukan pembalikan, dan menghentikan kerugian tepat waktu

  • Parameter yang dapat dikonfigurasi, strategi yang dapat dioptimalkan untuk adaptasi dengan siklus yang berbeda

Risiko Strategis

  • Indikator EMA terlambat dan perlu dikonfirmasi dengan kombinasi indikator lain

  • Adaptasi Fibonacci mungkin terlalu optimal, titik mundurnya tidak stabil

  • Transaksi frekuensi tinggi meningkatkan biaya transaksi dan biaya slippoint

  • Tidak dapat memfilter tren getaran secara efektif, ada terlalu banyak sinyal yang salah

  • Manajemen penarikan dan pengendalian rasio laba rugi harus ditingkatkan

Arah optimasi strategi

  • Meningkatkan indikator energi kuantitatif untuk menghindari sinyal kesalahan yang disebabkan oleh deviasi harga kuantitatif

  • Optimalkan parameter siklus EMA agar lebih sesuai dengan lingkungan pasar saat ini

  • Tetapkan Stop Loss Dinamis untuk Mengontrol Risiko Lebih Baik

  • Menghindari perdagangan berulang pada periode yang bergejolak dengan indikator tren yang kuat dan lemah

  • Mengingat dampak dari biaya transaksi yang sebenarnya, mengatur stop loss minimum

Meringkaskan

Strategi ini menggunakan EMA untuk menentukan arah tren dan menggunakan Fibonacci retracement untuk menentukan titik balik. Strategi ini dapat secara otomatis beradaptasi dengan perubahan pasar yang berbeda. Namun, strategi ini lebih bergantung pada petunjuk indikator, kurangnya segmen tren dan logika penilaian gelombang, ruang optimasi yang lebih besar. Secara keseluruhan, sebagai strategi perdagangan garis pendek frekuensi tinggi, dapat menangkap perubahan harga yang lebih cepat, tetapi perlu bagi pedagang untuk menanggung risiko yang ditimbulkan oleh seringnya stop loss, serta mencegah masalah perdagangan berlebihan.

Kode Sumber Strategi
/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 00:00:00
period: 1h
basePeriod: 15m
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/
// © CheatCode1

//@version=5
strategy("CC-Trend strategy 2", overlay=true, initial_capital = 10000, commission_type = strategy.commission.percent, commission_value = 0.01, default_qty_type =  strategy.percent_of_equity, default_qty_value = 100 )
ema9 = ta.ema(close, 9)
ema21 = ta.ema(close, 21)
ema55 = ta.ema(close, 55)
ema200 = ta.ema(close, 200)


plot(ema200, '22', color.blue, 2)

FibL = input.int(100, 'Fibonacci Length', 1, 500, group = 'Automatic Fibonacci Retracement')
len1 = input.int(1, 'Show Last', 0, 1000, group = 'Automatic Fibonacci Retracement')
len2 = input.int(5, 'Offset Length', 0, 1000, group = 'Automatic Fibonacci Retracement')

highF = ta.highest(ema55 >= ema9 ? ema55:ema9, FibL)
lowF = ta.lowest(ema55 >= ema9 ? ema9:ema55, FibL)
AvgFib = highF - lowF

//Fibonacci Executions
LL2 = highF + .618 * AvgFib
LL1 = highF + .272 * AvgFib
L1 = highF
L236 = highF - 0.236 * AvgFib
L382 = highF - 0.382 * AvgFib
Mid =  highF - 0.50 * AvgFib
S382 = lowF + 0.382 * AvgFib
S236 = lowF + 0.236 * AvgFib
S1 = lowF
SS1 = lowF - .272 * AvgFib
SS2 = lowF - .618 * AvgFib
//Fibonacci Plot's


high2FP = plot(LL2, 'Highe2', color.red,offset = len2, show_last = len1, trackprice = true)
high1FP = plot(LL1, 'Highe1', color.red,offset = len2, show_last = len1, trackprice = true)
highFP = plot(highF, 'High', color.red,offset = len2, show_last = len1, trackprice = true)
L236P = plot(L236, "0.764", #ED381C, offset = len2, show_last = len1, trackprice = true )
L382P = plot(L382, "0.618", color.white,offset = len2, show_last = len1, trackprice = true )
MidP = plot(Mid, "0.5", color.orange,offset = len2, show_last = len1, trackprice = true )
S382P = plot(S382, "0.382", color.yellow ,offset = len2, show_last = len1, trackprice = true)
S236P = plot(S236, "0.236", color.lime ,offset = len2, show_last = len1, trackprice = true)
lowFP = plot(lowF, 'Low', color.green,offset = len2, show_last = len1, trackprice = true)
low1FP = plot(SS1, 'Lowe1', color.green,offset = len2, show_last = len1, trackprice = true)
low2FP = plot(SS2, 'Lowe2', color.green,offset = len2, show_last = len1, trackprice = true)

plot(ema9, '22', color.yellow, 2)

plot(ema55, '55', color.aqua, 2)

plot(ema200, '200', color.maroon, 2)



shortCondition = close[1] < highF and ema21 < ema55
if (shortCondition)
    strategy.entry("Short", strategy.short)

shorttp = ta.crossover(close, ema200) and strategy.openprofit >= 0
if (shorttp)
    strategy.close('Short', 'Short TP', qty_percent = 100)

shortclose2 = close[1] > L236 and not (shortCondition) 
if(shortclose2)
    strategy.close('Short', 'Short RM', qty_percent = 100)