
Chiến lược này là một chiến lược giao dịch ngắn hạn dựa trên lý thuyết phá vỡ. Nó kết hợp với việc sử dụng chỉ số đường trung bình và chỉ số giá cao / giá thấp để xác định tín hiệu phá vỡ để nắm bắt lợi nhuận trên xu hướng ngắn hạn.
Chiến lược này sử dụng giá cao nhất 20 ngày để xác định xu hướng tăng, làm nhiều hơn khi giá đóng cửa phá vỡ giá cao nhất 20 ngày; sử dụng giá thấp nhất 10 ngày để xác định xu hướng giảm, khi giá đóng cửa giảm xuống dưới giá thấp nhất 10 ngày. Đồng thời, nó cũng sử dụng một giá cao nhất 10 ngày ngắn hơn như một tín hiệu thoát lỗ để tháo lỗ.
Cụ thể, chiến lược bao gồm các quy tắc sau:
Bằng cách so sánh giá đóng cửa với các giá cao nhất và thấp nhất trong các chu kỳ khác nhau, chiến lược này nắm bắt các đột phá xu hướng trong các chu kỳ ngắn hơn và thực hiện các hoạt động ngắn.
Chiến lược này có một số lợi thế:
Chiến lược này cũng có một số rủi ro:
Để kiểm soát rủi ro, bạn có thể đặt mức dừng để hạn chế tổn thất đơn lẻ, hoặc điều chỉnh các tham số để kiểm soát tần suất giao dịch.
Chiến lược này cũng có thể được tối ưu hóa theo các khía cạnh sau:
Thêm các bộ lọc cho các chỉ số khác để tránh đột phá sai;
Thiết lập các cơ chế rút lui động, sử dụng lợi nhuận để theo dõi lỗ hổng;
Tham gia vào quy tắc đánh giá xu hướng, tránh giao dịch ngược;
Tối ưu hóa phạm vi tham số để thích ứng với các chu kỳ khác nhau và môi trường thị trường.
Chiến lược này nói chung là một chiến lược phá vỡ ngắn hạn đơn giản và thực tế. Nó có lợi cho việc nắm bắt các cơ hội xu hướng trong thời gian ngắn hơn. Nhưng cũng có nguy cơ bị bóp mép và tần số giao dịch cao. Bằng cách thêm các phương tiện như Filters, Stop Loss, tối ưu hóa tham số, bạn có thể kiểm soát rủi ro và tăng hiệu quả chiến lược.
/*backtest
start: 2022-11-27 00:00:00
end: 2023-12-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("TurtleBC Strategy v2 V.Troussel", shorttitle="TurtleBC-V.Troussel", overlay=true, pyramiding=0)
// === BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1)
FromDay = input(defval = 1, title = "From Day", minval = 1)
FromYear = input(defval = 2016, title = "From Year", minval = 2016)
ToMonth = input(defval = 1, title = "To Month", minval = 1)
ToDay = input(defval = 1, title = "To Day", minval = 1)
ToYear = input(defval = 9999, title = "To Year", minval = 9999)
enter_fast = input(20, minval=1)
exit_fast = input(10, minval=1)
exit_fast_short=input(10,minval=1)
fastL = highest(close, enter_fast)
fastS = highest(close ,exit_fast_short)
fastLC = lowest(close, exit_fast)
//Sortie pour le short
exitS=close>fastS[1]
enterL1 = close > fastL[1]
exitL1 = close <= fastLC[1]
strategy.entry("Long", strategy.long, when = enterL1 and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59)))
strategy.close("Long", when = exitL1 and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59)))
//le trigger de sortie est
strategy.entry("Short", strategy.short, when = exitL1 and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59)))
strategy.close("Short", when = exitS and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59)))