Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
StochasticStack_v2
//+------------------------------------------------------------------+
//| Copyright © 2010, Ivan Kornilov|
//| StochasticStack_v2.mq4|
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, Ivan Kornilov. All rights reserved."
#property link "excelf@gmail.com"
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 Gray
#property indicator_color2 FireBrick
#property indicator_color3 SteelBlue
extern double nextPriod = 1.2;
extern int kPeriod1 = 34;
extern int level = 10;
int dPeriod1 = 0;
int slowing1 = 0;
int kPeriod2 = 0;
int dPeriod2 = 0;
int slowing2 = 0;
int kPeriod3 = 0;
int dPeriod3 = 0;
int slowing3 = 0;
int kPeriod4 = 0;
int dPeriod4 = 0;
int slowing4 = 0;
int kPeriod5 = 0;
int dPeriod5 = 0;
int slowing5 = 0;
int kPeriod6 = 0;
int dPeriod6 = 0;
int slowing6 = 0;
int kPeriod7 = 0;
int dPeriod7 = 0;
int slowing7 = 0;
int kPeriod8 = 0;
int dPeriod8 = 0;
int slowing8 = 0;
double lineBuffer0[];
double lineBuffer1[];
double valueChenal[];
int init() {
if(nextPriod != 0) {
kPeriod2 = kPeriod1 * nextPriod;
kPeriod3 = kPeriod2 * nextPriod;
kPeriod4 = kPeriod3 * nextPriod;
kPeriod5 = kPeriod4 * nextPriod;
kPeriod6 = kPeriod5 * nextPriod;
kPeriod7 = kPeriod6 * nextPriod;
kPeriod8 = kPeriod7 * nextPriod;
}
if(dPeriod1 == 0 && slowing1 == 0) {
dPeriod1 = kPeriod1 / 2;
slowing1 = dPeriod1 / 2;
}
if(dPeriod2 == 0 && slowing2 == 0) {
dPeriod2 = kPeriod2 / 2;
slowing2 = dPeriod2 / 2;
}
if(dPeriod3 == 0 && slowing3 == 0) {
dPeriod3 = kPeriod3 / 2;
slowing3 = dPeriod3 / 2;
}
if(dPeriod4 == 0 && slowing4 == 0) {
dPeriod4 = kPeriod4 / 2;
slowing4 = dPeriod4 / 2;
}
if(dPeriod5 == 0 && slowing5 == 0) {
dPeriod5 = kPeriod5 / 2;
slowing5 = dPeriod5 / 2;
}
if(dPeriod6 == 0 && slowing6 == 0) {
dPeriod6 = kPeriod6 / 2;
slowing6 = dPeriod6 / 2;
}
if(dPeriod7 == 0 && slowing7 == 0) {
dPeriod7 = kPeriod7 / 2;
slowing7 = dPeriod7 / 2;
}
if(dPeriod8 == 0 && slowing8 == 0) {
dPeriod8 = kPeriod8 / 2;
slowing8 = dPeriod8 / 2;
}
// IndicatorBuffers(3);
string indicatorName = "StochasticStack_v2(";
SetIndexBuffer(0, valueChenal);
SetIndexBuffer(1, lineBuffer0);
SetIndexBuffer(2, lineBuffer1);
indicatorName = indicatorName + kPeriod1;
indicatorName = indicatorName + "," + DoubleToStr(nextPriod,2);
SetIndexStyle(0, DRAW_HISTOGRAM, EMPTY, 3);
SetIndexStyle(1, DRAW_HISTOGRAM, EMPTY, 3);
SetIndexStyle(2, DRAW_HISTOGRAM, EMPTY, 3);
indicatorName = indicatorName + "," + kPeriod1;
indicatorName = indicatorName + "-" + kPeriod8;
SetIndexDrawBegin(0,kPeriod8);
SetIndexDrawBegin(1,kPeriod8);
SetIndexDrawBegin(2,kPeriod8);
SetIndexLabel(0, "Stochastick " + kPeriod1);
indicatorName = indicatorName + ")";
IndicatorShortName(indicatorName);
SetLevelValue(0, level);
SetLevelValue(1, -level);
}
int start(){
int indicatorCounted = IndicatorCounted();
if (indicatorCounted < 0) {
return (-1);
}
if(indicatorCounted > 0) {
indicatorCounted--;
}
double stochastic1 = 0;
double stochastic2 = 0;
double stochastic3 = 0;
double stochastic4 = 0;
double stochastic5 = 0;
double stochastic6 = 0;
double stochastic7 = 0;
double stochastic8 = 0;
double sum = 0;
int i;
int limit = Bars - indicatorCounted - 1;
for(i = limit - 1; i >= 0; i--) {
stochastic1 = iStochastic(NULL, 0, kPeriod1, dPeriod1, slowing1, MODE_EMA, 1, MODE_MAIN, i);
stochastic2 = iStochastic(NULL, 0, kPeriod2, dPeriod2, slowing2, MODE_EMA, 1, MODE_MAIN, i);
stochastic3 = iStochastic(NULL, 0, kPeriod3, dPeriod3, slowing3, MODE_EMA, 1, MODE_MAIN, i);
stochastic4 = iStochastic(NULL, 0, kPeriod4, dPeriod4, slowing4, MODE_EMA, 1, MODE_MAIN, i);
stochastic5 = iStochastic(NULL, 0, kPeriod5, dPeriod5, slowing5, MODE_EMA, 1, MODE_MAIN, i);
stochastic6 = iStochastic(NULL, 0, kPeriod6, dPeriod6, slowing6, MODE_EMA, 1, MODE_MAIN, i);
stochastic7 = iStochastic(NULL, 0, kPeriod7, dPeriod7, slowing7, MODE_EMA, 1, MODE_MAIN, i);
stochastic8 = iStochastic(NULL, 0, kPeriod8, dPeriod8, slowing8, MODE_EMA, 1, MODE_MAIN, i);
sum = 0;
sum += (stochastic1 - stochastic2) ;
sum += (stochastic3 - stochastic4) ;
sum += (stochastic5 - stochastic6);
sum += (stochastic7 - stochastic8);
valueChenal[i] = sum;
}
for(i = limit - 1; i >= 0; i--) {
if(valueChenal[i] < 0) {
lineBuffer0[i] = valueChenal[i];
lineBuffer1[i] = EMPTY_VALUE;
} else {
lineBuffer0[i] = EMPTY_VALUE;
lineBuffer1[i] = valueChenal[i];
}
}
}
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
---