File size: 12,992 Bytes
3a14a3a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
{
    "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
    "name": "MQL5",
    "patterns": [
        {
            "begin": "//",
            "end": "$",
            "name": "comment.line.double-slash.mql5"
        },
        {
            "begin": "/\\*",
            "end": "\\*/",
            "name": "comment.block.mql5"
        },
        {
            "begin": "\"",
            "end": "\"",
            "name": "string.quoted.double.mql5",
            "patterns": [
                {
                    "match": "\\\\.",
                    "name": "constant.character.escape.mql5"
                }
            ]
        },
        {
            "begin": "'",
            "end": "'",
            "name": "string.quoted.single.mql5",
            "patterns": [
                {
                    "match": "\\\\.",
                    "name": "constant.character.escape.mql5"
                }
            ]
        },
        {
            "match": "\\b\\d+(\\.\\d+)?\\b",
            "name": "constant.numeric.mql5"
        },
        {
            "match": "\\b(int|double|string|bool|datetime|color|ulong|long|float|short|char|void|uint|uchar|ushort)\\b",
            "name": "storage.type"
        },
        {
            "match": "\\b(if|else|for|while|do|switch|case|default|break|continue|return|goto)\\b",
            "name": "keyword.control"
        },
        {
            "match": "\\b(input|extern|static|const|virtual|override|private|protected|public|class|struct|enum)\\b",
            "name": "storage.modifier"
        },
        {
            "match": "\\b(OrderSend|OrderSendAsync|OrderCalcMargin|OrderCalcProfit|OrderCheck|PositionSelect|PositionSelectByTicket|PositionGetSymbol|PositionGetTicket|PositionsTotal|OrdersTotal|HistorySelect|HistoryOrderSelect|HistoryDealSelect)\\b",
            "name": "support.function.trade.mql5"
        },
        {
            "match": "\\b(Buy|Sell|BuyLimit|BuyStop|SellLimit|SellStop|PositionOpen|PositionClose|PositionClosePartial|PositionCloseBy|PositionModify|OrderOpen|OrderModify|OrderDelete|SetExpertMagicNumber|SetDeviationInPoints|SetTypeFilling|SetAsyncMode)\\b",
            "name": "support.function.ctrade.mql5"
        },
        {
            "match": "\\b(TRADE_ACTION_DEAL|TRADE_ACTION_PENDING|TRADE_ACTION_SLTP|TRADE_ACTION_MODIFY|TRADE_ACTION_REMOVE|TRADE_ACTION_CLOSE_BY)\\b",
            "name": "support.constant.trade-action.mql5"
        },
        {
            "match": "\\b(ORDER_TYPE_BUY|ORDER_TYPE_SELL|ORDER_TYPE_BUY_LIMIT|ORDER_TYPE_SELL_LIMIT|ORDER_TYPE_BUY_STOP|ORDER_TYPE_SELL_STOP|ORDER_TYPE_BUY_STOP_LIMIT|ORDER_TYPE_SELL_STOP_LIMIT|ORDER_TYPE_CLOSE_BY)\\b",
            "name": "support.constant.order-type.mql5"
        },
        {
            "match": "\\b(ORDER_STATE_STARTED|ORDER_STATE_PLACED|ORDER_STATE_CANCELED|ORDER_STATE_PARTIAL|ORDER_STATE_FILLED|ORDER_STATE_REJECTED|ORDER_STATE_EXPIRED|ORDER_STATE_REQUEST_ADD|ORDER_STATE_REQUEST_MODIFY|ORDER_STATE_REQUEST_CANCEL)\\b",
            "name": "support.constant.order-state.mql5"
        },
        {
            "match": "\\b(ORDER_FILLING_FOK|ORDER_FILLING_IOC|ORDER_FILLING_RETURN|ORDER_FILLING_BOC)\\b",
            "name": "support.constant.order-filling.mql5"
        },
        {
            "match": "\\b(ORDER_TIME_GTC|ORDER_TIME_DAY|ORDER_TIME_SPECIFIED|ORDER_TIME_SPECIFIED_DAY)\\b",
            "name": "support.constant.order-time.mql5"
        },
        {
            "match": "\\b(POSITION_TYPE_BUY|POSITION_TYPE_SELL)\\b",
            "name": "support.constant.position-type.mql5"
        },
        {
            "match": "\\b(POSITION_TICKET|POSITION_TIME|POSITION_TIME_MSC|POSITION_TIME_UPDATE|POSITION_TYPE|POSITION_MAGIC|POSITION_IDENTIFIER|POSITION_REASON|POSITION_VOLUME|POSITION_PRICE_OPEN|POSITION_PRICE_CURRENT|POSITION_SL|POSITION_TP|POSITION_SWAP|POSITION_PROFIT|POSITION_SYMBOL|POSITION_COMMENT|POSITION_EXTERNAL_ID)\\b",
            "name": "support.constant.position-property.mql5"
        },
        {
            "match": "\\b(SYMBOL_EXIST|SYMBOL_DIGITS|SYMBOL_SPREAD|SYMBOL_TRADE_MODE|SYMBOL_TRADE_CALC_MODE|SYMBOL_TRADE_TICK_SIZE|SYMBOL_TRADE_TICK_VALUE|SYMBOL_VOLUME_MIN|SYMBOL_VOLUME_MAX|SYMBOL_VOLUME_STEP|SYMBOL_SWAP_LONG|SYMBOL_SWAP_SHORT|SYMBOL_MARGIN_INITIAL|SYMBOL_BID|SYMBOL_ASK|SYMBOL_POINT|SYMBOL_TRADE_STOPS_LEVEL)\\b",
            "name": "support.constant.symbol-info.mql5"
        },
        {
            "match": "\\b(SYMBOL_TRADE_MODE_DISABLED|SYMBOL_TRADE_MODE_LONGONLY|SYMBOL_TRADE_MODE_SHORTONLY|SYMBOL_TRADE_MODE_CLOSEONLY|SYMBOL_TRADE_MODE_FULL)\\b",
            "name": "support.constant.symbol-trade-mode.mql5"
        },
        {
            "match": "\\b(SYMBOL_FILLING_FOK|SYMBOL_FILLING_IOC)\\b",
            "name": "support.constant.symbol-filling.mql5"
        },
        {
            "match": "\\b(ACCOUNT_LOGIN|ACCOUNT_TRADE_MODE|ACCOUNT_LEVERAGE|ACCOUNT_LIMIT_ORDERS|ACCOUNT_MARGIN_SO_MODE|ACCOUNT_TRADE_ALLOWED|ACCOUNT_TRADE_EXPERT|ACCOUNT_BALANCE|ACCOUNT_CREDIT|ACCOUNT_PROFIT|ACCOUNT_EQUITY|ACCOUNT_MARGIN|ACCOUNT_MARGIN_FREE|ACCOUNT_MARGIN_LEVEL|ACCOUNT_MARGIN_SO_CALL|ACCOUNT_MARGIN_SO_SO|ACCOUNT_CURRENCY|ACCOUNT_COMPANY|ACCOUNT_NAME|ACCOUNT_SERVER)\\b",
            "name": "support.constant.account-info.mql5"
        },
        {
            "match": "\\b(ACCOUNT_TRADE_MODE_DEMO|ACCOUNT_TRADE_MODE_CONTEST|ACCOUNT_TRADE_MODE_REAL)\\b",
            "name": "support.constant.account-trade-mode.mql5"
        },
        {
            "match": "\\b(ACCOUNT_STOPOUT_MODE_PERCENT|ACCOUNT_STOPOUT_MODE_MONEY)\\b",
            "name": "support.constant.account-stopout.mql5"
        },
        {
            "match": "\\b(DEAL_TYPE_BUY|DEAL_TYPE_SELL|DEAL_TYPE_BALANCE|DEAL_TYPE_CREDIT|DEAL_TYPE_CHARGE|DEAL_TYPE_CORRECTION|DEAL_TYPE_BONUS|DEAL_TYPE_COMMISSION|DEAL_TYPE_COMMISSION_DAILY|DEAL_ENTRY_IN|DEAL_ENTRY_OUT|DEAL_ENTRY_INOUT|DEAL_ENTRY_OUT_BY|DEAL_TICKET|DEAL_ORDER|DEAL_TIME|DEAL_TYPE|DEAL_ENTRY|DEAL_MAGIC|DEAL_REASON|DEAL_COMMISSION|DEAL_SWAP|DEAL_PROFIT|DEAL_VOLUME|DEAL_PRICE|DEAL_SYMBOL|DEAL_COMMENT)\\b",
            "name": "support.constant.deal.mql5"
        },
        {
            "match": "\\b(iTime|iOpen|iHigh|iLow|iClose|iVolume|iSpread|iTickVolume|iRealVolume|iBars|iBarShift|iHighest|iLowest|CopyRates|CopyTime|CopyOpen|CopyHigh|CopyLow|CopyClose|CopyTickVolume|CopyRealVolume|CopySpread|CopyTicks|CopySeries)\\b",
            "name": "support.function.timeseries.mql5"
        },
        {
            "match": "\\b(PERIOD_CURRENT|PERIOD_M1|PERIOD_M2|PERIOD_M3|PERIOD_M4|PERIOD_M5|PERIOD_M6|PERIOD_M10|PERIOD_M12|PERIOD_M15|PERIOD_M20|PERIOD_M30|PERIOD_H1|PERIOD_H2|PERIOD_H3|PERIOD_H4|PERIOD_H6|PERIOD_H8|PERIOD_H12|PERIOD_D1|PERIOD_W1|PERIOD_MN1)\\b",
            "name": "support.constant.timeframe.mql5"
        },
        {
            "match": "\\b(SymbolInfoDouble|SymbolInfoInteger|SymbolInfoString|SymbolInfoTick|SymbolInfoSessionQuote|SymbolInfoSessionTrade|SymbolName|SymbolSelect|SymbolsTotal|SymbolExist|MarketBookAdd|MarketBookRelease|MarketBookGet)\\b",
            "name": "support.function.symbol-info.mql5"
        },
        {
            "match": "\\b(AccountInfoDouble|AccountInfoInteger|AccountInfoString)\\b",
            "name": "support.function.account-info.mql5"
        },
        {
            "match": "\\b(Print|PrintFormat|Alert|Comment|SendNotification|SendMail|SendFTP|Sleep|GetTickCount|GetMicrosecondCount|MessageBox|PlaySound|ExpertRemove|TerminalClose)\\b",
            "name": "support.function.common.mql5"
        },
        {
            "match": "\\b(CharToString|StringToCharArray|TimeToString|StringToTime|DoubleToString|IntegerToString|NormalizeDouble|StringToDouble|ColorToString|StringToColor|EnumToString)\\b",
            "name": "support.function.conversion.mql5"
        },
        {
            "match": "\\b(StringLen|StringFind|StringSubstr|StringReplace|StringTrimLeft|StringTrimRight|StringSplit|StringConcatenate|StringFormat|StringCompare|StringToLower|StringToUpper)\\b",
            "name": "support.function.string.mql5"
        },
        {
            "match": "\\b(ArraySize|ArrayResize|ArrayInitialize|ArrayFree|ArrayCopy|ArraySort|ArrayMaximum|ArrayMinimum|ArrayBsearch|ArraySetAsSeries|ArrayIsSeries|ArrayIsDynamic)\\b",
            "name": "support.function.array.mql5"
        },
        {
            "match": "\\b(MathAbs|MathCeil|MathFloor|MathRound|MathPow|MathSqrt|MathLog|MathLog10|MathExp|MathMod|MathMax|MathMin|MathSin|MathCos|MathTan|MathArcsin|MathArccos|MathArctan|MathRand|MathSrand|MathIsValidNumber)\\b",
            "name": "support.function.math.mql5"
        },
        {
            "match": "\\b(FileOpen|FileClose|FileDelete|FileFlush|FileSeek|FileTell|FileRead|FileWrite|FileReadArray|FileWriteArray|FileReadDouble|FileReadInteger|FileReadString|FileWriteDouble|FileWriteInteger|FileWriteString|FileIsExist|FileCopy|FileMove|FileSize)\\b",
            "name": "support.function.file.mql5"
        },
        {
            "match": "\\b(MqlRates|MqlTick|MqlDateTime|MqlBookInfo|MqlTradeRequest|MqlTradeCheckResult|MqlTradeResult|MqlTradeTransaction|MqlParam|MqlSymbolInfo)\\b",
            "name": "support.type.struct.mql5"
        },
        {
            "match": "\\b(CTrade|CPositionInfo|COrderInfo|CDealInfo|CHistoryOrderInfo|CSymbolInfo|CAccountInfo|CTerminalInfo|CExpertBase|CArray|CArrayObj|CArrayInt|CArrayDouble|CArrayString|CObject|CList|CHashMap|CDictionary|CIndicators|CIndicatorBuffer|CChartObject|CChartObjectText|CChartObjectLine|CChartObjectTrend)\\b",
            "name": "support.class.stdlib.mql5"
        },
        {
            "match": "\\b(_Symbol|_Digits|_Point|_Period|_LastError|_StopFlag|_UninitReason|_RandomSeed|_IsX64|Ask|Bid|Bars|Volume|Time|Open|High|Low|Close)\\b",
            "name": "support.variable.predefined.mql5"
        },
        {
            "match": "\\b(OnInit|OnDeinit|OnStart|OnTick|OnTimer|OnTrade|OnTradeTransaction|OnBookEvent|OnChartEvent|OnCalculate|OnTester|OnTesterInit|OnTesterDeinit|OnTesterPass)\\b",
            "name": "support.function.event.mql5"
        },
        {
            "match": "\\b(INIT_SUCCEEDED|INIT_FAILED|INIT_PARAMETERS_INCORRECT|INIT_AGENT_NOT_SUITABLE)\\b",
            "name": "support.constant.init-retcode.mql5"
        },
        {
            "match": "\\b(TERMINAL_CONNECTED|TERMINAL_TRADE_ALLOWED|TERMINAL_DLLS_ALLOWED|TERMINAL_EMAIL_ENABLED|TERMINAL_FTP_ENABLED|TERMINAL_NOTIFICATIONS_ENABLED|TERMINAL_MAXBARS|TERMINAL_CODEPAGE|TERMINAL_LANGUAGE|TERMINAL_COMPANY|TERMINAL_NAME|TERMINAL_PATH|TERMINAL_DATA_PATH)\\b",
            "name": "support.constant.terminal.mql5"
        },
        {
            "match": "\\b(OBJPROP_COLOR|OBJPROP_STYLE|OBJPROP_WIDTH|OBJPROP_BACK|OBJPROP_RAY_LEFT|OBJPROP_RAY_RIGHT|OBJPROP_SELECTABLE|OBJPROP_SELECTED|OBJPROP_TIME|OBJPROP_PRICE|OBJPROP_ANCHOR|OBJPROP_TEXT|OBJPROP_FONTSIZE|OBJPROP_CORNER|OBJPROP_XDISTANCE|OBJPROP_YDISTANCE)\\b",
            "name": "support.constant.objprop.mql5"
        },
        {
            "match": "\\b(true|false)\\b",
            "name": "constant.language.boolean"
        },
        {
            "match": "\\b(DBL_MAX|DBL_MIN|DBL_EPSILON|INT_MAX|INT_MIN|ULONG_MAX|LONG_MAX|LONG_MIN|EMPTY_VALUE|EMPTY|CLR_NONE|WRONG_VALUE|NULL|CHARTS_MAX|WHOLE_ARRAY)\\b",
            "name": "support.constant.numeric-limits.mql5"
        },
        {
            "match": "\\b(clrRed|clrGreen|clrBlue|clrYellow|clrWhite|clrBlack|clrGray|clrSilver|clrOrange|clrPurple|clrMagenta|clrCyan|clrLime|clrMaroon|clrNavy|clrOlive|clrTeal|clrAqua|clrFuchsia|clrPink|clrGold|clrLavender|clrCoral|clrCrimson|clrDarkGreen|clrDarkBlue|clrDarkRed|clrDodgerBlue|clrFireBrick|clrForestGreen|clrIndigo|clrKhaki|clrMediumBlue|clrNone)\\b",
            "name": "support.constant.color.mql5"
        },
        {
            "match": "\\b(CHART_IS_OBJECT|CHART_BRING_TO_TOP|CHART_SHIFT|CHART_AUTOSCROLL|CHART_MODE|CHART_FOREGROUND|CHART_SHOW_GRID|CHART_SHOW_VOLUMES|CHART_SHOW_OBJECT_DESCR|CHART_VISIBLE_BARS|CHART_ID|CHART_WINDOW_HANDLE|CHART_FIRST_VISIBLE_BAR|CHART_PRICE_MIN|CHART_PRICE_MAX|CHART_COMMENT|CHART_SCALE|CHART_COLOR_BACKGROUND)\\b",
            "name": "support.constant.chart.mql5"
        },
        {
            "match": "\\b(OBJ_VLINE|OBJ_HLINE|OBJ_TREND|OBJ_TRENDBYANGLE|OBJ_CHANNEL|OBJ_STDDEVCHANNEL|OBJ_REGRESSION|OBJ_PITCHFORK|OBJ_GANNLINE|OBJ_GANNFAN|OBJ_GANNGRID|OBJ_FIBO|OBJ_FIBOTIMES|OBJ_FIBOFAN|OBJ_FIBOARC|OBJ_FIBOCHANNEL|OBJ_EXPANSION|OBJ_ELLIPSE|OBJ_ARROW|OBJ_ARROW_BUY|OBJ_ARROW_SELL|OBJ_TEXT|OBJ_LABEL|OBJ_BUTTON|OBJ_CHART|OBJ_BITMAP|OBJ_BITMAP_LABEL|OBJ_EDIT|OBJ_RECTANGLE|OBJ_RECTANGLE_LABEL|OBJ_EVENT)\\b",
            "name": "support.constant.object-type.mql5"
        }
    ],
    "scopeName": "source.mql5"
}