Chiến lược đảo ngược động lực dựa trên nhiều khung thời gian

Tác giả:ChaoZhang, Ngày: 2024-02-27 14:27:49
Tags:

img

Tổng quan

Chiến lược này xác định các cơ hội giao dịch bằng cách tính toán tỷ lệ thân nến / nến và kết hợp các chỉ số RSI để phát hiện các điều kiện thị trường mua quá mức / bán quá mức.

Chiến lược logic

Logic cốt lõi của chiến lược này dựa trên những điều sau:

  1. Tính toán tỷ lệ phần trăm thân/cây nến: Bằng cách tính toán giá mở, đóng, cao và thấp, rút ra tỷ lệ phần trăm được chiếm bởi thân nến và nến.

  2. Tính toán tỷ lệ thay đổi sức mạnh nến: Tính toán kích thước chuyển động giá nội bộ của mỗi nến để xác định sức mạnh nến.

  3. Kết hợp với chỉ số RSI để xác định các điều kiện mua quá mức / bán quá mức: Đặt các đường ngưỡng mua quá mức và bán quá mức cho chỉ số RSI. Chỉ số RSI trên đường mua quá mức có nghĩa là trạng thái mua quá mức và ngược lại là bán quá mức. Những ngọn nến mạnh trong các trạng thái như vậy có khả năng đảo ngược cao.

  4. Xác định tín hiệu đảo ngược: Khi tỷ lệ phần trăm cắm < 20% và cường độ nến > 2 lần cường độ trung bình, cùng với nến trước đóng cao hơn so với nến hiện tại đóng, nó báo hiệu tình trạng ngắn. Ngược lại cho thấy tình trạng dài.

  5. Định nghĩa stop loss và take profit: Đặt stop loss dựa trên tỷ lệ phần trăm cố định và lấy mức lợi nhuận riêng biệt cho các giao dịch dài và ngắn.

Phân tích lợi thế

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

  1. Xác định hiệu quả xu hướng và đảo ngược bằng cách sử dụng tỷ lệ thân nến/wick.

  2. Độ chính xác cao hơn của tín hiệu đảo ngược bằng cách kết hợp thay đổi cường độ nến và RSI. RSI có thể điều chỉnh cung cấp khả năng tối ưu hóa lớn hơn.

  3. Cấu hình dừng lỗ / lấy lợi nhuận hợp lý để tận dụng các cơ hội ngắn hạn trong khi giảm rủi ro giao dịch.

  4. Tính linh hoạt của các tham số để tối ưu hóa trên các sản phẩm và khung thời gian khác nhau.

Phân tích rủi ro

Một số rủi ro có trong chiến lược:

  1. Các tín hiệu sai tiềm năng trong thời gian đột phá xu hướng mạnh. Có thể được giảm thông qua tối ưu hóa các khoảng thời gian so sánh nến và các thông số RSI.

  2. Khả năng đảo ngược không thành công không thể loại bỏ hoàn toàn. Dành thời gian dài trong xu hướng giảm và ngược lại gây ra tổn thất. Các lỗ dừng nên được điều chỉnh phù hợp để giảm thiểu thiệt hại.

  3. Hiệu suất phụ thuộc vào sản phẩm và khung thời gian.

Cơ hội gia tăng

Chiến lược có thể được tối ưu hóa theo những cách sau:

  1. Thời gian điều chỉnh chi tiết được xem xét trong việc xác định quá mua / quá bán để xác định các kết hợp thông số tối ưu.

  2. Tối ưu hóa ngưỡng RSI mua quá mức / bán quá mức dựa trên đặc điểm của sản phẩm.

  3. Kiểm tra tỷ lệ dừng lỗ / lấy lợi nhuận để rút ra kế hoạch quản lý rủi ro lý tưởng.

  4. Phân loại các sản phẩm theo độ biến động để điều chỉnh tham số có mục tiêu hơn.

  5. Các bộ lọc bổ sung dựa trên các chỉ số khác có thể cải thiện độ bền.

Kết luận

Chiến lược này là rất thực tế nói chung để phát hiện sự đảo ngược bằng cách hiểu thông tin nến. Là một hệ thống giao dịch ngắn hạn điển hình, nó có khả năng tối ưu hóa đáng kể trên các sản phẩm và môi trường để theo dõi xu hướng trung hạn. Tuy nhiên, kiểm soát rủi ro đầy đủ thông qua dừng lỗ là bắt buộc.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("mecha larga study",overlay = true,  max_bars_back = 600)
//Porcentaje Mecha cuerpo
bodyPercent = math.abs(open - close) / (high - low) * 100
wickPercent = 100 - bodyPercent

plot(bodyPercent, "Porcentaje del cuerpo", color.rgb(163, 76, 175))
plot(wickPercent, "Porcentaje de la mecha", color.red)

VelaDeFuerza =  math.abs(((high[0] - low[0])*100)/high)//PORCENTAJE DE VARIACION DE UNA VELA
plot(VelaDeFuerza, color = color.purple)

Promedio = ((VelaDeFuerza[0] + VelaDeFuerza[1] + VelaDeFuerza[2] + VelaDeFuerza[3] + VelaDeFuerza[4]  + VelaDeFuerza[5] + VelaDeFuerza[6] + VelaDeFuerza[7] + VelaDeFuerza[8] + VelaDeFuerza[9] + VelaDeFuerza[10] + VelaDeFuerza[11] + VelaDeFuerza[12] + VelaDeFuerza[13]  + VelaDeFuerza[14] ) / 15)
plot(Promedio, color = color.yellow)


// rsi 
per_Rsi = input.int(14, "Periodo RSI",minval= 11, maxval=20) //inicializo el rsi en 14 periodos pero doy la posibilidad al usuario de cambiarlo
rsi_Sc = input.int(75,"Sobre Compra",minval=68,maxval=80) //ENTRADA DE SOBRE COMPRA DE RSI
rsi_Sv = input.int(25,"Sobre Venta",minval=20,maxval=33) //ENTRADA DE SOBRE VENTA DE RSI
rsi= ta.rsi(close,per_Rsi)//guardo el rsi con los paramentros anteriores en una variable

//logica
MayorPromedio =   Promedio + 0.800
plot(MayorPromedio, color = color.green)

Venta =   bodyPercent > 80   and VelaDeFuerza > Promedio * 2  and close < close[1]
Compra =   bodyPercent > 80  and VelaDeFuerza > Promedio * 2 and close > close[1]


precioVenta = Venta? close : na
precioCompra = Compra? close : na

tp1 = 0.00
sl  = 0.00
tp1 := 0.003
sl := 0.010

TP1short = precioVenta - (precioVenta * tp1)
Slshort = precioVenta + (precioVenta * sl)

TP1long = precioCompra + (precioCompra * tp1)
SLlong = precioCompra - (precioCompra * sl)


name1 = "tp1"
name2 = "tp2"
name3= "SL"




if ( precioVenta ) 
    strategy.entry("short", strategy.short , comment = "Sell  SL: " + str.tostring(Slshort, "0.000")  + " TP1: " + str.tostring(TP1short,"0.000") ) 
    strategy.exit("exit" , "short", stop = Slshort , limit = TP1short ,qty_percent = 100 )  
if ( precioCompra ) 
    strategy.entry("long", strategy.long , comment = "Buy   SL: " + str.tostring(SLlong, "0.000")  + " TP1: " + str.tostring(TP1long,"0.000") )
    strategy.exit("exit" , "long", stop = SLlong  , limit = TP1long ,qty_percent = 100 )

Thêm nữa