Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
Fisher_org_v12_v4
//+------------------------------------------------------------------+
//| Fisher_org_v1.mq4 |
//| Copyright © 2006, TrendLaboratory Ltd. |
//| http://finance.groups.yahoo.com/group/TrendLaboratory |
//| E-mail: igorad2004@list.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, TrendLaboratory Ltd."
#property link "http://finance.groups.yahoo.com/group/TrendLaboratory"
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red
//---- input parameters
extern int Length = 10;
extern int Price = 4;
extern int NumBars = 0;
//---- buffers
double Buffer[];
double Value [];
double Fisher[];
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(3);
//----
SetIndexStyle(0,DRAW_LINE);
SetIndexStyle(1,DRAW_LINE);
//----
SetIndexBuffer(0,Buffer);
SetIndexBuffer(1,Fisher);
SetIndexBuffer(2,Value);
//----
IndicatorShortName ("FisherTransform(" + IntegerToString(Length) + "," + IntegerToString(Price) + ")");
SetIndexLabel (0, "Fish");
SetIndexLabel (1, "Trigger");
//----
SetIndexDrawBegin(0,Length);
SetIndexDrawBegin(1,Length);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Fisher_org_v1 |
//+------------------------------------------------------------------+
int start()
{
int counted_bars = IndicatorCounted();
int limit=Bars - counted_bars;
if(counted_bars==0) limit--;
int shift;
double smin = 0, smax = 0;
//----
if(NumBars > 0)
int NBars = NumBars;
else
NBars = limit;
//----
for(shift = NBars; shift >= 0; shift--)
{
Buffer[shift] = 0.0;
Value [shift] = 0.0;
Fisher[shift] = 0.0;
}
//----
for(shift = NBars - 2 - Length; shift >= 0; shift--)
{
smax = High[Highest(NULL, 0, MODE_HIGH, Length, shift)];
smin = Low[Lowest(NULL, 0, MODE_LOW, Length, shift)];
double price = iMA(NULL, 0, 1, 0, 0, Price, shift);
//----
if(smax == smin)
smax = smin + Point;
double wpr = (price - smin) / (smax - smin);
Value[shift] = (wpr - 0.5) + 0.67*Value[shift+1];
//----
if(Value[shift] > 0.99)
Value[shift] = 0.999;
//----
if(Value[shift] < -0.99)
Value[shift] = -0.999;
Fisher[shift] = 0.5*MathLog((1.0 + Value[shift]) / (1.0 - Value[shift])) +
0.5*Fisher[shift+1];
Buffer[shift] = Fisher[shift+1];
}
return(0);
}
//+------------------------------------------------------------------+
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---