Chiến lược dừng lỗ và tăng giá động


Ngày tạo: 2023-11-21 15:22:44 sửa đổi lần cuối: 2023-11-21 15:22:44
sao chép: 0 Số nhấp chuột: 643
1
tập trung vào
1617
Người theo dõi

Chiến lược dừng lỗ và tăng giá động

Tổng quan

Chiến lược theo dõi dừng động bằng cách tính toán phạm vi biến động thực tế trung bình của cổ phiếu là ATR làm chuẩn, kết hợp với hệ số ATR của người dùng thiết lập động thiết lập đường dừng và đường theo dõi, để đạt được mục đích của việc theo dõi dừng lỗ. Khi giá cổ phiếu phá vỡ đường theo dõi, hãy sử dụng chiến lược theo dõi xu hướng truyền thống để thiết lập nhiều vị trí; Khi giá cổ phiếu giảm xuống đường dừng, hãy sử dụng chiến lược đảo ngược để thiết lập vị trí trống, sử dụng giao dịch hai chiều để kiếm lợi nhuận.

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

Chiến lược này chủ yếu sử dụng chỉ số kỹ thuật ATR để tính toán phạm vi biến động thực tế trung bình của giá cổ phiếu và kết hợp hệ số ATR của người dùng để mua và bán lỗ phá vỡ cổ phiếu. Cụ thể, chiến lược này đầu tiên tính toán giá trị ATR của cổ phiếu trong 120 ngày qua, sau đó nhân với hệ số ATR bán được giá trị bán dừng, tức là đường dừng; nhân với hệ số ATR mua được giá trị mua tham chiếu, tức là đường theo dõi.

Chiến lược này vẽ cùng một lúc các đường dừng lỗ và đường theo dõi, vị trí của hai đường sẽ thay đổi tùy theo biến động của giá cổ phiếu, có một chức năng theo dõi động. Chỉ số ATR có thể phản ánh tốt hơn mức độ biến động trung bình của cổ phiếu, sử dụng chỉ số ATR để thiết lập đường theo dõi dừng lỗ, có thể tránh thiệt hại do biến động lớn của cổ phiếu đến một mức độ nào đó.

Phân tích lợi thế

  • Sử dụng chỉ số ATR để tính toán phạm vi biến động của giá cổ phiếu, vị trí của đường theo dõi dừng lỗ là hợp lý;
  • Dòng dừng lỗ và dòng theo dõi có khả năng theo dõi xu hướng;
  • Trong khi đó, nhiều người khác cũng đang làm thêm các giao dịch nhị phân, hai chiều, để có thể kiếm được nhiều lợi nhuận.
  • Đối với các cổ phiếu có biến động cao, kiểm soát rủi ro thông qua chỉ số ATR.

Phân tích rủi ro

  • Chỉ số ATR không đáp ứng đầy đủ các sự kiện bất ngờ và không tránh được hoàn toàn các rủi ro;
  • Đánh giá mua bán theo dõi, mua bán theo lỗ chỉ dựa trên sự phá vỡ đường ATR, có một số sự mù quáng, có thể xảy ra giao dịch quá mức;
  • Tính hợp lý của hệ số ATR mà người dùng nhập có ảnh hưởng trực tiếp đến hiệu quả của chiến lược, và việc thiết lập không đúng có thể gây thiệt hại;
  • Khi biến động của cổ phiếu giảm đi, việc dừng lỗ thường xuyên xảy ra và chi phí giao dịch quá mức tăng lên.

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

  • Kết hợp các chỉ số khác để xác định thời điểm mua và bán, tránh theo dõi mù quáng;
  • Thiết lập tỷ lệ và quy tắc đặt hàng, kiểm soát rủi ro;
  • Thêm bộ lọc khối lượng giao dịch hoặc biến động để tránh giao dịch quá mức;
  • Điều chỉnh động các tham số ATR để tối ưu hóa hiệu quả theo dõi thiệt hại.

Tóm tắt

Chiến lược này nói chung là một chiến lược theo dõi dừng lỗ điển hình, ý tưởng cốt lõi là thiết lập đường dừng lỗ và đường theo dõi dựa trên chỉ số ATR để theo dõi xu hướng. Ưu điểm của chiến lược là có thể giao dịch hai chiều, giữ vị trí linh hoạt; Sử dụng chỉ số ATR để kiểm soát rủi ro, phù hợp với cổ phiếu có biến động cao.

Mã nguồn chiến lược
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
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/
// © phobo3s

//@version=4
strategy("ATR Stop Buy Strategy",shorttitle="ATR-ST",initial_capital=1000, overlay = true, default_qty_type = strategy.percent_of_equity, pyramiding = 5, default_qty_value = 20, commission_type = strategy.commission.cash_per_order, commission_value = 1, calc_on_every_tick = true)

daysBack = input(defval=120, title="Days Back", type=input.integer)
sellCoeff = input(defval=1.5, title="Selling Coefficent For ATR", type=input.float, minval= 0.01, step=0.1)
buyCoeff = input(defval=1.2, title = "Buying Coefficent For ATR", type=input.float, minval= 0.01, step=0.1)

fromDate = timenow - (daysBack*24*60*60*1000)
toDate = timenow 

ATR = atr(14)
stopLossPoint = ATR * sellCoeff
buyPoint = ATR * buyCoeff

StoplossLine =  close[1] - stopLossPoint[1]
BuyLine = close[1] + buyPoint[1]

if (high > BuyLine and time >= fromDate and time <= toDate )
    strategy.entry("GG", strategy.long, comment="Gir")
if (low < StoplossLine and strategy.position_avg_price < close and time >= fromDate and time <= toDate )
    strategy.entry("GG", strategy.short, comment="Çık")

//longFlags = close < StoplossLine
//shortFlags = close > BuyLine
//plotshape(shortFlags, style=shape.triangledown, location=location.abovebar, color=color.red)
//plotshape(longFlags, style=shape.triangleup, location=location.belowbar, color=color.blue)
plot(StoplossLine)
plot(BuyLine)