Miscellaneous
0
Views
0
Downloads
0
Favorites
turtlechanneli
//+------------------------------------------------------------------+
//| Turtle Channel Method(Donchain).mq4 |
//| djindyFX@sbcglobal.net |
//| http://www.learncurrencytrading.com/fxforum/blogs/djindyfx/ |
//+------------------------------------------------------------------+
#property copyright "djindyFX@sbcglobal.com"
#property link "http://www.learncurrencytrading.com/fxforum/blogs/djindyfx/"
//+--------------------------------------------------------------------------------------------------------------------------+
//| Original Donchain channel code posted here: http://codebase.mql4.com/ru/1317 |
//| Periods: number of bars used for calculating the Donchian channels |
//| 3 Seperate Channels are provided, Long term, Medium, and Short Term |
//| Extremes: 1 uses the highest high and the lowest low to create the Channel |
//| 0 uses the open of the extremes bar -> the open point of a bar (as well as the close |
//| are the points of maximum probability of concentration of the prices during the bar |
//| 3 uses the median point most extreme open and lowest low or highest high |
//| Margins: is the percent of the channel subtrated from the channel border before printing it, negative values are allowed |
//| Advance: the numbers of bars ahead |
//+--------------------------------------------------------------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 White
#property indicator_color2 White
#property indicator_color3 Yellow
#property indicator_color4 Yellow
#property indicator_color5 Red
#property indicator_color6 Red
//---- input parameters
extern int LngPeriod=50;
extern int MedPeriod=20;
extern int ShtPeriod=10;
extern int Extremes=1;
extern int Margins=0;
extern int Advance=0;
// - Buffers
double Channel1[];
double Channel2[];
double Channel3[];
double Channel4[];
double Channel5[];
double Channel6[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//Comment("Turtle Channel is running");
string LngTop, LngBottom, MedTop, MedBottom, ShtTop, ShtBottom;
//---- indicators
SetIndexStyle(0,DRAW_LINE,STYLE_DOT);
SetIndexStyle(1,DRAW_LINE,STYLE_DOT);
SetIndexStyle(2,DRAW_LINE,STYLE_DASH);
SetIndexStyle(3,DRAW_LINE,STYLE_DASH);
SetIndexStyle(4,DRAW_LINE,STYLE_DASHDOT);
SetIndexStyle(5,DRAW_LINE,STYLE_DASHDOT);
//
SetIndexBuffer(0,Channel1);
SetIndexBuffer(1,Channel2);
SetIndexBuffer(2,Channel3);
SetIndexBuffer(3,Channel4);
SetIndexBuffer(4,Channel5);
SetIndexBuffer(5,Channel6);
//----
LngTop="Long Top";
LngBottom="Long Bottom";
MedTop="Medium Top";
MedBottom="Medium Bottom";
ShtTop="Short Top";
ShtBottom="Short Bottom";
//----
IndicatorShortName(LngTop);
IndicatorShortName(LngBottom);
IndicatorShortName(MedTop);
IndicatorShortName(MedBottom);
IndicatorShortName(ShtTop);
IndicatorShortName(ShtBottom);
//-----
SetIndexLabel(0,LngTop);
SetIndexLabel(1,LngBottom);
SetIndexLabel(2,MedTop);
SetIndexLabel(3,MedBottom);
SetIndexLabel(4,ShtTop);
SetIndexLabel(5,ShtBottom);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
int max_bars;
//----
if (counted_bars < 0) return(-1);
if (counted_bars>0) counted_bars--;
max_bars= Bars-1;
double sminl=0, smaxl=0, SsMinl=0, SsMaxl=0;
double sminm=0, smaxm=0, SsMinm=0, SsMaxm=0;
double smins=0, smaxs=0, SsMins=0, SsMaxs=0;
//----
for(int shift=0; shift< max_bars; shift++)
{ //begin for loop
if(Extremes ==1)
{
SsMaxl=High[iHighest(NULL,0,MODE_HIGH,LngPeriod,shift)];
SsMinl=Low[iLowest(NULL,0,MODE_LOW,LngPeriod,shift)];
SsMaxm=High[iHighest(NULL,0,MODE_HIGH,MedPeriod,shift)];
SsMinm=Low[iLowest(NULL,0,MODE_LOW,MedPeriod,shift)];
SsMaxs=High[iHighest(NULL,0,MODE_HIGH,ShtPeriod,shift)];
SsMins=Low[iLowest(NULL,0,MODE_LOW,ShtPeriod,shift)];
}
else if (Extremes ==3)
{
SsMaxl=(Open[iHighest(NULL,0,MODE_OPEN,LngPeriod,shift)]+High[iHighest(NULL,0,MODE_HIGH,LngPeriod,shift)])/2;
SsMinl=(Open[iLowest(NULL,0,MODE_OPEN,LngPeriod,shift)]+Low[iLowest(NULL,0,MODE_LOW,LngPeriod,shift)])/2;
SsMaxm=(Open[iHighest(NULL,0,MODE_OPEN,MedPeriod,shift)]+High[iHighest(NULL,0,MODE_HIGH,MedPeriod,shift)])/2;
SsMinm=(Open[iLowest(NULL,0,MODE_OPEN,MedPeriod,shift)]+Low[iLowest(NULL,0,MODE_LOW,MedPeriod,shift)])/2;
SsMaxs=(Open[iHighest(NULL,0,MODE_OPEN,ShtPeriod,shift)]+High[iHighest(NULL,0,MODE_HIGH,ShtPeriod,shift)])/2;
SsMins=(Open[iLowest(NULL,0,MODE_OPEN,ShtPeriod,shift)]+Low[iLowest(NULL,0,MODE_LOW,ShtPeriod,shift)])/2;
}
else
{
SsMaxl=Open[iHighest(NULL,0,MODE_OPEN,LngPeriod,shift)];
SsMinl=Open[iLowest(NULL,0,MODE_OPEN,LngPeriod,shift)];
SsMaxm=Open[iHighest(NULL,0,MODE_OPEN,MedPeriod,shift)];
SsMinm=Open[iLowest(NULL,0,MODE_OPEN,MedPeriod,shift)];
SsMaxs=Open[iHighest(NULL,0,MODE_OPEN,ShtPeriod,shift)];
SsMins=Open[iLowest(NULL,0,MODE_OPEN,ShtPeriod,shift)];
}
smaxl=SsMaxl-(SsMaxl-SsMinl)*Margins/100;
sminl=SsMinl+(SsMaxl-SsMinl)*Margins/100;
smaxm=SsMaxm-(SsMaxm-SsMinm)*Margins/100;
sminm=SsMinm+(SsMaxm-SsMinm)*Margins/100;
smaxs=SsMaxs-(SsMaxs-SsMins)*Margins/100;
smins=SsMins+(SsMaxs-SsMins)*Margins/100;
//
Channel1[shift-Advance]=smaxl;
Channel2[shift-Advance]=sminl;
Channel3[shift-Advance]=smaxm;
Channel4[shift-Advance]=sminm;
Channel5[shift-Advance]=smaxs;
Channel6[shift-Advance]=smins;
}//end for loop
//----
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
---