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

Tác giả:ChaoZhang, Ngày: 2023-09-18 21:28:22
Tags:

Thông tin chi tiết

Chiến lược này sử dụng các chỉ số động lực để phá vỡ các giao dịch, chủ yếu để xác định giá có vượt qua đường dây Brin không và gửi tín hiệu mua hoặc bán.

Nguyên tắc

Chiến lược này chủ yếu dựa trên định hướng xu hướng của các chỉ số Brin. Brin là một khu vực có hình dáng bao gồm đường trung bình chuyển động và chênh lệch chuẩn. Brin là đường trung bình chuyển động n ngày, đường lên là đường trung bình + 2 lần chênh lệch chuẩn, đường xuống là đường trung bình - 2 lần chênh lệch chuẩn.

Cụ thể, chiến lược đầu tiên tính giá cao nhất trong n ngày, giá thấp nhất, và tính giá trung gian (((giá cao nhất + giá thấp nhất) / 2)); sau đó tính giá đóng cửa và khoảng cách giữa giá và đường trung bình di chuyển được tính theo trọng số tạo thành đường trung tâm của dây chuyền Brin, mỗi đường trung tâm được thêm 2 lần chênh lệch tiêu chuẩn để tạo thành đường đi xuống.

Nếu giá đóng cửa vượt qua đường dẫn, điều đó cho thấy đang có xu hướng tăng; nếu vượt qua đường dẫn, điều đó cho thấy đang có xu hướng giảm; làm nhiều khi vượt qua đường dẫn, làm trống khi vượt qua đường dẫn.

Ngoài ra, chiến lược này cũng giới thiệu cơ chế mở đầu ngược. Khi giá vượt qua đường dây Brin, nếu MACD giảm, sẽ có hành động ngược thị trường để phá giá.

Ưu điểm

  1. Sử dụng dây đai Brin để xác định hướng xu hướng, có một khả năng theo dõi xu hướng nhất định.

  2. Các nhà đầu tư có thể sử dụng các thiết kế đầu tư ngược để tạo ra lợi nhuận ngược.

  3. Có thể tùy chỉnh các tham số như chu kỳ dây chuyền Brin, số lần chênh lệch chuẩn để phù hợp với các giao dịch khác nhau.

  4. Có thể đóng cửa các giao dịch mở ngược lại, giảm rủi ro.

Rủi ro và biện pháp đối phó

  1. Dải Brinh thường được sử dụng cho các cổ phiếu biến động cao và có thể không phù hợp với các loại như tài nguyên hoặc chỉ số dài chu kỳ.

  2. Các tín hiệu đột phá có thể gây ra đột phá giả.

  3. Khả năng mở đầu ngược có thể làm tăng thêm lỗ.

  4. Việc thu hồi có thể lớn hơn.

Định hướng tối ưu

  1. Có thể xem xét việc sử dụng bộ lọc xu hướng để tránh thị trường bất ổn không rõ hướng đi.

  2. Bạn có thể kiểm tra các số lần chênh lệch chuẩn của dây chuyền Blink để tìm các tham số phù hợp hơn.

  3. Một chiến lược dừng lỗ có thể được đưa ra để kiểm soát tổn thất đơn lẻ.

  4. Có thể tối ưu hóa logic mở và tăng giao dịch để cung cấp tín hiệu giao dịch rõ ràng hơn.

Tóm lại

Chiến lược này dựa trên các chỉ số cơ bản của Brin để đánh giá xu hướng giá. Sử dụng các thiết lập tham số đơn giản để thực hiện các chiến lược theo dõi xu hướng cơ bản. Tuy nhiên, có một số rủi ro giả mạo, cần phải được lọc cùng với các chỉ số khác.

Tổng quan

Chiến lược này sử dụng chỉ số động lực Bollinger Bands cho giao dịch đột phá, chủ yếu đánh giá liệu giá có vượt qua các Bollinger Bands trên hoặc dưới cho tín hiệu giao dịch hay không.

Nguyên tắc

Chiến lược này chủ yếu dựa trên chỉ số Bollinger Bands để xác định hướng xu hướng. Bollinger Bands bao gồm một dải giữa dựa trên đường trung bình động và dải trên / dưới được xác định bởi độ lệch chuẩn. Dải giữa là đường trung bình động n giai đoạn, dải trên là dải giữa + 2 độ lệch chuẩn, và dải dưới là dải giữa - 2 độ lệch chuẩn. Khi giá tiếp cận dải trên, nó chỉ ra điều kiện mua quá mức, và khi tiếp cận dải dưới, nó báo hiệu điều kiện bán quá mức.

Cụ thể, chiến lược đầu tiên tính toán mức cao nhất và thấp nhất trong n giai đoạn cuối cùng, và giá trung gian ((tối cao nhất + thấp nhất) / 2). Sau đó nó tính toán khoảng cách giữa giá đóng và giá trung bình, sử dụng trung bình động theo hàm số nhân của khoảng cách để tạo thành dải giữa, và cộng / trừ đi 2 lần độ lệch chuẩn trên và dưới để tạo thành các dải trên và dưới.

Khi giá đóng phá vỡ dải trên, nó báo hiệu xu hướng tăng; khi nó phá vỡ dải dưới, nó báo hiệu xu hướng giảm. Chiến lược đi dài khi dải trên bị phá vỡ và đi ngắn khi dải dưới bị phá vỡ.

