gann 图压力支撑

2024-09-07  本文已影响0人  郭欢小哥

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © pbghosh

//@version=4
study(title="Gann Angles With Volatility", shorttitle="Gann", overlay=true, format=format.price, precision=2)

var totLn = 0.0
var totLnSqr = 0.0
var lnAvg = 0.0
var lnSqrAvg = 0.0
var variance = 0.0
var dailyVolatility = 0.0
var price = 0.0
var priceRange = 0.0

o = security(syminfo.tickerid, 'D', open, lookahead=true)
ph = security(syminfo.tickerid, 'D', high[1], lookahead=true)
pl = security(syminfo.tickerid, 'D', low[1], lookahead=true)
pc = security(syminfo.tickerid, 'D', close[1], lookahead=true)

lowerTimeframe = timeframe.period == "1" or timeframe.period == "2" or timeframe.period == "3" or timeframe.period == "5" or timeframe.period == "10" or timeframe.period == "15"

c1 = o > ph or o < pl ? o : security(syminfo.tickerid, 'D', close[1], lookahead=barmerge.lookahead_on)
c2 = security(syminfo.tickerid, 'D', close[2], lookahead=barmerge.lookahead_on)
c3 = security(syminfo.tickerid, 'D', close[3], lookahead=barmerge.lookahead_on)
c4 = security(syminfo.tickerid, 'D', close[4], lookahead=barmerge.lookahead_on)
c5 = security(syminfo.tickerid, 'D', close[5], lookahead=barmerge.lookahead_on)
c6 = security(syminfo.tickerid, 'D', close[6], lookahead=barmerge.lookahead_on)
c7 = security(syminfo.tickerid, 'D', close[7], lookahead=barmerge.lookahead_on)
c8 = security(syminfo.tickerid, 'D', close[8], lookahead=barmerge.lookahead_on)
c9 = security(syminfo.tickerid, 'D', close[9], lookahead=barmerge.lookahead_on)
c10 = security(syminfo.tickerid, 'D', close[10], lookahead=barmerge.lookahead_on)

truncate(number, decimals) =>
    factor = pow(10, decimals)
    int(number * factor) / factor

calculateLN() =>
    tot = 0.0
    tot := log(c1/c2) + log(c2/c3) + log(c3/c4) + log(c4/c5) + log(c5/c6) + log(c6/c7) + log(c7/c8) + log(c8/c9) + log(c9/c10)
    
calculateLNSquare() =>
    tot = 0.0
    tot := pow(log(c1/c2),2) + pow(log(c2/c3),2) + pow(log(c3/c4),2) + pow(log(c4/c5),2) + pow(log(c5/c6),2) + pow(log(c6/c7),2) + pow(log(c7/c8),2) + pow(log(c8/c9),2) + pow(log(c9/c10),2)

calculatePivot() =>
    (ph + pl + pc) / 3

degreeFactor(angle) =>
    if angle == 1
        3.75/180
    else
        if angle == 2
            7.5/180
        else
            if angle == 3
                15.00/180
            else
                if angle == 4
                    18.75/180
                else
                    if angle == 5
                        26.25/180
                    else
                        if angle == 6
                            45.00/180
                        else
                            if angle == 7
                                63.75/180
                            else
                                if angle == 8
                                    71.25/180
                                else
                                    if angle == 9
                                        75.00/180
                                    else
                                        if angle == 10
                                            82.50/180
                                        else
                                            86.25/180


getCycleLevels(cycleNo, prevCycleHigh, prevCycleLow, pRange) =>
    if cycleNo == 1
        buyAbove = pow(sqrt(pRange) + degreeFactor(3), 2) * degreeFactor(3) + prevCycleHigh
        majorResistance = pow(sqrt(pRange) + degreeFactor(6), 2) * degreeFactor(6) + prevCycleHigh
        buyTarget = pow(sqrt(pRange) + degreeFactor(11), 2) * degreeFactor(11) + prevCycleHigh
        sellBelow = prevCycleHigh - pow(sqrt(pRange) - degreeFactor(3), 2)* degreeFactor(3)
        majorSupport = prevCycleHigh - pow(sqrt(pRange) - degreeFactor(6), 2)* degreeFactor(6)
        sellTarget = prevCycleHigh - pow(sqrt(pRange) - degreeFactor(11), 2)* degreeFactor(11)
        [buyAbove, majorResistance, buyTarget, sellBelow, majorSupport, sellTarget]
    else
        majorResistance = pow(sqrt(pRange) + degreeFactor(6), 2) * degreeFactor(6) + prevCycleHigh
        buyTarget = pow(sqrt(pRange) + degreeFactor(11), 2) * degreeFactor(11) + prevCycleHigh
        majorSupport = prevCycleLow - pow(sqrt(pRange) - degreeFactor(6), 2)* degreeFactor(6)
        sellTarget = prevCycleLow - pow(sqrt(pRange) - degreeFactor(11), 2)* degreeFactor(11)
        [majorResistance, buyTarget, majorSupport, sellTarget, 0.0, 0.0]

    

pivot = calculatePivot()

totLn := calculateLN()
totLnSqr := calculateLNSquare()
lnAvg := totLn / 9
lnSqrAvg := totLnSqr / 9
variance := lnSqrAvg - pow(lnAvg, 2)
dailyVolatility := sqrt(variance)
price := c1
priceRange := dailyVolatility * price

//Cycle One
[buyAbove, majorResistane1, buytarget1, sellBelow, majorSupport1, sellTarget1] = getCycleLevels(1, price, 0.0, priceRange)

