Deviation Scaled Moving Average with Fisher Transform
Deviation Scaled Moving Average with Fisher Transform as published in the October 2018 article titled "Probability-Probably A Good Thing To Know" by John F. Ehlers
PHP Code:
//Deviation Scaled Moving Average with Fisher Transform
//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 DSMAPDFISHER= Sistem.Liste(0);
a1 = Math.Exp(-1.414 * 3.14159 / (0.5 * (double)Period));
b1 = 2 * a1 * Math.Cos((1.414 *180 /(0.5 * (double)Period)) * (3.14159 / 180));
c2 = b1; c3 = -a1*a1; c1=1-c2-c3;
for (int j = 300; j < C.Count; j++)
{
double ScaledFilt = 0, RMS = 0, alpha1 = 0, FisherFilt = 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;
if (Math.Abs(ScaledFilt) < 2)
FisherFilt = 0.5 * Math.Log((1 + ScaledFilt / 2) / (1 - ScaledFilt / 2));
DSMAPDFISHER[j] = (float) FisherFilt;
for (int i = Period; i > 0; i--) Filt[i] = Filt[i];
Zeros[1] = (float) Zeros[0];
}
Sistem.Cizgiler[0].Deger = DSMAPDFISHER;
https://image.prntscr.com/image/WjkO...MJLGfcN6Bg.png
https://prnt.sc/ln0ki9