Chiến lược giao dịch dựa trên sự thoái lui đột phá


Ngày tạo: 2024-02-28 18:01:56 sửa đổi lần cuối: 2024-02-28 18:01:56
sao chép: 0 Số nhấp chuột: 585
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch dựa trên sự thoái lui đột phá

Tổng quan

Chiến lược giao dịch đảo ngược phá vỡ bằng cách tính toán chỉ số cường độ tuyệt đối của giá và chỉ số MACD, để thực hiện giao dịch đảo ngược phá vỡ trong một xu hướng cụ thể, thuộc chiến lược giao dịch ngắn. Chiến lược này kết hợp nhiều chỉ số để đánh giá xu hướng lớn, xu hướng trung hạn và xu hướng ngắn hạn, theo dõi xu hướng bằng các tín hiệu xác nhận xu hướng đồng bộ và bổ sung cho nhau.

Nguyên tắc chiến lược

Chiến lược này chủ yếu dựa trên chỉ số sức mạnh tuyệt đối của giá và chỉ số MACD để thực hiện giao dịch đảo ngược đột phá. Đầu tiên, tính toán 9 chu kỳ, 21 chu kỳ và 50 chu kỳ EMA của giá để xác định hướng xu hướng lớn; sau đó tính toán chỉ số sức mạnh tuyệt đối của giá, phản ánh sức mạnh điều chỉnh ngắn hạn; cuối cùng tính toán chỉ số MACD để xác định hướng xu hướng ngắn hạn.

Cụ thể, xu hướng lớn của giống cần đáp ứng 9 ngày EMA cao hơn 21 ngày EMA, 21 ngày EMA cao hơn 50 ngày EMA. Tiêu chuẩn phán quyết điều chỉnh ngắn hạn là chênh lệch chỉ số cường độ tuyệt đối thấp hơn 0, MACDDIFF nhỏ hơn 0. Xu hướng lớn của giống cần đáp ứng 9 ngày EMA thấp hơn 21 ngày EMA, 21 ngày EMA thấp hơn 50 ngày EMA. Tiêu chuẩn phán quyết hồi phục ngắn hạn là chênh lệch chỉ số cường độ tuyệt đối cao hơn 0, MACDDIFF cao hơn 0.

Phân tích lợi thế

Chiến lược này có những ưu điểm sau:

  1. Kết hợp xu hướng lớn và điều chỉnh ngắn hạn để tránh đột phá giả
  2. Sử dụng nhiều chỉ số kết hợp, có độ tin cậy cao
  3. Chỉ số cường độ tuyệt đối phản ánh cường độ điều chỉnh để đánh giá chất lượng điều chỉnh
  4. MACD có thể xác định xu hướng ngắn hạn và khu vực quá mua quá bán

Phân tích rủi ro

Chiến lược này cũng có một số rủi ro:

  1. Những sai lầm trong đánh giá xu hướng lớn có thể dẫn đến thất bại trong giao dịch
  2. Quyết định sai về thời gian và sức mạnh của hồi quy, có thể không hiệu lực
  3. Các chỉ số bị phân tán trong các tình huống cực đoan, tạo ra tín hiệu sai

Đối với các rủi ro trên, có thể được cải thiện bằng cách tối ưu hóa các tham số, đánh giá các chỉ số khác nhau của chu kỳ; điều chỉnh các quy tắc giữ vị trí, kiểm soát tổn thất đơn lẻ; kết hợp với nhiều chỉ số để lọc tín hiệu, tăng độ chính xác.

Hướng tối ưu hóa

Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:

  1. Kiểm tra nhiều chỉ số hơn để tìm chiến lược giao dịch phù hợp hơn
  2. Tối ưu hóa các tham số chỉ số, nâng cao độ nhạy của chỉ số
  3. Điều chỉnh phương thức dừng lỗ để giảm tối đa tổn thất đơn
  4. Tăng điều kiện lọc, phát tín hiệu ở khu vực hiệu quả hơn
  5. Kết hợp với nhiều chỉ số định kỳ thời gian, để tăng độ chính xác của phán đoán

Tóm tắt

Nói chung, chiến lược giao dịch rút lui là một chiến lược giao dịch ngắn gọn ổn định hơn. Nó kết hợp các phán đoán xu hướng lớn, ngắn và đa, tránh giao dịch sai trong tình huống xung đột. Đồng thời, việc sử dụng các chỉ số kết hợp cũng làm tăng độ chính xác của phán đoán.

Mã nguồn chiến lượ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("Divergence Scalper [30MIN]", overlay=true , commission_value=0.04 ) 
message_long_entry = input("long entry message") 
message_long_exit = input("long exit message") 
message_short_entry = input("short entry message") 
message_short_exit = input("short exit message") 
//3x ema 
out9 = ta.ema(close,9) 
out21 = ta.ema(close,21) 
out50 = ta.ema(close,50) 
//abs 
absolute_str_formula( ) => 
    top=0.0 
    bottom=0.0 
    if(close>close[1]) 
        top:= nz(top[1])+(close/close[1]) 
    else 
        top:=nz(top[1]) 
    if(close<=close[1]) 
        bottom:= nz(bottom[1])+(close[1]/close) 
    else 
        bottom:=nz(bottom[1]) 
    if (top+bottom/2>=0) 
        1-1/(1+(top/2)/(bottom/2)) 
abs_partial=absolute_str_formula() 
abs_final = abs_partial - ta.sma(abs_partial,50) 
//macd 
fast_length = input(title="Fast Length", defval=23) 
slow_length = input(title="Slow Length", defval=11) 
src = input(title="Source", defval=open) 
signal_length = input.int(title="Signal Smoothing", minval = 1, maxval = 50, defval = 6) 
sma_source = input.string(title="Oscillator MA Type", defval="EMA", options=["SMA", "EMA"]) 
sma_signal = input.string(title="Signal Line MA Type", defval="SMA", options=["SMA", "EMA"]) 
// Calculating 
fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length) 
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length) 
macd = fast_ma - slow_ma 
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length) 
hist = macd - signal 
long= abs_final > 0 and hist <0 and out9<out21 and out21<out50 
short = abs_final <0 and hist >0 and out9>out21 and out21>out50 
long_exit = abs_final <0 and hist >0 and out9>out21 and out21>out50 
short_exit = abs_final > 0 and hist <0 and out9<out21 and out21<out50 
strategy.entry("long", strategy.long, when = long and barstate.isconfirmed, alert_message = message_long_entry) 
strategy.entry("short", strategy.short, when = short and barstate.isconfirmed, alert_message = message_short_entry) 
strategy.close("long", when = long_exit and barstate.isconfirmed, alert_message = message_long_exit) 
strategy.close("short", when = short_exit and barstate.isconfirmed, alert_message = message_short_exit)