
Đây là một chiến lược theo dõi xu hướng dựa trên quy tắc giao dịch sóng biển. Chiến lược này sử dụng ATR (trung bình sóng thực) để xác định hướng xu hướng và quy mô vị trí giao dịch. Chiến lược sẽ mở hoặc đóng khi giá phá vỡ mức cao nhất hoặc thấp nhất trong một khoảng thời gian qua.
Cốt lõi của chiến lược này là sử dụng chỉ số ATR để xác định định hướng xu hướng và quy mô vị trí giao dịch. Chỉ số ATR có thể đo lường sự biến động của thị trường, do đó giúp chúng tôi xác định mức dừng và quy mô vị trí thích hợp. Các bước chính của chiến lược là:
Bằng cách này, chiến lược này có thể nắm bắt các xu hướng mạnh mẽ trong khi vẫn kiểm soát rủi ro chặt chẽ. Sử dụng chỉ số ATR có thể giúp chúng tôi điều chỉnh kích thước vị trí một cách động để thích ứng tốt hơn với sự biến động của thị trường.
Để đối phó với những rủi ro này, các giải pháp sau đây có thể được xem xét:
Bằng cách tối ưu hóa, bạn có thể cải thiện hơn nữa sự ổn định và lợi nhuận của chiến lược này.
Chiến lược phá vỡ TURTLE-ATR là một chiến lược theo dõi xu hướng dựa trên quy tắc giao dịch biển. Chiến lược này sử dụng chỉ số ATR để xác định hướng của xu hướng và quy mô vị trí giao dịch, mở vị trí bằng cách phá vỡ giá cao nhất hoặc thấp nhất trong một khoảng thời gian qua và giữ vị trí cho đến khi xu hướng đảo ngược. Ưu điểm của chiến lược này là có thể nắm bắt hành vi xu hướng mạnh mẽ, trong khi kiểm soát rủi ro nghiêm ngặt. Tuy nhiên, chiến lược này cũng đối mặt với các rủi ro như đảo ngược xu hướng, chấn động thị trường và tính nhạy cảm của tham số.
/*backtest
start: 2023-05-28 00:00:00
end: 2024-06-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © luisfeijoo22
//@version=5
strategy("Estrategia de las tortugas_ES", overlay=true, pyramiding=3)
// Parámetros
atrLength = input.int(20, "Longitud del ATR")
atrFactor = input.float(2, "Factor del ATR")
entryBreakout = input.int(20, "Breakout de entrada")
exitBreakout = input.int(10, "Breakout de salida")
longOnly = input.bool(false, "Solo largos")
shortOnly = input.bool(false, "Solo cortos")
// Cálculo del ATR
atr = ta.atr(atrLength)
// Cálculo de los niveles de breakout
longEntry = ta.highest(high, exitBreakout)[1]
longExit = ta.lowest(low, exitBreakout)[1]
shortEntry = ta.lowest(low, exitBreakout)[1]
shortExit = ta.highest(high, exitBreakout)[1]
// Cálculo del tamaño de la posición
nContracts = math.floor((strategy.equity * 0.01) / (atrFactor * atr))
// Filtra las fechas según el rango deseado
// in_range = time >= timestamp(year(start_date), month(start_date), dayofmonth(start_date))
// Condiciones de entrada y salida
longCondition = not longOnly and close > longEntry and time >= timestamp("2023-03-15")
if longCondition
strategy.entry("Long", strategy.long, qty = nContracts)
shortCondition = not shortOnly and close < shortEntry and time >= timestamp("2023-03-15")
if shortCondition
strategy.entry("Short", strategy.short, qty = nContracts)
strategy.exit("Exit Long", "Long", stop = longExit)
strategy.exit("Exit Short", "Short", stop = shortExit)
// Visualización de los niveles de breakout
plot(longEntry, "Entrada larga", color.green, style = plot.style_line)
plot(longExit, "Salida larga", color.red, style = plot.style_line)
plot(shortEntry, "Entrada corta", color.green, style = plot.style_line)
plot(shortExit, "Salida corta", color.red, style = plot.style_line)