Download Fisher M111 indicators

111The Metatrader Fisher M111 Forex Indicator is provided for free. As we create used of this Fisher M111, they didn’t asked us a single cent of payment. The Fx indicator is guaranteed free of charge.

All MT systems, deal with this mq4 code, bear in mind MT4 and Meta Trader 5 platforms.

Comments in connection with Fisher M111 indicator will be most appreciated. You can place your comments or perhaps suggestion in the Fisher M111 indicator comment section. Comments as well as recommendations regarding the trading will be really much helpful. The very best indicator will likely be selected by currency investors with the aid of your comments concerning the products.

Obviously, greater indicators that can help in trading much more the precise way are what the most of Forex currency traders want. This is where cost-free Fisher M111 indicator is necessary. It can help traders in increasing the profit that they could get in their internet business. Furthermore, we make sure the Forex indicators just like Fisher M111 are posted in our internet site. This way, everybody can download it totally free and help them make wise decisions and get much better traders in return.

[php]

//+——————————————————————+
//| Fisher_m11.mq4 |
//| Copyright © 23.07.2006 MartinG |
//| http://home.arcor.de/cam06/fisher |
//+——————————————————————+
#property copyright “Copyright © 23.07.2006 MartinG”
#property link “http://home.arcor.de/cam06/fisher”

#property indicator_separate_window
//#property indicator_minimum -1
//#property indicator_maximum 1
#property indicator_buffers 3
#property indicator_color2 Lime
#property indicator_color3 Red
#property indicator_width2 4
#property indicator_width3 4

int LeftNum1=56;
int LeftNum2=56;

extern int RangePeriods=10;
extern double PriceSmoothing=0.3; // =0.67 bei Fisher_m10
extern double IndexSmoothing=0.3; // =0.50 bei Fisher_m10

string ThisName=”Fisher_m11″;
int DrawStart;

//—- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
//+——————————————————————+
//| Custom indicator initialization function |
//+——————————————————————+
int init()
{
//—- indicators
IndicatorBuffers(4);

SetIndexLabel(0,”Fish”);
SetIndexStyle(0,DRAW_NONE);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexStyle(1,DRAW_HISTOGRAM);
SetIndexBuffer(1,ExtMapBuffer2);
SetIndexStyle(2,DRAW_HISTOGRAM);
SetIndexBuffer(2,ExtMapBuffer3);
SetIndexStyle(3,DRAW_NONE);
SetIndexBuffer(3,ExtMapBuffer4);

string Text=ThisName;
Text=Text+” (rPeriods “+RangePeriods;
Text=Text+”, pSmooth “+DoubleToStr(PriceSmoothing,2);
Text=Text+”, iSmooth “+DoubleToStr(IndexSmoothing,2);
Text=Text+”) “;
IndicatorShortName(Text);

SetIndexLabel(1,NULL);
SetIndexLabel(2,NULL);
DrawStart=2*RangePeriods+4; // DrawStart= BarNumber calculated from left to right
SetIndexDrawBegin(1,DrawStart);
SetIndexDrawBegin(2,DrawStart);

if (PriceSmoothing>=1.0)
{
PriceSmoothing=0.9999;
Alert(“Fish61: PriceSmothing factor has to be smaller 1!”);
}
if (PriceSmoothing<0)
{
PriceSmoothing=0;
Alert(“Fish61: PriceSmothing factor mustn”t be negative!”);
}

if (IndexSmoothing>=1.0)
{
IndexSmoothing=0.9999;
Alert(“Fish61: PriceSmothing factor has to be smaller 1!”);
}
if (IndexSmoothing<0)
{
IndexSmoothing=0;
Alert(“Fish61: PriceSmothing factor mustn”t be negative!”);
}

//—-
return(0);
}
//+——————————————————————+
//| Custom indicator deinitialization function |
//+——————————————————————+
int deinit()
{
//—-

//—-
return(0);
}
//+——————————————————————+
//| Custom indicator iteration function |
//+——————————————————————+
int start()
{
if (Bars<DrawStart)
{
Alert(“Fish84: Not enough Bars loaded to calculate FisherIndicator with RangePeriods=”,RangePeriods);
return(-1);
}
//—-
int counted_bars=IndicatorCounted();
if (counted_bars<0) return(-1);
if (counted_bars>0) counted_bars–;
//—-
int Position=Bars-counted_bars; // Position = BarPosition calculated from right to left
int LeftNum1=Bars-Position; // when more bars are loaded the Position of a bar changes but not its LeftNum
if (LeftNum1<RangePeriods+1)Position=Bars-RangePeriods-1;

while(Position>=0)
{
CalculateCurrentBar(Position);
Position–;
}

//—-
return(0);
}

//+——————————————————————+
//| Single Bar Calculation function |
//+——————————————————————+
int CalculateCurrentBar(int pos)
{
double LowestLow, HighestHigh, GreatestRange, MidPrice;
double PriceLocation, SmoothedLocation, FishIndex, SmoothedFish;
//—-
LowestLow = Low[Lowest(NULL,0,MODE_LOW,RangePeriods,pos)];
HighestHigh = High[Highest(NULL,0,MODE_HIGH,RangePeriods,pos)];
if (HighestHigh-LowestLow<0.1*Point)HighestHigh=LowestLow+0.1*Point;
GreatestRange=HighestHigh-LowestLow;
MidPrice = (High[pos]+Low[pos])/2;

// PriceLocation in current Range
if (GreatestRange!=0)
{
PriceLocation=(MidPrice-LowestLow)/GreatestRange;
PriceLocation= 2.0*PriceLocation – 1.0; // -> -1 < PriceLocation < +1
}
// Smoothing of PriceLocation
ExtMapBuffer4[pos]=PriceSmoothing*ExtMapBuffer4[pos+1]+(1.0-PriceSmoothing)*PriceLocation;
SmoothedLocation=ExtMapBuffer4[pos];
if (SmoothedLocation> 0.99) SmoothedLocation= 0.99; // verhindert, dass MathLog unendlich wird
if (SmoothedLocation<-0.99) SmoothedLocation=-0.99; // verhindert, dass MathLog minuns unendlich wird

// FisherIndex
if(1-SmoothedLocation!=0) FishIndex=MathLog((1+SmoothedLocation)/(1-SmoothedLocation));
else Alert(“Fisher129: Unerlaubter Zustand bei Bar Nummer “,Bars-pos);

// Smoothing of FisherIndex
ExtMapBuffer1[pos]=IndexSmoothing*ExtMapBuffer1[pos+1]+(1.0-IndexSmoothing)*FishIndex;
if (Bars-pos<DrawStart)ExtMapBuffer1[pos]=0;
SmoothedFish=ExtMapBuffer1[pos];

if (SmoothedFish>0) // up trend
{
ExtMapBuffer2[pos]=SmoothedFish;
ExtMapBuffer3[pos]=0;
}
else // else down trend
{
ExtMapBuffer2[pos]=0;
ExtMapBuffer3[pos]=SmoothedFish;
}
//—-
return(0);
}
//+——————————————————————+

[/php]

 

Click Here to Download

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *