Strategi stop-profit dan stop-loss saw-through berdasarkan moving average dan moving average


Tanggal Pembuatan: 2023-12-21 12:26:18 Akhirnya memodifikasi: 2023-12-21 12:26:18
menyalin: 0 Jumlah klik: 625
1
fokus pada
1623
Pengikut

Strategi stop-profit dan stop-loss saw-through berdasarkan moving average dan moving average

Ringkasan

Strategi ini didasarkan pada garis rata-rata dan pergerakan rata-rata untuk membuka posisi, dan menggunakan cara penembusan untuk mengatur stop loss.

  1. Sistem Filter Garis Rata untuk Memfilter Guncangan
  2. Menggunakan Stop Loss Mobile untuk Mengelola Dana Secara Dinamis
  3. Filter posisi yang dapat dikonfigurasi untuk menghindari pembukaan posisi sepihak

Prinsip Strategi

Strategi ini terdiri dari empat bagian utama:

  1. Sistem linier

Untuk menilai tren, gunakan golden cross dan dead fork dengan garis rata untuk menyaring pasar yang bergoyang.

  1. Stop loss bergerak

Menggunakan stop loss bergerak untuk mengunci keuntungan dan mengontrol risiko, untuk mengelola dana secara dinamis.

  1. Filter Posisi

Apakah dapat dikonfigurasi untuk membuka filter posisi. Jika posisi sebelumnya adalah multihead, maka sinyal berikutnya harus kosong untuk membuka posisi, untuk menghindari memegang posisi satu sisi.

  1. Stop loss ATR

Gunakan ATR untuk membatasi jangkauan stop loss maksimum dan menghindari stop loss yang terlalu besar.

Secara khusus, strategi pertama menghitung garis rata-rata, dan melakukan lebih banyak ketika garis rata-rata muncul di persimpangan emas, kosong ketika dead fork. Setelah masuk, mengatur stop dan stop loss line bergerak dalam proporsi tertentu. Jika harga menyentuh garis stop, stop; Jika menyentuh garis stop loss atau melebihi batas stop loss ATR, stop.

Keunggulan Strategis

Strategi ini memiliki beberapa keuntungan:

  1. Konfigurasi yang kuat

Banyak parameter dalam strategi yang dapat dikonfigurasi, yang dapat disesuaikan dengan gaya perdagangan pengguna.

  1. Pengelolaan dana yang baik

Dengan menggunakan stop loss mobile dan stop loss ATR, Anda dapat secara efektif mengontrol amplitudo stop loss tunggal dan mencapai manajemen dana yang sangat baik.

  1. Cocok untuk pasar tren

Strategi rata-rata sendiri lebih cocok untuk pasar yang cenderung kuat, dan dapat secara efektif memfilter getaran.

Risiko dan Pengendalian

Strategi ini juga memiliki beberapa risiko, terutama:

  1. Kesalahan dalam menilai tren

Garis rata-rata itu sendiri tidak sempurna untuk menilai situasi yang kompleks, dan mungkin terjadi kesalahan dalam penilaian. Pada saat ini, parameter garis rata-rata harus disesuaikan dengan tepat, atau dikombinasikan dengan indikator lain untuk menilai.

  1. Terlalu Radikal

Stop loss bergerak dapat ditolak dalam getaran, dan harus digabungkan dengan parameter ATR untuk mengatur batas stop loss.

  1. Risiko Berposisi Satu Sisi

Pembukaan filter posisi akan berdampak pada frekuensi perdagangan, dan memegang posisi sepihak untuk waktu yang lama dapat membawa risiko tambahan.

Arah optimasi strategi

Strategi ini bertujuan untuk mengoptimalkan:

  1. Optimasi parameter

Mengatur parameter seperti periode rata-rata, parameter ATR, dan stop loss rasio untuk mengoptimalkan efek strategi.

  1. Menambahkan indikator

Menambahkan indikator seperti CMF, OBV dan lain-lain untuk mengevaluasi aliran dana dan menghindari kerugian yang berlebihan.

  1. Kombinasi dengan strategi lain

Strategi seperti breakout dan follow-up setelah trend stabil dapat memberikan hasil yang lebih baik.

Meringkaskan

Strategi ini secara keseluruhan, dengan cara penyaringan rata-rata dan stop loss stop-stop bergerak, manajemen dana dinamis yang didasarkan pada tren. Sangat dapat dikonfigurasi, investor yang masuk akal dapat menyesuaikan penggunaan sesuai dengan gaya mereka sendiri. Sebagai strategi kuantitatif generik, ada banyak ruang untuk pengoptimalan, layak untuk diteliti lebih dalam.

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