Chiến lược phá vỡ hợp nhất

Tác giả:ChaoZhang, Ngày: 2023-12-15 11:59:08
Tags:

img

Tổng quan

Chiến lược này là một chỉ số đột phá hợp nhất giao dịch trong ngày cho thị trường Ấn Độ. Nó kết hợp điều kiện thời gian, hoa hồng và theo dõi dừng lỗ. Những lợi thế của chiến lược này bao gồm logic rõ ràng, điều chỉnh tham số linh hoạt và thích nghi với động lực thị trường. Tuy nhiên, một số rủi ro tồn tại và cần tối ưu hóa hơn nữa.

Chiến lược logic

Chiến lược cốt lõi dựa trên Bollinger Bands. Nó sử dụng trung bình di chuyển đơn giản thời gian LONG vì đường giữa và các dải lên / xuống là + MULT / MULT sai lệch tiêu chuẩn. Các tín hiệu mua được tạo ra khi phá vỡ gần bên trên dải trên, và các tín hiệu bán được tạo ra khi phá vỡ gần bên dưới dải dưới, tạo thành chiến lược Breakout Range.

Để kiểm soát rủi ro, nó sử dụng ATR cho đường dừng lỗ. Nó cũng xem xét giờ giao dịch thị trường Ấn Độ và đóng tất cả các vị trí lúc 14:57 mỗi ngày.

Phân tích lợi thế

Những lợi thế của chiến lược này:

  1. Logic rõ ràng, điều chỉnh tham số dễ dàng, thích nghi linh hoạt
  2. Kết hợp kiểm soát dừng lỗ và thời gian để quản lý rủi ro
  3. Xem xét đặc điểm của thị trường Ấn Độ cho địa phương hóa
  4. Tần suất giao dịch hợp lý, tránh giao dịch quá mức
  5. Khả năng mở rộng tốt để tối ưu hóa hơn nữa

Phân tích rủi ro

Những rủi ro của chiến lược này:

  1. Bollinger Bands dựa trên điều chỉnh tham số dựa trên kinh nghiệm
  2. Chỉ số duy nhất nhạy cảm với tín hiệu sai
  3. ATR dừng lỗ chỉ có thể kiểm soát rủi ro hạn chế
  4. Các sự kiện thiên nga đen không được xem xét

Các rủi ro có thể được giảm bằng cách:

  1. Kết hợp nhiều chỉ số để lọc tín hiệu
  2. Tối ưu hóa các quy tắc điều chỉnh tham số
  3. Kết hợp logic giao dịch khoảng cách
  4. Cải thiện độ bền dừng lỗ
  5. Kết hợp các chỉ số tâm lý thị trường

Hướng dẫn tối ưu hóa

Chiến lược có thể được tối ưu hóa theo nhiều hướng:

  1. Tối ưu hóa điều chỉnh tham số để thích nghi tốt hơn
  2. Thêm thêm các chỉ số để tránh tín hiệu sai
  3. Cải thiện độ bền dừng lỗ
  4. Bao gồm nhiều phân tích hơn để phát hiện xu hướng
  5. Xem xét tự động vị trí kích thước

Với tối ưu hóa mô hình và thuật toán, khả năng điều chỉnh tham số và lọc tín hiệu có thể được cải thiện để thích nghi rộng hơn và dung nạp rủi ro cao hơn.

Kết luận

Tóm lại, đây là một chiến lược đột phá trong ngày đơn giản. Nó giải quyết các đặc điểm cụ thể của thị trường Ấn Độ và kiểm soát rủi ro giao dịch. Với những cải tiến hơn nữa về điều chỉnh tham số và lọc tín hiệu, chiến lược này có thể đáp ứng yêu cầu thương mại hóa.


/*backtest
start: 2022-12-08 00:00:00
end: 2023-12-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Consolidation Breakout [Indian Market Timing]",overlay = true , pyramiding = 0 ,initial_capital = 50000, default_qty_value=5, currency = currency.NONE,commission_type = strategy.cash, commission_value = 30, slippage = 1 )


// ══════════════════════════════════//
// ————————> INPUT VALUES <————————— //
// ══════════════════════════════════//

LENGTH = input.int(title='LENGTH', defval = 75, minval = 10 ,maxval = 300)
MULT = input.float(title='MULT_STDEV',defval = 3.2 , minval = 1 , maxval = 7 , step =0.1)

//EMA1 = input.int(title='EMA1', defval = 50, minval = 10 ,maxval = 550)
//EMA2 = input.int(title='EMA2', defval = 135, minval = 10 ,maxval = 550)
factor_tr = input.float(title = "ATR TRAIL", defval = 10, step = 0.1)

// ══════════════════════════════════//
// ————————> DAY TIME LIMIT <——————— //
// ══════════════════════════════════//

t = time(timeframe.period, '0935-1430:1234567')
time_condition = not na(t)

//**********************// ════════════════════════════════//
//**********************// ————————> ATR & PLOT <————————— //
//**********************// ════════════════════════════════//
//ema1 = ta.ema(close,EMA1)
//ema2 = ta.ema(close,EMA2)

//plot(ema1, color=color.new(color.blue, 0), style=plot.style_linebr, title='ema1')
//plot(ema2, color=color.new(color.yellow, 0), style=plot.style_linebr, title='ema2')

atr_tr = ta.atr(16)*factor_tr

longStop = close - atr_tr
shortStop = close + atr_tr

Entry = close
length = LENGTH
mult = MULT
basis = ta.sma(Entry , length)
dev = mult * ta.stdev(Entry , length)
upper = (basis + dev)
lower = (basis - dev)
buyEntry = ta.crossover(Entry , upper)
sellEntry = ta.crossunder(Entry , lower)

//plot(upper, color=color.new(color.red, 0), style=plot.style_linebr, title="short stop")
//plot(lower, color=color.new(color.green, 0), style=plot.style_linebr, title="Long stop")

plot(upper, color=close[1] > upper and close > upper ? color.green : color.red, linewidth=2)
plot(lower, color=close[1] > lower and close > lower ? color.green : color.red, linewidth=2)




// ══════════════════════════════════//
// ————————> LONG POSITIONS <————————//
// ══════════════════════════════════//
//******barinstate.isconfirmed used to avoid repaint in real time*******

if ( buyEntry and strategy.opentrades==0 and barstate.isconfirmed and time_condition)
    strategy.entry(id= "Long" ,direction = strategy.long, comment = "B")
    
plot(longStop , color=color.new(color.blue, 0), style=plot.style_linebr, title='long Stop')

if strategy.position_size > 0 
    strategy.exit("long tsl", "Long" , stop = longStop , comment='S')

// ═════════════════════════════════════//
// ————————> SHORT POSITIONS <————————— //
// ═════════════════════════════════════//
if ( sellEntry and strategy.opentrades==0 and barstate.isconfirmed and time_condition)
    strategy.entry(id = "Short" ,direction = strategy.short,  comment = "S") 

if strategy.position_size < 0
    strategy.exit("short tsl", "Short" , stop = shortStop ,comment='B')

// ════════════════════════════════════════════════//
// ————————> CLOSE ALL POSITIONS BY 3PM <————————— //
// ════════════════════════════════════════════════//
strategy.close_all(when = hour == 14 and minute == 57)






    

Thêm nữa