Chiến lược theo xu hướng phá vỡ tam giác


Ngày tạo: 2023-09-20 14:24:16 sửa đổi lần cuối: 2023-09-20 14:24:16
sao chép: 0 Số nhấp chuột: 623
1
tập trung vào
1617
Người theo dõi

Tổng quan

Chiến lược này thuộc về chiến lược theo dõi xu hướng. Làm nhiều khi giá phá vỡ hình tam giác lên, giảm khi EMA nhanh đi qua EMA trung bình. Đồng thời thiết lập điểm dừng và dừng để kiểm soát rủi ro.

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

  1. Sử dụng EMA nhanh và EMA trung bình để xác định xu hướng. EMA nhanh trên EMA trung bình là tín hiệu lạc quan.

  2. Sử dụng giá cao nhất và giá thấp nhất của dòng N gốc K gần nhất để xác định xem có hình thành tam giác lên không. Hình thành tam giác làm nhiều tín hiệu.

  3. Sau khi tham gia thị trường, khi EMA nhanh vượt qua EMA trung bình, nó cho rằng xu hướng đã đảo ngược và gửi tín hiệu hòa vốn.

  4. Cài đặt điểm dừng để giá nhập phải ở dưới một phần trăm nhất định và dừng để thoát.

  5. Cài đặt điểm dừng là phần trăm nhất định trên giá nhập cảnh, phần dừng là thoát ra.

  6. Sử dụng EMA 200 ngày để xác định hướng của xu hướng tổng thể, chỉ hoạt động khi xu hướng đi lên.

Phân tích lợi thế

  1. Sử dụng bộ lọc hình tam giác để tạo ra đột phá giả, tăng độ chính xác vào sân.

  2. EMA nhanh và EMA trung bình phân chia hợp lý xu hướng và chấn động, tránh bị che đậy.

  3. Cài đặt Stop Loss và Stop Stop là hợp lý để kiểm soát tổn thất đơn lẻ.

  4. Chỉ hoạt động khi xu hướng đi lên, có thể tránh giai đoạn điều chỉnh.

Phân tích rủi ro

  1. Phạm vi tam giác quá nhỏ có thể bỏ lỡ xu hướng, quá lớn có thể làm tăng giao dịch vô nghĩa. Cần tối ưu hóa tham số N.

  2. Đi quá gần điểm dừng sẽ dễ bị đánh, đi quá xa sẽ khó kiểm soát tổn thất. Cần đánh giá và tối ưu hóa các tham số.

  3. Một số thiết lập chặn không đúng có thể làm lợi nhuận tràn.

  4. Các tham số chỉ số đánh giá xu hướng không chính xác có thể dẫn đến sai hướng giữ vị trí. Cần tối ưu hóa phản hồi nhiều giống.

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

  1. Tối ưu hóa các tham số N được xác định bởi hình tam giác, tìm giá trị tối ưu.

  2. Kiểm tra các kết hợp khác nhau của chu kỳ EMA để cải thiện tính chính xác của phán đoán xu hướng.

  3. Tối ưu hóa các tham số Stop Loss Stop theo đặc tính của các giống khác nhau.

  4. Thêm các chỉ số khác, chẳng hạn như hình dạng MACD, phá vỡ băng tần Brin, để cải thiện chất lượng tín hiệu.

  5. Thêm một cơ chế mở lại, kéo dài thời gian lợi nhuận nếu xu hướng tiếp tục.

Tóm tắt

Chiến lược này khá ổn định, có khả năng lọc các đột phá giả mạo hiệu quả thông qua việc xác định hình tam giác. Không gian tối ưu hóa tham số lớn hơn, có thể đạt được hiệu quả tốt hơn. Ngoài ra, bạn có thể thử thêm các chỉ số phán đoán phụ trợ hoặc cải thiện chiến lược dừng lỗ để nâng cao hiệu quả của chiến lược.

Mã nguồn chiến lược
/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 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/
// © mohanee

//@version=4

strategy(title="TrianglePoint strategy", overlay=true,pyramiding=2, default_qty_value=3, default_qty_type=strategy.fixed,    initial_capital=10000, currency=currency.USD)
// variables  BEGIN

numPeriods=input(9,title="Number of Bars")
fastEMA = input(13, title="fast EMA", minval=1)
slowEMA = input(65, title="slow EMA", minval=1)

stopLoss = input(title="Stop Loss%", defval=5, minval=1)


HH = highest(close[1],numPeriods)
LL = lowest(close[1],numPeriods)
tringlePoint =  low > LL and high < HH

fastEMAval= ema(close, fastEMA)
slowEMAval= ema(close, slowEMA)
two100EMAval= ema(close, 200)

//plot emas
plot(fastEMAval, color = color.green, linewidth = 1, transp=0)
plot(slowEMAval, color = color.orange, linewidth = 1, transp=0)
plot(two100EMAval, color = color.purple, linewidth = 2, transp=0)

longCondition=fastEMAval>two100EMAval and tringlePoint

//plotshape(triP,style=shape.triangleup,text="Buy",color=color.green,location=location.belowbar)
//plotshape(longCondition,style=shape.triangleup,text="Buy",color=color.green,location=location.belowbar)

//Entry
strategy.entry(id="TBT LE", comment="TBT LE" , long=true,  when= longCondition and strategy.position_size<1)   

//Add
strategy.entry(id="TBT LE", comment="Add" , long=true,  when= longCondition and strategy.position_size>=1 and close<strategy.position_avg_price)   


//barcolor(strategy.position_size>=1 ? color.blue : na)

//Take profit
takeProfitVal=   strategy.position_size>=1 ?  (strategy.position_avg_price * (1+(stopLoss*0.01) )) : 0.00
//strategy.close(id="TBT LE", comment="Profit Exit",  qty=strategy.position_size/2,  when=close>=takeProfitVal and close<open and close<fastEMAval)   //crossunder(close,fastEMAval)
barcolor(strategy.position_size>=1  ? (close>takeProfitVal? color.purple : color.blue): na)

//Exit
strategy.close(id="TBT LE", comment="TBT Exit",   when=crossunder(fastEMAval,slowEMAval))


//stoploss
stopLossVal=   strategy.position_size>=1 ?  (strategy.position_avg_price * (1-(stopLoss*0.01) )) : 0.00

//stopLossVal= close> (strategy.position_avg_price * (1+(stopLoss*0.01) )) ? lowest(close,numPeriods) : (strategy.position_avg_price * (1-(stopLoss*0.01) ))


strategy.close(id="TBT LE", comment="SL Exit",   when= close < stopLossVal)