
Chiến lược này dựa trên chỉ số năng lượng thay đổi (OBV) và MACD để đánh giá tín hiệu giao dịch, thuộc chiến lược tổng hợp giá trị. Nó kết hợp chỉ số giá cổ phiếu MACD và OBV thay đổi làm tín hiệu tổng hợp giá trị, nhằm tìm kiếm cơ hội giao dịch mạnh mẽ khi giá cổ phiếu phá vỡ.
Tính toán đường trung bình di chuyển đơn giản (SMA) để xác định xu hướng thị trường lớn.
Tính toán thay đổi OBV. Nó thay đổi cách tính toán OBV dựa trên mối quan hệ giữa giá đóng cửa và giá đóng cửa ngày trước, làm cho OBV nhạy cảm hơn.
Tính toán MACD trên OBV thay đổi. MACD bao gồm các đường nhanh, đường chậm và cột MACD, có thể tìm thấy xu hướng thay đổi số lượng.
Khi MACD Gold Forks và lên, đánh giá là một tín hiệu mua.
Khi MACD ngã và hướng xuống, đánh giá là một tín hiệu bán.
Các nhà đầu tư cũng cần phải xem xét các yếu tố khác để tránh các giao dịch không cần thiết.
Biến đổi OBV nhạy cảm hơn, có thể bắt kịp sự thay đổi năng lượng trước.
MACD có thể đánh giá rõ ràng các xu hướng và điểm quan trọng.
Đánh giá tổng hợp tín hiệu, tăng độ chính xác tín hiệu.
SMA phân tích xu hướng thị trường lớn, giúp lọc các tín hiệu sai.
Chiến lược của nó rất rõ ràng và dễ hiểu, có rất nhiều cơ hội để tối ưu hóa các tham số.
Thay đổi OBV dễ gây ra tín hiệu sai và cần được lọc theo các chỉ số khác.
Thiết lập tham số MACD không đúng sẽ làm mất cơ hội giao dịch hoặc tạo ra tín hiệu sai.
Cần chú ý đến thông tin về cổ phiếu để tránh thiệt hại do các vấn đề cá nhân.
Cần chú ý đến môi trường thị trường, không áp dụng cho các tình huống đặc biệt.
Dữ liệu phản hồi có nguy cơ phù hợp, đĩa cứng có thể giảm hiệu quả.
Kiểm tra các kết hợp khác nhau của chu kỳ SMA để tối ưu hóa xu hướng thị trường lớn.
Kiểm tra các thiết lập tham số MACD, tối ưu hóa số lượng có thể thay đổi.
Thêm các chỉ số khác để lọc các tín hiệu sai lệch như KDJ, RSI, v.v.
Thêm chiến lược dừng lỗ để kiểm soát tổn thất đơn lẻ.
Tối ưu hóa chiến lược quản lý tài chính, nâng cao hiệu quả lợi nhuận tổng thể.
Kiểm tra sự khác biệt của các tham số chiến lược cổ phiếu khác nhau.
Chiến lược này kết hợp và thay đổi các chỉ số OBV và MACD, thực hiện kết hợp giá trị định lượng, có thể bắt kịp sự thay đổi trong tình trạng năng lượng lượng của cổ phiếu, do đó tạo ra tín hiệu giao dịch. Chiến lược này có thể cung cấp thời gian mua và bán đáng tin cậy hơn so với việc sử dụng OBV hoặc MACD một mình.
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © stocktechbot
//@version=5
strategy("Altered OBV On MACD", overlay=true, margin_long=100, margin_short=100)
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © stocktechbot
//@version=5
//SMA Tredline
out = ta.sma(close, 200)
outf = ta.sma(close, 50)
outn = ta.sma(close, 90)
outt = ta.sma(close, 21)
outthree = ta.sma(close, 9)
//sma plot
offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)
plot(out, color=color.blue, title="MA200", offset=offset)
plot(outf, color=color.maroon, title="MA50", offset=offset)
plot(outn, color=color.orange, title="MA90", offset=offset)
plot(outt, color=color.olive, title="MA21", offset=offset)
plot(outthree, color=color.fuchsia, title="MA9", offset=offset)
fast_length = input(title="Fast Length", defval=12)
slow_length = input(title="Slow Length", defval=26)
chng = 0
obv = ta.cum(math.sign(ta.change(close)) * volume)
if close < close[1] and (open < close)
chng := 1
else if close > close[1]
chng := 1
else
chng := -1
obvalt = ta.cum(math.sign(chng) * volume)
//src = input(title="Source", defval=close)
src = obvalt
signal_length = input.int(title="Signal Smoothing", minval = 1, maxval = 50, defval = 9)
sma_source = input.string(title="Oscillator MA Type", defval="EMA", options=["SMA", "EMA"])
sma_signal = input.string(title="Signal Line MA Type", defval="EMA", options=["SMA", "EMA"])
// Calculating
fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal
//hline(0, "Zero Line", color=color.new(#787B86, 50))
//plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below)))
//plot(macd, title="MACD", color=col_macd)
//plot(signal, title="Signal", color=col_signal)
[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9)
//BUY Signal
mafentry =ta.sma(close, 50) > ta.sma(close, 90)
//matentry = ta.sma(close, 21) > ta.sma(close, 50)
matwohun = close > ta.sma(close, 200)
twohunraise = ta.rising(out, 2)
twentyrise = ta.rising(outt, 2)
macdrise = ta.rising(macd,2)
macdlong = ta.crossover(macd, signal)
longCondition=false
if macdlong and macdrise
longCondition := true
if (longCondition)
strategy.entry("My Long Entry Id", strategy.long)
//Sell Signal
mafexit =ta.sma(close, 50) < ta.sma(close, 90)
matexit = ta.sma(close, 21) < ta.sma(close, 50)
matwohund = close < ta.sma(close, 200)
twohunfall = ta.falling(out, 3)
twentyfall = ta.falling(outt, 2)
shortmafall = ta.falling(outthree, 1)
macdfall = ta.falling(macd,1)
macdsell = macd < signal
shortCondition = false
if macdfall and macdsell and (macdLine < signalLine) and ta.falling(low,2)
shortCondition := true
if (shortCondition)
strategy.entry("My Short Entry Id", strategy.short)