Chiến lược này mở các vị trí dựa trên thập tự vàng và thập tự chết của đường trung bình động, và đặt lấy lợi nhuận và dừng lỗ theo cách vượt qua sàn.
Chiến lược bao gồm bốn phần:
Hệ thống trung bình động
Sử dụng đường chéo vàng và đường chéo chết của đường trung bình động để xác định xu hướng và lọc các cú sốc.
Di chuyển mang lại lợi nhuận và ngăn chặn tổn thất
Sử dụng lợi nhuận và dừng lỗ với một tỷ lệ phần trăm nhất định để khóa lợi nhuận và kiểm soát rủi ro, nhận ra quản lý vốn năng động.
Chế độ lọc vị trí
Nếu vị trí trước đó là dài, tín hiệu tiếp theo phải ngắn để mở vị trí, tránh giữ một bên.
ATR Stop Loss
Sử dụng ATR để giới hạn phạm vi dừng lỗ tối đa và tránh dừng lỗ quá mức.
Cụ thể, chiến lược đầu tiên tính toán đường trung bình động, dài trên đường chéo vàng và ngắn trên đường chéo chết. Sau khi nhập, đặt các đường chuyển động lấy lợi nhuận và dừng lỗ với một tỷ lệ phần trăm nhất định. Nếu giá chạm vào đường lấy lợi nhuận, sau đó lấy lợi nhuận; nếu chạm vào đường dừng lỗ hoặc vượt quá phạm vi dừng lỗ ATR, thì dừng lỗ.
Những lợi thế chính của chiến lược này là:
Khả năng cấu hình cao
Nhiều thông số trong chiến lược có thể được cấu hình để người dùng điều chỉnh dựa trên phong cách giao dịch của họ.
Quản lý vốn tốt
Việc áp dụng chuyển động lấy lợi nhuận và dừng lỗ và ATR dừng lỗ có thể kiểm soát hiệu quả phạm vi của một lỗ dừng duy nhất và đạt được quản lý vốn tuyệt vời.
Thích hợp cho thị trường xu hướng
Chiến lược trung bình động tự nó phù hợp hơn với các thị trường có xu hướng mạnh để lọc các cú sốc một cách hiệu quả.
Có một số rủi ro trong chiến lược này:
Sự đánh giá sai về xu hướng
Việc đánh giá các đường trung bình động trên các thị trường phức tạp không hoàn hảo và có thể xảy ra những đánh giá sai.
Stop Loss quá mức
Các thông số ATR nên được kết hợp để thiết lập phạm vi stop loss.
Rủi ro mở cửa một chiều
Cho phép lọc vị trí sẽ có một số tác động đến tần suất giao dịch.
Các hướng tối ưu hóa chính là:
Tối ưu hóa tham số
Điều chỉnh chu kỳ trung bình động, tham số ATR, tỷ lệ lợi nhuận và dừng lỗ và các tham số khác để tối ưu hóa hiệu suất chiến lược.
Thêm các chỉ số
Thêm các chỉ số như CMF, OBV để đánh giá dòng vốn và tránh dừng lỗ quá mức.
Kết hợp với các chiến lược khác
Kết hợp với các chiến lược đột phá để theo xu hướng sau khi xu hướng ổn định để đạt được kết quả tốt hơn.
Tóm lại, thông qua bộ lọc trung bình động và chuyển động lấy lợi nhuận và dừng lỗ, chiến lược này nhận ra quản lý vốn năng động dựa trên xu hướng. Nó có khả năng cấu hình cao, phù hợp với các nhà đầu tư hợp lý để điều chỉnh và sử dụng theo phong cách của riêng họ. Là một chiến lược định lượng phổ quát, nó vẫn có tiềm năng tối ưu hóa lớn và đáng nghiên cứu sâu sắc.
/*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)