Strategi aliran menurun berdasarkan anjakan semula EMA dan Fibonacci


Tarikh penciptaan: 2023-09-21 21:36:16 Akhirnya diubah suai: 2023-09-21 21:36:16
Salin: 1 Bilangan klik: 827
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi ini menggunakan petunjuk EMA untuk menentukan arah trend, dan digabungkan dengan penarikan balik Fibonacci untuk menentukan titik balik secara automatik, untuk mencapai harga rendah dan harga tinggi, untuk menangkap trend turun. Operasi strategi sering, sesuai untuk perdagangan garis pendek.

Prinsip Strategi

  1. Menggunakan EMA 9 hari dan EMA 21 hari untuk membentuk garpu mati, untuk menentukan arah trend. 21 hari EMA turun melalui 55 hari EMA dianggap sebagai isyarat permulaan trend menurun.

  2. Tetapkan Fibonacci Retracement Adaptive dengan 100 kitaran, dan tentukan secara automatik kadar retracement kritikal berdasarkan kepada rentang pergerakan harga terkini.

  3. Apabila harga melepasi 0.236 Fibonacci retracement, ia dianggap sebagai isyarat pembalikan, dan kedudukan yang sedia ada berada di posisi kosong.

  4. Apabila EMA 9 di bawah EMA 21 dan harga lebih rendah daripada titik tertinggi Fibonacci yang disesuaikan, masuklah secara kosong.

  5. Keuntungan berganda keluar syarat untuk menembusi EMA 200 hari. Kehilangan hentian udara keluar syarat untuk menembusi 0.236 Fibonacci retracement.

Kelebihan Strategik

  • Menggunakan EMA untuk menentukan arah trend, isyarat operasi mudah dan jelas

  • Fibonacci Retracement Adaptive, tanpa perlu menentukan parameter secara manual

  • Operasi strategi kerap, dapat menangkap perubahan garis pendek, mewujudkan strategi frekuensi tinggi

  • Menggunakan titik-titik pengunduran utama untuk menentukan pembalikan dan menghentikan kerugian tepat pada masanya

  • Parameter yang boleh dikonfigurasi, strategi pengoptimuman untuk menyesuaikan diri dengan kitaran yang berbeza

Risiko Strategik

  • Indeks EMA terlewat, perlu digabungkan dengan indikator lain untuk mengesahkan

  • Adaptasi Fibonacci mungkin terlalu optimum, titik tolak tidak stabil

  • Perdagangan frekuensi tinggi meningkatkan kos transaksi dan kos slippage

  • Tidak dapat menyaring aliran gegaran dengan berkesan, terdapat terlalu banyak isyarat yang salah

  • Pengendalian pengeluaran dan kawalan kadar kerugian perlu diperbaiki

Arah pengoptimuman strategi

  • Meningkatkan penunjuk tenaga kuantitatif untuk mengelakkan isyarat ralat yang disebabkan oleh ketidaksamaan harga kuantitatif

  • Mengoptimumkan parameter kitaran EMA agar lebih sesuai dengan keadaan pasaran semasa

  • Tetapkan Stop Loss Dinamik untuk Mengendalikan Risiko

  • Mengelakkan perdagangan berulang dalam keadaan yang tidak menentu dengan menggunakan indikator trend yang lemah

  • Mengambil kira kesan kos transaksi sebenar dan menetapkan penangguhan minimum

ringkaskan

Strategi ini menggunakan EMA untuk menentukan arah trend, dan menggunakan Fibonacci retracement yang menyesuaikan diri untuk menentukan titik balik, dan dapat menyesuaikan diri secara automatik dengan perubahan pasaran yang berbeza. Tetapi strategi ini lebih bergantung pada petunjuk petunjuk, kurangnya segmen trend dan logika penghakiman gelombang, ruang pengoptimuman yang lebih besar. Secara keseluruhan, sebagai strategi perdagangan garis pendek frekuensi tinggi, dapat menangkap perubahan harga yang lebih cepat, tetapi memerlukan pedagang untuk menanggung risiko yang disebabkan oleh gangguan yang kerap, dan untuk mencegah masalah perdagangan berlebihan.

Kod 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)