Strategi henti untung dan henti rugi dilihat berdasarkan purata bergerak dan purata bergerak


Tarikh penciptaan: 2023-12-21 12:26:18 Akhirnya diubah suai: 2023-12-21 12:26:18
Salin: 0 Bilangan klik: 625
1
fokus pada
1623
Pengikut

Strategi henti untung dan henti rugi dilihat berdasarkan purata bergerak dan purata bergerak

Gambaran keseluruhan

Strategi ini berdasarkan garisan rata-rata dan garisan bergerak untuk membuka kedudukan dan menggunakan cara penembusan untuk menetapkan hentian. Ciri-cirinya adalah:

  1. Penapisan sistem linear untuk memfilterkan gempa bumi
  2. Menggunakan Stop Loss Mobile untuk Melancarkan Pengurusan Dana
  3. Penapis kedudukan yang boleh dikonfigurasi untuk mengelakkan pembukaan kedudukan satu sisi

Prinsip Strategi

Strategi ini terdiri daripada empat bahagian utama:

  1. Sistem linear

Menggunakan garisan emas dan garisan mati untuk menilai trend, menapis pasaran yang bergolak.

  1. Hentian bergerak

Menggunakan peratusan pergerakan stop loss untuk mengunci keuntungan dan mengawal risiko, mewujudkan pengurusan dinamik dana.

  1. Penapis kedudukan

Boleh dikonfigurasikan untuk membuka penapis kedudukan. Jika kedudukan terdahulu adalah berbilang, isyarat seterusnya mesti kosong untuk membuka kedudukan, untuk mengelakkan memegang kedudukan tunggal.

  1. Penangguhan ATR

Gunakan ATR untuk mengehadkan jangkauan maksimum untuk mengelakkan kerugian yang berlebihan.

Khususnya, strategi ini mengira garis rata-rata terlebih dahulu, dan melakukan lebih banyak apabila garis rata-rata melintasi emas, kosong ketika mati. Selepas masuk, atur berhenti bergerak dan garis berhenti dalam perkadaran tertentu. Jika harga menyentuh garis berhenti, berhenti; jika menyentuh garis berhenti atau melebihi julat berhenti ATR, berhenti.

Kelebihan Strategik

Strategi ini mempunyai kelebihan utama:

  1. Konfigurasi yang kuat

Banyak parameter dalam strategi boleh dikonfigurasi, dan pengguna boleh menyesuaikan mengikut gaya dagangan mereka sendiri.

  1. Pengurusan kewangan yang baik

Menggunakan hentian hentian bergerak dan hentian ATR, anda boleh mengawal dengan berkesan amplitudo hentian tunggal dan mencapai pengurusan wang yang sangat baik.

  1. Sesuai untuk pasaran trend

Strategi rata-rata sendiri lebih sesuai untuk pasaran yang lebih cenderung dan boleh menapis gegaran dengan berkesan.

Risiko dan tindakan

Strategi ini juga mempunyai beberapa risiko, terutamanya:

  1. Kesilapan dalam menilai trend

Garis purata itu sendiri tidak sempurna untuk menilai keadaan yang rumit, dan mungkin berlaku kesalahan dalam penghakiman. Pada masa ini, parameter garis purata harus disesuaikan dengan sewajarnya, atau digabungkan dengan indikator lain untuk menilai.

  1. Terlalu Radikal Untuk Mencegah Kerosakan

Hentian bergerak mungkin ditolak dalam gegaran, dan harus digabungkan dengan parameter ATR untuk menetapkan julat hentian.

  1. Risiko Berbuka Posisi Bersama

Membuka penapis kedudukan akan memberi kesan kepada kekerapan perdagangan, dan memegang kedudukan tunggal untuk jangka masa yang panjang mungkin membawa risiko tambahan.

Arah pengoptimuman strategi

Kaedah utama untuk mengoptimumkan strategi ini ialah:

  1. Optimumkan parameter

Menyesuaikan parameter seperti tempoh garis rata-rata, parameter ATR, dan nisbah stop loss untuk mengoptimumkan kesan strategi.

  1. Menambah penunjuk

Tambah CMF, OBV dan lain-lain untuk menilai aliran dana dan mengelakkan kerugian yang berlebihan.

  1. Menggabungkan strategi lain

Strategi seperti penembusan, dan pengesanan trend selepas ia stabil, boleh memberi kesan yang lebih baik.

ringkaskan

Secara keseluruhannya, strategi ini mewujudkan pengurusan dana dinamik berdasarkan trend dengan cara penapisan linear rata dan berhenti berhenti bergerak. Ia boleh dikonfigurasi, sesuai untuk digunakan oleh pelabur yang masuk akal mengikut gaya mereka sendiri. Sebagai strategi kuantitatif umum, ia mempunyai ruang untuk pengoptimuman yang besar dan patut dikaji lebih dalam.

Kod sumber strategi
/*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)