
Chiến lược giao dịch MACD động lực StochRSI là một chiến lược giao dịch định lượng sử dụng ba chỉ số MACD, động lực và StochRSI để phán đoán. Chiến lược này chủ yếu áp dụng cho giao dịch đường nét Bitcoin và Ethereum.
Chiến lược này được đánh giá dựa trên một số chỉ số quan trọng:
Chỉ số MACD: chu kỳ SMA nhanh là 50, chu kỳ SMA chậm là 200, đại diện cho đường 50 ngày và đường 200 ngày thường được sử dụng trong thị trường. Chỉ số này đánh giá hướng xu hướng dài hạn của thị trường.
Chỉ số động lực tự tạo: Về bản chất tương tự như chỉ số Sttoch, được sử dụng để đánh giá hướng động lực ngắn hạn của thị trường.
StochRSI: Đánh giá sức mạnh của thị trường và quá mua quá bán.
Khi tham gia vào nhiều đầu, cần phải đáp ứng 3 điều kiện: MACD> 0 (đã đại diện cho xu hướng tăng trung bình dài hạn), chỉ số tự tạo động lượng> 0 (đã đại diện cho xu hướng tăng ngắn hạn) và giá đóng cửa tăng cao hơn một ngày trước (đã đại diện cho xu hướng tăng hiện tại).
Tín hiệu đa đầu phẳng hơi phức tạp, cần đáp ứng cùng một lúc 4 điều kiện MACD < 0, chỉ số tự tạo < 0, giá đóng cửa giảm so với ngày trước và StochRSI > 20.
Chiến lược tổng hợp các xu hướng trung và dài hạn, động lực ngắn hạn và xu hướng hiện tại, một hệ thống đột phá mạnh mẽ.
Xác định tổng hợp nhiều chỉ số, tránh phát ra tín hiệu sai
Các tham số MACD được chọn để xem xét các đường 50 và đường 200 quan trọng đối với thị trường
Sau khi thay đổi các tham số chỉ số thử nghiệm, hiệu quả của chiến lược không thay đổi nhiều, tránh rủi ro quá phù hợp
Dữ liệu phản hồi đầy đủ, đáng tin cậy cao
Hệ thống phá vỡ dễ bị mạo hiểm, có thể làm tăng số lần giao dịch và chi phí trượt
Sự phức tạp của đánh giá đa chỉ số tổng hợp cao, điều chỉnh và tối ưu hóa tham số khó khăn
Các hoạt động ngắn trong ngày có nhiều rủi ro hơn
Kết hợp với nhiều chỉ số khác như phân tích số lượng giao dịch
Thêm các thuật toán học máy để tối ưu hóa tham số động
Giảm tần suất giao dịch, chuyển sang chu kỳ cao hơn để phán đoán
Chiến lược giao dịch MACD động lực StochRSI của Moon Flag kết hợp nhiều chỉ số để xác định xu hướng và cường độ của thị trường, có hiệu quả đo lường tốt, độ tin cậy cao, phù hợp để các nhà giao dịch định lượng có kinh nghiệm áp dụng và tối ưu hóa trên tiền kỹ thuật số chất lượng cao.
/*backtest
start: 2023-02-16 00:00:00
end: 2024-02-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// // © MoonFlag
//@version=5
strategy("MoonFlag 1D MACD Momentum StochRSI Strategy", max_bars_back=500, overlay=false, initial_capital=5000, default_qty_type=strategy.percent_of_equity, default_qty_value=80, pyramiding=0, calc_on_order_fills=true)
d(gaps_1, data)=>
float out = 0.
out :=(ta.wma(ta.wma(ta.wma(data, math.round(((1 * gaps_1) - math.round((1 * gaps_1) / 3)) / 2)), math.round((1 * gaps_1) / 3)) , int(((1 * gaps_1) - math.round((1 * gaps_1) / 3)) / 2)))
out
MoonFlagAverage(gaps_1,data)=>
float out = 0.
out:=d(gaps_1,d(gaps_1, d(gaps_1, data)))
out
fastLength = input.int(50, "MACD SMA Fast Length")
slowlength = input.int(200, "MACD SMA Slow Length")
MACDLength = 9//input.int(9, "MACD Length")
MACD = ta.ema(close, fastLength) - ta.ema(close, slowlength)
aMACD = ta.sma(MACD, MACDLength)
MACDdelta = MACD - aMACD
//plot (MACD, "MACD1", color.red)
//plot (aMACD, "aMACD1", color.green)
//plot (delta, "MACD delta", color.white)
fastLength2 = input.int(12, "MoonFlag Momentum Length")
slowlength2 = 2*fastLength2//input.int(50, "MoonFlag Momentum Slow Length")
MACDLength2 = 20//input.int(20, "Momentum Delta")
MoonFlag_MACD2 = MoonFlagAverage(fastLength2, close) - MoonFlagAverage(slowlength2,close)
MoonFlag_aMACD2 = MoonFlagAverage(MACDLength2, MoonFlag_MACD2)
MoonFlag_delta = MoonFlag_MACD2 - MoonFlag_aMACD2
MoonFlag_delta_line=0
if MoonFlag_delta < 0
MoonFlag_delta_line:=-100
else
MoonFlag_delta_line:=100
//plot (MoonFlag_MACD2, "MoonFlag Momentum Fast Length", color.red)
//plot (MoonFlag_aMACD2, "MoonFlag Momentum Slow Length", color.green)
//plot (MoonFlag_delta2, "MoonFlag Delta", color.white)
uptrend = (close + high)/(close[1] + high[1])
downtrend = (close + low)/(close[1] + low[1])
lineColor = color.green
if uptrend > 1
lineColor := color.green
if downtrend < 1
lineColor := color.red
smoothK = 2//input.int(2, minval=1, title="K smoothing Stoch RSI")
smoothD = 3//input.int(3, minval=1, title= "D smoothing for Stoch RSI")
lengthRSI = 7//input.int(7, minval=1, title="RSI Length")
lengthStoch = 8//input.int(8, minval=1, title="Stochastic Length")
src = close//input(close, title="RSI Source")
rsi1 = ta.rsi(src, lengthRSI)
k = ta.sma(ta.stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
StochRSI = ta.sma(k, smoothD)
MACDdirection_line = 0
MACDdirection_line := MACDdirection_line[1]
if (MACDdelta > 0)
MACDdirection_line := 50
if (MACDdelta < 0)
MACDdirection_line := -50
useStochRSI = input.bool(true,"Include Condition (StochRSI > 20) with Exit Long/Enter Short")
StochRSI_val = 20//input.int(20,"StochRSI greater than to exit short")
h1 = hline(StochRSI_val)
StochRSIGreaterThanSetValue = true
if useStochRSI
if (StochRSI > StochRSI_val)
StochRSIGreaterThanSetValue := true
else
StochRSIGreaterThanSetValue := false
stoch20 = lineColor
if StochRSI < StochRSI_val
stoch20 := color.white
yearin = input.int(2019, title="Start backtesting from year:")
includeShorts = false//input.bool(false, "Include Shorts")
plot(MoonFlag_delta_line,"MoonFlag Momentum Direction", color.white)
plot(MACDdirection_line,"MACD Direction", color = color.orange)
plot(StochRSI, "StochRSI", color=lineColor)
if (year>=yearin)
if (MACDdelta > 0) and (uptrend > 1) and MoonFlag_delta_line > 0
strategy.entry("buy2", strategy.long, comment="buy")
if (MACDdelta < 0) and (downtrend < 1) and MoonFlag_delta_line < 0 and StochRSIGreaterThanSetValue
if includeShorts
strategy.entry("sell", strategy.short, comment="sell")
else
strategy.close("buy2", comment = "sell")