
Chiến lược này là sự kết hợp của chiến lược 123 hình dạng và chiến lược điểm trung tâm để có được tỷ lệ thắng cao hơn. Trong đó, chiến lược 123 hình dạng đánh giá điểm biến đổi xu hướng, trong khi chiến lược điểm trung tâm xác định mức hỗ trợ và kháng cự quan trọng. Kết hợp với nhau, cả hai đều có thể nắm bắt xu hướng và xác định giá vào và ra cụ thể.
Chiến lược này dựa trên các chỉ số ngẫu nhiên để xác định điểm đảo ngược xu hướng. Các nguyên tắc cụ thể là: Khi giá đóng cửa 2 ngày liên tiếp thấp hơn giá đóng cửa trước đó và chỉ số STO chậm 9 ngày thấp hơn 50, làm nhiều; khi giá đóng cửa 2 ngày liên tiếp cao hơn giá đóng cửa trước đó và chỉ số STO nhanh 9 ngày cao hơn 50, làm trống.
Chiến lược này tính 3 đường hỗ trợ và 3 đường kháng cự dựa trên giá cao nhất, giá thấp nhất và giá đóng cửa của ngày trước. Các phương pháp tính toán cụ thể là:
Điểm trung tâm = ((tối cao + thấp + đóng cửa) / 3
Hỗ trợ 1 = 2*Trung tâm - cao nhất
Kháng lực 1 = 2Điểm trung tâm - thấp nhất
Hỗ trợ 2 = điểm trung tâm - ((kháng lực 1- hỗ trợ 1)
Kháng lực 2 = trung tâm + ((kháng lực 1- hỗ trợ 1)
Hỗ trợ 3 là tối thiểu -2(Tối cao - điểm trung tâm)
Kháng lực 3 = tối đa + 2*(Trung tâm - thấp nhất)
Và vào và ra trận đấu dựa trên sự hỗ trợ và kháng cự.
Chiến lược này khéo léo kết hợp định hướng với các mức giá quan trọng, có thể xác định điểm đảo ngược xu hướng và có thể sử dụng tín hiệu lọc kháng cự hỗ trợ. Bằng cách tối ưu hóa các tham số và kết hợp chiến lược, hiệu quả có thể được nâng cao hơn nữa. Chiến lược này đáng để các nhà giao dịch định lượng nghiên cứu và áp dụng hơn nữa.
/*backtest
start: 2023-12-16 00:00:00
end: 2024-01-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 21/04/2021
// 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
// Pivot points simply took the high, low, and closing price from the previous period and
// divided by 3 to find the pivot. From this pivot, traders would then base their
// calculations for three support, and three resistance levels. The calculation for the most
// basic flavor of pivot points, known as ‘floor-trader pivots’, along with their support and
// resistance levels.
//
// 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
PP2(res,SellFrom,BuyFrom) =>
pos = 0.0
xHigh = security(syminfo.tickerid,res, high)
xLow = security(syminfo.tickerid,res, low)
xClose = security(syminfo.tickerid,res, close)
vPP = (xHigh+xLow+xClose) / 3
vS1 = 2*vPP - xHigh
vR1 = 2*vPP-xLow
vS2 = vPP - (vR1 - vS1)
vR2 = vPP + (vR1 - vS1)
vS3 = xLow - 2 * (xHigh - vPP)
vR3 = xHigh + 2 * (vPP - xLow)
S = iff(BuyFrom == "S1", vS1,
iff(BuyFrom == "S2", vS2,
iff(BuyFrom == "S3", vS3,0)))
B = iff(SellFrom == "R1", vR1,
iff(SellFrom == "R2", vR2,
iff(SellFrom == "R3", vR3,0)))
pos := iff(close > B, 1,
iff(close < S, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Pivot Point V2)", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Pivot Point V2 ----")
res = input(title="Resolution", type=input.resolution, defval="D")
SellFrom = input(title="Sell from ", defval="R1", options=["R1", "R2", "R3"])
BuyFrom = input(title="Buy from ", defval="S1", options=["S1", "S2", "S3"])
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posPP2 = PP2(res,SellFrom,BuyFrom)
pos = iff(posReversal123 == 1 and posPP2 == 1 , 1,
iff(posReversal123 == -1 and posPP2 == -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 )