forked from FelipeGaldino/MQL5-Experts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathExpert_SalvaTicks_Csv.mq5
78 lines (63 loc) · 3.35 KB
/
Expert_SalvaTicks_Csv.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
//+------------------------------------------------------------------------------------------------------+
//| |
//| SALVA A ESTRUTURA MqlTick EM UM ARQUIVO CSV |
//| |
//+------------------------------------------------------------------------------------------------------+
string LocalSave = TerminalInfoString(TERMINAL_DATA_PATH);
// CSV - VARIAVEIS
int CsvFileCopia;
MqlTick Tick_Last;
// TIME - VARIAVEIS
string TickTime; // TICK - TIME
int TimeModel = TIME_DATE | TIME_MINUTES | TIME_SECONDS; // TIME - FORMATO
//+------------------------------------------------------------------------------------------------------+
//| ON-INIT |
//+------------------------------------------------------------------------------------------------------+
int OnInit()
{
// CRIA ARQUIVO CSV
CsvFileCopia = FileOpen("MeuArquivoTicks.csv", FILE_CSV | FILE_READ | FILE_WRITE | FILE_REWRITE, '\t');
// CRIA AS COLUNAS DOS ARQUIVO CSV
FileWrite(CsvFileCopia, "Time_Msc", "DataTime", "Bid", "Ask", "Last", "Volume", "Volume_real", "Spread");
// MOSTRA ONDE SALVOU O ARQUIVO
Print("FileOpen OK - O arquivo Foi Criado Em : " + LocalSave + "\\MQL5\\Files");
return (INIT_SUCCEEDED);
}
//+------------------------------------------------------------------------------------------------------+
//| ON-TICK |
//+------------------------------------------------------------------------------------------------------+
void OnTick()
{
if (CsvFileCopia != INVALID_HANDLE)
{
// POSICIONA O PONTEIRO NO FINAL DO ARQUIVO
FileSeek(CsvFileCopia, 0, SEEK_END);
}
else
Print("FileOpen Falhou, Erro ", GetLastError());
// CSV - ESCREVE NO ARQUIVO CSV
if (CsvFileCopia != INVALID_HANDLE)
{
if (SymbolInfoTick(Symbol(), Tick_Last))
{
// TIME - CONVERTE OS VALORES PARA STRING
TickTime = (TimeToString(Tick_Last.time, TimeModel));
// ESCREVE NO ARQUIVO
FileWrite(CsvFileCopia, Tick_Last.time_msc, TickTime, Tick_Last.bid,
Tick_Last.ask, Tick_Last.last, Tick_Last.volume,
Tick_Last.volume_real,
StringFormat("%.05f", NormalizeDouble(MathAbs(Tick_Last.bid - Tick_Last.ask), 5)));
Print("---------ESCREVEU NO ARQUIVO-------------");
}
else
Print("ERROR: SymbolInfoTick() failed to validate tick.");
}
} // FIM ONTICK
//+------------------------------------------------------------------------------------------------------+
//| ON-DEINIT |
//+------------------------------------------------------------------------------------------------------+
void OnDeinit(const int reason)
{
// CSV - FECHA O ARQUIVO CSV
FileClose(CsvFileCopia);
}