Miscellaneous
0
Views
0
Downloads
0
Favorites
MPT01
//+------------------------------------------------------------------+
//| MPT01.mq4 |
//| by STS |
//| |
//+------------------------------------------------------------------+
#property copyright "STS"
#property link ""
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Red
#property indicator_color2 Red
#property indicator_color3 Red
#property indicator_width1 4
#property indicator_width2 4
#property indicator_width3 4
//---- buffers
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
extern int step=34;
extern int laenge=50;
extern double fibo1=0.382;
extern double fibo2=0.618;
extern double fibo3=1.000;
//0.25, 0.382, 0.618, 0.75, 1
extern bool drawarrors=False;
extern int ICWRDepth=12;
extern int ICWRDeviation=5;
extern int ICWRBackstep=3;
extern int Bar=300;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,216);
SetIndexBuffer(1,ExtMapBuffer2);
SetIndexEmptyValue(1,0.0);
SetIndexStyle(2,DRAW_ARROW);
SetIndexArrow(2,215);
SetIndexBuffer(2,ExtMapBuffer3);
SetIndexEmptyValue(2,0.0);
SetIndexStyle(3,DRAW_ARROW);
SetIndexArrow(3,220);
SetIndexBuffer(3,ExtMapBuffer4);
SetIndexEmptyValue(3,0.0);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
int r;
r=1;
ObjectDelete("ActiveWave1a" +r);
ObjectDelete("ActiveWave1b" + r);
ObjectDelete("ActiveWave1c" + r);
ObjectDelete("AB1");
ObjectDelete("BC1");
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int r;
r=1;
ObjectDelete("ActiveWave1a" +r);
ObjectDelete("ActiveWave1b" + r);
ObjectDelete("ActiveWave1c" + r);
ObjectDelete("AB1");
ObjectDelete("BC1");
if (Period() ==1){
step=21;
}
else
{
step=34;
}
//Print(step);
int counted_bars=IndicatorCounted();
//----
int c;
c=0;
int shift;
int last0;
int last1;
int last2;
double T1;
double T2;
double T3;
int vorne;
T1=0;
T2=0;
T3=0;
last0=0;
last1=0;
last2=0;
for (shift=Bar;shift>=0;shift--)
{
ExtMapBuffer2[shift]=0;
ExtMapBuffer3[shift]=0;
ExtMapBuffer4[shift]=0;
}
for (shift=Bar;shift>=0;shift--)
{
double icwr0;
icwr0=iCustom(Symbol(),0,"ICWRr",ICWRDepth,ICWRDeviation,ICWRBackstep,step,0,shift);
if (icwr0>0){
last2=last1;
last1=last0;
last0=shift;
double last0val;
double last1val;
double last2val;
last0val=iCustom(Symbol(),0,"ICWRr",ICWRDepth,ICWRDeviation,ICWRBackstep,step,0,last0);
last1val=iCustom(Symbol(),0,"ICWRr",ICWRDepth,ICWRDeviation,ICWRBackstep,step,0,last1);
last2val=iCustom(Symbol(),0,"ICWRr",ICWRDepth,ICWRDeviation,ICWRBackstep,step,0,last2);
if (MathAbs(last2val-last1val)>= step*0.0001){
if (drawarrors){
ExtMapBuffer4[shift]=last0val;
ExtMapBuffer3[last1]=last1val;
ExtMapBuffer2[last2]=last2val;
}
T1=fibo1*(last1val-last2val)+last0val;
T2=fibo2*(last1val-last2val)+last0val;
T3=fibo3*(last1val-last2val)+last0val;
c=1;
string namea;
namea="ActiveWave1a"+c;
string nameb;
nameb="ActiveWave1b"+c;
string namec;
namec="ActiveWave1c"+c;
string named;
named="AB1";
string namee;
namee="BC1";
vorne=shift;
int l;
if (vorne>=laenge){
vorne=laenge;
}
l=laenge-vorne;
if (l > laenge){
l=0;
}
l=5;
if(ObjectFind(namea) != 0)
{
ObjectCreate(namea, OBJ_TREND, 0, Time[shift+l], T1, Time[shift-vorne], T1);
ObjectSet(namea, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(namea, OBJPROP_COLOR, DarkOrange);
ObjectSet(namea, OBJPROP_WIDTH, 3);
ObjectSet(namea, OBJPROP_RAY, false);
}
else
{
ObjectMove(namea, 0, Time[shift+l], T1);
ObjectMove(namea, 1, Time[shift-vorne], T1);
}
if(ObjectFind(nameb) != 0)
{
ObjectCreate(nameb, OBJ_TREND, 0, Time[shift+l], T2, Time[shift-vorne], T2);
ObjectSet(nameb, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(nameb, OBJPROP_COLOR, Magenta);
ObjectSet(nameb, OBJPROP_WIDTH, 3);
ObjectSet(nameb, OBJPROP_RAY, false);
}
else
{
ObjectMove(nameb, 0, Time[shift+l], T2);
ObjectMove(nameb, 1, Time[shift-vorne], T2);
}
if(ObjectFind(namec) != 0)
{
ObjectCreate(namec, OBJ_TREND, 0, Time[shift+l], T3, Time[shift-vorne], T3);
ObjectSet(namec, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(namec, OBJPROP_COLOR, Red);
ObjectSet(namec, OBJPROP_WIDTH, 3);
ObjectSet(namec, OBJPROP_RAY, false);
}
else
{
ObjectMove(namec, 0, Time[shift+l], T3);
ObjectMove(namec, 1, Time[shift-vorne], T3);
}
if(ObjectFind(named) != 0)
{
ObjectCreate(named, OBJ_TREND, 0, Time[last1], last1val, Time[last0], last0val);
ObjectSet(named, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(named, OBJPROP_COLOR, Red);
ObjectSet(named, OBJPROP_WIDTH, 3);
ObjectSet(named, OBJPROP_RAY, false);
}
else
{
ObjectMove(named, 0, Time[last1], last1val);
ObjectMove(named, 1, Time[last0], last0val);
ObjectSet(named, OBJPROP_COLOR, Red);
}
if(ObjectFind(namee) != 0)
{
ObjectCreate(namee, OBJ_TREND, 0, Time[last2], last2val, Time[last1], last1val);
ObjectSet(namee, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(namee, OBJPROP_COLOR, Red);
ObjectSet(namee, OBJPROP_WIDTH, 3);
ObjectSet(namee, OBJPROP_RAY, false);
}
else
{
ObjectMove(namee, 0, Time[last2], last2val);
ObjectMove(namee, 1, Time[last1], last1val);
ObjectSet(namee, OBJPROP_COLOR, Red);
}
}
}
//----
}
}
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
---