Chiến lược thoát khỏi đèn chùm


Ngày tạo: 2024-01-05 15:57:51 sửa đổi lần cuối: 2024-01-05 15:57:51
sao chép: 0 Số nhấp chuột: 1139
1
tập trung vào
1617
Người theo dõi

Chiến lược thoát khỏi đèn chùm

Tổng quan

Chiến lược này sử dụng chỉ số đèn treo để xác định hướng và cường độ của sự phá vỡ giá, do đó tạo ra tín hiệu mua và bán. Nó chỉ thực hiện các hoạt động mua.

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

Chiến lược này dựa trên chỉ số đèn treo, đèn treo là thiết lập đường dừng dựa trên giá cao nhất, giá thấp nhất và độ dao động thực tế trung bình của giá. Cụ thể, chiến lược tính toán độ dao động thực tế trung bình trong ngày 22 và nhân với một hệ số (bằng cách mặc định 3). Sau đó, dựa trên giá trị này, thiết lập đường dừng dài và đường dừng ngắn.

Chiến lược này chỉ thực hiện các hoạt động mua. Cụ thể, nó tạo ra tín hiệu mua khi giá vượt qua đường dừng dài trước đó. Sau đó, nó tạo ra tín hiệu bán và thanh toán khi giá vượt qua đường dừng ngắn.

Phân tích lợi thế

  • Sử dụng chỉ số đèn treo để thiết lập đường dừng động, có thể kiểm soát rủi ro hiệu quả
  • Kết hợp với phá vỡ giá tạo ra tín hiệu giao dịch, có thể nắm bắt xu hướng của giá
  • Chỉ thực hiện các giao dịch mua và mua để thực hiện một chiến lược tránh biến động.
  • Cài đặt cảnh báo kích hoạt nhiều điều kiện để theo dõi trạng thái của chính sách ngay lập tức

Phân tích rủi ro

  • Chỉ số đèn treo nhạy cảm với độ dao động, có thể báo hiệu sai nếu có biến động giá bất thường
  • Không có thiết lập dừng lỗ sau khi mua, không thể kiểm soát hiệu quả rủi ro mất mát
  • Không tính đến việc theo dõi các điểm dừng, không thể khóa lợi nhuận

Phương pháp giải quyết rủi ro:

  1. Kết hợp với các chỉ số khác để lọc tín hiệu và tránh báo cáo sai
  2. Thiết lập đường dừng lỗ, giới hạn tỷ lệ lỗ tối đa
  3. Tham gia theo dõi cơ chế dừng, có thể xem xét động điều chỉnh bán ra đường dây hoặc một phần ra khỏi sân

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

  1. Có thể thử nghiệm các thiết lập tham số khác nhau để tối ưu hóa thời gian mua và bán
  2. Xác nhận các chỉ số khác có thể được thêm vào để tránh tín hiệu báo cáo sai
  3. Có thể xem xét mua và bán cùng một lúc
  4. Có thể thiết lập các cơ chế dừng và dừng

Tóm tắt

Chiến lược này sử dụng các chỉ số đèn treo động để xác định các cơ hội đảo ngược giá. Nó chỉ mua khi giá vượt qua đường dừng dài và bán khi giá vượt qua đường dừng ngắn, thực hiện một chiến lược đơn giản đơn phương, tránh cả hai mặt của hành động. Chiến lược này kiểm soát rủi ro một cách hiệu quả, nhưng không có thiết lập dừng và dừng. Chúng ta có thể tối ưu hóa chiến lược này bằng cách thêm các chỉ số khác để lọc và thiết lập dừng lỗ.

Mã nguồn chiến lược
/*backtest
start: 2023-12-28 00:00:00
end: 2024-01-04 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Chandelier Exit Strategy", overlay=true)

length = input(title='ATR Period', defval=22)
mult = input.float(title='ATR Multiplier', step=0.1, defval=3.0)
showLabels = input(title='Show Buy/Sell Labels ?', defval=true)
useClose = input(title='Use Close Price for Extremums ?', defval=true)
highlightState = input(title='Highlight State ?', defval=true)

atr = mult * ta.atr(length)

longStop = (useClose ? ta.highest(close, length) : ta.highest(length)) - atr
longStopPrev = nz(longStop[1], longStop)
longStop := close[1] > longStopPrev ? math.max(longStop, longStopPrev) : longStop

shortStop = (useClose ? ta.lowest(close, length) : ta.lowest(length)) + atr
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := close[1] < shortStopPrev ? math.min(shortStop, shortStopPrev) : shortStop

var int dir = 1
dir := close > shortStopPrev ? 1 : close < longStopPrev ? -1 : dir

var color longColor = color.green
var color shortColor = color.red

longStopPlot = plot(dir == 1 ? longStop : na, title='Long Stop', style=plot.style_linebr, linewidth=2, color=color.new(longColor, 0))
buySignal = dir == 1 and dir[1] == -1
plotshape(buySignal ? longStop : na, title='Long Stop Start', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(longColor, 0))
plotshape(buySignal and showLabels ? longStop : na, title='Buy Label', text='Buy', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(longColor, 0), textcolor=color.new(color.white, 0))

shortStopPlot = plot(dir == 1 ? na : shortStop, title='Short Stop', style=plot.style_linebr, linewidth=2, color=color.new(shortColor, 0))
sellSignal = dir == -1 and dir[1] == 1
plotshape(sellSignal ? shortStop : na, title='Short Stop Start', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(shortColor, 0))
plotshape(sellSignal and showLabels ? shortStop : na, title='Sell Label', text='Sell', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(shortColor, 0), textcolor=color.new(color.white, 0))

changeCond = dir != dir[1]
alertcondition(changeCond, title='Alert: CE Direction Change', message='Chandelier Exit has changed direction!')
alertcondition(buySignal, title='Alert: CE Buy', message='Chandelier Exit Buy!')
alertcondition(sellSignal, title='Alert: CE Sell', message='Chandelier Exit Sell!')

// Define initial capital
initial_capital =25

// Trigger buy order and close buy order on sell signal
if buySignal
    strategy.entry("Buy", strategy.long, qty = initial_capital / close)

if sellSignal
    strategy.close("Buy")