Tác giả:ChaoZhang, Ngày: 2024-01-25 16:01:04
Tags:

img

Tổng quan

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

123 Hệ thống đảo ngược

Mua khi giá đóng cửa cao hơn giá đóng cửa ngày trước trong 2 ngày liên tiếp, và đường K chậm 9 ngày dưới 50; Bán khi giá đóng cửa thấp hơn giá đóng cửa ngày trước trong 2 ngày liên tiếp, và đường K nhanh 9 ngày trên 50.

Chỉ số dải hỗn loạn fractal

Phần này chủ yếu phục vụ như một bộ lọc xu hướng, kết hợp với tín hiệu đảo ngược 123.

Ưu điểm của Chiến lược

Chiến lược theo dõi xu hướng băng tần dao động đảo chiều có thể nắm bắt cả cơ hội đảo ngược và theo dõi xu hướng, làm cho nó rất toàn diện. Nó có thể nhận được tín hiệu giao dịch bất kể thị trường đang dao động hay xu hướng.

So với chỉ số duy nhất, chiến lược này có thể giảm đáng kể các tín hiệu sai và cải thiện tỷ lệ chiến thắng giao dịch thực tế và tỷ lệ lợi nhuận thông qua việc lọc các kết hợp chỉ số kép.

Các thông số của Chiến lược theo xu hướng băng tần dao động đảo ngược kép rất dễ hiểu. Người dùng có thể điều chỉnh chúng theo nhu cầu và điều kiện thị trường của riêng họ, làm cho nó rất linh hoạt. Nó có thể thích nghi với cả hai thị trường dao động và xu hướng thông qua điều chỉnh thông số.

Rủi ro và tối ưu hóa

  1. Không thể thích nghi với các xu hướng lớn

  1. Cần hỗ trợ vốn ký quỹ

Chiến lược Dual Reversal Oscillating Band Trend Following thuộc các loại giao dịch thường xuyên, đòi hỏi đủ vốn ký quỹ để hỗ trợ các yêu cầu ký quỹ để mở các vị trí. Đối với người dùng không đủ vốn, có thể cần phải giảm kích thước vị trí một cách thích hợp.

  1. Có thể kết hợp nhiều chỉ số để lọc

Kết luận


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 21/09/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
//  Stock market moves in a highly chaotic way, but at a larger scale, the movements 
// follow a certain pattern that can be applied to shorter or longer periods of time 
// and we can use Fractal Chaos Bands Indicator to identify those patterns. Basically, 
// the Fractal Chaos Bands Indicator helps us to identify whether the stock market is 
// trending or not. When a market is trending, the bands will have a slope and if market 
// is not trending the bands will flatten out. As the slope of the bands decreases, it 
// signifies that the market is choppy, insecure and variable. As the graph becomes more 
// and more abrupt, be it going up or down, the significance is that the market becomes 
// trendy, or stable. Fractal Chaos Bands Indicator is used similarly to other bands-indicator 
// (Bollinger bands for instance), offering trading opportunities when price moves above or 
// under the fractal lines.
//
// The FCB indicator looks back in time depending on the number of time periods trader selected 
// to plot the indicator. The upper fractal line is made by plotting stock price highs and the 
// lower fractal line is made by plotting stock price lows. Essentially, the Fractal Chaos Bands 
// show an overall panorama of the price movement, as they filter out the insignificant fluctuations 
// of the stock price.
//
// 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

fractalUp(pattern) =>
    p = high[pattern+1]
    okl = 1
    okr = 1
    res = 0.0
	for i = pattern to 1
		okl := iff(high[i] < high[i+1] and okl == 1 , 1, 0)
	for i = pattern+2 to pattern*2+1
		okr := iff(high[i] < high[i-1] and okr == 1, 1, 0)
	res := iff(okl == 1 and okr == 1, p, res[1])
    res

fractalDn(pattern) =>
    p = low[pattern+1]
    okl = 1
    okr = 1
    res =0.0
	for i = pattern to 1
		okl := iff(low[i] > low[i+1] and okl == 1 , 1, 0)
	for i = pattern+2 to pattern*2+1
		okr := iff(low[i] > low[i-1] and okr == 1, 1, 0)
	res := iff(okl == 1 and okr == 1, p, res[1])
    res

FCB(Pattern) =>
    pos = 0.0
    xUpper = fractalUp(Pattern)
    xLower = fractalDn(Pattern)    
    pos := iff(close > xUpper, 1,
             iff(close < xLower, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Fractal Chaos Bands", shorttitle="Combo", overlay = true)
Length = input(15, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Pattern = input(1, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posFCB = FCB(Pattern)
pos = iff(posReversal123 == 1 and posFCB == 1 , 1,
	   iff(posReversal123 == -1 and posFCB == -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 )

Thêm nữa