PHP Code:
//@version=5
//
indicator(title='.', overlay=true, format=format.inherit, max_bars_back=100, max_lines_count=100)
//Swing High/Low Settings
length = input.int(1, minval=1, maxval=499, group='Swing')
ref = input.int(10, 'Occurence', minval=0, group='Swing')
anchor_mode = input.string('Swing High', 'Anchor Point', options=['Swing High', 'Swing Low'], group='Swing')
//Spiral Settings
turns = input.int(12, 'Spiral Turns', minval=1, group='Spiral')
fliph = input.bool(false, 'Flip Horizontally', group='Spiral')
flipv = input.bool(true, 'Flip Vertically', group='Spiral')
//Style Settings
solid = input.bool(false, 'Use Solid Color', inline='inlinesolid', group='Style')
solid_col = input.color(#FFFFFF, '100', inline='inlinesolid', group='Style')
gradient_min = input.color(#fd0202, 'Gradient Colors', inline='inlinegradient', group='Style')
gradient_max = input.color(#51fa02, '', inline='inlinegradient', group='Style')
//------------------------------------------------------------------------------
n = bar_index
var pi = math.pi
var anchor = 0
var color col = na
var lines = array.new_line(0)
yval = array.new_float(0)
xval = array.new_int(0)
prices = array.new_float(0)
//Flipping Constants
flip_h = fliph ? -1 : 1
flip_v = flipv ? -1 : 1
//Get Swing High/Low
ph = close
pl = close
ph_val = ta.valuewhen(ph, high[length], ref)
pl_val = ta.valuewhen(pl, low[length], ref)
//Get anchor corrdinate
if anchor_mode == 'Swing High'
anchor := ta.valuewhen(ph, n - length, ref)
anchor
else
anchor := ta.valuewhen(pl, n - length, ref)
anchor
len = n - anchor
//Append lines
if barstate.isfirst
for i = 0 to 99 by 1
array.push(lines, line.new(na, na, na, na))
//------------------------------------------------------------------------------
y1 = 0.
y2 = 0.
max = 0.
min = 0.
if barstate.islast
//Append spiral coordinates to arays
for i = 0 to len - 1 by 1
t = i / (len - 1) * turns * pi
x = t * math.cos(t) * flip_h / pi / turns * len + anchor
y = t * math.sin(t) * flip_v / pi
array.push(yval, y)
array.push(xval, int(x))
for i = 0 to array.max(xval) - array.min(xval) - 1 by 1
array.push(prices, close[i])
//Rescale coordinates and set line corrdinates
for i = 1 to len - 1 by 1
yval_max = array.max(yval)
yval_min = array.min(yval)
yval_range = yval_max - yval_min
range_1 = array.max(prices) - array.min(prices)
x1 = array.get(xval, i - 1)
x2 = array.get(xval, i)
if anchor_mode == 'Swing High'
y1 := ph_val + array.get(yval, i - 1) / yval_range * range_1
y2 := ph_val + array.get(yval, i) / yval_range * range_1
min := ph_val + yval_min / yval_range * range_1
max := ph_val + yval_max / yval_range * range_1
max
else
y1 := pl_val + array.get(yval, i - 1) / yval_range * range_1
y2 := pl_val + array.get(yval, i) / yval_range * range_1
min := pl_val + yval_min / yval_range * range_1
max := pl_val + yval_max / yval_range * range_1
max
//Line coloring
if solid
col := solid_col
col
else
col := color.from_gradient(y2, min, max, gradient_min, gradient_max)
col
l = array.get(lines, i - 1)
line.set_xy1(l, x1, y1)
line.set_xy2(l, x2, y2)
line.set_color(l, col)
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © erdas0
//@version=5
users = input(true, title='Use Current Chart Resolution?')
tf = input.timeframe(title='Use Different Timeframe?', defval='')
res = users ? timeframe.period : tf
sym = input.symbol(defval = '',title = "Symbol")
md = input.string(title = "Mode", defval = "Normal", options=["Heikin-Ashi", "Linear", "Normal"],group="Mode", inline="md")
hulllen= input.int(200, "Hull Length",minval=1, group="Mode", inline="md")
usem = input(true, title='Use Cande Callculate Method?',group="Method")
symo1 = request.security(sym, res, open)
symh1 = request.security(sym, res, high)
syml1 = request.security(sym, res, low)
symc1 = request.security(sym, res, close)
//Method
ema(source, length, type) =>
switch type
"SMA" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
typeMA = input.string(title = "Method", defval = "EMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"],group="Method",inline="mt")
len32 = input.int(5, minval=1,group="Method",inline="mt")
symo = usem ? ema(symo1,len32,typeMA) : symo1
symh = usem ? ema(symh1,len32,typeMA) : symh1
syml = usem ?ema(syml1,len32,typeMA) : syml1
symc = usem ? ema(symc1,len32,typeMA) : symc1
o = md=="Heikin-Ashi" ? (symo[1]+symc[1])/2 : md=="Linear" ? ta.linreg(symo,len32+1, 0) : symo
h = md=="Heikin-Ashi" ? math.max(symh,symo,symc) : md=="Linear" ? ta.linreg(symh,len32+1, 0) : symh
l = md=="Heikin-Ashi" ? math.min(syml,symo,symc) : md=="Linear" ? ta.linreg(syml,len32+1, 0) : syml
c = md=="Heikin-Ashi" ? (symo+symc+symh+syml)/4 : md=="Linear" ? ta.linreg(symc,len32+1, 0) : symc
op = request.security(sym, res, o)
hp = request.security(sym, res, h)
lp = request.security(sym, res, l)
cp = request.security(sym, res, c)
col32 = 0.0
col32 := cp > op and cp > cp[1] ? 1 : cp < op and cp < cp[1] ? -1 : col32[1]
clr = col32 == 1 ? color.rgb(60, 253, 2) : col32 == -1 ? color.rgb(250, 3, 3) : color.rgb(252, 227, 4)
//Hull
hullma = ta.wma(2*ta.wma(c, hulllen/2)-ta.wma(c, hulllen), math.floor(math.sqrt(hulllen)))
cl=hullma>c? color.red : color.lime
prch= (c-hullma)*100/c
plotcandle(op, hp, lp, cp, color=clr, wickcolor=clr, bordercolor=clr, title='heikinn')
Yer İmleri