Chiến lược giao dịch đột phá

Tác giả:ChaoZhang, Ngày: 2023-11-02 16:40:26
Tags:

img

Tổng quan

Chiến lược này dựa trên lý thuyết đột phá, so sánh các đường trung bình động của giá cao nhất và thấp nhất để xác định xu hướng đang đảo ngược, để tìm các điểm đột phá tiềm năng và giao dịch khi đột phá xảy ra.

Chiến lược logic

Chiến lược này đầu tiên tính toán trung bình động của giá cao nhất và thấp nhất trong một khoảng thời gian được xác định bởi người dùng. Trung bình động giá cao nhất đại diện cho dải trên và trung bình động giá thấp nhất đại diện cho dải dưới. Khi giá vượt qua dải trên, nó báo hiệu xu hướng tăng, và chiến lược sẽ mở vị trí dài. Khi giá vượt qua dải dưới, nó báo hiệu xu hướng giảm, và chiến lược sẽ mở vị trí ngắn. Người dùng có thể cấu hình chỉ dài hoặc chỉ ngắn.

Chiến lược này cũng cung cấp các thiết lập stop loss và take profit tùy chọn. Khi dài, stop loss được đặt ở dải trên; khi ngắn, stop loss được đặt ở dải dưới. Điều này làm giảm tổn thất. Người dùng cũng có thể chọn đặt stop loss tại điểm đột phá, tức là khi dài, stop loss là dải dưới, và khi ngắn, stop loss là dải trên. Điều này cho phép tiềm năng lợi nhuận nhiều hơn.

Ưu điểm

Những lợi thế của chiến lược này là:

  1. Lý luận đơn giản và thẳng thắn, dễ hiểu và thực hiện.

  2. Nó có thể nhanh chóng nắm bắt các điểm đảo ngược xu hướng và điều chỉnh các vị trí phù hợp.

  3. Nó cung cấp các thiết lập dừng lỗ tùy chọn và lấy lợi nhuận để phù hợp với sở thích rủi ro cá nhân.

  4. Các tín hiệu giao dịch rõ ràng, không có quá nhiều tín hiệu sai.

  5. Có một số tham số dễ cấu hình, dễ sử dụng.

  6. Độ linh hoạt để cấu hình chỉ dài hoặc chỉ ngắn.

Rủi ro

Những rủi ro của chiến lược này bao gồm:

  1. tín hiệu thoát có thể là sự thoát sai và không thể duy trì.

  2. Việc thiết lập thời gian đột phá không chính xác có thể bỏ qua xu hướng dài hạn.

  3. Nó không xem xét khối lượng trên breakout, có thể gây ra theo đuổi cao và giết chết thấp.

  4. Có một sự chậm trễ nhất định, có thể bỏ lỡ một phần tốt của chuyển động.

  5. Trong thị trường biến động, dừng lỗ có thể bị ảnh hưởng.

  6. Chỉ dựa vào sự phá vỡ để giao dịch, lợi nhuận là không chắc chắn.

Những cải tiến

Chiến lược có thể được cải thiện trong các khía cạnh sau:

  1. Thêm chỉ số âm lượng để tránh đột phá sai. Ví dụ, tăng âm lượng về hiệu lực tín hiệu đột phá.

  2. Tối ưu hóa tham số thời gian trung bình động để phù hợp với những thay đổi xu hướng trong chu kỳ khác nhau.

  3. Thiết lập ngưỡng rút lui sau khi phá vỡ để xác nhận thêm để tránh phá vỡ sai.

  4. Thêm Bollinger Bands vv trên cơ sở đột phá để hướng dẫn hướng hơn.

  5. Kết hợp các chỉ báo khác như RSI, MACD cho các tín hiệu giao dịch bổ sung và cải thiện độ chính xác.

  6. Tối ưu hóa các chiến lược dừng lỗ và lợi nhuận để đối phó tốt hơn với biến động thị trường trong khi kiểm soát rủi ro.

Tóm lại

Chiến lược giao dịch đột phá có một logic rõ ràng theo dõi sự đột phá giá của các dải trên và dưới để vào và ra khỏi. Có nhiều chỗ để cải thiện, bằng cách kết hợp nhiều thông tin chỉ số hơn và tối ưu hóa các tham số để tăng cường chiến lược. Sau khi làm quen với logic cơ bản, các nhà giao dịch có thể tùy chỉnh các tham số dựa trên nhu cầu của họ và đạt được kết quả giao dịch tốt.


/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy(title = "Noro's Brakeout Strategy v2.0", shorttitle = "Brakeout str 2.0", 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 = "Capital, %")
len = input(4, defval = 4, minval = 1, maxval = 1000, title = "Length")
bod = input(false, defval = false, title = "Body mode")
rev = input(false, defval = false, title = "Revers")
showlines = input(true, defval = true, title = "Show Lines?")
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")

//Extremums
min = bod ? min(open, close) : low
max = bod ? max(open, close) : high
upex = highest(max, len) + syminfo.mintick * 10
dnex = lowest(min, len) - syminfo.mintick * 10
col = showlines ? blue : na
plot(upex, color = col, linewidth = 2)
plot(dnex, color = col, linewidth = 2)

//Trading
lot = 0.0
lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]

if (not na(close[len])) and rev == false
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, stop = upex)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, stop = dnex)
    
if (not na(close[len])) and rev == true
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, limit = dnex)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, limit = upex)

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

Thêm nữa