Chiến lược nắm bắt đà dựa trên đường trung bình động

Tác giả:ChaoZhang, Ngày: 2023-11-01 15:55:51
Tags:

img

Tổng quan

Chiến lược này sử dụng đường trung bình động làm tín hiệu giao dịch chính, kết hợp với Heikin-Ashi để phát hiện sự đảo ngược xu hướng, nhằm nắm bắt đà tăng giá ngắn hạn.

Chiến lược logic

  1. Tính toán giá đóng cửa Heikin-Ashi nAMAn như giá cơ sở.

  2. Tính toán trung bình di chuyển nhanh fma và trung bình di chuyển chậm sma dựa trên nAMAn.

  3. Tạo tín hiệu mua khi FMA vượt qua SMA, và bán tín hiệu khi FMA vượt qua dưới SMA.

  4. Việc sơn lại được loại bỏ trong chiến lược này để tạo ra các tín hiệu giao dịch thời gian thực và tránh thiên vị backtesting.

Phân tích lợi thế

  1. Heikin-Ashi giúp xác định các điểm đảo ngược xu hướng chính xác hơn.

  2. MA crossover lọc ra các tín hiệu sai hiệu quả.

  3. Không có sự chậm trễ trong việc tạo tín hiệu đảm bảo hiệu suất trực tiếp đáng tin cậy.

  4. Điều chỉnh tham số linh hoạt có thể điều chỉnh cho các sản phẩm khác nhau.

  5. Logic đơn giản và rõ ràng, dễ hiểu và thực hiện.

  6. Có thể được tự động hóa hoàn toàn để giảm thiểu rủi ro giao dịch thủ công.

Phân tích rủi ro

  1. Hiệu suất kém trong thị trường giới hạn phạm vi với giá whipsaws.

  2. Có xu hướng tạo ra tín hiệu sai với giao thoa MA kép.

  3. Các thông số MA không phù hợp có thể gây ra xu hướng bị thiếu hoặc gia tăng việc rút vốn.

  4. Chi phí giao dịch ảnh hưởng đến lợi nhuận ròng trong giao dịch trực tiếp.

  5. Đặt lệnh dừng lỗ nghiêm ngặt để kiểm soát lỗ giao dịch duy nhất.

  6. Các chiến lược giao dịch cơ học có rủi ro rút vốn vốn và đòi hỏi quản lý vốn thích hợp.

Giải pháp quản lý rủi ro:

  1. Thêm bộ lọc biến động để tránh thị trường giới hạn phạm vi.

  2. Thêm bộ lọc để đảm bảo chất lượng tín hiệu.

  3. Tối ưu hóa các thông số MA thông qua kiểm tra kỹ lưỡng.

  4. Điều chỉnh tần suất giao dịch để giảm tác động chi phí.

  5. Thiết lập stop loss thích hợp để kiểm soát lỗ trong các giao dịch đơn.

  6. Tối ưu hóa quản lý vốn để kiểm soát kích thước vị trí.

Hướng dẫn cải thiện

  1. Tối ưu hóa các thông số MA để cải thiện chất lượng tín hiệu.

  2. Thêm bộ lọc xu hướng để tránh thị trường.

  3. Bao gồm các chỉ số khối lượng để xác nhận xu hướng.

  4. Thực hiện stop loss và lấy lợi nhuận năng động để tối ưu hóa thu lợi nhuận.

  5. Tích hợp mô-đun quản lý vốn để kiểm soát kích thước vị trí.

  6. Thêm mô-đun giao dịch thuật toán để tự động hóa hoàn toàn.

Tóm lại

Chiến lược này tích hợp các kỹ thuật chéo Heikin-Ashi và MA để tạo ra một chiến lược theo xu hướng ngắn hạn đơn giản và thực tế. Nó tạo ra các tín hiệu giao dịch thời gian thực đáng tin cậy và cho thấy hiệu suất tốt trong giao dịch trực tiếp.


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

//@version=5
//Heikin/Kaufman by Gustavo v5
// strategy('Heikin Ashi EMA v5 no repaint ', shorttitle='Heikin Ashi EMA v5 no repaint', overlay=true, max_bars_back=500, default_qty_value=1000, initial_capital=100000, currency=currency.EUR)


// Settings - H/K
res1 = input.timeframe(title='Heikin Ashi EMA Time Frame', defval='D')
test = input(0, 'Heikin Ashi EMA Shift')
sloma = input(20, 'Slow EMA Period')
nAMA = hlc3

//Kaufman MA
Length = input.int(5, minval=1)
xPrice = input(hlc3)
xvnoise = math.abs(xPrice - xPrice[1])
Fastend = input.float(2.5, step=.5)
Slowend = input(20)
nfastend = 2 / (Fastend + 1)
nslowend = 2 / (Slowend + 1)
nsignal = math.abs(xPrice - xPrice[Length])
nnoise = math.sum(xvnoise, Length)
nefratio = nnoise != 0 ? nsignal / nnoise : 0
nsmooth = math.pow(nefratio * (nfastend - nslowend) + nslowend, 2)
nAMAn = nz(nAMA[1]) + nsmooth * (xPrice - nz(nAMA[1]))

//Heikin Ashi Open/Close Price
ha_t = ticker.heikinashi(syminfo.tickerid)
ha_close = request.security(ha_t, timeframe.period, nAMAn)
mha_close = request.security(ha_t, res1, hlc3)

//Moving Average
fma = ta.ema(mha_close[test], 1)
sma = ta.ema(ha_close, sloma)
plot(fma, title='MA', color=color.new(color.black, 0), linewidth=2, style=plot.style_line)
plot(sma, title='SMA', color=color.new(color.red, 0), linewidth=2, style=plot.style_line)

//Strategy
golong = ta.crossover(fma, sma)
goshort = ta.crossunder(fma, sma)

strategy.entry('Buy', strategy.long, when=golong)
strategy.entry('Sell', strategy.short,when=goshort)



Thêm nữa