
Originally Posted by
Askalderon
merhaba arkadaşlar
ideal kullanmaya yeni başladım. hala çözemediğim bir kaç konu var. öncelikle yıllardır kullandığım 3 gösterge idealde yok. formül dili kullanmayı da bilmiyorum. tradingview formüllerini çevirebilecek olursanız çok memnun olurum.
1) MACD-AS: MACD nin bir türevi. Asprayin geliştirdiği MACD olarak bilinir. çok kısaca şöyle formüle edebilirsiniz.
MACD-AS=MACD-Sinyal çizgisi(MACD'nin 9 periyotluk üslü hateketli ortalaması)
Yeni Sinyal Çizgisi="MACD-AS"'ın 9 periyotluk üslü hareketli ortalaması
Not: Yeni oluşturulan göstergede bu üç parametreyi gösterge özelliklerine girip değiştirebilmeliyim. tradingview formülü şu şekilde:
study("MACD-AS")
fastperiod = input(12,title="fastperiod",type=integer,minval=1, maxval=500)
slowperiod = input(26,title="slowperiod",type=integer,minval=1, maxval=500)
signalperiod = input(9,title="signalperiod",type=integer,minval=1 ,maxval=500)
fastMA = ema(close, fastperiod)
slowMA = ema(close, slowperiod)
macd = fastMA - slowMA
signal = ema(macd, signalperiod)
macdAS = macd - signal
signalAS = ema(macdAS, signalperiod)
plot(macdAS, color=blue, linewidth=2)
plot(signalAS, color=red, linewidth=2)
plot(0, color=black)
2) DIOSC: +DI ile -DI arasındaki farkı gösteren histogram. Tradingview deki formülü şu şekilde:
study(title="DIOSC")
len = input(14, minval=1, title="DI Length")
showEma = input(true, title='Show Ema')
EmaLn = input(9, minval=1, title="EMA Length")
DI = change(high)- (-change(low))
trur = rma(tr, len)
diosc = fixnan(100 * rma(DI, len) / trur)
plot(diosc, color = diosc <= 0 ? red : green, style=histogram)
emaDI = ema(diosc, EmaLn)
plot(showEma ? emaDI : na, color=black, title="EMA")
3) ADX, ADXR, +DI ve -DI indikatörlerinin hepsini aynı gösterge üzerinde görmek istiyorum. Bunun benzeri yine tradingview de var. APEX - ADX/ADXR/DI+/DI- [v1] ismiyle geçiyor. formülü: study("APEX - ADX/ADXR/DI+/DI- [v1]", overlay = false)
source_main = close
adx_length = input(14, minval=1, title="ADX length")
adxr_length = input(14, minval=1, title="ADXR length")
adx_useRes = input(false, title="Check to turn ON Different Time Frame")
adx_time = input("5",type=resolution, title=" Time Frame")
adx_min = input(20, type=float, title="ADX Min.")
adx_max = input(100,type=float, title="ADX Max.")
dim_min = input(0, type=float, title="DI- Min.")
dim_max = input(100,type=float, title="DI- Max.")
dip_min = input(0, type=float, title="DI+ Min.")
dip_max = input(100,type=float, title="DI+ Max.")
adxr_min = input(0, type=float, title="ADXR Min.")
adxr_max = input(100,type=float, title="ADXR Max.")
// ----- Function for ADX / DI / DI / ADXR
calc_adx_di( len, len_adxr ) =>
TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1])))
DMPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0
DMMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0
STR = 0.0
SDMPlus = 0.0
SDMMinus = 0.0
STR := nz(STR[1]) - (nz(STR[1])/len) + TrueRange
SDMPlus := nz(SDMPlus[1]) - (nz(SDMPlus[1])/len) + DMPlus
SDMMinus := nz(SDMMinus[1]) - (nz(SDMMinus[1])/len) + DMMinus
DIPlus = 0.0
DIMinus = 0.0
ADX = 0.0
ADXR = 0.0
DIPlus := SDMPlus / STR * 100
DIMinus := SDMMinus / STR * 100
ADX := sma(abs(DIPlus-DIMinus) / (DIPlus+DIMinus)*100, len)
ADXR := ( ADX + ADX[len_adxr] ) / 2
[ ADX, DIPlus, DIMinus, ADXR ]
// ---- The big old calculation happening
[value_ADX, value_DIPlus, value_DIMinus, value_ADXR ] = calc_adx_di( adx_length, adxr_length )
per_value_ADX = adx_useRes?security(tickerid, adx_time , value_ADX) : value_ADX
per_value_DIPlus = adx_useRes?security(tickerid, adx_time , value_DIPlus) : value_DIPlus
per_value_DIMinus = adx_useRes?security(tickerid, adx_time , value_DIMinus): value_DIMinus
per_value_ADXR = adx_useRes?security(tickerid, adx_time , value_ADXR ) : value_ADXR
plot(per_value_DIPlus, color=lime, transp=20, Title="DI+", linewidth = 2)
plot(per_value_DIMinus, color=red, transp=20, Title="DI-", linewidth = 2)
plot(per_value_ADX, color=black, transp=20, Title="ADX", linewidth = 2)
plot(per_value_ADXR, color=blue, transp=20, Title="ADXR", linewidth = 2)
colorBackground = false
colorBackground := ( per_value_ADX > adx_min and per_value_ADX < adx_max ) and
( per_value_DIPlus > dip_min and per_value_DIPlus < dip_max ) and
( per_value_DIMinus > dim_min and per_value_DIMinus < dim_max ) and
( per_value_ADXR > adxr_min and per_value_ADXR < adxr_max )
bgcolor(colorBackground?lime:na, transp=80)
Yer İmleri