Teknik Analiz Dünyasına Hoşgeldiniz

Paylaşmak Güzeldir.

  • DİKKAT: Formüller, Sistemler sadece eğitim amaçlıdır. Alım satım, olası anapara kaybı ve diğer kayıplar dahil olmak üzere "YÜKSEK RİSK içerir.
  • Mucize teknik gösterge yoktur, sadece doğru veya yanlış kullanılan göstergeler vardır.

Hareketli Ortalama Exponential Moving Average - ATR Volatility Adjusted by Jose Silva

Hareketli Ortalamalar Göstergeler arasında en çok kullanılan indikatördür. Trend takip eden özelliği bulunmakla birlikte son geçmişte kalan belli bir zaman diliminin ortalaması alınarak, şuan ki fiyatın trende ne derece uzak olduğunu gösterir.

algoritma

e iπ +1=0
Katılım
23 Eki 2020
Mesajlar
1,346
Puanları
48
ATR volatility-adjusted, dynamic-period EMA with multiple output choice.​

Exponential Moving Average - ATR Volatility Adjusted

{ ATR volatility-adjusted, dyn-period EMA v2.1 }

{ Positive sensitivity:
EMA periodicity shortens on high ATR volatility
- increases on low ATR volatility }
{ Negative sensitivity:
EMA periodicity shortens on low ATR volatility
- increases on high ATR volatility }

{ [1]EMA: ATR volatility-adjusted EMA }
{ [2]Dyn periods: EMA periodicity used }
{ [3]ATR vlty: ATR volatility 0~100% }
{ [4]Signals: EMA/price crossover signals }

{ ©Copyright 2004 Jose Silva }
{ http://www.metastocktools.com }

pds:=Input("EMA avg periods",1,2520,21);
sens:=Input("ATR volatility sensitivity (+100 to -100)%",-100,100,100)/100;
pdsVlty:=Input("ATR volatility sampling periods",2,2520,126);
pdsATR:=Input("ATR periods",1,2520,10);
x:=Input("[1]Open [2]High [3]Low [4]Close [5]Vol [6]P",1,6,4);
plot:=Input("[1]EMA, [2]Dyn periods, [3]ATR vlty, [4]Signals",1,4,1);

x:=If(x=1,O,If(x=2,H,If(x=3,L,If(x=5,V,If(x=6,P,C)))));
ATRvlty:=(ATR(pdsATR)-LLV(ATR(pdsATR),pdsVlty))
/(HHV(ATR(pdsATR),pdsVlty)
-LLV(ATR(pdsATR),pdsVlty)+.000001);
multi:=If(ATRvlty<=.5,
10*Power(ATRvlty,3.4739)+.1,
10*Power(ATRvlty,3.32)+.000001);
multi:=If(sens>0,1/multi,multi);
multi:=If(multi<1,1-(1-multi)*Abs(sens),
(multi-1)*Abs(sens)+1);
pds:=pds*multi;
pds:=If(pds>Cum(IsDefined(x))-(pdsVlty+pdsATR),
Cum(IsDefined(x))-(pdsVlty+pdsATR),pds);
pds:=If(pds<1,1,pds);
ATREma:=x*2/(pds+1)+PREV*(1-2/(pds+1));
signals:=Cross(x,ATREma)-Cross(ATREma,x);

If(plot=2,pds,If(plot=3,ATRvlty*100,
If(plot=4,signals,ATREma)))​


Source / From:
 
Katılım
25 Ara 2020
Mesajlar
17
Puanları
3
Selam, bu formülü Matrikse yazamadım. Değişgen hatası veriyor. Bazı değişgenler bir kaç kez aynı şekilde yazmış acaba ondan mı hata. Örn: PDS. Varmı yardımcı olabilecek arkadaş.
 

algoritma

e iπ +1=0
Katılım
23 Eki 2020
Mesajlar
1,346
Puanları
48
Metastock da çalışıyor.
222.png

ilk farkettiğim
IsDefined

metastock şöyle bir formül yazalım örnek olarak
a:=C;
ab:=C+1;
a:=ab;
abc:=ab+1;
a:=abc;
a;C;
223.png

metastock bunu çizer burda en son neyi tanımladıysanız o geçerlidir demek siz formüllerinizde bir önceki tanımınıza bir ekleme yapmak isterseniz metastock bunu böyle algılar.

matriks bunu çizmediği gibi değişken tanımlama hatası veriyor.

çözüm
a:=C;
ab:=C+1;
a1:=ab;
abc:=ab+1;
a2:=abc;
a2;C
 

Forumda daha fazla yararlanmak için giriş yapın yada üye olun!

Forumdan daha fazla yararlanmak için giriş yapın veya kayıt olun!

Kayıt ol

Forumda bir hesap oluşturmak tamamen ücretsizdir.

Şimdi kayıt ol
Giriş yap

Eğer bir hesabınız var ise lütfen giriş yapın

Giriş yap