
Chiến lược này dựa trên giá đóng cửa của ngày trước và chỉ số ATR để thiết lập giá mở và giá dừng nhiều lần để theo dõi xu hướng. Khi giá phá vỡ giá mở, hãy mở thêm lỗ, dừng hoặc thanh toán sau khi dừng.
Chiến lược này sử dụng giá đóng cửa, giá cao nhất, giá thấp nhất và chỉ số ATR của ngày hôm trước để tính toán giá vào và giá dừng. Công thức tính toán cụ thể như sau:
Giá mở nhiều đầu TPup = Giá đóng cửa ngày trước + ATR* 0.8 Giá mở đầu trống TPdown = Giá đóng cửa ngày trước - ATR* 0.8
Slup giá dừng nhiều đầu = giá đóng cửa ngày trước + ATR* 0.2 Giá dừng chân trần tròn sldown = giá đóng cửa ngày trước - ATR* 0.2
Giá dừng nhiều đầu (profitlevelup) = giá thấp nhất ngày trước + ATR* 1.7
Giá dừng trục giá trục giá trục giá trục giá trục giá trục giá trục giá trục giá trục giá trục giá trục giá trục giá trục giá trục giá trục giá trục giá trục giá trục giá trục giá trục giá trục giá trục giá* 1.7
Khi giá phá vỡ giá mở đầu nhiều đầu TPup, làm thêm theo số 10; Khi giá phá vỡ giá mở đầu trống TPdown, làm trống theo số 10. Sau đó thiết lập dừng lỗ và dừng, giá chạm vào giá dừng lỗ sau khi dừng lỗ và dừng sau khi chạm vào giá dừng.
Những ưu điểm chính của chiến lược này là:
Sử dụng chỉ số ATR để thiết lập giá mở và giá dừng động, có thể được điều chỉnh theo biến động của thị trường, giúp giao dịch phù hợp hơn với môi trường thị trường.
Sử dụng giá đóng cửa ngày hôm trước để xác định hướng, sau đó kết hợp với chỉ số ATR để xác định giá giao dịch cụ thể, tránh bị lừa bởi giá thực tế với quá nhiều tiếng ồn.
Trong khi đó, các cơ chế dừng lỗ và ngăn chặn có thể kiểm soát tốt rủi ro của một giao dịch.
Những rủi ro chính của chiến lược này là:
Giá mà chỉ số ATR đặt có thể quá lý tưởng và không thể thực sự phản ánh tình hình thị trường, dẫn đến việc dừng lại thường xuyên. Bạn có thể điều chỉnh tham số ATR hoặc tăng mức dừng lại thích hợp.
Giá đóng cửa ngày trước không thể xác định xu hướng trong tương lai, nếu có sự đảo ngược mạnh, sẽ gây nhầm lẫn cho lựa chọn hướng giao dịch. Bạn có thể xem xét xác nhận xu hướng kết hợp với các chỉ số khác.
Các vị trí dừng và dừng có thể bị kích hoạt bằng thao tác, không thể dừng thực sự. Bạn có thể thiết lập dừng hàng thành phần để tránh bị bịt.
Chính sách này có thể được tối ưu hóa theo các khía cạnh sau:
Tối ưu hóa tham số ATR để giá giao dịch phù hợp hơn với biến động của thị trường.
Tăng cơ chế đánh giá xu hướng, tránh thị trường đảo ngược. Ví dụ: kết hợp các chỉ số như MA.
Điều chỉnh mức dừng giảm để giảm khả năng kích hoạt lợi nhuận giảm trong khi vẫn có lợi nhuận.
Thiết lập ngăn chặn và ngăn chặn các thành phần để giảm khả năng bị mắc kẹt và mất mát.
Tăng cơ chế quản lý vị trí để tăng vị trí trong giai đoạn xu hướng.
Chiến lược này dựa trên giá giao dịch ngày hôm trước và giá ATR để theo dõi xu hướng hiệu quả. Đồng thời thiết lập các cơ chế dừng và dừng để kiểm soát rủi ro giao dịch đơn lẻ. Các hướng tối ưu hóa bao gồm tối ưu hóa tham số, tăng cơ chế phán đoán, điều chỉnh dừng và quản lý vị trí.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("PC with ATR Strategy (by Zhipengcfel)", shorttitle="PC_ATR", pyramiding=1, overlay=true)
// Zhipengcfel's Previous day's close with ATR Strategy
//
// Version 1.0
// @copyright Idea by Zhipengcfel on June 29, 2017.
//Previous day's close plus ATR strategy.
//Buy (if breaking PC+ATR*0.8) or sell (if breaking PC-0.8*ATR).
//This is just a demo vision and can not be used for real auto trading
///////////// ATR value
ATRlength = input(14, minval=1, title="lookback length of ATR")
//ATR = atr(ATRlength)
ATR = request.security(syminfo.tickerid, 'D', atr(ATRlength))
///////////// Entry levels and target levels
entr = input(0.8, minval=0.1, step = 0.05, title="Entry level for ATR")
tplevel = input(1.7, minval=0.1, step = 0.05, title="Exit level for ATR")
yesterday = request.security(syminfo.tickerid, 'D', close[1])
dl = request.security(syminfo.tickerid, 'D', low[1])
dh = request.security(syminfo.tickerid, 'D', high[1])
TPup = yesterday+entr*ATR
TPdown = yesterday-entr*ATR
profitlevelup = dl+tplevel*ATR
profitleveldown = dh-tplevel*ATR
///////////// Stop loss level
sl = input( 0.2 ,minval=0.01, step = 0.05, title="Stop loss level for ATR") //82 for 2, 83 for 3 and more positions
slup = yesterday+sl*ATR
sldown = yesterday-sl*ATR
///////////// Starting year to backtest
yer = input( 2014 , title="Backtest Starting year")
///////////// strategy: PC + ATR
if (close > TPup) and (close < profitlevelup)
strategy.entry("LONG", strategy.long, 10, comment="Buy", when = year > yer, oca_name="My oca")
strategy.exit("Stopped", "LONG", stop = slup, limit= profitlevelup, oca_name="My oca")
if (close < TPdown) and (close > profitleveldown)
strategy.entry("SHORT", strategy.short, 10, comment="Sell", when = year > yer, oca_name="My oca")
strategy.exit("Stopped", "SHORT", stop = sldown, limit= profitleveldown, oca_name="My oca")