Chỉ số này sử dụng trung tâm lăn của các điểm cao nhất và thấp nhất trong một khoảng thời gian để xác định xem tài sản hiện đang trong xu hướng tăng hay giảm.
Nó giúp hình dung xu hướng hiện tại.
Các thông số: 1/ dài: thời gian mà trong đó sẽ được xem xét cao nhất và thấp nhất 2/ nguồn giá: nguồn sẽ được sử dụng để tính toán 3/ chế độ hung hăng: nếu đúng, hướng xu hướng sẽ phản ứng nhanh hơn với sự thay đổi giá và sẽ di chuyển nhanh hơn từ xu hướng tăng lên xu hướng giảm và ngược lại.
Sử dụng trong thời gian dài hơn để tránh tiếng ồn (4h, 12h, 1d v.v.)
DISCLAIMER:
Đây không phải là lời khuyên để giao dịch. Tác giả kịch bản này không thể chịu trách nhiệm về bất kỳ tổn thất nào trực tiếp hoặc gián tiếp do việc sử dụng chỉ số này.
backtest
/*backtest start: 2022-05-09 00:00:00 end: 2022-05-15 23:59:00 period: 30m basePeriod: 15m 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/ // © levieux //@version=5 indicator("Trendelicious", overlay=true) length=input(defval=30) price=input(defval=hl2, title="Price Source") aggressiveMode=input(defval=false,title="Aggressive Mode") isUptrend(price,length,aggressiveMode) => uptrend= false PP= (ta.highest(price,length)+ta.lowest(price,length))/2 ppChange= ta.change(PP,1) ppFlat= ppChange==0 priceOverPP=ta.crossover(price,PP) priceUnderPP=ta.crossunder(price,PP) risingPrice= ta.rising(price,5) risingPP= ta.rising(PP,5) fallingPrice= ta.falling(price,5) fallingPP= ta.falling(PP,5) uptrendCondition1= price>PP and (ppChange>0 or (ppChange==0 and aggressiveMode)) and (ppChange[1]>0 or (ppChange[1]==0 and aggressiveMode)) and ppChange[2]>=0 and ppChange[3]>=0 uptrendCondition2= (priceOverPP or risingPrice) and ppFlat and aggressiveMode uptrendCondition3= risingPrice and fallingPP and aggressiveMode downtrendCondition1= price < PP and (ppChange<0 or (ppChange==0 and aggressiveMode)) and (ppChange[1]<0 or (ppChange[1]==0 and aggressiveMode)) and ppChange[2]<=0 and ppChange[3]<=0 downtrendCondition2= (priceUnderPP or fallingPrice) and ppFlat and aggressiveMode downtrendCondition3= fallingPrice and risingPP and aggressiveMode if uptrendCondition1 or uptrendCondition2 or uptrendCondition3 uptrend:= true else if downtrendCondition1 or downtrendCondition2 or downtrendCondition3 uptrend:= false else uptrend:= uptrend[1] [PP,uptrend] [trendline,uptrend]= isUptrend(price,length,aggressiveMode) baseLinePlot = plot((open + close) / 2, display=display.none) upTrendPlot = plot(uptrend ? trendline : na, "Up Trend", color = color.green, style=plot.style_linebr) downTrendPlot = plot(not uptrend ? trendline : na, "Down Trend", color = color.red, style=plot.style_linebr) fill(baseLinePlot, upTrendPlot, color.new(color.green, 90), fillgaps=false) fill(baseLinePlot, downTrendPlot, color.new(color.red, 90), fillgaps=false) if uptrend strategy.entry("Enter Long", strategy.long) else if not uptrend strategy.entry("Enter Short", strategy.short)