Trendycious

Tác giả:ChaoZhang, Ngày: 2022-05-17 13:44:03
Tags:Tăng

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

img


/*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)

Có liên quan

Thêm nữa