Chiến lược phòng ngừa tần suất cao dựa trên màu cột MACD và hồi quy tuyến tính


Ngày tạo: 2023-10-27 10:42:54 sửa đổi lần cuối: 2023-10-27 10:42:54
sao chép: 0 Số nhấp chuột: 871
1
tập trung vào
1617
Người theo dõi

Chiến lược phòng ngừa tần suất cao dựa trên màu cột MACD và hồi quy tuyến tính

Tổng quan

Chiến lược này kết hợp các chỉ số MACD và chỉ số hồi phục tuyến tính để thực hiện giao dịch đảo ngược tần số cao thông qua sự kết hợp khéo léo, đặc biệt phù hợp với mạo hiểm và bảo hiểm ngắn, thuộc loại chiến lược trung lập thị trường điển hình.

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

Chiến lược này bao gồm:

  1. Màu cột MACD được sử dụng để đánh giá xu hướng. Khi màu cột MACD là màu xanh lá cây, nó cho thấy nó đang trong xu hướng tăng, và không thực hiện lệnh trống; Khi màu cột MACD là màu đỏ, nó cho thấy nó đang trong xu hướng giảm, và không thực hiện lệnh nhiều.

  2. Sự hồi phục tuyến tính như một chỉ số tín hiệu giao dịch quan trọng. Khi giá từ phía dưới đi qua sự hồi phục tuyến tính, hãy làm nhiều; Khi giá từ phía trên đi qua sự hồi phục tuyến tính, hãy làm trống.

  3. Kênh PAC bao gồm các EMA cao, thấp và đóng cửa, được sử dụng để xác định hướng quay trở lại tuyến tính. Chỉ khi hướng quay trở lại tuyến tính phù hợp với xu hướng trong kênh, tín hiệu giao dịch sẽ được tạo ra.

  4. EMA 89 là đường dừng lỗ, dừng lỗ khi giá đi qua đường này một lần nữa.

Các tín hiệu giao dịch được tạo ra theo logic sau:

Tín hiệu đa đầu: Trực tuyến quay trở lên đi qua đường dẫn PAC và xu hướng quay trở lên và màu cột MACD không phải là màu đỏ Tín hiệu không đầu: Phản hồi tuyến tính đi xuống qua kênh PAC trên đường ray và xu hướng giảm xuống và màu cột MACD không phải là màu xanh lá cây

Đấu hiệu thoát lỗ: Giá giảm xuống EMA 89

Chiến lược này kết hợp sự phán đoán xu hướng và mức giá quan trọng để thực hiện giao dịch bảo hiểm thường xuyên.

Phân tích lợi thế

  1. Sử dụng màu cột MACD để đánh giá xu hướng lớn, tránh giao dịch ngược.

  2. Phản hồi tuyến tính có tính mượt mà, có thể lọc một phần tiếng ồn.

  3. Các đường dẫn hình thành của EMA xác định rõ hướng đa không gian.

  4. Đường dừng lỗ được thiết lập hợp lý để đảm bảo lợi nhuận tối đa.

  5. Tần số giao dịch cao, phù hợp với chiến lược tần số cao của giao dịch bằng cách sử dụng chương trình.

  6. Các nhà đầu tư đã thực hiện các giao dịch bảo hiểm để có thể kiếm lợi nhuận trong tình huống bất ổn.

Phân tích rủi ro

  1. Phản hồi tuyến tính và chỉ số đường dẫn đều cần một số tham số tối ưu hóa, nếu không có thể bị hỏng.

  2. Hạn chế thiệt hại có thể được kích hoạt thường xuyên hơn trong trường hợp động đất lớn.

  3. Các giao dịch có số lượng lớn cần phải chú ý đến ảnh hưởng của phí.

  4. Chỉ số MACD có một chút chậm trễ, có thể bỏ lỡ sự đảo ngược xu hướng ngắn hạn.

  5. Các kênh EMA cũng cần phải được tối ưu hóa để thích ứng với sự thay đổi của thị trường.

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

  1. Điều chỉnh tham số hồi quy tuyến tính và đường dẫn để các chỉ số phù hợp hơn với các đặc điểm khác nhau.

  2. Giảm mức dừng lỗ, đồng thời đảm bảo tỷ lệ dừng lớn hơn 1.

  3. Tối ưu hóa tham số MACD để nó có thể bắt được nhiều tín hiệu ngắn hơn.

  4. Thử các chỉ số khác thay thế sự hồi quy tuyến tính, chẳng hạn như đường Bryn.

  5. Tăng cường kiểm soát vị thế để ngăn chặn tổn thất đơn phương quá lớn.

  6. Các chỉ số RSI đã được sử dụng để lọc một số tín hiệu giao dịch.