//Cycle Tw0
[majorResistane2, buytarget2, majorSupport2, sellTarget2, dummy1, dummy2] = getCycleLevels(2, buytarget1, sellTarget1, priceRange)

//Cycle Three
[majorResistane3, buytarget3, majorSupport3, sellTarget3, dummy3, dummy4] = getCycleLevels(3, buytarget2, sellTarget2, priceRange)

//Cycle Four
[majorResistane4, buytarget4, majorSupport4, sellTarget4, dummy5, dummy6] = getCycleLevels(4, buytarget3, sellTarget3, priceRange)

//Cycle Five
[majorResistane5, buytarget5, majorSupport5, sellTarget5, dummy7, dummy8] = getCycleLevels(5, buytarget4, sellTarget4, priceRange)
    
plot(series=lowerTimeframe ? buyAbove : na, title="Buy Above", color = pivot[1] != pivot and lowerTimeframe ? na : color.blue, style = plot.style_linebr, transp=0, linewidth=1)
plot(series=lowerTimeframe ? majorResistane1 : na, title="Major Resistance1", color = pivot[1] != pivot and lowerTimeframe ? na : color.gray, style = plot.style_linebr, transp=0, linewidth=1)
plot(series=lowerTimeframe ? buytarget1 : na, title="TGT1", color = pivot[1] != pivot and lowerTimeframe ? na : color.green, style = plot.style_linebr, transp=0, linewidth=1)
plot(series=lowerTimeframe ? sellBelow : na, title="Sell Below", color = pivot[1] != pivot and lowerTimeframe ? na : color.yellow, style = plot.style_linebr, transp=0, linewidth=1)
plot(series=lowerTimeframe ? majorSupport1 : na, title="Major Support1", color = pivot[1] != pivot and lowerTimeframe ? na : color.gray, style = plot.style_linebr, transp=0, linewidth=1)
plot(series=lowerTimeframe ? sellTarget1 : na, title="TGT1", color = pivot[1] != pivot and lowerTimeframe ? na : color.red, style = plot.style_linebr, transp=0, linewidth=1)
plot(series=lowerTimeframe ? majorResistane2 : na, title="Major Resistance2", color = pivot[1] != pivot and lowerTimeframe ? na : color.gray, style = plot.style_linebr, transp=0, linewidth=1)
plot(series=lowerTimeframe ? buytarget2 : na, title="TGT2", color = pivot[1] != pivot and lowerTimeframe ? na : color.green, style = plot.style_linebr, transp=0, linewidth=1)
plot(series=lowerTimeframe ? majorSupport2 : na, title="Major Support2", color = pivot[1] != pivot and lowerTimeframe ? na : color.gray, style = plot.style_linebr, transp=0, linewidth=1)
plot(series=lowerTimeframe ? sellTarget2 : na, title="TGT2", color = pivot[1] != pivot and lowerTimeframe ? na : color.red, style = plot.style_linebr, transp=0, linewidth=1)
plot(series=lowerTimeframe ? majorResistane3 : na, title="Major Resistance3", color = pivot[1] != pivot and lowerTimeframe ? na : color.gray, style = plot.style_linebr, transp=0, linewidth=1)
plot(series=lowerTimeframe ? buytarget3 : na, title="TGT3", color = pivot[1] != pivot and lowerTimeframe ? na : color.green, style = plot.style_linebr, transp=0, linewidth=1)
plot(series=lowerTimeframe ? majorSupport3 : na, title="Major Support3", color = pivot[1] != pivot and lowerTimeframe ? na : color.gray, style = plot.style_linebr, transp=0, linewidth=1)
plot(series=lowerTimeframe ? sellTarget3 : na, title="TGT3", color = pivot[1] != pivot and lowerTimeframe ? na : color.red, style = plot.style_linebr, transp=0, linewidth=1)
plot(series=lowerTimeframe ? majorResistane4 : na, title="Major Resistance4", color = pivot[1] != pivot and lowerTimeframe ? na : color.gray, style = plot.style_linebr, transp=0, linewidth=1)
plot(series=lowerTimeframe ? buytarget4 : na, title="TGT4", color = pivot[1] != pivot and lowerTimeframe ? na : color.green, style = plot.style_linebr, transp=0, linewidth=1)
plot(series=lowerTimeframe ? majorSupport4 : na, title="Major Support4", color = pivot[1] != pivot and lowerTimeframe ? na : color.gray, style = plot.style_linebr, transp=0, linewidth=1)
plot(series=lowerTimeframe ? sellTarget4 : na, title="TGT4", color = pivot[1] != pivot and lowerTimeframe ? na : color.red, style = plot.style_linebr, transp=0, linewidth=1)
plot(series=lowerTimeframe ? majorResistane5 : na, title="Major Resistance5", color = pivot[1] != pivot and lowerTimeframe ? na : color.gray, style = plot.style_linebr, transp=0, linewidth=1)
plot(series=lowerTimeframe ? buytarget5 : na, title="TGT5", color = pivot[1] != pivot and lowerTimeframe ? na : color.green, style = plot.style_linebr, transp=0, linewidth=1)
plot(series=lowerTimeframe ? majorSupport5 : na, title="Major Support5", color = pivot[1] != pivot and lowerTimeframe ? na : color.gray, style = plot.style_linebr, transp=0, linewidth=1)
plot(series=lowerTimeframe ? sellTarget5 : na, title="TGT5", color = pivot[1] != pivot and lowerTimeframe ? na : color.red, style = plot.style_linebr, transp=0, linewidth=1)





image.png
上一篇下一篇

猜你喜欢

热点阅读