Chiến lược đảo ngược theo dõi xu hướng

Tác giả:ChaoZhang, Ngày: 2024-01-16 14:44:35
Tags:

img

Tổng quan

Chiến lược đảo ngược theo dõi xu hướng là một chiến lược giao dịch xu hướng ngắn hạn dựa trên hợp đồng tương lai NQ 15 phút. Nó xác định các cơ hội giao dịch thông qua lọc xu hướng và nhận dạng mô hình đảo ngược. Chiến lược đơn giản nhưng hiệu quả này phù hợp với các nhà giao dịch ngắn hạn tích cực.

Chiến lược logic

Chiến lược chủ yếu hoạt động dựa trên các nguyên tắc sau:

  1. Sử dụng EMA 8 giai đoạn làm bộ lọc xu hướng chính, với tín hiệu dài trên EMA và tín hiệu ngắn dưới EMA.

  2. Xác định các mô hình đảo ngược nến cụ thể như các tín hiệu đầu vào, bao gồm nến xanh dài theo sau bởi nến đỏ ngắn cho các tín hiệu dài và nến đỏ dài theo sau bởi nến xanh ngắn cho các tín hiệu ngắn.

  3. Các điểm vào được thiết lập gần mức cao / thấp của nến đảo ngược, với mức dừng lỗ ở mức cao / thấp của nến đảo ngược, cho phép tỷ lệ rủi ro / phần thưởng hiệu quả.

  4. Xác nhận tín hiệu đảo ngược bằng cách sử dụng các quy tắc mối quan hệ nến, ví dụ: giá mở của nến màu đỏ nằm trên thân nến màu xanh lá cây cuối cùng, thân hoàn toàn bị nuốt chửng vv để lọc tiếng ồn.

  5. Chỉ vận hành chiến lược trong các giờ giao dịch cụ thể, tránh các giai đoạn biến động xung quanh các phiên giao dịch lớn, v.v., để ngăn ngừa tổn thất không cần thiết do hành động giá bất thường.

Phân tích lợi thế

Những lợi thế chính của chiến lược này bao gồm:

  1. Logic tín hiệu đơn giản và hiệu quả dễ hiểu và thực hiện.

  2. Xu hướng và đảo ngược dựa trên, tránh chém từ thị trường bò và gấu nổi loạn.

  3. Kiểm soát rủi ro tốt với việc đặt dừng lỗ hợp lý để bảo vệ vốn.

  4. Nhu cầu dữ liệu thấp phù hợp với các nền tảng và công cụ khác nhau.

  5. Tần suất giao dịch cao phù hợp với phong cách giao dịch ngắn hạn tích cực.

Rủi ro và giải pháp

Có một số rủi ro cần lưu ý:

  1. Không đủ cơ hội đảo ngược và tín hiệu hạn chế.

  2. Thỉnh thoảng có những sự đột phá sai, thêm nhiều bộ lọc cho logic kết hợp

  3. Sự biến động trong các phiên giao dịch qua đêm và không chính.

  4. Tính linh hoạt tối ưu hóa hạn chế. Xem xét máy học để điều chỉnh thông số tốt hơn.

Cơ hội gia tăng

Có chỗ để tối ưu hóa:

  1. Kiểm tra thời gian EMA dài hơn để cải thiện định nghĩa xu hướng.

  2. Thêm các bộ lọc chỉ số cổ phiếu làm bộ lọc xu hướng bổ sung.

  3. Sử dụng kỹ thuật máy học để tự động điều chỉnh nhập và dừng mức độ mất mát.

  4. Đưa ra kích thước vị trí điều chỉnh biến động và dừng động.

  5. Khám phá sự điều chỉnh giữa các tài sản để đa dạng hóa rủi ro hệ thống một tài sản.

Kết luận

Chiến lược đảo ngược theo dõi xu hướng cung cấp một khuôn khổ chiến lược ngắn hạn rất thực tế, đơn giản để thực hiện với các tham số hạn chế và kiểm soát rủi ro cá nhân tốt. Nó phù hợp với các nhà giao dịch ngắn hạn tích cực trên các diễn đàn giao dịch ban ngày.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 3h
basePeriod: 15m
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/
// © bdrex95

//@version=5

// Rob Reversal Strategy - Official
// Using Rob Reversal Indicator: Original
// Description
// This indicator is based on the strategy created by Trader Rob on the NQ 15m chart.
// 
// Timeframe for trading is 8:30am-1:15pm Central.
// 
// Above the EMA line, look for a long position. You will have a short candle, then a long candle that opens below the short candle. It will have a lower high and a lower low. Once the long candle closes, your entry will be 1 tick above the wick (green line) and stop loss will be at the bottom of the bottom wick (red line).
// 
// Below the EMA line, look for a short position. You will have a long candle, then a short candle that opens above the long candle. It will have a higher high and a higher low. Once the short candle closes, your entry will be 1 tick below the wick (green line) and stop loss will be at the top of the top wick (red line).
//

