Chiến lược vượt qua những đám mây


Ngày tạo: 2023-11-03 16:10:33 sửa đổi lần cuối: 2023-11-03 16:10:33
sao chép: 2 Số nhấp chuột: 638
1
tập trung vào
1617
Người theo dõi

Chiến lược vượt qua những đám mây

Tổng quan

Chiến lược này sử dụng các chỉ số siêu xu hướng hỗ trợ đặt hàng và lọc kết hợp với màu sắc của lớp mây và K-đường để tăng tỷ lệ lợi nhuận. Mục tiêu của nó là nắm bắt xu hướng nhanh chóng sau khi xu hướng bắt đầu và giảm rủi ro thua lỗ trong khu vực cân bằng.

Nguyên tắc chiến lược

  1. Tính trung bình của giá cao nhất và giá thấp nhất trong chu kỳ ATR được tính làm đường chuẩn.

  2. Tính trên và dưới đường ray dựa trên hệ số Factor.

  3. Khi giá đóng cửa lớn hơn đường lên, nó được đánh dấu là 1, khi nhỏ hơn đường xuống, nó được đánh dấu là -1, lúc khác giữ trạng thái hiện tại.

  4. Điều chỉnh đường dừng chân theo thời gian thực dựa trên giá đóng cửa và vị trí của đường ray lên xuống.

  5. Phạm vi của đám mây được tính dựa trên một phần trăm khoảng cách giữa các quỹ đạo lên xuống.

  6. Khi siêu xu hướng là 1, giá đóng cửa phải thấp hơn giá mở cửa khi giao dịch mua nhiều và giá đóng cửa phải cao hơn giá mở cửa khi giao dịch mua ít.

  7. Khi thực hiện nhiều, đặt mua giá giới hạn, giá là giá đóng cửa của dòng K trước đó. Khi làm trống, đặt mua giá giới hạn, giá là giá đóng cửa của dòng K trước đó.

  8. Các vị trí có thể bị đóng cửa trong thời gian lọc.

Phân tích lợi thế

Chiến lược này kết hợp các chỉ số siêu xu hướng và khái niệm đám mây, có thể nhanh chóng nắm bắt hướng xu hướng sau khi xu hướng bắt đầu. Hạn dừng siêu xu hướng có thể theo dõi thay đổi giá nhanh hơn so với dừng di động thông thường.

  1. Chỉ số siêu xu hướng có độ nhạy cao và khả năng theo dõi xu hướng mạnh mẽ.

  2. Bộ lọc khái niệm đám mây giảm thiệt hại do đột phá giả.

  3. Màu sắc của dòng K hỗ trợ phán đoán, tránh đảo ngược.

  4. Giá giới hạn giảm tác động của điểm trượt và tăng khả năng kiếm lợi nhuận.

  5. Có thể tùy chỉnh khoảng thời gian và quản lý vị trí để phù hợp với nhu cầu giao dịch khác nhau.

Phân tích rủi ro

Chiến lược này cũng có một số rủi ro cần lưu ý:

  1. Thiết lập tham số chỉ số siêu xu hướng không đúng có thể làm cho đường cong quá nhạy cảm, tạo ra nhiều tín hiệu sai.

  2. Khi đám mây quá lớn, nó có thể lọc các tín hiệu phá vỡ bình thường, ảnh hưởng đến lợi nhuận.

  3. Thị trường chứng khoán có thể bị mất cơ hội giao dịch nếu giá trị của các đơn giới hạn có biến động lớn.

  4. Bất kỳ sự dừng chân theo dõi nào cũng không thể hoàn toàn tránh được rủi ro hệ thống của tổn thất lớn.

  5. Khi vị thế quá lớn, tổn thất cũng sẽ tăng lên, cần kiểm soát rủi ro.

Hướng tối ưu hóa

Chiến lược này có thể được tối ưu hóa bằng cách:

  1. Thử nghiệm các thị trường và các loại khác nhau để tìm ra sự kết hợp tốt nhất của các tham số siêu xu hướng.

  2. Cài đặt mức dừng lỗ theo biến động của thị trường.

  3. Tối ưu hóa phạm vi đám mây, cân bằng giữa loại bỏ tiếng ồn và giữ tín hiệu.

  4. Thêm mô-đun tối ưu hóa vị trí để kích thước vị trí theo động theo sự thay đổi của thị trường.

  5. Sử dụng sự kết hợp các tham số khác nhau trong các khoảng thời gian khác nhau để phù hợp với nhịp điệu của thị trường.

  6. Kết quả sử dụng thử nghiệm với các chỉ số khác.

Tóm tắt

Tuy nhiên, không có chiến lược nào có thể hoàn toàn tránh được rủi ro hệ thống, cần kiểm soát vị trí và tối ưu hóa liên tục để giảm thiểu rủi ro có thể xuất hiện trong giao dịch thực tế, tối đa hóa lợi thế chiến lược. Chiến lược này có tiềm năng phát triển lớn và đáng để thử nghiệm và tối ưu hóa tiếp theo để thích nghi với môi trường thị trường thay đổi nhiều hơn.

Mã nguồn chiến lược
/*backtest
start: 2023-10-03 00:00:00
end: 2023-11-02 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy("Noro's SuperTrend Strategy v2.0 Limit", shorttitle = "STL str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
cloud = input(25, defval = 25, minval = 5, maxval = 50, title = "cloud, % of ATR")
Factor = input(title = "Super Trend", defval = 3, minval = 1, maxval = 100)
ATR = input(title = "ATR", defval = 7, minval = 1,maxval = 100)
centr = input(true, defval = true, title = "need center of ATR?")
border = input(false, defval = false, title = "need border?")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Super Trend ATR 1
src = close
Up=hl2-(Factor*atr(ATR))
Dn=hl2+(Factor*atr(ATR))
TUp=close[1]>TUp[1]? max(Up,TUp[1]) : Up
TDown=close[1]<TDown[1]? min(Dn,TDown[1]) : Dn
Trend = close > TDown[1] ? 1: close< TUp[1]? -1: nz(Trend[1],1)
Tsl1 = Trend==1? TUp: TDown
Tsl2 = Trend==1? TDown: TUp
limit = (Tsl1 - Tsl2) / 100 * cloud
upcloud = Tsl1 - limit
dncloud = Tsl2 + limit

//Cloud
linecolor = Trend == 1 ? green : red
centercolor = centr == true ? blue : na
cloudcolor = Trend == 1 ? green : red
cline = (Tsl1 + Tsl2) / 2
P1 = plot(Tsl1, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend ATR-1")
P2 = plot(Tsl2, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend ATR-2")
P3 = plot(cline, color = centercolor , style = line , linewidth = 1,title = "SuperTrend Center")
P4 = plot(upcloud, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend Center+1")
P5 = plot(dncloud, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend Center-1")
fill(P1, P4, color = linecolor == red ? red : lime, transp = 50)
fill(P2, P5, color = linecolor == red ? red : lime, transp = 50)

//Signals
up = 0.0
dn = 0.0
up := Trend != 1 ? 0 : Trend == 1 and close < open ? close : up[1]
dn := Trend != -1 ? close * 1000 : Trend == -1 and close > open ? close : dn[1]

//Trading
size = strategy.position_size
lot = 0.0
lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1]
if true
    strategy.entry("Long", strategy.long, needlong ? lot : 0, limit = up, when = (Trend == 1 and time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    strategy.entry("Short", strategy.short, needshort ? lot : 0, limit = dn, when = (Trend == -1 and time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()