Gamestudio Links
Zorro Links
Newest Posts
Zorro version 3.0 prerelease!
by jcl. 02/12/26 14:05
MarginCost discrepancy?
by jcl. 02/12/26 14:02
Hedge on FXCM, 4 or 5?
by qin. 02/11/26 14:12
CMC MT4 CFD vs FX Active - what's better?
by mayarik. 02/11/26 11:00
print a "still alive" log
by qin. 02/10/26 12:16
AUM Magazine
Latest Screens
Dorifto samurai
Shadow 2
Rocker`s Revenge
Stug 3 Stormartillery
Who's Online Now
1 registered members (TipmyPip), 7,786 guests, and 6 spiders.
Key: Admin, Global Mod, Mod
Newest Members
ApprenticeInMuc, PatrickH90, USER0328, Sfrdragon, mayarik
19198 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
FisherN #487412
04/11/23 08:36
04/11/23 08:36
Joined: Apr 2023
Posts: 19
R
rki Offline OP
Newbie
rki  Offline OP
Newbie
R

Joined: Apr 2023
Posts: 19
Here is my Python implementaton of FisherN

def FisherN (Data, Len):
out=np.ones (len(Data))*Data
Value1=0
Fish=0
for i in range (len(out)):
Period = i+Len
Period = Period if Period < len(out) else len(out)
MaxH=max (Data[i:i+Len])
MinL=min (Data[i:i+Len])
if MaxH>MinL:
fish=2.0*(Data[i]-MinL)/(MaxH-MinL)-1
else:
fish=0
Value1=0.33*2*(fish-0.5)+0.67*Value1
if Value1 > 0.999:
Value1=0.999
if Value1 <-0.999:
Value1=-0.999
Fish=0.5*Fish+0.5*np.log((1+Value1)/(1-Value1))
out[i]=Fish
return out


This was the corresponding implementation in Zorro

// normalize a value to the -1..+1 range
var Normalize(var* Data,int Period)
{
Period = Max(2,Period);
var vMin = MinVal(Data,Period);
var vMax = MaxVal(Data,Period);
if(vMax>vMin)
return 2.*(*Data-vMin)/(vMax-vMin) - 1.;
else return 0.;
}

// Fisher Transform
var Fisher(var* Data)
{
var v = Clamp(Data[0],-0.998,0.998);
return 0.5*log((1.+v)/(1.-v));
}

// Normalized Fisher transform
var FisherN(var* Data,int Period)
{
var *Value = series(*Data,2), *FN = series(*Data,2);
Value[0] = 0.33*Normalize(Data,Period) + 0.67*Value[1];
return FN[0] = Fisher(Value) + 0.5*FN[1];
}

Re: FisherN [Re: rki] #487413
04/11/23 08:38
04/11/23 08:38
Joined: Apr 2023
Posts: 19
R
rki Offline OP
Newbie
rki  Offline OP
Newbie
R

Joined: Apr 2023
Posts: 19
My questions are:
1. Do you agree that the implementation is right as Zorro/meaning same as Zorro
2.
Why do we normalize as 2*(x-xmin)/(xmax-xmin)-1 instead of just (x-xmean)/sigma . I see that the results vary due to this.

Last edited by rki; 04/11/23 08:41.

Moderated by  Petra 

Powered by UBB.threads™ PHP Forum Software 7.7.1