Miscellaneous
0
Views
0
Downloads
0
Favorites
DayTrend-T01
#include <stdlib.mqh>
//+------------------------------------------------------------------+
//| DayTrend-T01.mq4 |
//| |
//| |
//| Converted by Mql2Mq4 v1.0 |
//| http://yousky.free.fr |
//| Copyright © 2006, Yousky Soft |
//+------------------------------------------------------------------+
#property copyright " Author := Copyright © 2006, HomeSoft-Tartan Corp."
#property link " spiky@transkeino.ru"
#property indicator_separate_window
#property indicator_color1 Gold
#property indicator_buffers 2
#property indicator_color2 Red
//+------------------------------------------------------------------+
//| Common External variables |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| External variables |
//+------------------------------------------------------------------+
extern double t3_period = 14;
extern double b = 0.7;
extern double ppor = 50;
extern double mpor = -50;
extern double mBar = 300;
extern double sm = 6;
//+------------------------------------------------------------------+
//| Special Convertion Functions |
//+------------------------------------------------------------------+
int LastTradeTime;
double ExtHistoBuffer[];
double ExtHistoBuffer2[];
void SetLoopCount(int loops)
{
}
void SetIndexValue(int shift, double value)
{
ExtHistoBuffer[shift] = value;
}
void SetIndexValue2(int shift, double value)
{
ExtHistoBuffer2[shift] = value;
}
bool MoveObject(string name, int type, datetime Atime, double Aprice, datetime Atime2 = 0, double Aprice2 = 0, color Acolor = CLR_NONE, int Aweight = 0, int Astyle = 0)
{
if (ObjectFind(name) != -1)
{
int OType = ObjectType(name);
if ((OType == OBJ_VLINE) ||
(OType == OBJ_HLINE) ||
(OType == OBJ_TRENDBYANGLE) ||
(OType == OBJ_TEXT) ||
(OType == OBJ_ARROW) ||
(OType == OBJ_LABEL))
{
return(ObjectMove(name, 0, Atime, Aprice));
}
if ((OType == OBJ_GANNLINE) ||
(OType == OBJ_GANNFAN) ||
(OType == OBJ_GANNGRID) ||
(OType == OBJ_FIBO) ||
(OType == OBJ_FIBOTIMES) ||
(OType == OBJ_FIBOFAN) ||
(OType == OBJ_FIBOARC) ||
(OType == OBJ_RECTANGLE) ||
(OType == OBJ_ELLIPSE) ||
(OType == OBJ_CYCLES) ||
(OType == OBJ_TREND) ||
(OType == OBJ_STDDEVCHANNEL) ||
(OType == OBJ_REGRESSION))
{
return(ObjectMove(name, 0, Atime, Aprice) && ObjectMove(name, 1, Atime2, Aprice2));
}
}
else
{
return(ObjectCreate(name, type, 0, Atime, Aprice, Atime2, Aprice2, 0, 0) && ObjectSet(name, OBJPROP_COLOR, Acolor));
}
}
//+------------------------------------------------------------------+
//| End |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Initialization |
//+------------------------------------------------------------------+
int init()
{
SetIndexStyle(0, DRAW_LINE, STYLE_SOLID);
SetIndexBuffer(0, ExtHistoBuffer);
SetIndexStyle(1, DRAW_LINE, STYLE_SOLID);
SetIndexBuffer(1, ExtHistoBuffer2);
return(0);
}
int start()
{
//+------------------------------------------------------------------+
//| Local variables |
//+------------------------------------------------------------------+
double e1 = 0;
double e2 = 0;
double e3 = 0;
double e4 = 0;
double e5 = 0;
double e6 = 0;
double c1 = 0;
double c2 = 0;
double c3 = 0;
double c4 = 0;
double n = 0;
double w1 = 0;
double w2 = 0;
double b2 = 0;
double b3 = 0;
int shift = 0;
int cnt = 0;
double per = 0;
double trend = 0;
double top = 0;
double oldtop = 0;
double MaxH = 0;
double MinL = 0;
double MidL = 0;
double trig = 0;
double t3 = 0;
bool ft = true;
//-----------------------------
if( ft ) {
b2=b*b;
b3=b2*b;
c1=-b3;
c2=(3*(b2+b3));
c3=-3*(2*b2+b+b3);
c4=(1+3*b+b3+3*b2);
n=t3_period;
if( n<1 ) n=1;
n = 1 + 0.5*(n-1);
w1 = 2 / (n + 1);
w2 = 1 - w1;ft=false;}
SetLoopCount(0);
// loop from first bar to current bar (with shift=0)
for(shift=Bars-1;shift>=0 ;shift--){ SetIndexValue(shift, 0);SetIndexValue2(shift, 0);}
per=24*60/Period();
for(shift=mBar ;shift>=0 ;shift--){
MaxH=0;MinL=1000;trend=0;
for(cnt=shift+sm;cnt<=shift+per+sm ;cnt++){
if( MaxH<High[cnt] ) MaxH=High[cnt];
if( MinL>Low[cnt] ) MinL=Low[cnt];oldtop=Close[cnt];}
top=Close[shift];MidL=MathRound(((MaxH-MinL)/Point)/2);
trend=MathRound((top-oldtop)/Point);
e1 = w1*trend + w2*e1;
e2 = w1*e1 + w2*e2;
e3 = w1*e2 + w2*e3;
e4 = w1*e3 + w2*e4;
e5 = w1*e4 + w2*e5;
e6 = w1*e5 + w2*e6;
t3 = c1*e6 + c2*e5 + c3*e4 + c4*e3;
if( t3 == 0 ) t3=0.0001;
SetIndexValue(shift,t3);
if( t3 == 0 ) trend=0.00001;
if( t3>0 ) trig=ppor;
if( t3<0 ) trig=mpor;
SetIndexValue2(shift,trig);
if( shift == 0 ) MoveObject("MIDL",OBJ_HLINE,Time[30],MidL,Time[0],MidL,Gold,1,STYLE_DOT);} 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
---