-
Notifications
You must be signed in to change notification settings - Fork 20
/
EA_MindStorms_Template.mq4
151 lines (107 loc) · 4.5 KB
/
EA_MindStorms_Template.mq4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
// P L E A S E - D O N O T D E L E T E A N Y T H I N G ! ! !
// -------------------------------------------------------------------------------------------------
// EA_MindStorms v1.01
//
// by Rodolfo
//
//--------------------------------------------------------------------------------------------------
// THIS EA IS 100 % FREE OPENSOURCE, WHICH MEANS THAT IT'S NOT A COMMERCIAL PRODUCT
// -------------------------------------------------------------------------------------------------
#property copyright " EA_MindStorms_v1.01"
#property link "[email protected]"
#property version "1.01"
#property description "EA_MindStorms_v1"
#property description "This EA is 100% FREE "
#property description "Coder: [email protected] "
#property strict
extern string Version__ = "-----------------------------------------------------------------";
extern string vg_versao = " EA_MindStorms_v1 2018-03-04 DEVELOPER EDITION ";
extern string Version____ = "-----------------------------------------------------------------";
#include "SDK/EAframework.mqh"
#include "SDK/TrailingStop.mqh"
#include "Engines/macx.mqh"
#include "Engines/macx2.mqh"
#include "Engines/xbest.mqh"
#include "Sinal/SinalMA.mqh"
#include "Sinal/SinalBB.mqh"
#include "Sinal/SinalRSI.mqh"
//#include "Sinal/SinalNONLANG.mqh"
#include "Filter/FFCallNews.mqh"
#include "Filter/FilterTime.mqh"
#include "Filter/FilterVolatility.mqh"
#include "Filter/FilterStopOut.mqh"
double vg_Spread = 0;
string vg_filters_on = "";
string vg_initpainel = false;
//+------------------------------------------------------------------+
//| input parameters |
//+------------------------------------------------------------------+
extern string Filter_Spread__ = "----------------------------Filter Max Spread----------------";
input int InpMaxvg_Spread = 24; // Max Spread
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
DrawLABEL("cm L","XBEST",95,30,clrBlack,ANCHOR_CENTER);
RectLabelCreate(0,"cm F" ,0,229,19 ,220,225);
ButtonCreate(0,"cm Buy Stop" ,0,225,40,100,20,"Buy Stop","Arial",8,clrBlack,clrLightGray,clrLightGray,clrNONE,1);
ButtonCreate(0,"cm Sell Stop" ,0,225,62,100,20,"Sell Stop","Arial",8,clrBlack,clrLightGray,clrLightGray,clrNONE,1);
vg_Spread = MarketInfo(Symbol(), MODE_SPREAD) * Point;
vg_filters_on = "";
vg_initpainel = true;
printf(vg_versao + " - INIT");
XBEST_OnInit();
return (INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
PainelUPER(vg_versao);
RefreshRates();
//FILTER SPREAD
if (vg_Spread > InpMaxvg_Spread)
{
vg_filters_on += "Filter InpMaxvg_Spread ON \n";
return;
}
//FILTER NEWS
if (InpUseFFCall)
{
NewsHandling();
if (vg_news_time)
{
vg_filters_on += "Filter News ON \n";
return;
}
}
//FILTER DATETIME
if (TimeFilter())
{
vg_filters_on += "Filter TimeFilter ON \n";
return;
}
if(FilterStopOut(MACH_CurrentPairProfit,MACH_MagicNumber)
|| FilterStopOut(MACH2_CurrentPairProfit,MACH2_MagicNumber)
) return;
int Sinal = (GetSinalMA() + GetSinalBB() + GetSinalRSI()) / ( DivSinalMA() + DivSinalBB()+ DivSinalRSI() ) ;
MACHx(Sinal, false, 0.01);
XBEST_OnTick(Sinal);
// SE TrailingStop ENABLE
if (InpUseTrailingStop)
TrailingAlls(InpTrailStart, InpTrailStep, XBEST_m_mediaprice1, XBEST_Magic);
// SE TrailingStop ENABLE
if (InpUseTrailingStop)
TrailingAlls(InpTrailStart, InpTrailStep, MACH_AveragePrice, MACH_MagicNumber);
if (InpUseTrailingStop)
TrailingAlls(InpTrailStart, InpTrailStep, MACH2_AveragePrice, MACH2_MagicNumber);
}