
Chiến lược này dựa trên đường trung bình và đường trung bình di chuyển để mở vị trí và sử dụng phương pháp phá giá để thiết lập dừng lỗ. Các đặc điểm chính của nó là:
Chiến lược này bao gồm bốn phần chính:
Sử dụng các đường giao thoa vàng và các đường giao thoa chết để đánh giá xu hướng và lọc các thị trường biến động.
Sử dụng một tỷ lệ di động của Stop Loss để khóa lợi nhuận và kiểm soát rủi ro, thực hiện quản lý động của tiền.
Có thể cấu hình để mở lọc vị trí. Nếu vị trí trước là nhiều đầu, tín hiệu tiếp theo phải là đầu trống để mở vị trí, tránh giữ vị trí đơn phương.
Sử dụng ATR để giới hạn phạm vi dừng tối đa và tránh dừng quá lớn.
Cụ thể, chiến lược này tính toán đường trung bình đầu tiên, và làm nhiều hơn khi đường trung bình xuất hiện và giao thoa vàng. Sau khi vào cửa, thiết lập các đường dừng và đường dừng di chuyển theo tỷ lệ nhất định. Nếu giá chạm vào đường dừng, dừng; Nếu chạm vào đường dừng hoặc vượt quá phạm vi dừng ATR, dừng.
Chiến lược này có những lợi thế chính như sau:
Nhiều tham số trong chiến lược có thể được cấu hình, người dùng có thể điều chỉnh theo phong cách giao dịch của mình.
Sử dụng Mobile Stop Loss và ATR Stop Loss, có thể kiểm soát hiệu quả mức độ dừng một lần và quản lý tài chính tốt.
Chiến lược đường trung bình tự nó phù hợp với thị trường có xu hướng mạnh hơn, có thể lọc hiệu quả các biến động.
Chiến lược này cũng có một số rủi ro, bao gồm:
Đường trung bình tự nó không hoàn hảo trong việc đánh giá các tình huống phức tạp, có thể có trường hợp đánh giá sai. Tại thời điểm này, các tham số đường trung bình nên được điều chỉnh thích hợp, hoặc kết hợp với các chỉ số khác để đánh giá.
Hạn chế di chuyển có thể bị từ chối trong rung động, nên kết hợp với tham số ATR để thiết lập phạm vi dừng.
Mở lọc vị trí có thể ảnh hưởng đến tần suất giao dịch, và giữ vị trí đơn phương trong thời gian dài có thể mang lại rủi ro bổ sung.
Các hướng tối ưu hóa chính của chiến lược này là:
Điều chỉnh các tham số như thời gian đường trung bình, tham số ATR, tỷ lệ dừng lỗ để tối ưu hóa hiệu quả chiến lược.
Thêm các chỉ số như CMF, OBV để đánh giá dòng tiền và tránh lỗ hổng quá lớn.
Kết hợp các chiến lược như phá vỡ, theo dõi sau khi xu hướng ổn định sẽ có hiệu quả tốt hơn.
Nhìn chung, chiến lược này thực hiện quản lý vốn động dựa trên xu hướng bằng cách lọc đồng nhất và dừng lỗ di động. Nó có thể được cấu hình mạnh mẽ, phù hợp với các nhà đầu tư hợp lý để điều chỉnh theo phong cách của riêng mình. Là một chiến lược định lượng phổ biến, nó có nhiều khả năng tối ưu hóa và đáng để nghiên cứu sâu hơn.
/*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)