bleh
[mqlkit.git] / include / BasicH.mqh
blob996542bf8a7e4d4dde0beb8e8ca7f339ede40035
1 /*=============================================================\r
2  Info:    Basic Include \r
3  Name:    BasicH.mqh\r
4  Author:  Erich Pribitzer\r
5  Version: 1.1\r
6  Update:  2011-03-29\r
7  Notes:   DIGITS Bug removed\r
8  Version: 1.0\r
9  Update:  2010-02-11 \r
10  Notes:   ---\r
11   \r
12  Copyright (C) 2010 Erich Pribitzer \r
13  Email: seizu@gmx.at\r
14 =============================================================*/\r
16 #property copyright "Copyright © 2011, Erich Pribitzer"\r
17 #property link      "http://www.wartris.com"\r
19 #include <stderror.mqh>\r
20 #include <stdlib.mqh>\r
22 #define ERR_DOUBLE_ORDER         30001\r
23 #define ERR_ORDER_SETTINGS       30002\r
24 #define ERR_TIMEFRAME_DISABLED   30003\r
25 #define ERR_LIB_NOT_INITALIZED   30004\r
27 #define PERIODS 11\r
28 #define PERIOD_M10 10\r
29 #define PERIOD_H2  120\r
31 #define UNDEF 0\r
32 #define SHORT 1\r
33 #define LONG 2\r
34 #define SHORTCORR 3\r
35 #define LONGCORR 4\r
37 extern string BA_SETTINGS = "===== BASIC SETTINGS ====";\r
38 extern bool BA_ENABLE_M1  = true;\r
39 extern bool BA_ENABLE_M5  = true;\r
40 extern bool BA_ENABLE_M10 = false;\r
41 extern bool BA_ENABLE_M15 = true;\r
42 extern bool BA_ENABLE_M30 = true;\r
43 extern bool BA_ENABLE_H1  = true;\r
44 extern bool BA_ENABLE_H2  = false;\r
45 extern bool BA_ENABLE_H4  = true;\r
46 extern bool BA_ENABLE_D1  = true;\r
47 extern bool BA_ENABLE_W1  = true;\r
48 extern bool BA_ENABLE_MN  = true;\r
49 extern int  BA_INIT_BARS  = 200;\r
52 int      timeframe[]={1,5,10,15,30,60,120,240,1440,10080,43200};\r
54 string   timeframeString[]={ "M01","M05","M10","M15","M30","H01","H02","H04","D01","W01","MN"};\r
55 string   dirString[]={ "-","S","L","s","l"};\r
58 bool   BasicInc_Initialized;\r
59 int    DIGITS=0;\r
60 double POINT =0;\r
61 bool   FIVEDIGITS = false;\r
62 int    LOTDIGITS = 0;\r
65 void BA_Init()\r
66 {\r
67    Print("Init BasicInc");   \r
68    if(Digits == 5 || (Digits == 3 && StringFind(Symbol(),"SILVER",0)==-1 ))\r
69    {\r
70       POINT =Point*10;\r
71 //      DIGITS=Digits-1;    Bug\r
72       DIGITS=Digits;   \r
73       FIVEDIGITS=true;\r
74    }\r
75    else\r
76    {\r
77       POINT =Point; \r
78       DIGITS=Digits;\r
79       FIVEDIGITS=false;\r
80    }\r
81    \r
82    if(MarketInfo(Symbol(),MODE_LOTSTEP)==0.01)\r
83    {\r
84       LOTDIGITS=2;\r
85    }\r
86    else\r
87    {\r
88       LOTDIGITS=1;\r
89    }\r
91    BasicInc_Initialized=true;\r
92 }\r
94 bool IsTimeframeEnabled(int period)\r
95 {\r
96    switch(period)\r
97    {\r
98       case 0:\r
99          return (BA_ENABLE_M1);\r
100       case 1:\r
101          return (BA_ENABLE_M5);\r
102       case 2:\r
103          return (BA_ENABLE_M10);\r
104       case 3:\r
105          return (BA_ENABLE_M15);\r
106       case 4:\r
107          return (BA_ENABLE_M30);\r
108       case 5:\r
109          return (BA_ENABLE_H1);\r
110       case 6:\r
111          return (BA_ENABLE_H2);\r
112       case 7:\r
113          return (BA_ENABLE_H4);\r
114       case 8:\r
115          return (BA_ENABLE_D1);\r
116       case 9:\r
117          return (BA_ENABLE_W1);\r
118       case 10:\r
119          return (BA_ENABLE_MN);\r
120    }\r
123 int nPeriod(int p=-1)\r
125    if(p==-1)\r
126       p=Period();\r
127       \r
128    switch(p)\r
129    {\r
130       case PERIOD_M1:\r
131          return (0);\r
132       case PERIOD_M5:\r
133          return (1);\r
134       case PERIOD_M10:\r
135          return (2);\r
136       case PERIOD_M15:\r
137          return (3);\r
138       case PERIOD_M30:\r
139          return (4);\r
140       case PERIOD_H1:\r
141          return (5);\r
142       case PERIOD_H2:\r
143          return (6);\r
144       case PERIOD_H4:\r
145          return (7);\r
146       case PERIOD_D1:\r
147          return (8);\r
148       case PERIOD_W1:\r
149          return (9);\r
150       case PERIOD_MN1:\r
151          return (10);\r
152    }\r