Tóm tắt

Chiến lược này sử dụng nhiều chỉ số kỹ thuật tổng hợp để thực hiện giao dịch bảo hiểm tần số cao. Ưu điểm của nó là nắm bắt sự đảo ngược ngắn hạn, kiểm soát rủi ro hợp lý, rất phù hợp trong thời gian biến động thị trường.

Mã nguồn chiến lược
/*backtest
start: 2022-10-20 00:00:00
end: 2023-10-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
// strategy("Sonic R + Linear Reg + Kumo Cloud + Barcolor MACD", overlay=true,default_qty_value=10000,initial_capital=200,currency=currency.USD, pyramiding=1)
EMA = input(defval=89, title="EMA Signal")
HiLoLen     = input(34, minval=2,title="High Low channel Length")
pacC        = ema(close,HiLoLen)
pacL        = ema(low,HiLoLen)
pacH        = ema(high,HiLoLen)
DODGERBLUE = #1E90FFFF
// Plot the Price Action Channel (PAC) base on EMA high,low and close//
L=plot(pacL, color=DODGERBLUE, linewidth=1, title="High PAC EMA",transp=90)
H=plot(pacH, color=DODGERBLUE, linewidth=1, title="Low PAC EMA",transp=90)
C=plot(pacC, color=DODGERBLUE, linewidth=2, title="Close PAC EMA",transp=80)
//Moving Average//
signalMA =ema(close,EMA)
plot(signalMA,title="EMA Signal",color=black,linewidth=3,style=line)
linereg = linreg(close, EMA, 0)
plot(linereg, color = orange, title = "Linear Regression Curve", style = line, linewidth = 1)
//////ICHIMOKU/////////
conversionPeriods = input(9),
basePeriods = input(26, minval=1, title="Base Line")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span"),
displacement = input(26, minval=1)
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine) 
leadLine2 = donchian(laggingSpan2Periods-1)
p1 = plot(leadLine1, offset = displacement-1, color=gray,title="Senkou span A", transp=90)
p2 = plot(leadLine2, offset = displacement-1, color=gray, title="Senkou span B", transp=90)
fill(p1, p2, color = leadLine1 > leadLine2 ? green : red, title="Kumo Cloud")
///////////////// MACD BARCOLOR /////////////////////
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD
hisup= iff(delta>delta[1] and delta>0, 1,
	     iff(delta<delta[1], -1, nz(hisup[1], 0)))
hisdown = iff(delta<delta[1] and delta<0, 1,
	     iff(delta>delta[1], -1, nz(hisdown[1], 0)))
barcolor(hisup==1 and MACD>0 ? lime: hisdown==1 and MACD<0 ? red : blue )
///////////// SIGNAL ///////////////
conbuy = iff(crossover(linereg,pacL) and rising(linereg,5), 1,
	     iff(crossover(linereg,pacH) or (crossunder(linereg,pacL) and pacL<signalMA), -1, nz(conbuy[1], 0)))
consell = iff(crossunder(linereg,pacH) and falling(linereg,5), 1,
	     iff(crossunder(linereg,pacL) or (crossover(linereg,pacH) and pacH>signalMA), -1, nz(consell[1], 0)))
golong= conbuy==1 and close>open and open<pacH and close>linereg and hisdown!=1
goshort= consell==1 and close<open and open>pacL and close<linereg and hisup!=1
if(golong)
    strategy.entry("Buy",strategy.long)
if(goshort)
    strategy.entry("Sell",strategy.short)
closelong= conbuy==-1
closeshort=consell==-1
if(closelong)
    strategy.close("Buy")
if(closeshort)
    strategy.close("Sell")
 ////////////// TP and SL//.
//SL = input(defval=200.00, title="Stop Loss Point", type=float, step=1)
//rr= input(defval=0.1,title="Reward/Risk",type=float)
//useTPandSL = input(defval = false, title = "Use exit order strategy?")
//Stop = SL
//Take=SL*rr
//Q = 100
//if(useTPandSL)
//    strategy.exit("Out Long", "Buy", qty_percent=Q, profit= Take, loss=Stop)
//    strategy.exit("Out Short", "Sell", qty_percent=Q, profit= Take, loss=Stop)