Chiến lược kết hợp MACD StochRSI đa kỳ


Ngày tạo: 2023-09-13 12:05:46 sửa đổi lần cuối: 2023-09-13 12:05:46
sao chép: 0 Số nhấp chuột: 636
1
tập trung vào
1617
Người theo dõi

Chiến lược này kết hợp sử dụng chỉ số MACD và chỉ số StochRSI để đưa ra phán đoán trong nhiều chu kỳ thời gian, cải thiện sự ổn định và độ tin cậy của quyết định giao dịch. Đây là một chiến lược kết hợp đa thời gian điển hình.

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

  1. MACD và StochRSI được tính theo đường ngày và chu kỳ 4 giờ.

  2. Khi đường ngày và các chỉ số đa đầu của chu kỳ 4 giờ cùng xuất hiện nhiều tín hiệu, hãy thực hiện nhiều thao tác.

  3. Hoạt động làm trống được thực hiện khi có tín hiệu làm trống đồng thời với đường hàng ngày và chỉ số đầu không trong chu kỳ 4 giờ.

  4. Sau khi tham gia một hướng, bạn có thể thanh toán trước khi các chỉ số khác xuất hiện.

  5. Bằng cách kết hợp nhiều axis thời gian, xác minh kết quả chỉ số, giảm giao dịch sai.

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

  1. Việc kết hợp nhiều giai đoạn có thể giúp tăng sự ổn định của tín hiệu.

  2. MACD và StochRSI có thể xác minh lẫn nhau để tăng độ chính xác.

  3. Các quy tắc nhập cảnh và xuất cảnh rõ ràng, dễ dàng kiểm tra lại và thực hiện.

Rủi ro của chiến lược này:

  1. Các kết hợp thời gian đa chiều có vấn đề về sự chậm trễ.

  2. Tối ưu hóa các tham số chỉ số phức tạp hơn, cần xem xét nhiều chu kỳ cùng một lúc.

  3. Tỷ lệ giao dịch có thể thấp, không thể nắm bắt đầy đủ cơ hội thị trường.

Tóm lại, chiến lược này được đánh giá qua nhiều kết hợp các chỉ số chu kỳ, có thể cải thiện chất lượng tín hiệu ở một mức độ nhất định, nhưng cần chú ý đến các vấn đề tối ưu hóa tham số và chậm trễ, tìm kiếm sự cân bằng giữa lợi nhuận và rủi ro.

Mã nguồn chiến lược
/*backtest
start: 2023-08-13 00:00:00
end: 2023-09-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
// strategy(title='[RS]Khizon (DGAZ) Strategy V0', shorttitle='K', overlay=false, pyramiding=0, initial_capital=100000, currency=currency.USD)
//  ||  Inputs:
macd_src = input(title='MACD Source:',  defval=close)
macd_fast = input(title='MACD Fast Length:', defval=12)
macd_slow = input(title='MACD Slow Length:', defval=26)
macd_signal_smooth = input(title='MACD Signal Smoothing:', defval=9)
srsi_src = input(title='SRSI Source:',  defval=close)
srsi_rsi_length = input(title='SRSI RSI Length:', defval=14)
srsi_stoch_length = input(title='SRSI Stoch Length:', defval=14)
srsi_smooth = input(title='SRSI Smoothing:', defval=3)
srsi_signal_smooth = input(title='SRSI Signal Smoothing:', defval=3)
//  ||  Strategy Inputs:
trade_size = input(title='Trade Size in BTC:',  defval=1)
buy_trade = input(title='Perform buy trading?',  defval=true)
sel_trade = input(title='Perform sell trading?',  defval=true)
//  ||  MACD(close, 12, 26, 9):     ||---------------------------------------------||
f_macd_trigger(_src, _fast, _slow, _signal_smooth)=>
    _macd = ema(_src, _fast) - ema(_src, _slow)
    _signal = sma(_macd, _signal_smooth)
    _return_trigger = _macd >= _signal ? true : false
//  ||  Stoch RSI(close, 14, 14, 3, 3)  ||-----------------------------------------||
f_srsi_trigger(_src, _rsi_length, _stoch_length, _smooth, _signal_smooth)=>
    _rsi = rsi(_src, _rsi_length)
    _stoch = sma(stoch(_rsi, _rsi, _rsi, _stoch_length), _smooth)
    _signal = sma(_stoch, _signal_smooth)
    _return_trigger = _stoch >= _signal ? true : false
//  ||-----------------------------------------------------------------------------||
//  ||-----------------------------------------------------------------------------||
//  ||  Check Directional Bias from daily timeframe:
daily_trigger = security('NGAS', 'D', f_macd_trigger(macd_src, macd_fast, macd_slow, macd_signal_smooth) and f_srsi_trigger(srsi_src, srsi_rsi_length, srsi_stoch_length, srsi_smooth, srsi_signal_smooth))
h4_trigger = security('NGAS', '240', f_macd_trigger(macd_src, macd_fast, macd_slow, macd_signal_smooth) and f_srsi_trigger(srsi_src, srsi_rsi_length, srsi_stoch_length, srsi_smooth, srsi_signal_smooth))

plot(title='D1T', series=daily_trigger?0:na, style=circles, color=blue, linewidth=4, transp=65)
plot(title='H4T', series=h4_trigger?0:na, style=circles, color=navy, linewidth=2, transp=0)

sel_open = sel_trade and daily_trigger and h4_trigger
buy_open = buy_trade and not daily_trigger and not h4_trigger
sel_close = not buy_trade and not daily_trigger and not h4_trigger
buy_close = not sel_trade and daily_trigger and h4_trigger

strategy.entry('sel', long=false, qty=trade_size, comment='sel', when=sel_open)
strategy.close('sel', when=sel_close)
strategy.entry('buy', long=true, qty=trade_size, comment='buy', when=buy_open)
strategy.close('buy', when=buy_close)