Ngoài ra, chiến lược bao gồm một cơ chế chống xu hướng. Khi giá vượt qua dải trên nhưng MACD đang giảm, nó sẽ có một vị trí ngắn chống xu hướng.

Ưu điểm

  1. Sử dụng Bollinger Bands để xác định hướng xu hướng cung cấp khả năng theo dõi xu hướng nhất định.

  2. Thiết kế ngược xu hướng cho phép lợi nhuận từ sự đảo ngược.

  3. Các thông số tùy chỉnh như thời gian và số lần lệch chuẩn làm cho nó thích nghi với các chân trời giao dịch khác nhau.

  4. Khóa giao dịch ngược xu hướng để giảm rủi ro.

Rủi ro và giảm thiểu

  1. Bollinger Bands hoạt động tốt nhất cho các cổ phiếu biến động cao, có thể không phù hợp với các loại hàng hóa hoặc chỉ số ổn định.

  2. Các tín hiệu đột phá có thể có những đột phá sai, có thể thêm các bộ lọc với các chỉ số khác.

  3. Giao dịch chống xu hướng có thể làm tăng thêm tổn thất.

  4. Các khoản rút có thể đáng kể, có thể điều chỉnh kích thước vị trí.

Cơ hội gia tăng

  1. Xem xét thêm bộ lọc xu hướng để tránh whipsaw trong thị trường không hướng.

  2. Kiểm tra các nhân độ lệch chuẩn khác nhau để tìm các thông số tối ưu.

  3. Bao gồm dừng lỗ để kiểm soát lỗ giao dịch duy nhất.

  4. Tối ưu hóa đầu vào và logic bổ sung cho các tín hiệu giao dịch rõ ràng hơn.

Tóm lại

Chiến lược này sử dụng Bollinger Bands như là chỉ số chính và giao dịch dựa trên sự đột phá xu hướng. Với các thông số đơn giản, nó cung cấp các khả năng theo xu hướng cơ bản. Nhưng rủi ro đột phá sai tồn tại, đòi hỏi các bộ lọc bổ sung. Các thông số, dừng lỗ và kiểm soát rủi ro có thể được tăng cường. Nhìn chung, nó phục vụ như một chiến lược đột phá cơ bản hợp lý.


/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy("Noro's Bands Scalper Strategy v1.6", shorttitle = "Scalper str 1.6", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
takepercent = input(0, defval = 0, minval = 0, maxval = 1000, title = "take, %")
needbe = input(true, defval = true, title = "Bands Entry")
needct = input(false, defval = false, title = "Counter-trend entry")
bodylen = input(10, defval = 10, minval = 0, maxval = 50, title = "Body length")
trb = input(1, defval = 1, minval = 1, maxval = 5, title = "Trend bars")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
needbb = input(true, defval = true, title = "Show Bands")
needbg = input(true, defval = true, title = "Show Background")
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")
src = close

//PriceChannel 1
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2

//Distance
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma
hd2 = center + distsma * 2
ld2 = center - distsma * 2

//Trend
chd = close > hd
cld = close < ld
uptrend = trb == 1 and chd ? 1 : trb == 2 and chd and chd[1] ? 1 : trb == 3 and chd and chd[1] and chd[2] ? 1 : trb == 4 and chd and chd[1] and chd[2] and chd[3] ? 1 : trb == 5 and chd and chd[1] and chd[2] and chd[3] and chd[4] ? 1 : 0
dntrend = trb == 1 and cld ? 1 : trb == 2 and cld and cld[1] ? 1 : trb == 3 and cld and cld[1] and cld[2] ? 1 : trb == 4 and cld and cld[1] and cld[2] and cld[3] ? 1 : trb == 5 and cld and cld[1] and cld[2] and cld[3] and cld[4] ? 1 : 0
trend = dntrend == 1 and high < center ? -1 : uptrend == 1 and low > center ? 1 : trend[1]

//trend = close < ld and high < center ? -1 : close > hd and low > center ? 1 : trend[1]

//Lines
colo = needbb == false ? na : black
plot(hd2, color = colo, linewidth = 1, transp = 0, title = "High band 2")
plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band 1")
plot(center, color = colo, linewidth = 1, transp = 0, title = "center")
plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band 1")
plot(ld2, color = colo, linewidth = 1, transp = 0, title = "Low band 2")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)

//Body
body = abs(close - open)
smabody = ema(body, 30) / 10 * bodylen

//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up7 = trend == 1 and ((bar == -1 and bar[1] == -1) or (body > smabody and bar == -1)) ? 1 : 0
dn7 = trend == 1 and ((bar == 1 and bar[1] == 1) or (close > hd and needbe == true)) and close > strategy.position_avg_price * (100 + takepercent) / 100 ? 1 : 0
up8 = trend == -1 and ((bar == -1 and bar[1] == -1) or (close < ld2 and needbe == true)) and close < strategy.position_avg_price * (100 - takepercent) / 100 ? 1 : 0
dn8 = trend == -1 and ((bar == 1 and bar[1] == 1) or (body > smabody and bar == 1)) ? 1 : 0

if up7 == 1 or up8 == 1 
    strategy.entry("Long", strategy.long, needlong == false ? 0 : trend == -1 and needct == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00)))

if dn7 == 1 or dn8 == 1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : trend == 1 and needct == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00)))
    
if time > timestamp(toyear, tomonth, 31, 00, 00)
    strategy.close_all()

Thêm nữa