Strategi ini membuka posisi berdasarkan salib emas dan salib kematian dari rata-rata bergerak, dan set mengambil keuntungan dan stop loss dengan cara floor-crossing. Fitur utamanya adalah:
Strategi ini terdiri dari empat bagian:
Sistem Rata-rata Bergerak
Gunakan golden cross dan death cross dari moving average untuk menentukan tren dan menyaring kejutan.
Berpindah Mendapatkan Keuntungan dan Menghentikan Kerugian
Gunakan mengambil keuntungan dan stop loss dengan persentase tertentu untuk mengunci keuntungan dan mengendalikan risiko, mewujudkan manajemen modal yang dinamis.
Filter Posisi
Dapat mengkonfigurasi apakah untuk mengaktifkan penyaringan posisi. Jika posisi sebelumnya panjang, sinyal berikutnya harus pendek untuk membuka posisi, menghindari memegang sepihak.
ATR Stop Loss
Gunakan ATR untuk membatasi kisaran stop loss maksimum dan menghindari stop loss yang berlebihan.
Secara khusus, strategi ini pertama kali menghitung moving average, long di golden cross, dan short di death cross. Setelah masuk, atur garis take profit dan stop loss bergerak dengan persentase tertentu. Jika harga menyentuh garis take profit, maka take profit; jika menyentuh garis stop loss atau melebihi rentang stop loss ATR, maka stop loss.
Keuntungan utama dari strategi ini adalah:
Konfigurasi Tinggi
Banyak parameter dalam strategi dapat dikonfigurasi agar pengguna dapat menyesuaikan berdasarkan gaya trading mereka.
Manajemen Modal yang Baik
Penerapan bergerak mengambil keuntungan dan stop loss dan ATR stop loss dapat secara efektif mengontrol amplitudo stop loss tunggal dan mencapai manajemen modal yang sangat baik.
Cocok untuk Pasar Trending
Strategi rata-rata bergerak itu sendiri lebih cocok untuk pasar tren yang kuat untuk menyaring kejutan secara efektif.
Ada juga beberapa risiko dalam strategi ini:
Kesalahan Penilaian Tren
Penghakiman rata-rata bergerak di pasar yang kompleks tidak sempurna, dan penilaian yang salah mungkin terjadi. Pada saat ini, parameter rata-rata bergerak harus disesuaikan dengan demikian, atau indikator lain dapat dikombinasikan untuk menilai tren.
Stop Loss yang berlebihan
Parameter ATR harus dikombinasikan untuk mengatur rentang stop loss.
Risiko pembukaan satu arah
Memungkinkan penyaringan posisi akan memiliki beberapa dampak pada frekuensi perdagangan.
Arah optimasi utama adalah:
Optimasi Parameter
Sesuaikan siklus rata-rata bergerak, parameter ATR, mengambil keuntungan dan stop loss rasio dan parameter lainnya untuk mengoptimalkan kinerja strategi.
Menambahkan indikator
Tambahkan indikator seperti CMF, OBV untuk menilai arus modal dan menghindari stop loss yang berlebihan.
Menggabungkan dengan strategi lain
Gabungkan dengan strategi istirahat untuk mengikuti tren setelah tren stabil untuk mencapai hasil yang lebih baik.
Singkatnya, melalui filter rata-rata bergerak dan bergerak mengambil keuntungan dan stop loss, strategi ini mewujudkan manajemen modal dinamis berdasarkan tren. Ini memiliki konfigurasi yang tinggi, cocok untuk investor rasional untuk menyesuaikan dan menggunakan sesuai dengan gaya mereka sendiri.
/*backtest start: 2023-11-20 00:00:00 end: 2023-12-11 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/ // © MGULHANN //@version=5 //İchimoku Leading Span 2 Hesaplaması ve Girişleri strategy("Stairs Gain Strategy - MG", overlay=true, margin_long=100, margin_short=100) laggingSpan2Periods = input.int(52, minval=1, title="Leading Periot") displacement = input.int(1, minval=1, title="Displacement") donchian(len) => math.avg(ta.lowest(len), ta.highest(len)) leadLine2 = donchian(laggingSpan2Periods) p2 = plot(leadLine2, offset = displacement - 1, color=#EF9A9A, title="Leading Span B") // İşlem Tekrarını Filtrele filtreUygula = input.bool(true,title="Pozisyon Sıra Filtresi Uygula") //Kar Al / Zarar Durdur Seviyeleri Girişleri zararDurdurmaYuzde = input.float(1.0, title='Zarar Durdurma %', step=0.01) / 100 karAlmaYuzde = input.float(2.0, title='Kar Alma %', step=0.01) / 100 //ATR Hesaplaması atrCarpani = input.float(0.3, title="ATR Çarpanı", step= 0.01) atrDegeri = ta.atr(14) * atrCarpani //ATR Değer Girişleri atrbuyukdeger = input.float(0.01, title="ATR Üst Limit", step=0.01) atrkucukdeger = input.float(0.06, title="ATR Alt Limit", step=0.01) //Buy ve Sell Şartları buycross = ta.crossover(close,leadLine2[displacement-1]) ? atrDegeri > atrbuyukdeger : strategy.position_size == 0 sellcross = ta.crossover(leadLine2[displacement-1],close) ? atrDegeri < atrkucukdeger : strategy.position_size == 0 //KONTROL var sonPozisyonYonu = 0 //Son kapanan pozisyon long ise degiskenin degerini 1 olarak ata if strategy.position_size[1] > 0 and strategy.position_size == 0 sonPozisyonYonu := 1 //Son kapanan pozisyon short ise degiskenin degerini -1 olarak ata if strategy.position_size[1] < 0 and strategy.position_size == 0 sonPozisyonYonu := -1 //eger filtre uygulama seçiliyse ve son pozisyon yönü long ise 'longFiltreSonuc' degiskenine false degeri ata ve bir sonraki pozisyonun long olmasını engelle longFiltreSonuc = filtreUygula ? sonPozisyonYonu == 1 ? false : true : true //eger filtre uygulama seçiliyse ve son pozisyon yönü short ise 'shortFiltreSonuc' degiskenine false degeri ata ve bir sonraki pozisyonun short olmasını engelle shortFiltreSonuc = filtreUygula ? sonPozisyonYonu == -1 ? false : true : true //LONG GİRİŞ strategy.entry("Long", strategy.long, when=buycross and longFiltreSonuc) longKarAl = strategy.position_avg_price * (1 + karAlmaYuzde) longZararDurdur = strategy.position_avg_price * (1 - zararDurdurmaYuzde) strategy.exit("Long Exit","Long",limit=longKarAl, stop=longZararDurdur) //SHORT GİRİŞ strategy.entry("Short", strategy.short, when=sellcross and shortFiltreSonuc) shortKarAl = strategy.position_avg_price * (1 - karAlmaYuzde) shortZararDurdur = strategy.position_avg_price * (1 + zararDurdurmaYuzde) strategy.exit("Short Exit","Short",limit=shortKarAl, stop=shortZararDurdur) //Kar Al ve Zarar Durdur Seviyelerinin Grafikte İşaretlenmesi plot(strategy.position_size != 0 ? strategy.position_avg_price : na, color=color.navy, linewidth=2, style=plot.style_linebr, title="İşleme Giriş Seviyesi") plot(strategy.position_size > 0 ? longKarAl : na, color=color.green, linewidth=2, style=plot.style_linebr, title="Long Kar Alım Seviyesi") plot(strategy.position_size > 0 ? longZararDurdur : na, color=color.red, linewidth=2, style=plot.style_linebr, title="Long Zarar Durdurma Seviyesi") plot(strategy.position_size < 0 ? shortKarAl : na, color=color.green, linewidth=2, style=plot.style_linebr, title="Short Kar Alım Seviyesi") plot(strategy.position_size < 0 ? shortZararDurdur : na, color=color.red, linewidth=2, style=plot.style_linebr, title="Short Zarar Durdurma Seviyesi") //plotshape(buycross,size=size.small,style=shape.labelup,location=location.belowbar,color=color.green,text="Al", offset = displacement-1, textcolor=color.white) //plotshape(sellcross,size=size.small,style=shape.labeldown,location=location.abovebar,color=color.red,text="Sat", offset = displacement-1, textcolor=color.white)