strategy("Trader Rob Reversal Strategy NQ 15min", shorttitle="Official Rob Rev Strat", overlay=true)


//--- Session Input ---
sess = input(defval = "0930-1415", title="Trading Session")
t = time(timeframe.period, sess)
sessionOpen = na(t) ? false : true

flat_time = input(defval = "1515-1558", title="Close All Open Trades")
ft = time(timeframe.period, flat_time)
flatOpen = na(ft) ? false : true


// Calculate start/end date and time condition
startDate = input(timestamp('2018-12-24T00:00:00'),group = "ALL STRATEGY SETTINGS BELOW")
finishDate = input(timestamp('2029-02-26T00:00:00'),group = "ALL STRATEGY SETTINGS BELOW")
time_cond = true


emaColor = input.color(color.orange, title="EMA Color")
emaLength = input.int(8, title="EMA Length")


emaInd = ta.ema(close, emaLength)


rr = input(1.0,"Enter RR",group = "TP/SL CONDITION INPUTS HERE")


sellShapeInput = input.string("Arrow", title="Sell Entry Shape", options=["Arrow", "Triangle"])
buyShapeInput = input.string("Arrow", title="Buy Entry Shape", options=["Arrow", "Triangle"])


sellShapeOption = switch sellShapeInput
    "Arrow" => shape.arrowdown
    "Triangle" => shape.triangledown
   
buyShapeOption = switch buyShapeInput
    "Arrow" => shape.arrowup
    "Triangle" => shape.triangleup


O = open
C = close
H = high
L = low


sellEntry = (C[1] > O[1]) and (C < O) and (H[1] < H) and (C < H[1]) and (C > L[1]) and (L > L[1]) and (C < emaInd) and sessionOpen and time_cond
buyEntry = (C[1] < O[1]) and (C > O) and (H[1] > H) and (L[1] > L) and (C < H[1]) and (C > L[1]) and (C > emaInd) and sessionOpen and time_cond


sellEntry_index = ta.valuewhen(sellEntry,bar_index,0)
sellEntry_hi = ta.valuewhen(sellEntry,high,0)
sellEntry_low = ta.valuewhen(sellEntry,low,0)
buyEntry_index = ta.valuewhen(buyEntry,bar_index,0)
buyEntry_hi = ta.valuewhen(buyEntry,high,0)
buyEntry_lo = ta.valuewhen(buyEntry,low,0)


plotshape(buyEntry, color = color.green, location = location.belowbar, style = buyShapeOption, size = size.small)
plotshape(sellEntry, color = color.red, location = location.abovebar, style = sellShapeOption, size = size.small)
plot(emaInd, color=emaColor)


// Risk Management
entry_price_long = (buyEntry_hi + syminfo.mintick)
entry_price_short = (sellEntry_low - syminfo.mintick)
long_sl_price = (buyEntry_lo-syminfo.mintick)
short_sl_price = (sellEntry_hi + syminfo.mintick)
long_tp_price = ((entry_price_long - long_sl_price)*rr) + entry_price_long
short_tp_price = entry_price_short - ((short_sl_price - entry_price_short)*rr)


long_sl_ticks = (entry_price_long - long_sl_price) / syminfo.mintick
short_sl_ticks = (short_sl_price - entry_price_short) / syminfo.mintick


long_tp_ticks = (long_tp_price - entry_price_long) / syminfo.mintick
short_tp_ticks = (entry_price_short - short_tp_price) / syminfo.mintick


// Positions
if (buyEntry)
    strategy.entry("Long", strategy.long,stop = H + syminfo.mintick)
if strategy.position_size > 0
    strategy.exit("Long Ex","Long", loss = long_sl_ticks, profit = long_tp_ticks, comment_loss = "SL Long", comment_profit = "TP Long")


if (sellEntry)
    strategy.entry("Short", strategy.short,stop = L - syminfo.mintick)
if strategy.position_size < 0
    strategy.exit("Short Ex","Short",loss = short_sl_ticks, profit = short_tp_ticks, comment_loss = "SL Short", comment_profit = "TP Short")


// Cancel order if close beyond ema
if (C < emaInd)
    strategy.cancel("Long")


if (C > emaInd)
    strategy.cancel("Short")


// Go flat at close (for futures funded account)
if strategy.position_size > 0 and flatOpen
    strategy.close_all(comment = "EOD Flat")
if strategy.position_size < 0 and flatOpen
    strategy.close_all(comment = "EOD Flat")
 
//END

Thêm nữa