Deviation Scaled Moving Average
Deviation Scaled Moving Average as published in the October 2018 S&C article titled
'Probability-Probably A Good Thing To Know' by John F. Ehlers
PHP Code:
//Deviation Scaled Moving Average
//Ayarlar
int Period= 300;
//Veriler
var V = Sistem.GrafikVerileri;
var C = Sistem.GrafikFiyatSec("Kapanis");
var H = Sistem.GrafikFiyatSec("YUksek");
var L = Sistem.GrafikFiyatSec("Dusuk");
var O = Sistem.GrafikFiyatSec("Açılış");
double a1, b1, c1, c2, c3;
var Filt= Sistem.Liste(0);
var Zeros= Sistem.Liste(0);
var DSMAPD= Sistem.Liste(0);
a1 = Math.Exp(-1.414 * 3.14159 / (.5 * (double)Period));
b1 = 2 * a1 * Math.Cos((1.414 * 180 / (.5 * (double)Period)) * (3.14159 / 180));
c2 = b1;
c3 = -a1 * a1;
c1 = 1 - c2 - c3;
for (int j = Period; j < C.Count; j++)
{
double ScaledFilt = 0, RMS = 0, alpha1 = 0;
Zeros[0] = C[j] - C[j-2];
Filt[j] = (float) (c1 * (Zeros[0] + Zeros[1]) / 2 + c2 * Filt[j-1] + c3 * Filt[j-2]);
for (int i = 0; i <= Period-1; i++) RMS = RMS + Filt[j-i] * Filt[j-i];
RMS = Math.Sqrt(RMS / (double)Period);
ScaledFilt = Filt[j] / RMS;
DSMAPD[j] = (float) ScaledFilt;
for (int i = Period; i > 0; i--) Filt[i] = Filt[i];
Zeros[1] = (float) Zeros[0];
}
Sistem.Cizgiler[0].Deger = DSMAPD;
https://image.prntscr.com/image/ozks...-O4NlV173Q.png
https://prnt.sc/lmzu7f