Chiến lược Stochastic & Moving Average với bộ lọc kép

Tác giả:ChaoZhang, Ngày: 2024-02-02 11:28:58
Tags:

img

Tổng quan

Đây là một chiến lược giao dịch dài hạn kết hợp các giá trị dao động stochastic K và trung bình động theo cấp số nhân với bộ lọc kép. Nó xác định các cơ hội mua khi stochastic K vượt qua D và bước vào vùng bán quá mức. Chiến lược tạo ra tín hiệu bán khi giá vượt dưới mức trung bình động và stochastic K vượt quá ngưỡng, lọc những sự đảo ngược bình thường từ sự đảo ngược xu hướng. Các quy tắc dừng lỗ cũng được thực hiện.

Chiến lược logic

Ý tưởng cốt lõi của chiến lược này là sử dụng stochastic K để thời gian tín hiệu nhập cảnh, và trung bình động theo cấp số nhân để ghi lại lợi nhuận.

Cụ thể, chiến lược này tính toán giá trị K và D ngẫu nhiên 21 giai đoạn, cũng như EMA 38 giai đoạn. Khi K vượt qua trên D vào vùng bán quá mức (bên định 25), một tín hiệu mua được tạo ra. Khi giá vượt dưới EMA và K ngẫu nhiên cao hơn ngưỡng lọc (65), việc đảo ngược xu hướng được giả định và vị trí được đóng. Quy tắc dừng lỗ 13% cũng được thực hiện.

Với các chỉ số kép và bộ lọc kép, chiến lược này lọc hiệu quả các tín hiệu giả. Mua vào mức bán quá mức và theo xu hướng tăng có thể thu được lợi nhuận tốt. Nó phù hợp với cổ phần trung hạn đến dài hạn.

Phân tích lợi thế

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

  1. Stochastic K xác định các điểm vào tốt khi vượt qua vào vùng bán quá mức.

  2. Bộ lọc kép của K / D chéo và giá cực đoan có hiệu quả tránh tín hiệu sai.

  3. Theo dõi lợi nhuận với EMA tận dụng đầy đủ đà tăng.

  4. Stochastic lọc những sự đảo ngược bình thường từ những sự đảo ngược khi ghi lại lợi nhuận.

  5. Thích hợp cho các cổ phần trung bình đến dài hạn với lợi nhuận tốt.

Phân tích rủi ro

Một số rủi ro cần xem xét:

  1. Rủi ro hệ thống - thị trường gấu có thể gây ra tổn thất lớn.

  2. Rủi ro khôi phục - Khôi phục giá tạm thời có thể sớm kích hoạt lệnh dừng lỗ MA.

  3. Rủi ro tối ưu hóa tham số - điều chỉnh tham số không phù hợp ảnh hưởng đến hiệu suất.

  4. Rủi ro thiên nga đen - các chỉ số kỹ thuật thất bại trước những cú sốc thị trường.

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

Một số cách để tối ưu hóa chiến lược:

  1. Tối ưu hóa các thông số chỉ số thông qua kiểm tra hậu quả nghiêm ngặt.

  2. Thêm các phương pháp dừng lỗ khác như biến động hoặc dừng lỗ sau.

  3. Bao gồm các chỉ số khác như khối lượng, Bollinger Bands v.v.

  4. Kiểm tra các khoảng thời gian trung bình động ngắn hơn / dài hơn.

  5. Điều chỉnh động các tham số dựa trên các chế độ thị trường.

Kết luận

Đây là một chiến lược theo xu hướng tổng thể vững chắc. Nó sử dụng stochastic để xác định bước vào, trung bình động để theo dõi lối ra, và thực hiện bộ lọc kép để tránh tín hiệu sai. Với sự linh hoạt điều chỉnh tham số rộng rãi, giữ trung bình đến dài hạn và hiệu quả trong việc bắt xu hướng, đây là một chiến lược giao dịch chứng khoán hiệu quả.


/*backtest
start: 2024-01-25 00:00:00
end: 2024-02-01 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// English version
strategy(title='Stochastic & MA',  overlay=false)
// INPUTS : all default value have already been optimized
length = input.int(21, 'period', minval=1)
lossp = input.int(13, 'stop loss %', minval=2, step=1)
leverage = input.int(1, 'leverage', minval=1, step=1)
// leverage has been introduced for modifying stop loss levels for financial instruments with leverage, like ETF 
n = input(2, 'n days ago')
filtro = input.int(65, 'k filter for throwbacks', minval=20, step=1)
OverSold = input.int(25, 'Oversold value', minval=5, step=5)
// Building indicators
smoothK = input.int(6, 'k', minval=1)
smoothD = input.int(4, 'd', minval=1)
k = ta.sma(ta.stoch(close, high, low, length), smoothK)
d = ta.sma(k, smoothD)
//Empowerment: introducing EMA
sma_period = input.int(38, 'periodo Sma', minval=1)
emaf = ta.ema(close, sma_period)
//ENTRY condition and order
// First of all, it's better not trade shares with a quaterly loss or with a bad surprise towards to analysts' expectations or ipevaluated (P/E > 50), but on your choice
// You entry when Stochastic's K is higher than D in Oversold area (you may personalize), applying the condition that today's close should be higher than one of n-days ago (default of the day before yesterday or 2 candles ago)
entry1 = k > d and k <= OverSold and close >= close[n]
strategy.entry('Long', strategy.long, comment='k basso', when=entry1)
//EXIT CONDITIONS
//  1) close crosses under exponential movinig average with filter that k >= fixed level (65), in order to distinguish a violent movement of prices with a possibile beginning of a trend from an almost exhausted "ordinary" throwback
// 2) fixed stop loss on percentage
exit1 = ta.crossunder(close, emaf) and k >= filtro
losspel = strategy.position_avg_price * (1 - lossp / 100 * leverage)
exit2 = close < losspel
strategy.close('Long', when=exit1, comment='sma')
strategy.close('Long', when=exit2, comment='stop loss')
// plotting indicators (add Ema on your choice)
plot(k, color=color.new(color.blue, 0), linewidth=1, title='k Stoch')
plot(d, color=color.new(color.red, 0), linewidth=1, title='d stoch signal')
plot(OverSold, title='Oversold', color=color.new(color.aqua, 0))
plot(filtro, color=color.new(color.gray, 0), title='k-filter for ema')





Thêm nữa