forked from FelipeGaldino/MQL5-Experts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathExpert_Cria_3_Csv_BIdAskLast.mq5
137 lines (106 loc) · 5 KB
/
Expert_Cria_3_Csv_BIdAskLast.mq5
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
//+------------------------------------------------------------------------------------------------------+
//| |
//| CRIA 3 ARQUIVOS CSV PARA ARMAZENAR OS PRECOS |
//| BID - ASK - LAST SEPARADAMENTE |
//| |
//+------------------------------------------------------------------------------------------------------+
// ASK - VARIAVEIS
int AskCsv;
double AskTickCount;
// BID - VARIAVEIS
int BidCsv;
double BidTickCount;
// LAST - VARIAVEIS
int LastCsv;
double LastTickCount;
MqlTick Tick_Last;
// TIME - VARIAVEIS
string TickTime; // TICK - TIME
int TimeModel = TIME_DATE | TIME_MINUTES | TIME_SECONDS; // TIME - FORMATO
// TICK - LOCAL ONDE E SALVO
string LocalSave = TerminalInfoString(TERMINAL_DATA_PATH);
//+------------------------------------------------------------------------------------------------------+
//| ON-INIT |
//+------------------------------------------------------------------------------------------------------+
int OnInit()
{
// CRIA ARQUIVO CSV
AskCsv = FileOpen("AskTicksBacktest.csv", FILE_CSV | FILE_READ | FILE_WRITE | FILE_REWRITE, '\t');
BidCsv = FileOpen("BidTicksBacktest.csv", FILE_CSV | FILE_READ | FILE_WRITE | FILE_REWRITE, '\t');
LastCsv = FileOpen("LastTicksBacktest.csv", FILE_CSV | FILE_READ | FILE_WRITE | FILE_REWRITE, '\t');
// CRIA AS COLUNAS DOS ARQUIVO CSV
FileWrite(AskCsv, "Time_Msc", "DataTime", "Ask", "Volume", "Volume_real");
FileWrite(BidCsv, "Time_Msc", "DataTime", "Ask", "Volume", "Volume_real");
FileWrite(LastCsv, "Time_Msc", "DataTime", "Ask", "Volume", "Volume_real");
// MOSTRA ONDE SALVOU O ARQUIVO
Print("FileOpen OK - Os arquivo Foram Criados Em : " + LocalSave + "\\MQL5\\Files");
return (INIT_SUCCEEDED);
}
//+------------------------------------------------------------------------------------------------------+
//| ON-TICK |
//+------------------------------------------------------------------------------------------------------+
void OnTick()
{
SymbolInfoTick(Symbol(), Tick_Last);
// ASK - ARMAZENA OS DADOS DE ASK NO ARQUIVO
if (AskTickCount != Tick_Last.ask)
{
// ASK - POSICIONA O PONTEIRO NO FINAL DO ARQUIVO
FileSeek(AskCsv, 0, SEEK_END);
// TIME - CONVERTE OS VALORES PARA STRING
TickTime = (TimeToString(Tick_Last.time, TimeModel));
// ESCREVE NO ARQUIVO
FileWrite(AskCsv, Tick_Last.time_msc, TickTime, Tick_Last.ask,
Tick_Last.volume, Tick_Last.volume_real);
AskTickCount = Tick_Last.ask;
Print("---------ESCREVEU NO ARQUIVO ASK-------------");
}
else
{
Print(" Tick Duplicado Ask. ");
}
// BID - ARMAZENA OS DADOS DE BID NO ARQUIVO
if (BidTickCount != Tick_Last.bid)
{
// ASK - POSICIONA O PONTEIRO NO FINAL DO ARQUIVO
FileSeek(BidCsv, 0, SEEK_END);
// TIME - CONVERTE OS VALORES PARA STRING
TickTime = (TimeToString(Tick_Last.time, TimeModel));
// ESCREVE NO ARQUIVO
FileWrite(BidCsv, Tick_Last.time_msc, TickTime, Tick_Last.bid,
Tick_Last.volume, Tick_Last.volume_real);
BidTickCount = Tick_Last.bid;
Print("---------ESCREVEU NO ARQUIVO BID-------------");
}
else
{
Print(" Tick Duplicado Bid. ");
}
// LAST - ARMAZENA OS DADOS DE LAST NO ARQUIVO
if (LastTickCount != Tick_Last.last)
{
// LAST - POSICIONA O PONTEIRO NO FINAL DO ARQUIVO
FileSeek(LastCsv, 0, SEEK_END);
// TIME - CONVERTE OS VALORES PARA STRING
TickTime = (TimeToString(Tick_Last.time, TimeModel));
// LAST - ESCREVE NO ARQUIVO
FileWrite(LastCsv, Tick_Last.time_msc, TickTime, Tick_Last.last,
Tick_Last.volume, Tick_Last.volume_real);
LastTickCount = Tick_Last.last;
Print("---------ESCREVEU NO ARQUIVO LAST-------------");
}
else
{
Print(" Tick Duplicado em Last. ");
}
} // FIM ONTICK
//+------------------------------------------------------------------------------------------------------+
//| ON-DEINIT |
//+------------------------------------------------------------------------------------------------------+
void OnDeinit(const int reason)
{
// CSV - FECHA O ARQUIVO CSV
FileClose(AskCsv);
FileClose(BidCsv);
FileClose(LastCsv);
}