-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathData_Indicators_to_csv.c
88 lines (72 loc) · 2.46 KB
/
Data_Indicators_to_csv.c
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
// script to export values of various parameters
void export_variables(int zone, int barPeriod)
{
vars Close = series(priceClose());
vars Returns = series((Close[0]-Close[1])/Close[1]);
vars filterFast = series(LowPass(Close, 50));
vars filterSlow = series(LowPass(Close, 200));
vars filterDiff = series(filterFast[0] - filterSlow[0]);
//custom daily bars
AssetZone = zone;
FrameOffset = (60/barPeriod) * 8; //calculate at 8am
TimeFrame = AssetFrame;
vars closeDaily = series(priceClose());
vars priceDaily = series(price());
vars ReturnsDaily = series((closeDaily[0]-closeDaily[1])/closeDaily[1]);
vars filterFastDaily = series(LowPass(closeDaily, 50));
vars filterSlowDaily = series(LowPass(closeDaily, 200));
vars filterDiffDaily = series(filterFastDaily[0] - filterSlowDaily[0]);
TimeFrame = 1; //return to base time frame
//EXPORT VARIABLES
string filename = "variables.csv"; // If we don’t specify a path, the file will be saved in the root Zorro directory
if(is(INITRUN)) // specifying the header in the first run
{
char header[500];
sprintf(header, "Asset, TimeZone, UTCDateTime, LocalTime, LocalDoW, Close, DailyClose, FilterDiff, FilterDiffDaily, \n");
file_delete(filename);
file_append(filename, header);
}
char line[500];
sprintf(line, "%s, %d, %02i/%02i/%02i %04i, %04i, %01i, %.5f, %.5f, %.5f,%.5f\n", Asset, zone, day(),month(),year(), tod(), ltod(zone), ldow(zone), Close[0], closeDaily[0], filterDiff[0], filterDiffDaily[0]);
file_append("variables.csv", line);
}
function set_parameter(string parameter)
{
switch (Asset)
{
case "EUR/USD":
switch (parameter)
{
case "TimeZone" : return WET;
}
case "GBP/USD":
switch (parameter)
{
case "TimeZone" : return WET;
}
case "AUD/USD":
switch (parameter)
{
case "TimeZone" : return AEST;
}
}
}
function run()
{
StartDate = 20160101;
EndDate = 20161231;
BarPeriod = 60;
while(asset(loop("EUR/USD", "GBP/USD", "AUD/USD")))
{
int start_zone = set_parameter("TimeZone"); //switch time zone to local time of asset
export_variables(start_zone, BarPeriod);
}
}
/* OUTPUT
Asset,TimeZone,UTCDateTime,LocalTime,LocalDoW,Close,DailyClose,FilterDiff,FilterDiffDaily
EUR/USD,0,28/12/2015,1300,1300,1,1.09738,1.09886,-0.00004,0
GBP/USD,0,28/12/2015,1300,1300,1,1.49085,1.49079,0,0
AUD/USD,10,28/12/2015,1300,2300,1,0.72673,0.72608,0.00002,0
EUR/USD,0,28/12/2015,1400,1400,1,1.09749,1.09886,-0.00012,0
GBP/USD,0,28/12/2015,1400,1400,1,1.49063,1.49079,0,0
*/