
Chiến lược này kết hợp hai chiến lược 123 hình dạng đảo ngược và dễ di chuyển, nhằm mục đích giao dịch bằng cách nắm bắt các điểm biến đổi của giá. Chiến lược 123 hình dạng đảo ngược tạo ra tín hiệu khi giá cổ phiếu hình thành một mô hình cụ thể trong ba ngày liên tiếp. Chiến lược dễ di chuyển (EOM) sử dụng thay đổi giá và khối lượng giao dịch để đánh giá động lực thị trường.
Chiến lược này bao gồm hai phần:
Kết hợp hai tín hiệu, khi Easy of Movement và hình dạng 123 đồng thời làm nhiều tín hiệu, mở nhiều vị trí; khi Easy of Movement và hình dạng 123 đồng thời làm trống tín hiệu, mở vị trí trống.
Chiến lược này có những ưu điểm sau:
Kết hợp hình thức kỹ thuật giá cả và động lực thị trường để tăng độ chính xác tín hiệu
123 hình dạng đảo ngược để nắm bắt các điểm biến, dễ dàng di chuyển để đánh giá động lượng xu hướng, hai thứ này bổ sung cho nhau
Chỉ số Stoch tránh mở lỗ liên tục trong quá trình khôi phục
Logic giao dịch đơn giản, rõ ràng và dễ thực hiện
Các tham số có thể tùy chỉnh để thích ứng với các môi trường thị trường khác nhau
Chiến lược này cũng có một số rủi ro:
Quá phụ thuộc vào thiết lập tham số, tham số không đúng có thể dẫn đến giao dịch thường xuyên hoặc bị bỏ phiếu
Nhiều điều kiện lọc được sử dụng cùng nhau, tần số tạo tín hiệu có thể quá thấp
Các chỉ số di động dễ dàng nhạy cảm với biến động thị trường, có thể gây ra tín hiệu sai
Cần kiểm soát quy mô vị trí
Chỉ áp dụng cho cổ phiếu đang có xu hướng, không phù hợp với việc thu hồi thị trường
Chiến lược này có thể được tối ưu hóa bằng cách:
Tối ưu hóa tham số, điều chỉnh mức độ nghiêm ngặt của điều kiện lọc, cân bằng tần số giao dịch và chất lượng tín hiệu
Tham gia chiến lược dừng lỗ, kiểm soát chặt chẽ lỗ đơn
Trình lọc xu hướng để tránh giao dịch ngược
Thêm mô-đun quản lý tiền để điều chỉnh vị trí theo biến động của tỷ lệ biến động
Sử dụng phương pháp học máy để tối ưu hóa các tham số để phù hợp với thị trường
Chiến lược này tích hợp các chỉ số kỹ thuật giá cả và các chỉ số động lực thị trường, xác nhận chất lượng xu hướng đồng thời nắm bắt các điểm biến, có giá trị thực tế cao. Tuy nhiên, cũng cần lưu ý đến nguy cơ kiểm soát tần suất giao dịch, tổn thất đơn lẻ và hoạt động ngược.
/*backtest
start: 2023-10-15 00:00:00
end: 2023-11-14 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 14/04/2020
// This is combo strategies for get a cumulative signal.
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
// The strategy sells at market, if close price is lower than the previous close price
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// This indicator gauges the magnitude of price and volume movement.
// The indicator returns both positive and negative values where a
// positive value means the market has moved up from yesterday's value
// and a negative value means the market has moved down. A large positive
// or large negative value indicates a large move in price and/or lighter
// volume. A small positive or small negative value indicates a small move
// in price and/or heavier volume.
// A positive or negative numeric value. A positive value means the market
// has moved up from yesterday's value, whereas, a negative value means the
// market has moved down.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
vFast = sma(stoch(close, high, low, Length), KSmoothing)
vSlow = sma(vFast, DLength)
pos = 0.0
pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0)))
pos
EOM(BuyZone, SellZone) =>
pos = 0
xHigh = high
xLow = low
xVolume = volume
xHalfRange = (xHigh - xLow) * 0.5
xMidpointMove = mom(xHalfRange, 1)
xBoxRatio = iff((xHigh - xLow) != 0, xVolume / (xHigh - xLow), 0)
nRes = iff(xBoxRatio != 0, 1000000 * ((xMidpointMove - xMidpointMove[1]) / xBoxRatio), 0)
pos := iff(nRes > BuyZone, 1,
iff(nRes < SellZone, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Ease of Movement (EOM)", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
BuyZone = input(4000, minval=1)
SellZone = input(-4000)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posEOM = EOM(BuyZone, SellZone)
pos = iff(posReversal123 == 1 and posEOM == 1 , 1,
iff(posReversal123 == -1 and posEOM == -1, -1, 0))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1 , 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
if (possig == 0)
strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )