Sei sulla pagina 1di 6028

RIFERIMENTO al Linguaggio

MQL5
per il terminale client MetaTrader 5

Studia l' MQL5 e risolvi ogni attività:


• Crea i tuoi indicatori di analisi tecnica di
qualunque complessità

• Usa l'autotrading: sistemi di trading


automatizzato per lavorare in vari mercati
finanziari

• Sviluppa i tuoi utensili analitici sui successi


matematici e sui metodi tradizionali

• Scrivi sistemi informativi di trading per


risolvere una varia gamma di attività (trading,
monitoraggio, allarme, ecc.)

© 2000-2021, MetaQuotes Ltd


2 Content

Content
MQL5 Riferimento 68
1 Le basi del linguaggio
................................................................................................. 70
Sintassi ............................................................................................................................71
Commenti......................................................................................................................... 72
Identificatori
......................................................................................................................... 73
Parole riservate
......................................................................................................................... 74
Tipi di Dati ............................................................................................................................76
Tipi Integer......................................................................................................................... 77
Tipi Char, Short,................................................................................................................
Int e Long 78
Costanti Carattere
................................................................................................................ 82
Tipo Datetime................................................................................................................ 86
Tipo Colore ................................................................................................................ 87
Tipo Bool ................................................................................................................ 88
Enumerazioni................................................................................................................ 89
Tipi Reali (double,
.........................................................................................................................
float) 91
Tipo Stringa......................................................................................................................... 96
Strutture,.........................................................................................................................
Classi e Interfacce 97
Oggetto .........................................................................................................................
Array Dinamico 124
Typecasting
......................................................................................................................... 125
Tipo Void.........................................................................................................................
e Costante NULL 130
Tipi definiti
.........................................................................................................................
dall'utente 131
Puntatori.........................................................................................................................
agli Oggetti 141
Riferimento.
.........................................................................................................................
Il Modifier & e la parola chiave this 144
Operazioni............................................................................................................................146
ed Espressioni
Espressioni
......................................................................................................................... 147
Operazioni
.........................................................................................................................
Aritmetiche 148
Operazioni
.........................................................................................................................
di Assegnazione 149
Operazioni
.........................................................................................................................
di Assegnazione 150
Operazioni
.........................................................................................................................
Booleani 151
Operazioni
.........................................................................................................................
bit per bit 153
Altre Operazioni
......................................................................................................................... 156
Regole di.........................................................................................................................
Precedenza 160
Operatori ............................................................................................................................162
Operatore
.........................................................................................................................
Composto 164
Operatore
.........................................................................................................................
Espressione 165
Operatore
.........................................................................................................................
Return 166
Operatore
.........................................................................................................................
Condizionale if-else 167
Operatore
.........................................................................................................................
Ternario ?: 168
Operatore
.........................................................................................................................
Switch 170
Operatore
.........................................................................................................................
Ciclico While 172
Operatore
.........................................................................................................................
Ciclico for 173
Operatore
.........................................................................................................................
Ciclico do while 175
Operatore
.........................................................................................................................
Break 176
Operatore
.........................................................................................................................
Continue 177
Operatore
.........................................................................................................................
new di Creazione Oggetto 178
Operatore
.........................................................................................................................
Cancellatore Oggetto delete 180
Funzioni ............................................................................................................................181
Chiamate.........................................................................................................................
di funzione 183
Passaggio.........................................................................................................................
di Parametri 184
L'overloading
.........................................................................................................................
di funzioni 187
Operazione
.........................................................................................................................
Overloading 190
Descrizione
.........................................................................................................................
delle Funzioni Esterne 204
Esportazione
.........................................................................................................................
di funzioni 206

© 2000-2021, MetaQuotes Ltd


3 Content

Funzioni .........................................................................................................................
di Gestione degli Eventi 207
Variabili ............................................................................................................................219
Variabili .........................................................................................................................
locali 222
Parametri .........................................................................................................................
Formali 224
Variabili .........................................................................................................................
Statiche 226
Variabili .........................................................................................................................
Globali 228
Variabili .........................................................................................................................
di Input 229
Variabili .........................................................................................................................
Esterne 236
Inizializzazione
.........................................................................................................................
delle Variabili 237
Visibilità.........................................................................................................................
Ambito(_*scope) e Durata delle Variabili(_*lifetime) 239
Creazione .........................................................................................................................
ed Eliminazione di oggetti 241
............................................................................................................................244
Preproc essore
Sostituzione
.........................................................................................................................
Macro (#define) 246
Proprietà.........................................................................................................................
del programma (#property) 249
Includere.........................................................................................................................
Files (# include) 257
Funzioni .........................................................................................................................
di Importazione (#import) 258
Conditional
.........................................................................................................................
Compilation (#ifdef, #ifndef, #else, #endif) 261
............................................................................................................................263
Programmazione Ad Oggetti
Incapsulamento
.........................................................................................................................
ed estensibilità dei Tipi 265
Ereditarietà
......................................................................................................................... 268
Polimorfismo
......................................................................................................................... 273
L' Overload
......................................................................................................................... 277
Funzioni .........................................................................................................................
Virtuali 278
I Membri.........................................................................................................................
Statici di una classe 282
Templates.........................................................................................................................
di Funzioni 286
Templates.........................................................................................................................
delle Classi 290
Classi Astratte
......................................................................................................................... 295
............................................................................................................................297
Namespac es
2 Costanti, Enumerazioni
.................................................................................................
e Strutture 300
Costanti del............................................................................................................................301
Grafic o
Tipi di Eventi
.........................................................................................................................
del Grafico 302
Timeframes.........................................................................................................................
del Grafico 310
Proprietà.........................................................................................................................
Grafico 312
Posizionamento
.........................................................................................................................
Costanti 320
Rappresentazione
.........................................................................................................................
Grafico 321
Esempi di.........................................................................................................................
Lavoro con il grafico Chart 323
............................................................................................................................381
Costanti Oggetti
Tipi di oggetti
......................................................................................................................... 382
OBJ_VLINE ................................................................................................................ 384
OBJ_HLINE ................................................................................................................ 389
OBJ_TREND ................................................................................................................ 394
OBJ_TRENDB................................................................................................................
Y ANGLE 401
OBJ_C Y CLES................................................................................................................ 407
OBJ_ARROWED ................................................................................................................
_LINE 413
OBJ_C HANNEL ................................................................................................................ 419
OBJ_STDDEVC ................................................................................................................
HANNEL 426
OBJ_REGRESSION ................................................................................................................ 433
OBJ_PITC HFOR ................................................................................................................
K 439
OBJ_GANNLINE ................................................................................................................ 447
OBJ_GANNFAN ................................................................................................................ 454
OBJ_GANNGRID ................................................................................................................ 461
OBJ_FIBO ................................................................................................................ 468
OBJ_FIBOTIMES ................................................................................................................ 475
OBJ_FIBOFAN ................................................................................................................ 482
OBJ_FIBOARC ................................................................................................................ 489
OBJ_FIBOC H................................................................................................................
ANNEL 496
OBJ_EX PANSION ................................................................................................................ 504
OBJ_ELLIOTWAVE5................................................................................................................ 512

© 2000-2021, MetaQuotes Ltd


4 Content

OBJ_ELLIOTWAVE3 ................................................................................................................ 520


OBJ_RECTANGLE ................................................................................................................ 527
OBJ_TRIANGLE ................................................................................................................ 533
OBJ_ELLIPSE................................................................................................................ 540
OBJ_ARROW................................................................................................................
_THUMB_UP 547
OBJ_ARROW................................................................................................................
_THUMB_DOWN 553
OBJ_ARROW................................................................................................................
_UP 559
OBJ_ARROW................................................................................................................
_DOWN 565
OBJ_ARROW................................................................................................................
_STOP 571
OBJ_ARROW................................................................................................................
_C HEC K 577
OBJ_ARROW................................................................................................................
_LEFT_PRICE 583
OBJ_ARROW................................................................................................................
_RIGHT_PRICE 588
OBJ_ARROW................................................................................................................
_BUY 593
OBJ_ARROW................................................................................................................
_SELL 598
OBJ_ARROW................................................................................................................ 603
OBJ_TEX T ................................................................................................................ 609
OBJ_LABEL ................................................................................................................ 615
OBJ_BUTTON................................................................................................................ 623
OBJ_C HART ................................................................................................................ 630
OBJ_BITMAP................................................................................................................ 637
OBJ_BITMAP................................................................................................................
_LABEL 644
OBJ_EDIT ................................................................................................................ 651
OBJ_EVENT ................................................................................................................ 658
OBJ_RECTANGLE ................................................................................................................
_LABEL 663
Object Properties
......................................................................................................................... 669
Metodi di.........................................................................................................................
Binding Ogetti 677
Angolo del.........................................................................................................................
Grafico 682
Visibilità.........................................................................................................................
degli oggetti 685
Livelli delle
.........................................................................................................................
Elliott Wave (_* Onde di Elliot) 688
Oggetti Gann
......................................................................................................................... 689
I Web Colors
......................................................................................................................... 691
Wingdings ......................................................................................................................... 693
............................................................................................................................694
Costanti Indic atore
Costanti.........................................................................................................................
Prezzo 695
Metodi di.........................................................................................................................
smussamento 698
Linee Indicatori
......................................................................................................................... 699
Stili di Disegno
......................................................................................................................... 701
Proprietà.........................................................................................................................
Indicatore Personalizzato 705
Tipi di indicatori
......................................................................................................................... 708
Identificatori
.........................................................................................................................
Tipo di Dati 710
............................................................................................................................711
Stato dell'Ambiente
Proprietà.........................................................................................................................
del Terminale Client 712
Proprietà.........................................................................................................................
dell' Esecuzione di Programmi MQL5 718
Proprietà.........................................................................................................................
dei Simboli 721
Proprietà.........................................................................................................................
Account 747
Statistiche
.........................................................................................................................
Testing 752
Costanti di ............................................................................................................................756
Trade
Proprietà.........................................................................................................................
del database della CroniStoria 757
Proprietà.........................................................................................................................
Ordini 758
Proprietà.........................................................................................................................
Posizione 763
Proprietà.........................................................................................................................
Affari(Deal) 767
Tipi di Operazioni
.........................................................................................................................
di Trade 772
Tipi di Transazioni
.........................................................................................................................
di Trade 784
Gli ordini.........................................................................................................................
di Trade nel DOM 787
Proprietà.........................................................................................................................
dei Segnali 788
............................................................................................................................790
Costanti Nominate
Sostituzioni
.........................................................................................................................
Macro predefinite 791
Costanti.........................................................................................................................
Matematiche 797

© 2000-2021, MetaQuotes Ltd


5 Content

Costanti.........................................................................................................................
di tipo numerico 799
Codici del
.........................................................................................................................
Motivo di DeInizializzazione 802
Controllo.........................................................................................................................
del Puntatore Oggetti 804
Altre costanti
......................................................................................................................... 805
............................................................................................................................809
Strutture Dati
Struttura.........................................................................................................................
del Tipo Data 810
Struttura.........................................................................................................................
dei parametri di Input 811
Struttura.........................................................................................................................
Dati dello Storico 812
Struttura.........................................................................................................................
del Depth of Market 813
Struttura.........................................................................................................................
Richiesta di Trade 814
Struttura.........................................................................................................................
di Risultati di Richiesta Controllo 828
Struttura.........................................................................................................................
di un Risultato di Richiesta di Trade 829
Struttura.........................................................................................................................
di una Transazione di Trade 833
Struttura.........................................................................................................................
per i Prezzi Correnti 841
Economic.........................................................................................................................
Сalendar structures 843
............................................................................................................................848
I c odic i di Errore e di Avvertenza
Codici di.........................................................................................................................
Ritorno del Trade Server 849
Avvisi del.........................................................................................................................
compilatore 853
Errori di .........................................................................................................................
compilazione 857
Errori di .........................................................................................................................
Runtime 871
............................................................................................................................886
Costanti Input/Output
Flags di Apertura
.........................................................................................................................
File 887
Proprietà.........................................................................................................................
File 890
Posizione.........................................................................................................................
In-File 892
L'uso di una
.........................................................................................................................
tabella Codici 893
MessageBo .........................................................................................................................
x 894
3 Programmi MQL5
................................................................................................. 896
Esec uzione............................................................................................................................897
dei Programmi
............................................................................................................................905
Trade Permission
............................................................................................................................909
Eventi Terminale Client
Risorse ............................................................................................................................913
............................................................................................................................925
Chiamata delle funzioni importate
............................................................................................................................927
Errori di Runtime
............................................................................................................................928
Testare Strategie di Trading
4 Variabili predefinite
................................................................................................. 954
_AppliedTo............................................................................................................................955
_Digits ............................................................................................................................957
_Point ............................................................................................................................958
_LastError ............................................................................................................................959
_Period ............................................................................................................................960
_RandomSeed............................................................................................................................961
_StopFlag ............................................................................................................................962
_Symbol ............................................................................................................................963
............................................................................................................................964
_UninitReason
_IsX 64 ............................................................................................................................965
5 Funzioni Comuni
................................................................................................. 966
Alert ............................................................................................................................968
............................................................................................................................969
Chec kPointer
Comment ............................................................................................................................971
............................................................................................................................973
CryptEnc ode
............................................................................................................................975
CryptDec ode
DebugBreak............................................................................................................................976
............................................................................................................................977
ExpertRemove
GetPointer ............................................................................................................................979
............................................................................................................................983
GetTic kCount
............................................................................................................................984
GetTic kCount64
GetMic rosec............................................................................................................................985
ondCount

© 2000-2021, MetaQuotes Ltd


6 Content

MessageBox............................................................................................................................987
............................................................................................................................988
PeriodSec onds
PlaySound ............................................................................................................................989
Print ............................................................................................................................990
PrintFormat............................................................................................................................992
............................................................................................................................998
ResetLastError
............................................................................................................................999
Resourc eCreate
............................................................................................................................1001
Resourc eFree
............................................................................................................................1002
Resourc eReadImage
............................................................................................................................1003
Resourc eSave
............................................................................................................................1004
SetReturnError
............................................................................................................................1005
SetUserError
Sleep ............................................................................................................................1006
............................................................................................................................1007
TerminalClose
............................................................................................................................1009
TesterStatistic s
TesterStop............................................................................................................................1010
............................................................................................................................1011
TesterDeposit
............................................................................................................................1012
TesterHideIndic ators
............................................................................................................................1014
TesterWithdraw al
............................................................................................................................1015
TranslateKey
ZeroMemory............................................................................................................................1016
6 Funzioni di Array
................................................................................................. 1017
............................................................................................................................1019
ArrayBsearc h
ArrayCopy............................................................................................................................1023
............................................................................................................................1028
ArrayCompare
ArrayFree............................................................................................................................1029
............................................................................................................................1038
ArrayGetAsSeries
............................................................................................................................1041
ArrayInitialize
ArrayFill ............................................................................................................................1043
............................................................................................................................1045
ArrayIsDynamic
............................................................................................................................1047
ArrayIsSeries
............................................................................................................................1049
ArrayMaximum
............................................................................................................................1060
ArrayMinimum
ArrayPrint............................................................................................................................1071
ArrayRange............................................................................................................................1074
............................................................................................................................1075
ArrayResize
............................................................................................................................1078
ArrayInsert
............................................................................................................................1081
ArrayRemove
............................................................................................................................1083
ArrayReverse
............................................................................................................................1085
ArraySetAsSeries
ArraySize ............................................................................................................................1088
ArraySort............................................................................................................................1090
ArraySw ap............................................................................................................................1095
7 Funzioni di Conversione
................................................................................................. 1097
............................................................................................................................1099
CharToString
............................................................................................................................1100
CharArrayToString
............................................................................................................................1101
CharArrayToStruc t
............................................................................................................................1102
Struc tToCharArray
............................................................................................................................1103
ColorToARGB
............................................................................................................................1105
ColorToString
............................................................................................................................1106
DoubleToString
............................................................................................................................1107
EnumToString
............................................................................................................................1109
IntegerToString
............................................................................................................................1110
ShortToString
............................................................................................................................1111
ShortArrayToString
............................................................................................................................1112
TimeToString
............................................................................................................................1113
NormalizeDouble
............................................................................................................................1115
StringToCharArray
© 2000-2021, MetaQuotes Ltd
7 Content

............................................................................................................................1116
StringToColor
............................................................................................................................1117
StringToDouble
............................................................................................................................1118
StringToInteger
............................................................................................................................1119
StringToShortArray
............................................................................................................................1120
StringToTime
............................................................................................................................1121
StringFormat
8 Funzioni Matematiche
................................................................................................. 1125
MathAbs ............................................................................................................................1127
............................................................................................................................1128
MathArc c os
MathArc sin............................................................................................................................1129
MathArc tan............................................................................................................................1130
............................................................................................................................1131
MathArc tan2
............................................................................................................................1132
MathClassify
MathCeil ............................................................................................................................1134
MathCos ............................................................................................................................1135
MathExp ............................................................................................................................1136
MathFloor............................................................................................................................1137
MathLog ............................................................................................................................1138
MathLog10............................................................................................................................1139
MathMax ............................................................................................................................1140
MathMin ............................................................................................................................1141
MathMod ............................................................................................................................1142
MathPow ............................................................................................................................1143
MathRand ............................................................................................................................1144
MathRound............................................................................................................................1145
MathSin ............................................................................................................................1146
MathSq rt ............................................................................................................................1147
MathSrand............................................................................................................................1148
MathTan ............................................................................................................................1151
............................................................................................................................1152
MathIsValidNumber
MathExpm1 ............................................................................................................................1153
MathLog1p............................................................................................................................1154
............................................................................................................................1155
MathArc c osh
............................................................................................................................1156
MathArc sinh
............................................................................................................................1157
MathArc tanh
MathCosh ............................................................................................................................1158
MathSinh ............................................................................................................................1159
MathTanh ............................................................................................................................1160
MathSw ap............................................................................................................................1161
9 Funzioni Stringa
................................................................................................. 1162
StringAdd ............................................................................................................................1164
............................................................................................................................1166
StringBufferLen
............................................................................................................................1167
StringCompare
StringConc............................................................................................................................1169
atenate
StringFill ............................................................................................................................1170
StringFind............................................................................................................................1171
............................................................................................................................1172
StringGetCharac ter
StringInit ............................................................................................................................1173
StringLen ............................................................................................................................1174
............................................................................................................................1175
StringSetLength
............................................................................................................................1176
StringReplac e
............................................................................................................................1177
StringReserve
............................................................................................................................1179
StringSetCharac ter
StringSplit............................................................................................................................1181
............................................................................................................................1183
StringSubstr
StringToLow............................................................................................................................1184
er
............................................................................................................................1185
StringToUpper
............................................................................................................................1186
StringTrimLeft
© 2000-2021, MetaQuotes Ltd
8 Content

............................................................................................................................1187
StringTrimRight
10 Data ed Ora ................................................................................................. 1188
............................................................................................................................1189
TimeCurrent
............................................................................................................................1190
TimeTradeServer
TimeLoc al............................................................................................................................1191
TimeGMT ............................................................................................................................1192
............................................................................................................................1193
TimeDaylightSavings
............................................................................................................................1194
TimeGMTOffset
............................................................................................................................1195
TimeToStruc t
............................................................................................................................1196
Struc tToTime
11 Informazioni.................................................................................................
account 1197
............................................................................................................................1198
Ac c ountInfoDouble
............................................................................................................................1199
Ac c ountInfoInteger
............................................................................................................................1201
Ac c ountInfoString
12 Verifica Stato................................................................................................. 1202
............................................................................................................................1203
GetLastError
IsStopped ............................................................................................................................1204
............................................................................................................................1205
UninitializeReason
............................................................................................................................1206
TerminalInfoInteger
............................................................................................................................1207
TerminalInfoDouble
............................................................................................................................1208
TerminalInfoString
............................................................................................................................1209
MQLInfoInteger
............................................................................................................................1210
MQLInfoString
Symbol ............................................................................................................................1211
Period ............................................................................................................................1212
Digits ............................................................................................................................1213
Point ............................................................................................................................1214
13 Gestione degli
.................................................................................................
Eventi 1215
OnStart ............................................................................................................................1217
OnInit ............................................................................................................................1220
OnDeinit ............................................................................................................................1223
OnTic k ............................................................................................................................1226
............................................................................................................................1232
OnCalc ulate
OnTimer ............................................................................................................................1236
OnTrade ............................................................................................................................1239
............................................................................................................................1244
OnTradeTransac tion
............................................................................................................................1250
OnBookEvent
............................................................................................................................1253
OnChartEvent
OnTester ............................................................................................................................1260
............................................................................................................................1267
OnTesterInit
............................................................................................................................1274
OnTesterDeinit
............................................................................................................................1275
OnTesterPass
14 Market Info ................................................................................................. 1276
............................................................................................................................1278
SymbolsTotal
............................................................................................................................1279
SymbolExist
............................................................................................................................1280
SymbolName
............................................................................................................................1281
SymbolSelec t
............................................................................................................................1282
SymbolIsSync hronized
............................................................................................................................1283
SymbolInfoDouble
............................................................................................................................1285
SymbolInfoInteger
............................................................................................................................1287
SymbolInfoString
............................................................................................................................1289
SymbolInfoMarginRate
............................................................................................................................1290
SymbolInfoTic k
............................................................................................................................1291
SymbolInfoSessionQuote
............................................................................................................................1292
SymbolInfoSessionTrade
............................................................................................................................1293
MarketBookAdd

© 2000-2021, MetaQuotes Ltd


9 Content

............................................................................................................................1294
MarketBookRelease
............................................................................................................................1295
MarketBookGet
15 Calendario Economico
................................................................................................. 1296
............................................................................................................................1297
CalendarCountryById
............................................................................................................................1299
CalendarEventById
............................................................................................................................1302
CalendarValueById
............................................................................................................................1305
CalendarCountries
............................................................................................................................1307
CalendarEventByCountry
............................................................................................................................1309
CalendarEventByCurrenc y
............................................................................................................................1311
CalendarValueHistoryByEvent
............................................................................................................................1314
CalendarValueHistory
............................................................................................................................1317
CalendarValueLastByEvent
............................................................................................................................1322
CalendarValueLast
16 Accesso alle Timeseries
.................................................................................................
ed Indicatori 1327
Direzione ............................................................................................................................1332
di Indic izzazione negli Array, Buffers e TimeSeries
............................................................................................................................1336
Organizzazione di Ac c esso ai Dati
............................................................................................................................1346
SeriesInfoInteger
Bars ............................................................................................................................1348
............................................................................................................................1351
BarsCalc ulated
............................................................................................................................1353
Indic atorCreate
............................................................................................................................1356
Indic atorParameters
............................................................................................................................1358
Indic atorRelease
CopyBuffer ............................................................................................................................1360
CopyRates............................................................................................................................1365
CopyTime............................................................................................................................1369
CopyOpen............................................................................................................................1372
CopyHigh ............................................................................................................................1375
CopyLow ............................................................................................................................1379
CopyClose............................................................................................................................1382
............................................................................................................................1385
CopyTic kVolume
............................................................................................................................1389
CopyRealVolume
CopySpread ............................................................................................................................1392
CopyTic ks............................................................................................................................1396
............................................................................................................................1402
CopyTic ksRange
iBars ............................................................................................................................1404
iBarShift ............................................................................................................................1405
iClose ............................................................................................................................1408
iHigh ............................................................................................................................1410
iHighest ............................................................................................................................1412
iLow ............................................................................................................................1413
iLow est ............................................................................................................................1415
iOpen ............................................................................................................................1416
iTime ............................................................................................................................1418
............................................................................................................................1420
iTic kVolume
iRealVolume............................................................................................................................1422
iVolume ............................................................................................................................1424
iSpread ............................................................................................................................1426
17 Simboli Personalizzati
................................................................................................. 1428
............................................................................................................................1430
CustomSymbolCreate
............................................................................................................................1432
CustomSymbolDelete
............................................................................................................................1433
CustomSymbolSetInteger
............................................................................................................................1434
CustomSymbolSetDouble
............................................................................................................................1435
CustomSymbolSetString
............................................................................................................................1436
CustomSymbolSetMarginRate
............................................................................................................................1437
CustomSymbolSetSessionQuote
............................................................................................................................1438
CustomSymbolSetSessionTrade
............................................................................................................................1439
CustomRatesDelete

© 2000-2021, MetaQuotes Ltd


10 Content

............................................................................................................................1440
CustomRatesReplac e
............................................................................................................................1441
CustomRatesUpdate
CustomTic............................................................................................................................1442
ksAdd
CustomTic............................................................................................................................1444
ksDelete
CustomTic............................................................................................................................1445
ksReplac e
............................................................................................................................1447
CustomBookAdd
18 Operazioni col
.................................................................................................
Grafico 1450
............................................................................................................................1453
ChartApplyTemplate
............................................................................................................................1456
ChartSaveTemplate
ChartWindow............................................................................................................................1461
Find
............................................................................................................................1463
ChartTimePric eToX Y
............................................................................................................................1464
ChartX Y ToTimePric e
ChartOpen............................................................................................................................1466
ChartFirst ............................................................................................................................1467
ChartNext............................................................................................................................1468
ChartClose............................................................................................................................1469
ChartSymbol............................................................................................................................1470
ChartPeriod............................................................................................................................1471
ChartRedraw............................................................................................................................1472
............................................................................................................................1473
ChartSetDouble
............................................................................................................................1474
ChartSetInteger
............................................................................................................................1476
ChartSetString
............................................................................................................................1478
ChartGetDouble
............................................................................................................................1480
ChartGetInteger
............................................................................................................................1482
ChartGetString
............................................................................................................................1484
ChartNavigate
ChartID ............................................................................................................................1487
ChartIndic............................................................................................................................1488
atorAdd
ChartIndic............................................................................................................................1492
atorDelete
ChartIndic............................................................................................................................1495
atorGet
ChartIndic............................................................................................................................1497
atorName
ChartIndic............................................................................................................................1498
atorsTotal
ChartWindow............................................................................................................................1499
OnDropped
............................................................................................................................1500
ChartPric eOnDropped
............................................................................................................................1501
ChartTimeOnDropped
............................................................................................................................1502
ChartX OnDropped
............................................................................................................................1503
ChartY OnDropped
............................................................................................................................1504
ChartSetSymbolPeriod
............................................................................................................................1505
ChartSc reenShot
19 Funzioni di Trade
................................................................................................. 1508
OrderCalc............................................................................................................................1511
Margin
OrderCalc............................................................................................................................1512
Profit
OrderChec............................................................................................................................1513
k
OrderSend............................................................................................................................1514
............................................................................................................................1519
OrderSendAsync
............................................................................................................................1530
PositionsTotal
............................................................................................................................1531
PositionGetSymbol
............................................................................................................................1532
PositionSelec t
............................................................................................................................1533
PositionSelec tByTic ket
............................................................................................................................1534
PositionGetDouble
............................................................................................................................1535
PositionGetInteger
............................................................................................................................1537
PositionGetString
............................................................................................................................1538
PositionGetTic ket
............................................................................................................................1539
OrdersTotal
............................................................................................................................1540
OrderGetTic ket
OrderSelec............................................................................................................................1542
t
............................................................................................................................1543
OrderGetDouble
............................................................................................................................1544
OrderGetInteger
© 2000-2021, MetaQuotes Ltd
11 Content

............................................................................................................................1545
OrderGetString
............................................................................................................................1546
HistorySelec t
............................................................................................................................1548
HistorySelec tByPosition
............................................................................................................................1549
HistoryOrderSelec t
............................................................................................................................1550
HistoryOrdersTotal
............................................................................................................................1551
HistoryOrderGetTic ket
............................................................................................................................1553
HistoryOrderGetDouble
............................................................................................................................1554
HistoryOrderGetInteger
............................................................................................................................1557
HistoryOrderGetString
............................................................................................................................1558
HistoryDealSelec t
............................................................................................................................1559
HistoryDealsTotal
............................................................................................................................1560
HistoryDealGetTic ket
............................................................................................................................1563
HistoryDealGetDouble
............................................................................................................................1564
HistoryDealGetInteger
............................................................................................................................1567
HistoryDealGetString
20 Segnali di Trade
................................................................................................. 1568
............................................................................................................................1569
SignalBaseGetDouble
............................................................................................................................1570
SignalBaseGetInteger
............................................................................................................................1571
SignalBaseGetString
............................................................................................................................1572
SignalBaseSelec t
............................................................................................................................1573
SignalBaseTotal
............................................................................................................................1574
SignalInfoGetDouble
............................................................................................................................1575
SignalInfoGetInteger
............................................................................................................................1576
SignalInfoGetString
............................................................................................................................1577
SignalInfoSetDouble
............................................................................................................................1578
SignalInfoSetInteger
............................................................................................................................1579
SignalSubsc ribe
............................................................................................................................1580
SignalUnsubsc ribe
21 Funzioni di Rete
................................................................................................. 1581
............................................................................................................................1583
Soc ketCreate
............................................................................................................................1586
Soc ketClose
............................................................................................................................1589
Soc ketConnec t
............................................................................................................................1593
Soc ketIsConnec ted
............................................................................................................................1594
Soc ketIsReadable
............................................................................................................................1597
Soc ketIsWritable
............................................................................................................................1598
Soc ketTimeouts
............................................................................................................................1599
Soc ketRead
............................................................................................................................1603
Soc ketSend
............................................................................................................................1607
Soc ketTlsHandshake
............................................................................................................................1608
Soc ketTlsCertific ate
............................................................................................................................1612
Soc ketTlsRead
............................................................................................................................1616
Soc ketTlsReadAvailable
............................................................................................................................1617
Soc ketTlsSend
............................................................................................................................1618
WebRe q uest
SendFTP ............................................................................................................................1621
SendMail ............................................................................................................................1622
............................................................................................................................1623
SendNotific ation
22 Variabili Globali
.................................................................................................
del Terminale 1624
............................................................................................................................1625
GlobalVariableChec k
............................................................................................................................1626
GlobalVariableTime
............................................................................................................................1627
GlobalVariableDel
............................................................................................................................1628
GlobalVariableGet
............................................................................................................................1629
GlobalVariableName
............................................................................................................................1630
GlobalVariableSet
............................................................................................................................1631
GlobalVariablesFlush
............................................................................................................................1632
GlobalVariableTemp
............................................................................................................................1633
GlobalVariableSetOnCondition

© 2000-2021, MetaQuotes Ltd


12 Content

............................................................................................................................1634
GlobalVariablesDeleteAll
............................................................................................................................1635
GlobalVariablesTotal
23 Funzioni con.................................................................................................
i File 1636
............................................................................................................................1639
FileSelec tDialog
............................................................................................................................1642
FileFindFirst
FileFindNext............................................................................................................................1644
............................................................................................................................1646
FileFindClose
FileIsExist ............................................................................................................................1648
FileOpen ............................................................................................................................1651
FileClose ............................................................................................................................1654
FileCopy ............................................................................................................................1655
FileDelete............................................................................................................................1658
FileMove ............................................................................................................................1660
FileFlush ............................................................................................................................1662
............................................................................................................................1664
FileGetInteger
FileIsEnding............................................................................................................................1667
............................................................................................................................1669
FileIsLineEnding
............................................................................................................................1674
FileReadArray
FileReadBool............................................................................................................................1676
............................................................................................................................1679
FileReadDatetime
............................................................................................................................1682
FileReadDouble
............................................................................................................................1685
FileReadFloat
............................................................................................................................1688
FileReadInteger
FileReadLong............................................................................................................................1692
............................................................................................................................1695
FileReadNumber
............................................................................................................................1700
FileReadString
............................................................................................................................1702
FileReadStruc t
FileSeek ............................................................................................................................1706
FileSize ............................................................................................................................1709
FileTell ............................................................................................................................1711
FileWrite ............................................................................................................................1714
............................................................................................................................1717
FileWriteArray
............................................................................................................................1720
FileWriteDouble
............................................................................................................................1723
FileWriteFloat
............................................................................................................................1725
FileWriteInteger
............................................................................................................................1728
FileWriteLong
............................................................................................................................1730
FileWriteString
............................................................................................................................1733
FileWriteStruc t
FileLoad ............................................................................................................................1736
FileSave ............................................................................................................................1738
FolderCreate............................................................................................................................1740
FolderDelete............................................................................................................................1743
FolderClean ............................................................................................................................1746
24 Indicatori Personalizzati
................................................................................................. 1749
............................................................................................................................1753
Stili Indic atore negli Esempi
DRAW _NONE
......................................................................................................................... 1761
DRAW _LINE
......................................................................................................................... 1764
DRAW _SECTION
......................................................................................................................... 1768
DRAW _H.........................................................................................................................
ISTOGRAM 1772
DRAW _H.........................................................................................................................
ISTOGRAM2 1776
DRAW _ARROW
......................................................................................................................... 1780
DRAW _Z.........................................................................................................................
IGZAG 1785
DRAW _FILLING
......................................................................................................................... 1790
DRAW _BARS
......................................................................................................................... 1795
DRAW _CANDLES
......................................................................................................................... 1801
DRAW _COLOR
.........................................................................................................................
_LINE 1808
DRAW _COLOR
.........................................................................................................................
_SECTION 1813
DRAW _COLOR
.........................................................................................................................
_HISTOGRAM 1819
© 2000-2021, MetaQuotes Ltd
13 Content

DRAW _COLOR
.........................................................................................................................
_HISTOGRAM2 1824
DRAW _COLOR
.........................................................................................................................
_ARROW 1829
DRAW _COLOR
.........................................................................................................................
_ZIGZAG 1835
DRAW _COLOR
.........................................................................................................................
_BARS 1840
DRAW _COLOR
.........................................................................................................................
_CANDLES 1847
Connec tion............................................................................................................................1854
betw een Indic ator Properties and Func tions
............................................................................................................................1857
SetIndexBuffer
............................................................................................................................1860
Indic atorSetDouble
............................................................................................................................1864
Indic atorSetInteger
............................................................................................................................1868
Indic atorSetString
............................................................................................................................1871
PlotIndexSetDouble
............................................................................................................................1872
PlotIndexSetInteger
............................................................................................................................1876
PlotIndexSetString
............................................................................................................................1877
PlotIndexGetInteger
25 Oggetti Grafici
................................................................................................. 1880
............................................................................................................................1882
Ob jec tCreate
Ob jec tName............................................................................................................................1886
............................................................................................................................1887
Ob jec tDelete
............................................................................................................................1888
Ob jec tsDeleteAll
Ob jec tFind............................................................................................................................1889
............................................................................................................................1890
Ob jec tGetTimeByValue
............................................................................................................................1891
Ob jec tGetValueByTime
Ob jec tMove............................................................................................................................1892
............................................................................................................................1893
Ob jec tsTotal
............................................................................................................................1894
Ob jec tSetDouble
............................................................................................................................1898
Ob jec tSetInteger
............................................................................................................................1901
Ob jec tSetString
............................................................................................................................1903
Ob jec tGetDouble
............................................................................................................................1905
Ob jec tGetInteger
............................................................................................................................1907
Ob jec tGetString
TextSetFont ............................................................................................................................1909
TextOut ............................................................................................................................1912
TextGetSize ............................................................................................................................1916
26 Indicatori Tecnici
................................................................................................. 1917
iAC ............................................................................................................................1920
iAD ............................................................................................................................1925
iADX ............................................................................................................................1930
iADX Wilder............................................................................................................................1935
iAlligator ............................................................................................................................1940
iAMA ............................................................................................................................1947
iAO ............................................................................................................................1952
iATR ............................................................................................................................1957
iBearsPow............................................................................................................................1962
er
iBands ............................................................................................................................1967
............................................................................................................................1973
iBullsPow er
iCCI ............................................................................................................................1978
iChaikin ............................................................................................................................1983
iCustom ............................................................................................................................1988
iDEMA ............................................................................................................................1992
iDeMarker............................................................................................................................1997
iEnvelopes............................................................................................................................2002
iForc e ............................................................................................................................2008
iFrac tals ............................................................................................................................2013
iFrAMA ............................................................................................................................2018
iGator ............................................................................................................................2023
iIc himoku ............................................................................................................................2030
iBWMFI ............................................................................................................................2037
iMomentum ............................................................................................................................2042
© 2000-2021, MetaQuotes Ltd
14 Content

iMFI ............................................................................................................................2047
iMA ............................................................................................................................2052
iOsMA ............................................................................................................................2057
iMACD ............................................................................................................................2062
iOBV ............................................................................................................................2068
iSAR ............................................................................................................................2073
iRSI ............................................................................................................................2078
iRVI ............................................................................................................................2083
iStdDev ............................................................................................................................2088
iStoc hastic............................................................................................................................2093
iTEMA ............................................................................................................................2099
iTriX ............................................................................................................................2104
iWPR ............................................................................................................................2109
iVIDyA ............................................................................................................................2114
iVolumes ............................................................................................................................2119
27 Lavorare con.................................................................................................
i risultati di ottimizzazione 2124
FrameFirst............................................................................................................................2125
............................................................................................................................2126
FrameFilter
FrameNext............................................................................................................................2127
............................................................................................................................2128
FrameInputs
FrameAdd............................................................................................................................2129
............................................................................................................................2130
ParameterGetRange
............................................................................................................................2133
ParameterSetRange
28 Funzioni Eventi
................................................................................................. 2135
............................................................................................................................2136
EventSetMillisec ondTimer
............................................................................................................................2137
EventSetTimer
............................................................................................................................2138
EventKillTimer
............................................................................................................................2139
EventChartCustom
29 Lavorare con.................................................................................................
OpenCL 2145
............................................................................................................................2147
CLHandleType
............................................................................................................................2148
CLGetInfoInteger
............................................................................................................................2151
CLGetInfoString
............................................................................................................................2154
CLContextCreate
............................................................................................................................2155
CLContextFree
CLGetDevic............................................................................................................................2156
eInfo
............................................................................................................................2161
CLProgramCreate
............................................................................................................................2165
CLProgramFree
............................................................................................................................2166
CLKernelCreate
............................................................................................................................2167
CLKernelFree
............................................................................................................................2168
CLSetKernelArg
............................................................................................................................2169
CLSetKernelArgMem
............................................................................................................................2170
CLSetKernelArgMemLoc al
............................................................................................................................2171
CLBufferCreate
............................................................................................................................2172
CLBufferFree
............................................................................................................................2173
CLBufferWrite
............................................................................................................................2174
CLBufferRead
CLExec ute............................................................................................................................2175
............................................................................................................................2177
CLExec utionStatus
30 Lavorare con.................................................................................................
i database 2178
............................................................................................................................2182
DatabaseOpen
............................................................................................................................2184
DatabaseClose
............................................................................................................................2185
DatabaseImport
............................................................................................................................2187
DatabaseExport
............................................................................................................................2189
DatabasePrint
............................................................................................................................2194
DatabaseTableExists
............................................................................................................................2195
DatabaseExec ute
............................................................................................................................2207
DatabasePrepare

© 2000-2021, MetaQuotes Ltd


15 Content

............................................................................................................................2216
DatabaseReset
............................................................................................................................2222
DatabaseBind
............................................................................................................................2227
DatabaseBindArray
............................................................................................................................2232
DatabaseRead
............................................................................................................................2233
DatabaseReadBind
............................................................................................................................2237
DatabaseFinalize
............................................................................................................................2238
DatabaseTransac tionBegin
............................................................................................................................2243
DatabaseTransac tionCommit
............................................................................................................................2244
DatabaseTransac tionRollbac k
............................................................................................................................2245
DatabaseColumnsCount
............................................................................................................................2246
DatabaseColumnName
............................................................................................................................2247
DatabaseColumnType
............................................................................................................................2248
DatabaseColumnSize
............................................................................................................................2249
DatabaseColumnText
............................................................................................................................2250
DatabaseColumnInteger
............................................................................................................................2251
DatabaseColumnLong
............................................................................................................................2252
DatabaseColumnDouble
............................................................................................................................2253
DatabaseColumnBlob
31 Lavorare con.................................................................................................
DirectX 2254
............................................................................................................................2256
DX ContextCreate
............................................................................................................................2257
DX ContextSetSize
............................................................................................................................2258
DX ContextGetSize
............................................................................................................................2259
DX ContextClearColors
............................................................................................................................2260
DX ContextClearDepth
............................................................................................................................2261
DX ContextGetColors
............................................................................................................................2262
DX ContextGetDepth
............................................................................................................................2263
DX BufferCreate
............................................................................................................................2264
DX TextureCreate
............................................................................................................................2271
DX InputCreate
............................................................................................................................2272
DX InputSet
............................................................................................................................2273
DX ShaderCreate
............................................................................................................................2274
DX ShaderSetLayout
............................................................................................................................2275
DX ShaderInputsSet
............................................................................................................................2276
DX ShaderTexturesSet
DX Draw ............................................................................................................................2277
............................................................................................................................2278
DX Draw Indexed
............................................................................................................................2279
DX PrimiveTopologySet
............................................................................................................................2280
DX BufferSet
............................................................................................................................2281
DX ShaderSet
............................................................................................................................2282
DX HandleType
DX Release............................................................................................................................2283
32 Integrazione ................................................................................................. 2284
............................................................................................................................2285
MetaTrader per Python
initialize......................................................................................................................... 2291
login ......................................................................................................................... 2293
shutdown ......................................................................................................................... 2296
version......................................................................................................................... 2297
last _error
......................................................................................................................... 2299
account.........................................................................................................................
_info 2301
terminal.........................................................................................................................
_info 2304
symbols.........................................................................................................................
_total 2307
symbols.........................................................................................................................
_get 2308
symbol_.........................................................................................................................
info 2311
symbol_.........................................................................................................................
info_tick 2315
symbol_.........................................................................................................................
select 2317
market _.........................................................................................................................
book _add 2321
market _.........................................................................................................................
book _get 2322
market _.........................................................................................................................
book _release 2325
© 2000-2021, MetaQuotes Ltd
16 Content

copy _rates
.........................................................................................................................
_from 2326
copy _rates
.........................................................................................................................
_from_pos 2330
copy _rates
.........................................................................................................................
_range 2333
copy _ticks
.........................................................................................................................
_from 2336
copy _ticks
.........................................................................................................................
_range 2339
orders _.........................................................................................................................
total 2342
orders _.........................................................................................................................
get 2343
order _calc
.........................................................................................................................
_margin 2346
order _calc
.........................................................................................................................
_profit 2349
order _check
......................................................................................................................... 2352
order _send
......................................................................................................................... 2356
positions.........................................................................................................................
_total 2361
positions.........................................................................................................................
_get 2362
history _.........................................................................................................................
orders _total 2365
history _.........................................................................................................................
orders _get 2367
history _.........................................................................................................................
deals _total 2370
history _.........................................................................................................................
deals _get 2372
33 Libreria Standard
................................................................................................. 2376
Matematic............................................................................................................................2377
he
Statistiche
......................................................................................................................... 2378
Caratteristiche
................................................................................................................
statistiche 2381
MathMean ........................................................................................................... 2382
MathVariance ........................................................................................................... 2383
MathSkewness ........................................................................................................... 2384
MathKurtosis ........................................................................................................... 2385
MathMoments ........................................................................................................... 2386
MathMedian ........................................................................................................... 2387
MathStandardDeviation
........................................................................................................... 2388
MathAverageDeviation
........................................................................................................... 2389
Distribuzione ................................................................................................................
Normale 2390
MathProbabilityDensityNormal
........................................................................................................... 2394
MathCumulativeDistributionNormal
........................................................................................................... 2396
MathQuantileNormal
........................................................................................................... 2398
MathRandomNormal
........................................................................................................... 2400
MathMomentsNormal
........................................................................................................... 2401
Distribuzione ................................................................................................................
Log-normale 2402
MathProbabilityDensityLognormal
........................................................................................................... 2406
MathCumulativeDistributionLognormal
........................................................................................................... 2408
MathQuantileLognormal
........................................................................................................... 2410
MathRandomLognormal
........................................................................................................... 2412
MathMomentsLognormal
........................................................................................................... 2413
La distribuzione
................................................................................................................
beta 2414
MathProbabilityDensityBeta
........................................................................................................... 2418
MathCumulativeDistributionBeta
........................................................................................................... 2420
MathQuantileBeta
........................................................................................................... 2422
MathRandomBeta
........................................................................................................... 2424
MathMomentsBeta
........................................................................................................... 2425
Distribuzione ................................................................................................................
beta non centrale 2426
MathProbabilityDensityNoncentralBeta
........................................................................................................... 2430
MathCumulativeDistributionNoncentralBeta
........................................................................................................... 2432
MathQuantileNoncentralBeta
........................................................................................................... 2434
MathRandomNoncentralBeta
........................................................................................................... 2436
MathMomentsNoncentralBeta
........................................................................................................... 2437
Distribuzione ................................................................................................................
gamma 2438
MathProbabilityDensityGamma
........................................................................................................... 2442
MathCumulativeDistributionGamma
........................................................................................................... 2444
MathQuantileGamma
........................................................................................................... 2446
MathRandomGamma
........................................................................................................... 2448

© 2000-2021, MetaQuotes Ltd


17 Content

MathMomentsGamma
........................................................................................................... 2449
Distribuzione
................................................................................................................
del Chi-quadrato 2450
MathProbabilityDensityChiSquare
........................................................................................................... 2454
MathCumulativeDistributionChiSquare
........................................................................................................... 2456
MathQuantileChiSquare
........................................................................................................... 2458
MathRandomChiSquare
........................................................................................................... 2460
MathMomentsChiSquare
........................................................................................................... 2461
Distribuzione
................................................................................................................
chi-quadrato non centrale 2462
MathProbabilityDensityNoncentralChiSquare
........................................................................................................... 2466
MathCumulativeDistributionNoncentralChiSquare
........................................................................................................... 2468
MathQuantileNoncentralChiSquare
........................................................................................................... 2470
MathRandomNoncentralChiSquare
........................................................................................................... 2472
MathMomentsNoncentralChiSquare
........................................................................................................... 2473
Distribuzione
................................................................................................................
Esponenziale 2474
MathProbabilityDensityE
...........................................................................................................
x ponential 2478
MathCumulativeDistributionE
...........................................................................................................
x ponential 2480
MathQuantileE
...........................................................................................................
x ponential 2482
MathRandomE ...........................................................................................................
x ponential 2484
MathMomentsE...........................................................................................................
x ponential 2485
Distribuzione-F
................................................................................................................ 2486
MathProbabilityDensityF
........................................................................................................... 2490
MathCumulativeDistributionF
........................................................................................................... 2492
MathQuantileF
........................................................................................................... 2494
MathRandomF ........................................................................................................... 2496
MathMomentsF........................................................................................................... 2497
Distribuzione-F
................................................................................................................
noncentrale 2498
MathProbabilityDensityNoncentralF
........................................................................................................... 2502
MathCumulativeDistributionNoncentralF
........................................................................................................... 2504
MathQuantileNoncentralF
........................................................................................................... 2506
MathRandomNoncentralF
........................................................................................................... 2508
MathMomentsNoncentralF
........................................................................................................... 2509
Distribuzione-T
................................................................................................................ 2510
MathProbabilityDensityT
........................................................................................................... 2514
MathCumulativeDistributionT
........................................................................................................... 2516
MathQuantileT
........................................................................................................... 2518
MathRandomT ........................................................................................................... 2520
MathMomentsT........................................................................................................... 2521
Distribuzione-T
................................................................................................................
non centrale 2522
MathProbabilityDensityNoncentralT
........................................................................................................... 2526
MathCumulativeDistributionNoncentralT
........................................................................................................... 2528
MathQuantileNoncentralT
........................................................................................................... 2530
MathRandomNoncentralT
........................................................................................................... 2532
MathMomentsNoncentralT
........................................................................................................... 2533
Distribuzione
................................................................................................................
Logistica 2534
MathProbabilityDensityLogistic
........................................................................................................... 2538
MathCumulativeDistributionLogistic
........................................................................................................... 2540
MathQuantileLogistic
........................................................................................................... 2542
MathRandomLogistic
........................................................................................................... 2544
MathMomentsLogistic
........................................................................................................... 2545
Distribuzione
................................................................................................................
di Cauchy 2546
MathProbabilityDensityCauchy
........................................................................................................... 2550
MathCumulativeDistributionCauchy
........................................................................................................... 2552
MathQuantileCauchy
........................................................................................................... 2554
MathRandomCauchy
........................................................................................................... 2556
MathMomentsCauchy
........................................................................................................... 2557
Distribuzione
................................................................................................................
uniforme 2558
MathProbabilityDensityUniform
........................................................................................................... 2562
MathCumulativeDistributionUniform
........................................................................................................... 2564

© 2000-2021, MetaQuotes Ltd


18 Content

MathQuantileUniform
........................................................................................................... 2566
MathRandomUniform
........................................................................................................... 2568
MathMomentsUniform
........................................................................................................... 2569
Distribuzione
................................................................................................................
di Weibull 2570
MathProbabilityDensityWeibull
........................................................................................................... 2574
MathCumulativeDistributionWeibull
........................................................................................................... 2576
MathQuantileWeibull
........................................................................................................... 2578
MathRandomWeibull
........................................................................................................... 2580
MathMomentsWeibull
........................................................................................................... 2581
Distribuzione
................................................................................................................
binomiale 2582
MathProbabilityDensityBinomial
........................................................................................................... 2585
MathCumulativeDistributionBinomial
........................................................................................................... 2587
MathQuantileBinomial
........................................................................................................... 2589
MathRandomBinomial
........................................................................................................... 2591
MathMomentsBinomial
........................................................................................................... 2592
Distribuzione
................................................................................................................
binomiale negativa 2593
MathProbabilityDensityNegativeBinomial
........................................................................................................... 2596
MathCumulativeDistributionNegativeBinomial
........................................................................................................... 2598
MathQuantileNegativeBinomial
........................................................................................................... 2600
MathRandomNegativeBinomial
........................................................................................................... 2602
MathMomentsNegativeBinomial
........................................................................................................... 2603
Distribuzione
................................................................................................................
geometrica 2604
MathProbabilityDensityGeometric
........................................................................................................... 2608
MathCumulativeDistributionGeometric
........................................................................................................... 2610
MathQuantileGeometric
........................................................................................................... 2612
MathRandomGeometric
........................................................................................................... 2614
MathMomentsGeometric
........................................................................................................... 2615
Distribuzione
................................................................................................................
ipergeometrica 2616
MathProbabilityDensity
...........................................................................................................
Hypergeometric 2620
MathCumulativeDistribution
...........................................................................................................
Hypergeometric 2622
MathQuantile...........................................................................................................
Hypergeometric 2624
MathRandom ...........................................................................................................
Hypergeometric 2626
MathMoments ...........................................................................................................
Hypergeometric 2627
Distribuzione
................................................................................................................
di Poisson 2628
MathProbabilityDensityPoisson
........................................................................................................... 2632
MathCumulativeDistributionPoisson
........................................................................................................... 2634
MathQuantilePoisson
........................................................................................................... 2636
MathRandomPoisson
........................................................................................................... 2638
MathMomentsPoisson
........................................................................................................... 2639
Subfunzioni................................................................................................................ 2640
MathRandomNon
...........................................................................................................
Zero 2645
MathMoments ........................................................................................................... 2646
MathPowInt ........................................................................................................... 2647
MathFactorial
........................................................................................................... 2648
MathTrunc........................................................................................................... 2649
MathRound........................................................................................................... 2650
MathArctan2 ........................................................................................................... 2652
MathGamma ........................................................................................................... 2654
MathGammaLog........................................................................................................... 2655
MathBeta ........................................................................................................... 2656
MathBetaLog ........................................................................................................... 2657
MathBetaIncomplete
........................................................................................................... 2658
MathGammaIncomplete
........................................................................................................... 2659
MathBinomialCoefficient
........................................................................................................... 2660
MathBinomialCoefficientLog
........................................................................................................... 2661
MathHypergeometric2F2
........................................................................................................... 2662
MathSequence........................................................................................................... 2663
MathSequenceByCount
........................................................................................................... 2664

© 2000-2021, MetaQuotes Ltd


19 Content

MathReplicate
........................................................................................................... 2665
MathReverse
........................................................................................................... 2666
MathIdentical
........................................................................................................... 2667
MathUnique........................................................................................................... 2668
MathQuickSortAscending
........................................................................................................... 2669
MathQuickSortDescending
........................................................................................................... 2670
MathQuickSort
........................................................................................................... 2671
MathOrder........................................................................................................... 2672
MathBitwiseNot
........................................................................................................... 2673
MathBitwiseAnd
........................................................................................................... 2674
MathBitwiseOr
........................................................................................................... 2675
MathBitwise
...........................................................................................................
X or 2676
MathBitwiseShiftL
........................................................................................................... 2677
MathBitwiseShiftR
........................................................................................................... 2678
MathCumulativeSum
........................................................................................................... 2679
MathCumulativeProduct
........................................................................................................... 2680
MathCumulativeMin
........................................................................................................... 2681
MathCumulativeMa
...........................................................................................................
x 2682
MathSin ........................................................................................................... 2683
MathCos ........................................................................................................... 2684
MathTan ........................................................................................................... 2685
MathArcsin........................................................................................................... 2686
MathArccos........................................................................................................... 2687
MathArctan........................................................................................................... 2688
MathSinPi ........................................................................................................... 2689
MathCosPi ........................................................................................................... 2690
MathTanPi ........................................................................................................... 2691
MathAbs ........................................................................................................... 2692
MathCeil ........................................................................................................... 2693
MathFloor ........................................................................................................... 2694
MathSqrt ........................................................................................................... 2695
MathEx p ........................................................................................................... 2696
MathPow ........................................................................................................... 2697
MathLog ........................................................................................................... 2698
MathLog2 ........................................................................................................... 2699
MathLog10........................................................................................................... 2700
MathLog1p........................................................................................................... 2701
MathDifference
........................................................................................................... 2702
MathSample........................................................................................................... 2704
MathTukeySummary
........................................................................................................... 2707
MathRange........................................................................................................... 2708
MathMin ........................................................................................................... 2709
MathMax ........................................................................................................... 2710
MathSum ........................................................................................................... 2711
MathProduct
........................................................................................................... 2712
MathStandardDeviation
........................................................................................................... 2713
MathAverageDeviation
........................................................................................................... 2714
MathMedian........................................................................................................... 2715
MathMean ........................................................................................................... 2716
MathVariance
........................................................................................................... 2717
MathSkewness
........................................................................................................... 2718
MathKurtosis
........................................................................................................... 2719
MathEx pm1........................................................................................................... 2720
MathSinh ........................................................................................................... 2721
MathCosh ........................................................................................................... 2722
MathTanh ........................................................................................................... 2723
MathArcsinh
........................................................................................................... 2724
MathArccosh
........................................................................................................... 2725

© 2000-2021, MetaQuotes Ltd


20 Content

MathArctanh ........................................................................................................... 2726


MathSignif ........................................................................................................... 2727
MathRank ........................................................................................................... 2729
MathCorrelationPearson
........................................................................................................... 2730
MathCorrelationSpearman
........................................................................................................... 2731
MathCorrelation
...........................................................................................................
Kendall 2732
MathQuantile ........................................................................................................... 2733
MathProbabilityDensityEmpirical
........................................................................................................... 2734
MathCumulativeDistributionEmpirical
........................................................................................................... 2735
Logica fuzzy
......................................................................................................................... 2736
Membership................................................................................................................
functions 2737
CConstantMembershipFunction
........................................................................................................... 2739
GetValue ........................................................................................................... 2741
CCompositeMembershipFunction
........................................................................................................... 2742
CompositionType
........................................................................................................... 2744
MembershipFunctions
........................................................................................................... 2744
GetValue ........................................................................................................... 2744
CDifferencTwoSigmoidalMembershipFunction
........................................................................................................... 2746
A1 ........................................................................................................... 2748
A2 ........................................................................................................... 2748
C1 ........................................................................................................... 2749
C2 ........................................................................................................... 2749
GetValue ........................................................................................................... 2750
CGeneralizedBellShapedMembershipFunction
........................................................................................................... 2751
A ........................................................................................................... 2753
B ........................................................................................................... 2753
C ........................................................................................................... 2754
GetValue ........................................................................................................... 2754
CNormalCombinationMembershipFunction
........................................................................................................... 2755
B1 ........................................................................................................... 2757
B2 ........................................................................................................... 2757
Sigma1 ........................................................................................................... 2758
Sigma2 ........................................................................................................... 2758
GetValue ........................................................................................................... 2759
CNormalMembershipFunction
........................................................................................................... 2760
B ........................................................................................................... 2762
Sigma ........................................................................................................... 2762
GetValue ........................................................................................................... 2763
CP_ShapedMembershipFunction
........................................................................................................... 2764
A ........................................................................................................... 2766
B ........................................................................................................... 2766
C ........................................................................................................... 2767
D ........................................................................................................... 2767
GetValue ........................................................................................................... 2768
CProductTwoSigmoidalMembershipFunctions
........................................................................................................... 2769
A1 ........................................................................................................... 2771
A2 ........................................................................................................... 2771
C1 ........................................................................................................... 2772
C2 ........................................................................................................... 2772
GetValue ........................................................................................................... 2773
CS_ShapedMembershipFunction
........................................................................................................... 2774
A ........................................................................................................... 2776
B ........................................................................................................... 2776
GetValue ........................................................................................................... 2777
CSigmoidalMembershipFunction
........................................................................................................... 2778
A ........................................................................................................... 2780
C ........................................................................................................... 2780
GetValue ........................................................................................................... 2781

© 2000-2021, MetaQuotes Ltd


21 Content

CTrapezoidMembershipFunction
........................................................................................................... 2782
X1 ........................................................................................................... 2784
X2 ........................................................................................................... 2784
X3 ........................................................................................................... 2785
X4 ........................................................................................................... 2785
GetValue ........................................................................................................... 2786
CTriangularMembershipFunction
........................................................................................................... 2787
X1 ........................................................................................................... 2789
X2 ........................................................................................................... 2789
X3 ........................................................................................................... 2790
ToNormalMF ........................................................................................................... 2790
GetValue ........................................................................................................... 2790
C Z_ShapedMembershipFunction
........................................................................................................... 2792
A ........................................................................................................... 2794
B ........................................................................................................... 2794
GetValue ........................................................................................................... 2795
IMembershipFunction
........................................................................................................... 2796
GetValue ........................................................................................................... 2796
Fuzzy systems
................................................................................................................
rules 2797
CMamdaniFuzzyRule
........................................................................................................... 2798
Conclusion........................................................................................................... 2799
Weight ........................................................................................................... 2799
CSugenoFuzzyRule
........................................................................................................... 2800
Conclusion........................................................................................................... 2801
CSingleCondition
........................................................................................................... 2802
Not ........................................................................................................... 2802
Term ........................................................................................................... 2803
Var ........................................................................................................... 2803
CConditions ........................................................................................................... 2805
ConditionsList
........................................................................................................... 2805
Not ........................................................................................................... 2806
Op ........................................................................................................... 2806
CGenericFuzzyRule
........................................................................................................... 2808
Conclusion........................................................................................................... 2808
Condition ........................................................................................................... 2809
CreateCondition
........................................................................................................... 2809
Fuzzy systems
................................................................................................................
variables 2811
CFuzzyVariable
........................................................................................................... 2812
AddTerm ........................................................................................................... 2813
GetTermByName
........................................................................................................... 2813
Max ........................................................................................................... 2813
Min ........................................................................................................... 2814
Terms ........................................................................................................... 2814
Values ........................................................................................................... 2815
CSugenoVariable
........................................................................................................... 2816
Functions ........................................................................................................... 2816
GetFuncByName
........................................................................................................... 2817
Values ........................................................................................................... 2817
Fuzzy terms................................................................................................................ 2818
MembershipFunction
........................................................................................................... 2819
Fuzzy systems
................................................................................................................ 2820
Mamdani system
........................................................................................................... 2821
AggregationMethod
........................................................................................................... 2821
Calculate ........................................................................................................... 2822
DefuzzificationMethod
........................................................................................................... 2822
EmptyRule ........................................................................................................... 2822
ImplicationMethod
........................................................................................................... 2822
Output ........................................................................................................... 2823

© 2000-2021, MetaQuotes Ltd


22 Content

OutputByName
........................................................................................................... 2823
ParseRule ........................................................................................................... 2823
Rules ........................................................................................................... 2824
Sugeno system
........................................................................................................... 2825
Calculate ........................................................................................................... 2825
CreateSugenoFunction
........................................................................................................... 2826
EmptyRule ........................................................................................................... 2827
Output ........................................................................................................... 2827
OutputByName
........................................................................................................... 2827
ParseRule ........................................................................................................... 2827
Rules ........................................................................................................... 2828
OpenCL ............................................................................................................................2829
BufferCreate
......................................................................................................................... 2831
BufferFree
......................................................................................................................... 2832
BufferFromArray
......................................................................................................................... 2833
BufferRead
......................................................................................................................... 2834
BufferWrite
......................................................................................................................... 2835
Ex ecute......................................................................................................................... 2836
GetConte .........................................................................................................................
xt 2837
Get Kernel
......................................................................................................................... 2838
Get KernelName
......................................................................................................................... 2839
GetProgram
......................................................................................................................... 2840
Initialize
......................................................................................................................... 2841
KernelCreate
......................................................................................................................... 2842
KernelFree
......................................................................................................................... 2843
SetArgument
......................................................................................................................... 2844
SetArgumentBuffer
......................................................................................................................... 2845
SetArgumentLocalMemory
......................................................................................................................... 2846
SetBuffersCount
......................................................................................................................... 2847
Set KernelsCount
......................................................................................................................... 2848
Shutdown ......................................................................................................................... 2849
SupportDouble
......................................................................................................................... 2850
Basic Class............................................................................................................................2851
COb jec t
Prev ......................................................................................................................... 2852
Prev ......................................................................................................................... 2853
Nex t ......................................................................................................................... 2854
Nex t ......................................................................................................................... 2855
Compare ......................................................................................................................... 2856
Save ......................................................................................................................... 2858
Load ......................................................................................................................... 2860
Type ......................................................................................................................... 2862
Collezione............................................................................................................................2863
Dati
CArray ......................................................................................................................... 2864
Step ................................................................................................................ 2866
Step ................................................................................................................ 2867
Total ................................................................................................................ 2868
Available ................................................................................................................ 2869
Max ................................................................................................................ 2870
IsSorted ................................................................................................................ 2871
SortMode ................................................................................................................ 2872
Clear ................................................................................................................ 2873
Sort ................................................................................................................ 2874
Save ................................................................................................................ 2875
Load ................................................................................................................ 2876
CArrayChar
......................................................................................................................... 2877
Reserve ................................................................................................................ 2880
Resize ................................................................................................................ 2881
Shutdown ................................................................................................................ 2882

© 2000-2021, MetaQuotes Ltd


23 Content

Add ................................................................................................................ 2883


AddArray ................................................................................................................ 2884
AddArray ................................................................................................................ 2885
Insert ................................................................................................................ 2887
InsertArray................................................................................................................ 2888
InsertArray................................................................................................................ 2889
AssignArray................................................................................................................ 2891
AssignArray................................................................................................................ 2892
Update ................................................................................................................ 2894
Shift ................................................................................................................ 2895
Delete ................................................................................................................ 2896
DeleteRange ................................................................................................................ 2897
At ................................................................................................................ 2898
CompareArray ................................................................................................................ 2900
CompareArray ................................................................................................................ 2901
InsertSort ................................................................................................................ 2902
Search ................................................................................................................ 2903
SearchGreat ................................................................................................................ 2904
SearchLess................................................................................................................ 2905
SearchGreatOrEqual
................................................................................................................ 2906
SearchLessOrEqual
................................................................................................................ 2907
SearchFirst................................................................................................................ 2908
SearchLast................................................................................................................ 2909
SearchLinear ................................................................................................................ 2910
Save ................................................................................................................ 2911
Load ................................................................................................................ 2912
Type ................................................................................................................ 2914
CArrayShort
......................................................................................................................... 2915
Reserve ................................................................................................................ 2918
Resize ................................................................................................................ 2919
Shutdown ................................................................................................................ 2920
Add ................................................................................................................ 2921
AddArray ................................................................................................................ 2922
AddArray ................................................................................................................ 2923
Insert ................................................................................................................ 2925
InsertArray................................................................................................................ 2926
InsertArray................................................................................................................ 2927
AssignArray................................................................................................................ 2929
AssignArray................................................................................................................ 2930
Update ................................................................................................................ 2932
Shift ................................................................................................................ 2933
Delete ................................................................................................................ 2934
DeleteRange ................................................................................................................ 2935
At ................................................................................................................ 2936
CompareArray ................................................................................................................ 2938
CompareArray ................................................................................................................ 2939
InsertSort ................................................................................................................ 2940
Search ................................................................................................................ 2941
SearchGreat ................................................................................................................ 2942
SearchLess................................................................................................................ 2943
SearchGreatOrEqual
................................................................................................................ 2944
SearchLessOrEqual
................................................................................................................ 2945
SearchFirst................................................................................................................ 2946
SearchLast................................................................................................................ 2947
SearchLinear ................................................................................................................ 2948
Save ................................................................................................................ 2949
Load ................................................................................................................ 2951
Type ................................................................................................................ 2953

© 2000-2021, MetaQuotes Ltd


24 Content

CArrayInt
......................................................................................................................... 2954
Reserve ................................................................................................................ 2957
Resize ................................................................................................................ 2958
Shutdown ................................................................................................................ 2959
Add ................................................................................................................ 2960
AddArray ................................................................................................................ 2961
AddArray ................................................................................................................ 2962
Insert ................................................................................................................ 2964
InsertArray................................................................................................................ 2965
InsertArray................................................................................................................ 2966
AssignArray................................................................................................................ 2968
AssignArray................................................................................................................ 2969
Update ................................................................................................................ 2971
Shift ................................................................................................................ 2972
Delete ................................................................................................................ 2973
DeleteRange ................................................................................................................ 2974
At ................................................................................................................ 2975
CompareArray ................................................................................................................ 2977
CompareArray ................................................................................................................ 2978
InsertSort ................................................................................................................ 2979
Search ................................................................................................................ 2980
SearchGreat ................................................................................................................ 2981
SearchLess................................................................................................................ 2982
SearchGreatOrEqual
................................................................................................................ 2983
SearchLessOrEqual
................................................................................................................ 2984
SearchFirst................................................................................................................ 2985
SearchLast................................................................................................................ 2986
SearchLinear ................................................................................................................ 2987
Save ................................................................................................................ 2988
Load ................................................................................................................ 2990
Type ................................................................................................................ 2992
CArrayLong
......................................................................................................................... 2993
Reserve ................................................................................................................ 2996
Resize ................................................................................................................ 2997
Shutdown ................................................................................................................ 2998
Add ................................................................................................................ 2999
AddArray ................................................................................................................ 3000
AddArray ................................................................................................................ 3001
Insert ................................................................................................................ 3003
InsertArray................................................................................................................ 3004
InsertArray................................................................................................................ 3005
AssignArray................................................................................................................ 3007
AssignArray................................................................................................................ 3008
Update ................................................................................................................ 3010
Shift ................................................................................................................ 3011
Delete ................................................................................................................ 3012
DeleteRange ................................................................................................................ 3013
At ................................................................................................................ 3014
CompareArray ................................................................................................................ 3016
CompareArray ................................................................................................................ 3017
InsertSort ................................................................................................................ 3018
Search ................................................................................................................ 3019
SearchGreat ................................................................................................................ 3020
SearchLess................................................................................................................ 3021
SearchGreatOrEqual
................................................................................................................ 3022
SearchLessOrEqual
................................................................................................................ 3023
SearchFirst................................................................................................................ 3024
SearchLast................................................................................................................ 3025

© 2000-2021, MetaQuotes Ltd


25 Content

SearchLinear ................................................................................................................ 3026


Save ................................................................................................................ 3027
Load ................................................................................................................ 3029
Type ................................................................................................................ 3031
CArrayFloat
......................................................................................................................... 3032
Delta ................................................................................................................ 3035
Reserve ................................................................................................................ 3036
Resize ................................................................................................................ 3037
Shutdown ................................................................................................................ 3038
Add ................................................................................................................ 3039
AddArray ................................................................................................................ 3040
AddArray ................................................................................................................ 3041
Insert ................................................................................................................ 3043
InsertArray................................................................................................................ 3044
InsertArray................................................................................................................ 3045
AssignArray................................................................................................................ 3047
AssignArray................................................................................................................ 3048
Update ................................................................................................................ 3050
Shift ................................................................................................................ 3051
Delete ................................................................................................................ 3052
DeleteRange ................................................................................................................ 3053
At ................................................................................................................ 3054
CompareArray ................................................................................................................ 3056
CompareArray ................................................................................................................ 3057
InsertSort ................................................................................................................ 3058
Search ................................................................................................................ 3059
SearchGreat ................................................................................................................ 3060
SearchLess................................................................................................................ 3061
SearchGreatOrEqual
................................................................................................................ 3062
SearchLessOrEqual
................................................................................................................ 3063
SearchFirst................................................................................................................ 3064
SearchLast................................................................................................................ 3065
SearchLinear ................................................................................................................ 3066
Save ................................................................................................................ 3067
Load ................................................................................................................ 3069
Type ................................................................................................................ 3071
CArrayDouble
......................................................................................................................... 3072
Delta ................................................................................................................ 3075
Reserve ................................................................................................................ 3076
Resize ................................................................................................................ 3077
Shutdown ................................................................................................................ 3078
Add ................................................................................................................ 3079
AddArray ................................................................................................................ 3080
AddArray ................................................................................................................ 3081
Insert ................................................................................................................ 3083
InsertArray................................................................................................................ 3084
InsertArray................................................................................................................ 3085
AssignArray................................................................................................................ 3087
AssignArray................................................................................................................ 3088
Update ................................................................................................................ 3090
Shift ................................................................................................................ 3091
Delete ................................................................................................................ 3092
DeleteRange ................................................................................................................ 3093
At ................................................................................................................ 3094
CompareArray ................................................................................................................ 3096
CompareArray ................................................................................................................ 3097
Minimum ................................................................................................................ 3098
Max imum ................................................................................................................ 3099

© 2000-2021, MetaQuotes Ltd


26 Content

InsertSort ................................................................................................................ 3100


Search ................................................................................................................ 3101
SearchGreat ................................................................................................................ 3102
SearchLess................................................................................................................ 3103
SearchGreatOrEqual
................................................................................................................ 3104
SearchLessOrEqual
................................................................................................................ 3105
SearchFirst................................................................................................................ 3106
SearchLast................................................................................................................ 3107
SearchLinear ................................................................................................................ 3108
Save ................................................................................................................ 3109
Load ................................................................................................................ 3111
Type ................................................................................................................ 3113
CArrayString
......................................................................................................................... 3114
Reserve ................................................................................................................ 3117
Resize ................................................................................................................ 3118
Shutdown ................................................................................................................ 3119
Add ................................................................................................................ 3120
AddArray ................................................................................................................ 3121
AddArray ................................................................................................................ 3122
Insert ................................................................................................................ 3124
InsertArray................................................................................................................ 3125
InsertArray................................................................................................................ 3126
AssignArray................................................................................................................ 3128
AssignArray................................................................................................................ 3129
Update ................................................................................................................ 3131
Shift ................................................................................................................ 3132
Delete ................................................................................................................ 3133
DeleteRange ................................................................................................................ 3134
At ................................................................................................................ 3135
CompareArray ................................................................................................................ 3137
CompareArray ................................................................................................................ 3138
InsertSort ................................................................................................................ 3139
Search ................................................................................................................ 3140
SearchGreat ................................................................................................................ 3141
SearchLess................................................................................................................ 3142
SearchGreatOrEqual
................................................................................................................ 3143
SearchLessOrEqual
................................................................................................................ 3144
SearchFirst................................................................................................................ 3145
SearchLast................................................................................................................ 3146
SearchLinear ................................................................................................................ 3147
Save ................................................................................................................ 3148
Load ................................................................................................................ 3150
Type ................................................................................................................ 3152
CArrayOb
.........................................................................................................................
j 3153
FreeMode ................................................................................................................ 3158
FreeMode ................................................................................................................ 3159
Reserve ................................................................................................................ 3161
Resize ................................................................................................................ 3162
Clear ................................................................................................................ 3163
Shutdown ................................................................................................................ 3164
CreateElement................................................................................................................ 3165
Add ................................................................................................................ 3167
AddArray ................................................................................................................ 3168
Insert ................................................................................................................ 3171
InsertArray................................................................................................................ 3173
AssignArray................................................................................................................ 3175
Update ................................................................................................................ 3177
Shift ................................................................................................................ 3179

© 2000-2021, MetaQuotes Ltd


27 Content

Detach ................................................................................................................ 3180


Delete ................................................................................................................ 3182
DeleteRange ................................................................................................................ 3183
At ................................................................................................................ 3184
CompareArray ................................................................................................................ 3185
InsertSort ................................................................................................................ 3186
Search ................................................................................................................ 3187
SearchGreat ................................................................................................................ 3188
SearchLess................................................................................................................ 3189
SearchGreatOrEqual
................................................................................................................ 3190
SearchLessOrEqual
................................................................................................................ 3191
SearchFirst................................................................................................................ 3192
SearchLast................................................................................................................ 3193
Save ................................................................................................................ 3194
Load ................................................................................................................ 3195
Type ................................................................................................................ 3197
CList ......................................................................................................................... 3198
FreeMode ................................................................................................................ 3201
FreeMode ................................................................................................................ 3202
Total ................................................................................................................ 3204
IsSorted ................................................................................................................ 3205
SortMode ................................................................................................................ 3206
CreateElement................................................................................................................ 3207
Add ................................................................................................................ 3208
Insert ................................................................................................................ 3209
DetachCurrent................................................................................................................ 3211
DeleteCurrent................................................................................................................ 3212
Delete ................................................................................................................ 3213
Clear ................................................................................................................ 3214
Index Of ................................................................................................................ 3215
GetNodeAtInde................................................................................................................
x 3216
GetFirstNode ................................................................................................................ 3217
GetPrevNode ................................................................................................................ 3218
GetCurrentNode
................................................................................................................ 3219
GetNex tNode ................................................................................................................ 3220
GetLastNode ................................................................................................................ 3221
Sort ................................................................................................................ 3222
MoveToInde................................................................................................................
x 3223
Ex change ................................................................................................................ 3224
CompareList ................................................................................................................ 3225
Search ................................................................................................................ 3226
Save ................................................................................................................ 3227
Load ................................................................................................................ 3229
Type ................................................................................................................ 3231
CTreeNode
......................................................................................................................... 3232
Owner ................................................................................................................ 3237
Left ................................................................................................................ 3238
Right ................................................................................................................ 3239
Balance ................................................................................................................ 3240
BalanceL ................................................................................................................ 3241
BalanceR ................................................................................................................ 3242
CreateSample ................................................................................................................ 3243
RefreshBalance
................................................................................................................ 3244
GetNex t ................................................................................................................ 3245
SaveNode ................................................................................................................ 3246
LoadNode ................................................................................................................ 3247
Type ................................................................................................................ 3248
CTree ......................................................................................................................... 3249

© 2000-2021, MetaQuotes Ltd


28 Content

Root ................................................................................................................ 3255


CreateElement
................................................................................................................ 3256
Insert ................................................................................................................ 3257
Detach ................................................................................................................ 3258
Delete ................................................................................................................ 3259
Clear ................................................................................................................ 3260
Find ................................................................................................................ 3261
Save ................................................................................................................ 3262
Load ................................................................................................................ 3263
Type ................................................................................................................ 3264
Collezioni............................................................................................................................3265
Dati Generali
ICollection
.........................................................................................................................
<T> 3268
Add ................................................................................................................ 3269
Count ................................................................................................................ 3270
Contains ................................................................................................................ 3271
CopyTo ................................................................................................................ 3272
Clear ................................................................................................................ 3273
Remove ................................................................................................................ 3274
IEqualityComparable
.........................................................................................................................
<T> 3275
Equals ................................................................................................................ 3276
HashCode ................................................................................................................ 3277
IComparable
.........................................................................................................................
<T> 3278
Compare ................................................................................................................ 3279
IComparer.........................................................................................................................
<T> 3280
Compare ................................................................................................................ 3281
IEqualityComparer
.........................................................................................................................
<T> 3282
Equals ................................................................................................................ 3283
HashCode ................................................................................................................ 3284
IList <T>......................................................................................................................... 3285
TryGetValue ................................................................................................................ 3286
TrySetValue................................................................................................................ 3287
Insert ................................................................................................................ 3288
Index Of ................................................................................................................ 3289
LastIndex Of ................................................................................................................ 3290
RemoveAt ................................................................................................................ 3291
IMap<TK.........................................................................................................................
ey,TValue> 3292
Add ................................................................................................................ 3293
Contains ................................................................................................................ 3294
Remove ................................................................................................................ 3295
TryGetValue ................................................................................................................ 3296
TrySetValue................................................................................................................ 3297
CopyTo ................................................................................................................ 3298
ISet <T>......................................................................................................................... 3299
Ex ceptWith................................................................................................................ 3301
IntersectWith ................................................................................................................ 3302
SymmetricE................................................................................................................
x ceptWith 3303
UnionWith ................................................................................................................ 3304
IsProperSubsetOf
................................................................................................................ 3305
IsProperSupersetOf
................................................................................................................ 3306
IsSubsetOf................................................................................................................ 3307
IsSupersetOf ................................................................................................................ 3308
Overlaps ................................................................................................................ 3309
SetEquals ................................................................................................................ 3310
CDefaultComparer
.........................................................................................................................
<T> 3311
Compare ................................................................................................................ 3312
CDefaultEqualityComparer
.........................................................................................................................
<T> 3313
Equals ................................................................................................................ 3314
HashCode ................................................................................................................ 3315

© 2000-2021, MetaQuotes Ltd


29 Content

CRedBlackTreeNode
.........................................................................................................................
<T> 3316
Value ................................................................................................................ 3317
Parent ................................................................................................................ 3318
Left ................................................................................................................ 3319
Right ................................................................................................................ 3320
Color ................................................................................................................ 3321
IsLeaf ................................................................................................................ 3322
CreateEmptyNode
................................................................................................................ 3323
CLinkedListNode
.........................................................................................................................
<T> 3324
List ................................................................................................................ 3325
Nex t ................................................................................................................ 3326
Previous ................................................................................................................ 3327
Value ................................................................................................................ 3328
C KeyValuePair
.........................................................................................................................
<TKey,TValue> 3329
Key ................................................................................................................ 3330
Value ................................................................................................................ 3331
Clone ................................................................................................................ 3332
Compare ................................................................................................................ 3333
Equals ................................................................................................................ 3334
HashCode ................................................................................................................ 3335
CArrayList
.........................................................................................................................
<T> 3336
Capacity ................................................................................................................ 3338
Count ................................................................................................................ 3339
Contains ................................................................................................................ 3340
TrimEx cess................................................................................................................ 3341
TryGetValue ................................................................................................................ 3342
TrySetValue................................................................................................................ 3343
Add ................................................................................................................ 3344
AddRange ................................................................................................................ 3345
Insert ................................................................................................................ 3346
InsertRange ................................................................................................................ 3347
CopyTo ................................................................................................................ 3348
BinarySearch ................................................................................................................ 3349
Index Of ................................................................................................................ 3350
LastIndex Of ................................................................................................................ 3351
Clear ................................................................................................................ 3352
Remove ................................................................................................................ 3353
RemoveAt ................................................................................................................ 3354
RemoveRange ................................................................................................................ 3355
Reverse ................................................................................................................ 3356
Sort ................................................................................................................ 3357
C HashMap.........................................................................................................................
<TKey,TValue> 3358
Add ................................................................................................................ 3360
Count ................................................................................................................ 3361
Comparer ................................................................................................................ 3362
Contains ................................................................................................................ 3363
Contains Key ................................................................................................................ 3364
ContainsValue ................................................................................................................ 3365
CopyTo ................................................................................................................ 3366
Clear ................................................................................................................ 3367
Remove ................................................................................................................ 3368
TryGetValue ................................................................................................................ 3369
TrySetValue................................................................................................................ 3370
C HashSet.........................................................................................................................
<T> 3371
Add ................................................................................................................ 3373
Count ................................................................................................................ 3374
Contains ................................................................................................................ 3375
Comparer ................................................................................................................ 3376

© 2000-2021, MetaQuotes Ltd


30 Content

TrimEx cess................................................................................................................ 3377


CopyTo ................................................................................................................ 3378
Clear ................................................................................................................ 3379
Remove ................................................................................................................ 3380
Ex ceptWith................................................................................................................ 3381
IntersectWith................................................................................................................ 3382
SymmetricE................................................................................................................
x ceptWith 3383
UnionWith ................................................................................................................ 3384
IsProperSubsetOf
................................................................................................................ 3385
IsProperSupersetOf
................................................................................................................ 3386
IsSubsetOf................................................................................................................ 3387
IsSupersetOf ................................................................................................................ 3388
Overlaps ................................................................................................................ 3389
SetEquals ................................................................................................................ 3390
CLinkedList
.........................................................................................................................
<T> 3391
Add ................................................................................................................ 3393
AddAfter ................................................................................................................ 3394
AddBefore ................................................................................................................ 3395
AddFirst ................................................................................................................ 3396
AddLast ................................................................................................................ 3397
Count ................................................................................................................ 3398
Head ................................................................................................................ 3399
First ................................................................................................................ 3400
Last ................................................................................................................ 3401
Contains ................................................................................................................ 3402
CopyTo ................................................................................................................ 3403
Clear ................................................................................................................ 3404
Remove ................................................................................................................ 3405
RemoveFirst ................................................................................................................ 3406
RemoveLast................................................................................................................ 3407
Find ................................................................................................................ 3408
FindLast ................................................................................................................ 3409
CQueue.........................................................................................................................
<T> 3410
Add ................................................................................................................ 3411
Enqueue ................................................................................................................ 3412
Count ................................................................................................................ 3413
Contains ................................................................................................................ 3414
TrimEx cess................................................................................................................ 3415
CopyTo ................................................................................................................ 3416
Clear ................................................................................................................ 3417
Remove ................................................................................................................ 3418
Dequeue ................................................................................................................ 3419
Peek ................................................................................................................ 3420
CRedBlackTree
.........................................................................................................................
<T> 3421
Add ................................................................................................................ 3423
Count ................................................................................................................ 3424
Root ................................................................................................................ 3425
Contains ................................................................................................................ 3426
Comparer ................................................................................................................ 3427
TryGetMin ................................................................................................................ 3428
TryGetMax................................................................................................................ 3429
CopyTo ................................................................................................................ 3430
Clear ................................................................................................................ 3431
Remove ................................................................................................................ 3432
RemoveMin................................................................................................................ 3433
RemoveMax................................................................................................................ 3434
Find ................................................................................................................ 3435
FindMin ................................................................................................................ 3436

© 2000-2021, MetaQuotes Ltd


31 Content

FindMax ................................................................................................................ 3437


CSortedMap
.........................................................................................................................
<TKey, TValue> 3438
Add ................................................................................................................ 3440
Count ................................................................................................................ 3441
Comparer ................................................................................................................ 3442
Contains ................................................................................................................ 3443
Contains Key ................................................................................................................ 3444
ContainsValue................................................................................................................ 3445
CopyTo ................................................................................................................ 3446
Clear ................................................................................................................ 3447
Remove ................................................................................................................ 3448
TryGetValue ................................................................................................................ 3449
TrySetValue................................................................................................................ 3450
CSortedSet
.........................................................................................................................
<T> 3451
Add ................................................................................................................ 3453
Count ................................................................................................................ 3454
Contains ................................................................................................................ 3455
Comparer ................................................................................................................ 3456
TryGetMin ................................................................................................................ 3457
TryGetMax................................................................................................................ 3458
CopyTo ................................................................................................................ 3459
Clear ................................................................................................................ 3460
Remove ................................................................................................................ 3461
Ex ceptWith................................................................................................................ 3462
IntersectWith................................................................................................................ 3463
SymmetricE................................................................................................................
x ceptWith 3464
UnionWith ................................................................................................................ 3465
IsProperSubsetOf
................................................................................................................ 3466
IsProperSupersetOf
................................................................................................................ 3467
IsSubsetOf................................................................................................................ 3468
IsSupersetOf ................................................................................................................ 3469
Overlaps ................................................................................................................ 3470
SetEquals ................................................................................................................ 3471
GetViewBetween
................................................................................................................ 3472
GetReverse................................................................................................................ 3473
CStack <.........................................................................................................................
T> 3474
Add ................................................................................................................ 3475
Count ................................................................................................................ 3476
Contains ................................................................................................................ 3477
TrimEx cess................................................................................................................ 3478
CopyTo ................................................................................................................ 3479
Clear ................................................................................................................ 3480
Remove ................................................................................................................ 3481
Push ................................................................................................................ 3482
Peek ................................................................................................................ 3483
Pop ................................................................................................................ 3484
ArrayBinarySearch
.........................................................................................................................
<T> 3485
ArrayInde
.........................................................................................................................
x Of<T> 3486
ArrayLastInde
.........................................................................................................................
x Of<T> 3487
ArrayReverse
.........................................................................................................................
<T> 3488
Compare ......................................................................................................................... 3489
Equals <T
.........................................................................................................................
> 3492
Get HashCode
......................................................................................................................... 3493
File ............................................................................................................................3496
CFile ......................................................................................................................... 3497
Handle ................................................................................................................ 3499
Filename ................................................................................................................ 3500
Flags ................................................................................................................ 3501

© 2000-2021, MetaQuotes Ltd


32 Content

SetUnicode................................................................................................................ 3502
SetCommon................................................................................................................ 3503
Open ................................................................................................................ 3504
Close ................................................................................................................ 3505
Delete ................................................................................................................ 3506
IsEx ist ................................................................................................................ 3507
Copy ................................................................................................................ 3508
Move ................................................................................................................ 3509
Size ................................................................................................................ 3510
Tell ................................................................................................................ 3511
Seek ................................................................................................................ 3512
Flush ................................................................................................................ 3513
IsEnding ................................................................................................................ 3514
IsLineEnding ................................................................................................................ 3515
FolderCreate ................................................................................................................ 3516
FolderDelete ................................................................................................................ 3517
FolderClean................................................................................................................ 3518
FileFindFirst ................................................................................................................ 3519
FileFindNex................................................................................................................
t 3520
FileFindClose ................................................................................................................ 3521
CFileBin......................................................................................................................... 3522
Open ................................................................................................................ 3524
WriteChar ................................................................................................................ 3525
WriteShort................................................................................................................ 3526
WriteInteger ................................................................................................................ 3527
WriteLong ................................................................................................................ 3528
WriteFloat ................................................................................................................ 3529
WriteDouble ................................................................................................................ 3530
WriteString................................................................................................................ 3531
WriteCharArray................................................................................................................ 3532
WriteShortArray
................................................................................................................ 3533
WriteIntegerArray
................................................................................................................ 3534
WriteLongArray................................................................................................................ 3535
WriteFloatArray
................................................................................................................ 3536
WriteDoubleArray
................................................................................................................ 3537
WriteObject ................................................................................................................ 3538
ReadChar ................................................................................................................ 3539
ReadShort ................................................................................................................ 3540
ReadInteger ................................................................................................................ 3541
ReadLong ................................................................................................................ 3542
ReadFloat ................................................................................................................ 3543
ReadDouble................................................................................................................ 3544
ReadString ................................................................................................................ 3545
ReadCharArray ................................................................................................................ 3546
ReadShortArray................................................................................................................ 3547
ReadIntegerArray
................................................................................................................ 3548
ReadLongArray ................................................................................................................ 3549
ReadFloatArray................................................................................................................ 3550
ReadDoubleArray
................................................................................................................ 3551
ReadObject................................................................................................................ 3552
CFileTx t......................................................................................................................... 3553
Open ................................................................................................................ 3554
WriteString................................................................................................................ 3555
ReadString ................................................................................................................ 3556
Stringhe ............................................................................................................................3557
CString ......................................................................................................................... 3558
Str ................................................................................................................ 3560
Len ................................................................................................................ 3561

© 2000-2021, MetaQuotes Ltd


33 Content

Copy ................................................................................................................ 3562


Fill ................................................................................................................ 3563
Assign ................................................................................................................ 3564
Append ................................................................................................................ 3565
Insert ................................................................................................................ 3566
Compare ................................................................................................................ 3567
CompareNoCase
................................................................................................................ 3568
Left ................................................................................................................ 3569
Right ................................................................................................................ 3570
Mid ................................................................................................................ 3571
Trim ................................................................................................................ 3572
TrimLeft ................................................................................................................ 3573
TrimRight ................................................................................................................ 3574
Clear ................................................................................................................ 3575
ToUpper ................................................................................................................ 3576
ToLower ................................................................................................................ 3577
Reverse ................................................................................................................ 3578
Find ................................................................................................................ 3579
FindRev ................................................................................................................ 3580
Remove ................................................................................................................ 3581
Replace ................................................................................................................ 3582
............................................................................................................................3583
Oggetti Grafic i
CChartOb
.........................................................................................................................
ject 3584
ChartId ................................................................................................................ 3587
Window ................................................................................................................ 3588
Name ................................................................................................................ 3589
NumPoints ................................................................................................................ 3590
Attach ................................................................................................................ 3591
SetPoint ................................................................................................................ 3592
Delete ................................................................................................................ 3593
Detach ................................................................................................................ 3594
ShiftObject................................................................................................................ 3595
ShiftPoint ................................................................................................................ 3596
Time ................................................................................................................ 3597
Price ................................................................................................................ 3599
Color ................................................................................................................ 3601
Style ................................................................................................................ 3602
Width ................................................................................................................ 3603
Background................................................................................................................ 3604
Selected ................................................................................................................ 3605
Selectable ................................................................................................................ 3606
Description................................................................................................................ 3607
Tooltip ................................................................................................................ 3608
Timeframes................................................................................................................ 3609
Z_Order ................................................................................................................ 3610
CreateTime................................................................................................................ 3611
LevelsCount ................................................................................................................ 3612
LevelColor ................................................................................................................ 3613
LevelStyle ................................................................................................................ 3615
LevelWidth................................................................................................................ 3617
LevelValue ................................................................................................................ 3619
LevelDescription
................................................................................................................ 3621
GetInteger................................................................................................................ 3623
SetInteger ................................................................................................................ 3625
GetDouble ................................................................................................................ 3627
SetDouble ................................................................................................................ 3629
GetString ................................................................................................................ 3631
SetString ................................................................................................................ 3633

© 2000-2021, MetaQuotes Ltd


34 Content

Save ................................................................................................................ 3635


Load ................................................................................................................ 3636
Type ................................................................................................................ 3637
Objects.........................................................................................................................
Lines 3638
CChartObjectVLine
................................................................................................................ 3639
Create ........................................................................................................... 3640
Type ........................................................................................................... 3641
CChartObject ................................................................................................................
HLine 3642
Create ........................................................................................................... 3643
Type ........................................................................................................... 3644
CChartObjectTrend
................................................................................................................ 3645
Create ........................................................................................................... 3647
RayLeft ........................................................................................................... 3648
RayRight ........................................................................................................... 3649
Save ........................................................................................................... 3650
Load ........................................................................................................... 3651
Type ........................................................................................................... 3652
CChartObjectTrendByAngle
................................................................................................................ 3653
Create ........................................................................................................... 3655
Angle ........................................................................................................... 3656
Type ........................................................................................................... 3657
CChartObjectCycles
................................................................................................................ 3658
Create ........................................................................................................... 3659
Type ........................................................................................................... 3660
Objects.........................................................................................................................
Channels 3661
CChartObjectChannel
................................................................................................................ 3662
Create ........................................................................................................... 3664
Type ........................................................................................................... 3665
CChartObjectRegression
................................................................................................................ 3666
Create ........................................................................................................... 3668
Type ........................................................................................................... 3669
CChartObjectStdDevChannel
................................................................................................................ 3670
Create ........................................................................................................... 3672
Deviations ........................................................................................................... 3673
Save ........................................................................................................... 3674
Load ........................................................................................................... 3675
Type ........................................................................................................... 3676
CChartObjectPitchfork
................................................................................................................ 3677
Create ........................................................................................................... 3679
Type ........................................................................................................... 3680
Gann Tools
......................................................................................................................... 3681
CChartObjectGannLine
................................................................................................................ 3682
Create ........................................................................................................... 3684
PipsPerBar........................................................................................................... 3685
Save ........................................................................................................... 3686
Load ........................................................................................................... 3687
Type ........................................................................................................... 3688
CChartObjectGannFan
................................................................................................................ 3689
Create ........................................................................................................... 3691
PipsPerBar........................................................................................................... 3692
Downtrend........................................................................................................... 3693
Save ........................................................................................................... 3694
Load ........................................................................................................... 3695
Type ........................................................................................................... 3696
CChartObjectGannGrid
................................................................................................................ 3697
Create ........................................................................................................... 3699
PipsPerBar........................................................................................................... 3700
Downtrend........................................................................................................... 3701

© 2000-2021, MetaQuotes Ltd


35 Content

Save ........................................................................................................... 3702


Load ........................................................................................................... 3703
Type ........................................................................................................... 3704
Fibonacci.........................................................................................................................
Tools 3705
CChartObjectFibo
................................................................................................................ 3706
Create ........................................................................................................... 3708
Type ........................................................................................................... 3709
CChartObjectFiboTimes
................................................................................................................ 3710
Create ........................................................................................................... 3711
Type ........................................................................................................... 3712
CChartObjectFiboFan
................................................................................................................ 3713
Create ........................................................................................................... 3714
Type ........................................................................................................... 3715
CChartObjectFiboArc
................................................................................................................ 3716
Create ........................................................................................................... 3718
Scale ........................................................................................................... 3719
Ellipse ........................................................................................................... 3720
Save ........................................................................................................... 3721
Load ........................................................................................................... 3722
Type ........................................................................................................... 3723
CChartObjectFiboChannel
................................................................................................................ 3724
Create ........................................................................................................... 3726
Type ........................................................................................................... 3727
CChartObjectFiboE
................................................................................................................
x pansion 3728
Create ........................................................................................................... 3730
Type ........................................................................................................... 3731
Elliott Tools
......................................................................................................................... 3732
CChartObjectElliottWave3
................................................................................................................ 3733
Create ........................................................................................................... 3735
Degree ........................................................................................................... 3736
Lines ........................................................................................................... 3737
Save ........................................................................................................... 3738
Load ........................................................................................................... 3739
Type ........................................................................................................... 3740
CChartObjectElliottWave5
................................................................................................................ 3741
Create ........................................................................................................... 3743
Type ........................................................................................................... 3745
Objects.........................................................................................................................
Shapes 3746
CChartObjectRectangle
................................................................................................................ 3747
Create ........................................................................................................... 3748
Type ........................................................................................................... 3749
CChartObjectTriangle
................................................................................................................ 3750
Create ........................................................................................................... 3751
Type ........................................................................................................... 3752
CChartObjectEllipse
................................................................................................................ 3753
Create ........................................................................................................... 3754
Type ........................................................................................................... 3755
Objects.........................................................................................................................
Arrows 3756
CChartObjectArrow
................................................................................................................ 3757
Create ........................................................................................................... 3759
ArrowCode........................................................................................................... 3761
Anchor ........................................................................................................... 3763
Save ........................................................................................................... 3765
Load ........................................................................................................... 3766
Type ........................................................................................................... 3767
Arrows with................................................................................................................
fix ed code 3768
Create ........................................................................................................... 3770
ArrowCode........................................................................................................... 3772

© 2000-2021, MetaQuotes Ltd


36 Content

Type ........................................................................................................... 3773


Objects.........................................................................................................................
Controls 3774
CChartObjectTe
................................................................................................................
xt 3775
Create ........................................................................................................... 3777
Angle ........................................................................................................... 3778
Font ........................................................................................................... 3779
FontSize ........................................................................................................... 3780
Anchor ........................................................................................................... 3781
Save ........................................................................................................... 3782
Load ........................................................................................................... 3783
Type ........................................................................................................... 3784
CChartObjectLabel
................................................................................................................ 3785
Create ........................................................................................................... 3787
X_Distance........................................................................................................... 3788
Y_Distance........................................................................................................... 3789
X_Size ........................................................................................................... 3790
Y_Size ........................................................................................................... 3791
Corner ........................................................................................................... 3792
Time ........................................................................................................... 3793
Price ........................................................................................................... 3794
Save ........................................................................................................... 3795
Load ........................................................................................................... 3796
Type ........................................................................................................... 3797
CChartObjectEdit
................................................................................................................ 3798
Create ........................................................................................................... 3800
Tex tAlign ........................................................................................................... 3801
X_Size ........................................................................................................... 3802
Y_Size ........................................................................................................... 3803
BackColor ........................................................................................................... 3804
BorderColor ........................................................................................................... 3805
ReadOnly ........................................................................................................... 3806
Angle ........................................................................................................... 3807
Save ........................................................................................................... 3808
Load ........................................................................................................... 3809
Type ........................................................................................................... 3810
CChartObjectButton
................................................................................................................ 3811
State ........................................................................................................... 3813
Save ........................................................................................................... 3814
Load ........................................................................................................... 3815
Type ........................................................................................................... 3816
CChartObjectSubChart
................................................................................................................ 3817
Create ........................................................................................................... 3819
X_Distance........................................................................................................... 3820
Y_Distance........................................................................................................... 3821
Corner ........................................................................................................... 3822
X_Size ........................................................................................................... 3823
Y_Size ........................................................................................................... 3824
Symbol ........................................................................................................... 3825
Period ........................................................................................................... 3826
Scale ........................................................................................................... 3827
DateScale ........................................................................................................... 3828
PriceScale ........................................................................................................... 3829
Time ........................................................................................................... 3830
Price ........................................................................................................... 3831
Save ........................................................................................................... 3832
Load ........................................................................................................... 3833
Type ........................................................................................................... 3834
CChartObjectBitmap
................................................................................................................ 3835

© 2000-2021, MetaQuotes Ltd


37 Content

Create ........................................................................................................... 3837


BmpFile ........................................................................................................... 3838
X_Offset ........................................................................................................... 3839
Y_Offset ........................................................................................................... 3840
Save ........................................................................................................... 3841
Load ........................................................................................................... 3842
Type ........................................................................................................... 3843
CChartObjectBmpLabel
................................................................................................................ 3844
Create ........................................................................................................... 3846
X_Distance........................................................................................................... 3847
Y_Distance........................................................................................................... 3848
X_Offset ........................................................................................................... 3849
Y_Offset ........................................................................................................... 3850
Corner ........................................................................................................... 3851
X_Size ........................................................................................................... 3852
Y_Size ........................................................................................................... 3853
BmpFileOn ........................................................................................................... 3854
BmpFileOff........................................................................................................... 3855
State ........................................................................................................... 3856
Time ........................................................................................................... 3857
Price ........................................................................................................... 3858
Save ........................................................................................................... 3859
Load ........................................................................................................... 3860
Type ........................................................................................................... 3861
CChartObjectRectLabel
................................................................................................................ 3862
Create ........................................................................................................... 3864
X_Size ........................................................................................................... 3865
Y_Size ........................................................................................................... 3866
BackColor ........................................................................................................... 3867
Angle ........................................................................................................... 3868
BorderType........................................................................................................... 3869
Save ........................................................................................................... 3870
Load ........................................................................................................... 3871
Type ........................................................................................................... 3872
............................................................................................................................3873
Grafic a Personalizzata
CCanvas......................................................................................................................... 3874
Attach ................................................................................................................ 3877
Arc ................................................................................................................ 3878
Pie ................................................................................................................ 3882
FillPolygon ................................................................................................................ 3886
FillEllipse ................................................................................................................ 3887
GetDefaultColor
................................................................................................................ 3888
ChartObjectName
................................................................................................................ 3889
Circle ................................................................................................................ 3890
CircleAA ................................................................................................................ 3891
CircleWu ................................................................................................................ 3892
Create ................................................................................................................ 3893
CreateBitmap ................................................................................................................ 3894
CreateBitmapLabel
................................................................................................................ 3896
Destroy ................................................................................................................ 3898
Ellipse ................................................................................................................ 3899
EllipseAA ................................................................................................................ 3900
EllipseWu ................................................................................................................ 3901
Erase ................................................................................................................ 3902
Fill ................................................................................................................ 3903
FillCircle ................................................................................................................ 3904
FillRectangle................................................................................................................ 3905
FillTriangle ................................................................................................................ 3906

© 2000-2021, MetaQuotes Ltd


38 Content

FontAngleGet ................................................................................................................ 3907


FontAngleSet ................................................................................................................ 3908
FontFlagsGet ................................................................................................................ 3909
FontFlagsSet ................................................................................................................ 3910
FontGet ................................................................................................................ 3911
FontNameGet ................................................................................................................ 3912
FontNameSet ................................................................................................................ 3913
FontSet ................................................................................................................ 3914
FontSizeGet ................................................................................................................ 3915
FontSizeSet................................................................................................................ 3916
Height ................................................................................................................ 3917
Line ................................................................................................................ 3918
LineAA ................................................................................................................ 3919
LineWu ................................................................................................................ 3920
LineHorizontal................................................................................................................ 3921
LineVertical ................................................................................................................ 3922
LineStyleSet ................................................................................................................ 3923
LineThick ................................................................................................................ 3924
LineThickVertical
................................................................................................................ 3925
LineThick H................................................................................................................
orizontal 3926
LoadFromFile ................................................................................................................ 3927
Pix elGet ................................................................................................................ 3928
Pix elSet ................................................................................................................ 3929
Pix elSetAA ................................................................................................................ 3930
Polygon ................................................................................................................ 3931
PolygonAA ................................................................................................................ 3932
PolygonWu................................................................................................................ 3933
PolygonThick ................................................................................................................ 3934
PolygonSmooth ................................................................................................................ 3935
Polyline ................................................................................................................ 3936
PolylineSmooth................................................................................................................ 3937
PolylineThick ................................................................................................................ 3938
PolylineWu ................................................................................................................ 3939
PolylineAA ................................................................................................................ 3940
Rectangle ................................................................................................................ 3941
Resize ................................................................................................................ 3942
ResourceName ................................................................................................................ 3943
Tex t Height................................................................................................................ 3944
Tex tOut ................................................................................................................ 3945
Tex tSize ................................................................................................................ 3946
Tex tWidth ................................................................................................................ 3947
TransparentLevelSet
................................................................................................................ 3948
Triangle ................................................................................................................ 3949
TriangleAA ................................................................................................................ 3950
TriangleWu................................................................................................................ 3951
Update ................................................................................................................ 3952
Width ................................................................................................................ 3953
CChartCanvas
......................................................................................................................... 3954
ColorBackground
................................................................................................................ 3958
ColorBorder................................................................................................................ 3959
ColorTex t ................................................................................................................ 3960
ColorGrid ................................................................................................................ 3961
Max Data ................................................................................................................ 3962
Max DescrLen ................................................................................................................ 3963
ShowFlags ................................................................................................................ 3964
IsShowLegend ................................................................................................................ 3965
IsShowScaleLeft
................................................................................................................ 3966
IsShowScaleRight
................................................................................................................ 3967

© 2000-2021, MetaQuotes Ltd


39 Content

IsShowScaleTop................................................................................................................ 3968
IsShowScaleBottom
................................................................................................................ 3969
IsShowGrid................................................................................................................ 3970
IsShowDescriptors
................................................................................................................ 3971
IsShowPercent ................................................................................................................ 3972
VScaleMin ................................................................................................................ 3973
VScaleMax ................................................................................................................ 3974
NumGrid ................................................................................................................ 3975
DataOffset................................................................................................................ 3976
DataTotal ................................................................................................................ 3977
DrawDescriptors
................................................................................................................ 3978
DrawData ................................................................................................................ 3979
Create ................................................................................................................ 3980
AllowedShowFlags
................................................................................................................ 3981
ShowLegend ................................................................................................................ 3982
ShowScaleLeft ................................................................................................................ 3983
ShowScaleRight................................................................................................................ 3984
ShowScaleTop ................................................................................................................ 3985
ShowScaleBottom
................................................................................................................ 3986
ShowGrid ................................................................................................................ 3987
ShowDescriptors
................................................................................................................ 3988
ShowValue ................................................................................................................ 3989
ShowPercent ................................................................................................................ 3990
LegendAlignment
................................................................................................................ 3991
Accumulative ................................................................................................................ 3992
VScaleParams ................................................................................................................ 3993
DescriptorUpdate
................................................................................................................ 3994
ColorUpdate ................................................................................................................ 3995
ValuesCheck ................................................................................................................ 3996
Redraw ................................................................................................................ 3997
DrawBackground................................................................................................................ 3998
DrawLegend ................................................................................................................ 3999
DrawLegendVertical
................................................................................................................ 4000
DrawLegend ................................................................................................................
Horizontal 4001
CalcScales ................................................................................................................ 4002
DrawScales................................................................................................................ 4003
DrawScaleLeft ................................................................................................................ 4004
DrawScaleRight................................................................................................................ 4005
DrawScaleTop ................................................................................................................ 4006
DrawScaleBottom
................................................................................................................ 4007
DrawGrid ................................................................................................................ 4008
DrawChart................................................................................................................ 4009
C HistogramChart
......................................................................................................................... 4010
Gradient ................................................................................................................ 4015
BarGap ................................................................................................................ 4016
BarMinSize................................................................................................................ 4017
BarBorder ................................................................................................................ 4018
Create ................................................................................................................ 4019
SeriesAdd ................................................................................................................ 4020
SeriesInsert ................................................................................................................ 4021
SeriesUpdate ................................................................................................................ 4022
SeriesDelete ................................................................................................................ 4023
ValueUpdate ................................................................................................................ 4024
DrawData ................................................................................................................ 4025
DrawBar ................................................................................................................ 4026
GradientBrush ................................................................................................................ 4027
CLineChart
......................................................................................................................... 4028
Filled ................................................................................................................ 4033

© 2000-2021, MetaQuotes Ltd


40 Content

Create ................................................................................................................ 4034


SeriesAdd ................................................................................................................ 4035
SeriesInsert ................................................................................................................ 4036
SeriesUpdate ................................................................................................................ 4037
SeriesDelete ................................................................................................................ 4038
ValueUpdate ................................................................................................................ 4039
DrawChart................................................................................................................ 4040
DrawData ................................................................................................................ 4041
CalcArea ................................................................................................................ 4042
CPieChart
......................................................................................................................... 4043
Create ................................................................................................................ 4047
SeriesSet ................................................................................................................ 4048
ValueAdd ................................................................................................................ 4049
ValueInsert................................................................................................................ 4050
ValueUpdate ................................................................................................................ 4051
ValueDelete................................................................................................................ 4052
DrawChart................................................................................................................ 4053
DrawPie ................................................................................................................ 4054
LabelMake ................................................................................................................ 4055
3D graphic............................................................................................................................4056
s
CCanvas3D
......................................................................................................................... 4057
AmbientColorGet
................................................................................................................ 4060
AmbientColorSet
................................................................................................................ 4061
Attach ................................................................................................................ 4062
Create ................................................................................................................ 4063
Destroy ................................................................................................................ 4064
DX Contex t................................................................................................................ 4065
DX Dispatcher................................................................................................................ 4066
InputScene................................................................................................................ 4067
LightColorGet................................................................................................................ 4068
LightColorSet................................................................................................................ 4069
LightDirectionGet
................................................................................................................ 4070
LightDirectionSet
................................................................................................................ 4071
ObjectAdd ................................................................................................................ 4072
ProjectionMatri
................................................................................................................
x Get 4073
ProjectionMatri
................................................................................................................
x Set 4074
Render ................................................................................................................ 4075
RenderBegin ................................................................................................................ 4076
RenderEnd ................................................................................................................ 4077
ViewMatrix................................................................................................................
Get 4078
ViewMatrix................................................................................................................
Set 4079
ViewPositionSet
................................................................................................................ 4080
ViewRotationSet
................................................................................................................ 4081
ViewTargetSet................................................................................................................ 4082
ViewUpDirectionSet
................................................................................................................ 4083
............................................................................................................................4084
Grafic i Prezzi
ChartID......................................................................................................................... 4090
Mode ......................................................................................................................... 4091
Foreground
......................................................................................................................... 4092
Shift ......................................................................................................................... 4093
ShiftSize......................................................................................................................... 4094
AutoScroll
......................................................................................................................... 4095
Scale ......................................................................................................................... 4096
ScaleFix......................................................................................................................... 4097
ScaleFix_.........................................................................................................................
11 4098
Fix edMa.........................................................................................................................
x 4099
Fix edMin......................................................................................................................... 4100
PointsPerBar
......................................................................................................................... 4101

© 2000-2021, MetaQuotes Ltd


41 Content

ScalePPB......................................................................................................................... 4102
ShowO H.........................................................................................................................
LC 4103
ShowLineBid
......................................................................................................................... 4104
ShowLineAsk
......................................................................................................................... 4105
ShowLastLine
......................................................................................................................... 4106
ShowPeriodSep
......................................................................................................................... 4107
ShowGrid......................................................................................................................... 4108
ShowVolumes
......................................................................................................................... 4109
ShowOb.........................................................................................................................
jectDescr 4110
ShowDateScale
......................................................................................................................... 4111
ShowPriceScale
......................................................................................................................... 4112
ColorBackground
......................................................................................................................... 4113
ColorForeground
......................................................................................................................... 4114
ColorGrid
......................................................................................................................... 4115
ColorBarUp
......................................................................................................................... 4116
ColorBarDown
......................................................................................................................... 4117
ColorCandleBull
......................................................................................................................... 4118
ColorCandleBear
......................................................................................................................... 4119
ColorChartLine
......................................................................................................................... 4120
ColorVolumes
......................................................................................................................... 4121
ColorLineBid
......................................................................................................................... 4122
ColorLineAsk
......................................................................................................................... 4123
ColorLineLast
......................................................................................................................... 4124
ColorStopLevels
......................................................................................................................... 4125
VisibleBars
......................................................................................................................... 4126
WindowsTotal
......................................................................................................................... 4127
WindowIsVisible
......................................................................................................................... 4128
Window.........................................................................................................................
Handle 4129
FirstVisibleBar
......................................................................................................................... 4130
WidthInBars
......................................................................................................................... 4131
WidthInPi
.........................................................................................................................
x els 4132
HeightInPi
.........................................................................................................................
x els 4133
PriceMin......................................................................................................................... 4134
PriceMa.........................................................................................................................
x 4135
Attach ......................................................................................................................... 4136
FirstChart
......................................................................................................................... 4137
Nex tChart
......................................................................................................................... 4138
Open ......................................................................................................................... 4139
Detach ......................................................................................................................... 4140
Close ......................................................................................................................... 4141
BringToTop
......................................................................................................................... 4142
EventOb.........................................................................................................................
jectCreate 4143
EventOb.........................................................................................................................
jectDelete 4144
IndicatorAdd
......................................................................................................................... 4145
IndicatorDelete
......................................................................................................................... 4146
IndicatorsTotal
......................................................................................................................... 4147
IndicatorName
......................................................................................................................... 4148
Navigate......................................................................................................................... 4149
Symbol ......................................................................................................................... 4150
Period ......................................................................................................................... 4151
Redraw......................................................................................................................... 4152
GetInteger
......................................................................................................................... 4153
SetInteger
......................................................................................................................... 4154
GetDouble
......................................................................................................................... 4155
SetDouble
......................................................................................................................... 4156
GetString
......................................................................................................................... 4157
SetString
......................................................................................................................... 4158
SetSymbolPeriod
......................................................................................................................... 4159

© 2000-2021, MetaQuotes Ltd


42 Content

ApplyTemplate
......................................................................................................................... 4160
ScreenShot
......................................................................................................................... 4161
WindowOnDropped
......................................................................................................................... 4162
PriceOnDropped
......................................................................................................................... 4163
TimeOnDropped
......................................................................................................................... 4164
X OnDropped
......................................................................................................................... 4165
Y OnDropped
......................................................................................................................... 4166
Save ......................................................................................................................... 4167
Load ......................................................................................................................... 4168
Type ......................................................................................................................... 4169
............................................................................................................................4170
Grafic i Sc ientific i
GraphPlot
......................................................................................................................... 4171
CAx is ......................................................................................................................... 4175
AutoScale ................................................................................................................ 4177
Min ................................................................................................................ 4178
Max ................................................................................................................ 4179
Step ................................................................................................................ 4180
Name ................................................................................................................ 4181
Color ................................................................................................................ 4182
ValuesSize ................................................................................................................ 4183
ValuesWidth ................................................................................................................ 4184
ValuesFormat ................................................................................................................ 4185
ValuesDateTimeMode
................................................................................................................ 4186
ValuesFunctionFormat
................................................................................................................ 4187
ValuesFunctionFormatCBData
................................................................................................................ 4189
NameSize ................................................................................................................ 4190
ZeroLever ................................................................................................................ 4191
DefaultStep................................................................................................................ 4192
Max Labels ................................................................................................................ 4193
MinGrace ................................................................................................................ 4194
Max Grace ................................................................................................................ 4195
SelectAx isScale
................................................................................................................ 4196
CColorGenerator
......................................................................................................................... 4197
Nex t ................................................................................................................ 4198
Reset ................................................................................................................ 4199
CCurve......................................................................................................................... 4200
Type ................................................................................................................ 4203
Name ................................................................................................................ 4204
Color ................................................................................................................ 4205
X Max ................................................................................................................ 4206
X Min ................................................................................................................ 4207
Y Max ................................................................................................................ 4208
Y Min ................................................................................................................ 4209
Size ................................................................................................................ 4210
PointsSize ................................................................................................................ 4211
PointsFill ................................................................................................................ 4212
PointsColor................................................................................................................ 4213
Get X ................................................................................................................ 4214
Get Y ................................................................................................................ 4215
LinesStyle ................................................................................................................ 4216
LinesIsSmooth................................................................................................................ 4217
LinesSmoothTension
................................................................................................................ 4218
LinesSmoothStep
................................................................................................................ 4219
LinesEndStyle................................................................................................................ 4220
LinesWidth................................................................................................................ 4221
HistogramWidth
................................................................................................................ 4223
CustomPlotCBData
................................................................................................................ 4224
CustomPlotFunction
................................................................................................................ 4225

© 2000-2021, MetaQuotes Ltd


43 Content

PointsType................................................................................................................ 4229
StepsDimension................................................................................................................ 4230
TrendLineCoefficients
................................................................................................................ 4231
TrendLineColor................................................................................................................ 4232
TrendLineVisible
................................................................................................................ 4233
Update ................................................................................................................ 4235
Visible ................................................................................................................ 4237
CGraphic......................................................................................................................... 4238
Create ................................................................................................................ 4241
Destroy ................................................................................................................ 4242
Update ................................................................................................................ 4243
ChartObjectName
................................................................................................................ 4244
ResourceName ................................................................................................................ 4245
X Ax is ................................................................................................................ 4246
Y Ax is ................................................................................................................ 4247
GapSize ................................................................................................................ 4248
BackgroundColor
................................................................................................................ 4249
BackgroundMain................................................................................................................ 4250
BackgroundMainSize
................................................................................................................ 4251
BackgroundMainColor
................................................................................................................ 4252
BackgroundSub ................................................................................................................ 4253
BackgroundSubSize
................................................................................................................ 4254
BackgroundSubColor
................................................................................................................ 4255
GridLineColor ................................................................................................................ 4256
GridBackgroundColor
................................................................................................................ 4257
GridCircleRadius
................................................................................................................ 4258
GridCircleColor
................................................................................................................ 4259
GridHasCircle ................................................................................................................ 4260
GridAx isLineColor
................................................................................................................ 4261
HistoryNameWidth
................................................................................................................ 4262
HistoryNameSize
................................................................................................................ 4263
HistorySymbolSize
................................................................................................................ 4264
Tex tAdd ................................................................................................................ 4265
LineAdd ................................................................................................................ 4266
CurveAdd ................................................................................................................ 4267
CurvePlot ................................................................................................................ 4270
CurvePlotAll ................................................................................................................ 4271
CurveGetByInde................................................................................................................
x 4272
CurveGetByName................................................................................................................ 4273
CurveRemoveByInde
................................................................................................................
x 4274
CurveRemoveByName
................................................................................................................ 4275
CurvesTotal ................................................................................................................ 4276
MarksToAx isAdd
................................................................................................................ 4277
MajorMarkSize ................................................................................................................ 4278
FontSet ................................................................................................................ 4279
FontGet ................................................................................................................ 4280
Attach ................................................................................................................ 4281
CalculateMa................................................................................................................
x MinValues 4282
Height ................................................................................................................ 4283
IndentDown................................................................................................................ 4284
IndentLeft ................................................................................................................ 4285
IndentRight................................................................................................................ 4286
IndentUp ................................................................................................................ 4287
Redraw ................................................................................................................ 4288
ResetParameters
................................................................................................................ 4289
ScaleX ................................................................................................................ 4290
ScaleY ................................................................................................................ 4291
SetDefaultParameters
................................................................................................................ 4292

© 2000-2021, MetaQuotes Ltd


44 Content

Width ................................................................................................................ 4293


Indic atori ............................................................................................................................4294
Classi Base
......................................................................................................................... 4295
CSpreadBuffer................................................................................................................ 4296
Size ........................................................................................................... 4298
SetSymbolPeriod
........................................................................................................... 4299
At ........................................................................................................... 4300
Refresh ........................................................................................................... 4301
RefreshCurrent
........................................................................................................... 4302
CTimeBuffer ................................................................................................................ 4303
Size ........................................................................................................... 4305
SetSymbolPeriod
........................................................................................................... 4306
At ........................................................................................................... 4307
Refresh ........................................................................................................... 4308
RefreshCurrent
........................................................................................................... 4309
CTickVolumeBuffer
................................................................................................................ 4310
Size ........................................................................................................... 4312
SetSymbolPeriod
........................................................................................................... 4313
At ........................................................................................................... 4314
Refresh ........................................................................................................... 4315
RefreshCurrent
........................................................................................................... 4316
CRealVolumeBuffer
................................................................................................................ 4317
Size ........................................................................................................... 4319
SetSymbolPeriod
........................................................................................................... 4320
At ........................................................................................................... 4321
Refresh ........................................................................................................... 4322
RefreshCurrent
........................................................................................................... 4323
CDoubleBuffer................................................................................................................ 4324
Size ........................................................................................................... 4326
SetSymbolPeriod
........................................................................................................... 4327
At ........................................................................................................... 4328
Refresh ........................................................................................................... 4329
RefreshCurrent
........................................................................................................... 4330
COpenBuffer ................................................................................................................ 4331
Refresh ........................................................................................................... 4332
RefreshCurrent
........................................................................................................... 4333
C HighBuffer................................................................................................................ 4334
Refresh ........................................................................................................... 4335
RefreshCurrent
........................................................................................................... 4336
CLowBuffer................................................................................................................ 4337
Refresh ........................................................................................................... 4338
RefreshCurrent
........................................................................................................... 4339
CCloseBuffer ................................................................................................................ 4340
Refresh ........................................................................................................... 4341
RefreshCurrent
........................................................................................................... 4342
CIndicatorBuffer
................................................................................................................ 4343
Offset ........................................................................................................... 4345
Name ........................................................................................................... 4346
At ........................................................................................................... 4347
Refresh ........................................................................................................... 4348
RefreshCurrent
........................................................................................................... 4349
CSeries ................................................................................................................ 4350
Name ........................................................................................................... 4352
BuffersTotal ........................................................................................................... 4353
Timeframe ........................................................................................................... 4354
Symbol ........................................................................................................... 4355
Period ........................................................................................................... 4356
RefreshCurrent
........................................................................................................... 4357

© 2000-2021, MetaQuotes Ltd


45 Content

BufferSize ........................................................................................................... 4358


BufferResize ........................................................................................................... 4359
Refresh ........................................................................................................... 4360
PeriodDescription
........................................................................................................... 4361
CPriceSeries ................................................................................................................ 4362
BufferResize ........................................................................................................... 4364
GetData ........................................................................................................... 4365
Refresh ........................................................................................................... 4366
MinIndex ........................................................................................................... 4367
MinValue ........................................................................................................... 4368
Max Index ........................................................................................................... 4369
Max Value ........................................................................................................... 4370
CIndicator ................................................................................................................ 4371
Handle ........................................................................................................... 4373
Status ........................................................................................................... 4374
FullRelease........................................................................................................... 4375
Create ........................................................................................................... 4376
BufferResize ........................................................................................................... 4377
GetData ........................................................................................................... 4378
Refresh ........................................................................................................... 4381
Minimum ........................................................................................................... 4382
MinValue ........................................................................................................... 4383
Max imum ........................................................................................................... 4384
Max Value ........................................................................................................... 4385
MethodDescription
........................................................................................................... 4386
PriceDescription
........................................................................................................... 4387
VolumeDescription
........................................................................................................... 4388
AddToChart........................................................................................................... 4389
DeleteFromChart
........................................................................................................... 4390
BarsCalculated
........................................................................................................... 4391
CIndicators................................................................................................................ 4392
Create ........................................................................................................... 4393
Refresh ........................................................................................................... 4394
Classi Timeseries
......................................................................................................................... 4395
CiSpread ................................................................................................................ 4396
Create ........................................................................................................... 4398
BufferResize ........................................................................................................... 4399
GetData ........................................................................................................... 4400
Refresh ........................................................................................................... 4402
CiTime ................................................................................................................ 4403
Create ........................................................................................................... 4405
BufferResize ........................................................................................................... 4406
GetData ........................................................................................................... 4407
Refresh ........................................................................................................... 4409
CiTickVolume ................................................................................................................ 4410
Create ........................................................................................................... 4412
BufferResize ........................................................................................................... 4413
GetData ........................................................................................................... 4414
Refresh ........................................................................................................... 4416
CiRealVolume ................................................................................................................ 4417
Create ........................................................................................................... 4419
BufferResize ........................................................................................................... 4420
GetData ........................................................................................................... 4421
Refresh ........................................................................................................... 4423
CiOpen ................................................................................................................ 4424
Create ........................................................................................................... 4426
GetData ........................................................................................................... 4427
CiHigh ................................................................................................................ 4429

© 2000-2021, MetaQuotes Ltd


46 Content

Create ........................................................................................................... 4431


GetData ........................................................................................................... 4432
CiLow ................................................................................................................ 4434
Create ........................................................................................................... 4436
GetData ........................................................................................................... 4437
CiClose ................................................................................................................ 4439
Create ........................................................................................................... 4441
GetData ........................................................................................................... 4442
Indicatori
.........................................................................................................................
di Trend 4444
CiADX ................................................................................................................ 4445
MaPeriod ........................................................................................................... 4447
Create ........................................................................................................... 4448
Main ........................................................................................................... 4449
Plus ........................................................................................................... 4450
Minus ........................................................................................................... 4451
Type ........................................................................................................... 4452
CiADX Wilder ................................................................................................................ 4453
MaPeriod ........................................................................................................... 4455
Create ........................................................................................................... 4456
Main ........................................................................................................... 4457
Plus ........................................................................................................... 4458
Minus ........................................................................................................... 4459
Type ........................................................................................................... 4460
CiBands ................................................................................................................ 4461
MaPeriod ........................................................................................................... 4463
MaShift ........................................................................................................... 4464
Deviation ........................................................................................................... 4465
Applied ........................................................................................................... 4466
Create ........................................................................................................... 4467
Base ........................................................................................................... 4468
Upper ........................................................................................................... 4469
Lower ........................................................................................................... 4470
Type ........................................................................................................... 4471
CiEnvelopes................................................................................................................ 4472
MaPeriod ........................................................................................................... 4474
MaShift ........................................................................................................... 4475
MaMethod ........................................................................................................... 4476
Deviation ........................................................................................................... 4477
Applied ........................................................................................................... 4478
Create ........................................................................................................... 4479
Upper ........................................................................................................... 4480
Lower ........................................................................................................... 4481
Type ........................................................................................................... 4482
CiIchimoku................................................................................................................ 4483
TenkanSenPeriod
........................................................................................................... 4485
KijunSenPeriod
........................................................................................................... 4486
SenkouSpanBPeriod
........................................................................................................... 4487
Create ........................................................................................................... 4488
TenkanSen........................................................................................................... 4489
KijunSen ........................................................................................................... 4490
SenkouSpanA ........................................................................................................... 4491
SenkouSpanB ........................................................................................................... 4492
ChinkouSpan ........................................................................................................... 4493
Type ........................................................................................................... 4494
CiMA ................................................................................................................ 4495
MaPeriod ........................................................................................................... 4497
MaShift ........................................................................................................... 4498
MaMethod ........................................................................................................... 4499

© 2000-2021, MetaQuotes Ltd


47 Content

Applied ........................................................................................................... 4500


Create ........................................................................................................... 4501
Main ........................................................................................................... 4502
Type ........................................................................................................... 4503
CiSAR ................................................................................................................ 4504
SarStep ........................................................................................................... 4506
Max imum ........................................................................................................... 4507
Create ........................................................................................................... 4508
Main ........................................................................................................... 4509
Type ........................................................................................................... 4510
CiStdDev ................................................................................................................ 4511
MaPeriod ........................................................................................................... 4513
MaShift ........................................................................................................... 4514
MaMethod ........................................................................................................... 4515
Applied ........................................................................................................... 4516
Create ........................................................................................................... 4517
Main ........................................................................................................... 4518
Type ........................................................................................................... 4519
CiDEMA ................................................................................................................ 4520
MaPeriod ........................................................................................................... 4522
IndShift ........................................................................................................... 4523
Applied ........................................................................................................... 4524
Create ........................................................................................................... 4525
Main ........................................................................................................... 4526
Type ........................................................................................................... 4527
CiTEMA ................................................................................................................ 4528
MaPeriod ........................................................................................................... 4530
IndShift ........................................................................................................... 4531
Applied ........................................................................................................... 4532
Create ........................................................................................................... 4533
Main ........................................................................................................... 4534
Type ........................................................................................................... 4535
CiFrAMA ................................................................................................................ 4536
MaPeriod ........................................................................................................... 4538
IndShift ........................................................................................................... 4539
Applied ........................................................................................................... 4540
Create ........................................................................................................... 4541
Main ........................................................................................................... 4542
Type ........................................................................................................... 4543
CiAMA ................................................................................................................ 4544
MaPeriod ........................................................................................................... 4546
FastEmaPeriod........................................................................................................... 4547
SlowEmaPeriod........................................................................................................... 4548
IndShift ........................................................................................................... 4549
Applied ........................................................................................................... 4550
Create ........................................................................................................... 4551
Main ........................................................................................................... 4552
Type ........................................................................................................... 4553
CiVIDyA ................................................................................................................ 4554
CmoPeriod........................................................................................................... 4556
EmaPeriod ........................................................................................................... 4557
IndShift ........................................................................................................... 4558
Applied ........................................................................................................... 4559
Create ........................................................................................................... 4560
Main ........................................................................................................... 4561
Type ........................................................................................................... 4562
Oscillatori
......................................................................................................................... 4563
CiATR ................................................................................................................ 4564

© 2000-2021, MetaQuotes Ltd


48 Content

MaPeriod ........................................................................................................... 4566


Create ........................................................................................................... 4567
Main ........................................................................................................... 4568
Type ........................................................................................................... 4569
CiBearsPower
................................................................................................................ 4570
MaPeriod ........................................................................................................... 4572
Create ........................................................................................................... 4573
Main ........................................................................................................... 4574
Type ........................................................................................................... 4575
CiBullsPower
................................................................................................................ 4576
MaPeriod ........................................................................................................... 4578
Create ........................................................................................................... 4579
Main ........................................................................................................... 4580
Type ........................................................................................................... 4581
CiCCI ................................................................................................................ 4582
MaPeriod ........................................................................................................... 4584
Applied ........................................................................................................... 4585
Create ........................................................................................................... 4586
Main ........................................................................................................... 4587
Type ........................................................................................................... 4588
CiChaikin ................................................................................................................ 4589
FastMaPeriod........................................................................................................... 4591
SlowMaPeriod........................................................................................................... 4592
MaMethod ........................................................................................................... 4593
Applied ........................................................................................................... 4594
Create ........................................................................................................... 4595
Main ........................................................................................................... 4596
Type ........................................................................................................... 4597
CiDeMarker................................................................................................................ 4598
MaPeriod ........................................................................................................... 4600
Create ........................................................................................................... 4601
Main ........................................................................................................... 4602
Type ........................................................................................................... 4603
CiForce ................................................................................................................ 4604
MaPeriod ........................................................................................................... 4606
MaMethod ........................................................................................................... 4607
Applied ........................................................................................................... 4608
Create ........................................................................................................... 4609
Main ........................................................................................................... 4610
Type ........................................................................................................... 4611
CiMACD ................................................................................................................ 4612
FastEmaPeriod
........................................................................................................... 4614
SlowEmaPeriod
........................................................................................................... 4615
SignalPeriod........................................................................................................... 4616
Applied ........................................................................................................... 4617
Create ........................................................................................................... 4618
Main ........................................................................................................... 4619
Signal ........................................................................................................... 4620
Type ........................................................................................................... 4621
CiMomentum ................................................................................................................ 4622
MaPeriod ........................................................................................................... 4624
Applied ........................................................................................................... 4625
Create ........................................................................................................... 4626
Main ........................................................................................................... 4627
Type ........................................................................................................... 4628
CiOsMA ................................................................................................................ 4629
FastEmaPeriod
........................................................................................................... 4631
SlowEmaPeriod
........................................................................................................... 4632

© 2000-2021, MetaQuotes Ltd


49 Content

SignalPeriod........................................................................................................... 4633
Applied ........................................................................................................... 4634
Create ........................................................................................................... 4635
Main ........................................................................................................... 4636
Type ........................................................................................................... 4637
CiRSI ................................................................................................................ 4638
MaPeriod ........................................................................................................... 4640
Applied ........................................................................................................... 4641
Create ........................................................................................................... 4642
Main ........................................................................................................... 4643
Type ........................................................................................................... 4644
CiRVI ................................................................................................................ 4645
MaPeriod ........................................................................................................... 4647
Create ........................................................................................................... 4648
Main ........................................................................................................... 4649
Signal ........................................................................................................... 4650
Type ........................................................................................................... 4651
CiStochastic................................................................................................................ 4652
Kperiod ........................................................................................................... 4654
Dperiod ........................................................................................................... 4655
Slowing ........................................................................................................... 4656
MaMethod ........................................................................................................... 4657
PriceField ........................................................................................................... 4658
Create ........................................................................................................... 4659
Main ........................................................................................................... 4660
Signal ........................................................................................................... 4661
Type ........................................................................................................... 4662
CiTriX ................................................................................................................ 4663
MaPeriod ........................................................................................................... 4665
Applied ........................................................................................................... 4666
Create ........................................................................................................... 4667
Main ........................................................................................................... 4668
Type ........................................................................................................... 4669
CiWPR ................................................................................................................ 4670
CalcPeriod........................................................................................................... 4672
Create ........................................................................................................... 4673
Main ........................................................................................................... 4674
Type ........................................................................................................... 4675
Volume .........................................................................................................................
Indicators 4676
CiAD ................................................................................................................ 4677
Applied ........................................................................................................... 4679
Create ........................................................................................................... 4680
Main ........................................................................................................... 4681
Type ........................................................................................................... 4682
CiMFI ................................................................................................................ 4683
MaPeriod ........................................................................................................... 4685
Applied ........................................................................................................... 4686
Create ........................................................................................................... 4687
Main ........................................................................................................... 4688
Type ........................................................................................................... 4689
CiOBV ................................................................................................................ 4690
Applied ........................................................................................................... 4692
Create ........................................................................................................... 4693
Main ........................................................................................................... 4694
Type ........................................................................................................... 4695
CiVolumes ................................................................................................................ 4696
Applied ........................................................................................................... 4698
Create ........................................................................................................... 4699

© 2000-2021, MetaQuotes Ltd


50 Content

Main ........................................................................................................... 4700


Type ........................................................................................................... 4701
Indicatore
.........................................................................................................................
Bill Williams 4702
CiAC ................................................................................................................ 4703
Create ........................................................................................................... 4705
Main ........................................................................................................... 4706
Type ........................................................................................................... 4707
CiAlligator ................................................................................................................ 4708
JawPeriod ........................................................................................................... 4710
JawShift ........................................................................................................... 4711
TeethPeriod ........................................................................................................... 4712
TeethShift ........................................................................................................... 4713
LipsPeriod ........................................................................................................... 4714
LipsShift ........................................................................................................... 4715
MaMethod ........................................................................................................... 4716
Applied ........................................................................................................... 4717
Create ........................................................................................................... 4718
Jaw ........................................................................................................... 4719
Teeth ........................................................................................................... 4720
Lips ........................................................................................................... 4721
Type ........................................................................................................... 4722
CiAO ................................................................................................................ 4723
Create ........................................................................................................... 4725
Main ........................................................................................................... 4726
Type ........................................................................................................... 4727
CiFractals ................................................................................................................ 4728
Create ........................................................................................................... 4730
Upper ........................................................................................................... 4731
Lower ........................................................................................................... 4732
Type ........................................................................................................... 4733
CiGator ................................................................................................................ 4734
JawPeriod ........................................................................................................... 4736
JawShift ........................................................................................................... 4737
TeethPeriod ........................................................................................................... 4738
TeethShift ........................................................................................................... 4739
LipsPeriod ........................................................................................................... 4740
LipsShift ........................................................................................................... 4741
MaMethod ........................................................................................................... 4742
Applied ........................................................................................................... 4743
Create ........................................................................................................... 4744
Upper ........................................................................................................... 4745
Lower ........................................................................................................... 4746
Type ........................................................................................................... 4747
CiBWMFI ................................................................................................................ 4748
Applied ........................................................................................................... 4750
Create ........................................................................................................... 4751
Main ........................................................................................................... 4752
Type ........................................................................................................... 4753
Indicatori
.........................................................................................................................
Personalizzati 4754
NumBuffers................................................................................................................ 4755
NumParams................................................................................................................ 4756
ParamType................................................................................................................ 4757
ParamLong................................................................................................................ 4758
ParamDouble ................................................................................................................ 4759
ParamString ................................................................................................................ 4760
Type ................................................................................................................ 4761
............................................................................................................................4762
Classi di Trade
CAccountInfo
......................................................................................................................... 4763

© 2000-2021, MetaQuotes Ltd


51 Content

Login ................................................................................................................ 4765


TradeMode................................................................................................................ 4766
TradeModeDescription
................................................................................................................ 4767
Leverage ................................................................................................................ 4768
StopoutMode ................................................................................................................ 4769
StopoutModeDescription
................................................................................................................ 4770
MarginMode................................................................................................................ 4771
MarginModeDescription
................................................................................................................ 4772
TradeAllowed ................................................................................................................ 4773
TradeEx pert ................................................................................................................ 4774
LimitOrders................................................................................................................ 4775
Balance ................................................................................................................ 4776
Credit ................................................................................................................ 4777
Profit ................................................................................................................ 4778
Equity ................................................................................................................ 4779
Margin ................................................................................................................ 4780
FreeMargin................................................................................................................ 4781
MarginLevel ................................................................................................................ 4782
MarginCall ................................................................................................................ 4783
MarginStopOut................................................................................................................ 4784
Name ................................................................................................................ 4785
Server ................................................................................................................ 4786
Currency ................................................................................................................ 4787
Company ................................................................................................................ 4788
InfoInteger................................................................................................................ 4789
InfoDouble ................................................................................................................ 4790
InfoString ................................................................................................................ 4791
OrderProfitCheck
................................................................................................................ 4792
MarginCheck ................................................................................................................ 4793
FreeMarginCheck
................................................................................................................ 4794
Max LotCheck ................................................................................................................ 4795
CSymbolInfo
......................................................................................................................... 4796
Refresh ................................................................................................................ 4801
RefreshRates ................................................................................................................ 4802
Name ................................................................................................................ 4803
Select ................................................................................................................ 4804
IsSynchronized
................................................................................................................ 4805
Volume ................................................................................................................ 4806
VolumeHigh................................................................................................................ 4807
VolumeLow................................................................................................................ 4808
Time ................................................................................................................ 4809
Spread ................................................................................................................ 4810
SpreadFloat................................................................................................................ 4811
TicksBookDepth
................................................................................................................ 4812
StopsLevel................................................................................................................ 4813
FreezeLevel ................................................................................................................ 4814
Bid ................................................................................................................ 4815
BidHigh ................................................................................................................ 4816
BidLow ................................................................................................................ 4817
Ask ................................................................................................................ 4818
Ask High ................................................................................................................ 4819
AskLow ................................................................................................................ 4820
Last ................................................................................................................ 4821
Last High ................................................................................................................ 4822
LastLow ................................................................................................................ 4823
TradeCalcMode................................................................................................................ 4824
TradeCalcModeDescription
................................................................................................................ 4825
TradeMode................................................................................................................ 4826

© 2000-2021, MetaQuotes Ltd


52 Content

TradeModeDescription
................................................................................................................ 4827
TradeEx ecution
................................................................................................................ 4828
TradeEx ecutionDescription
................................................................................................................ 4829
SwapMode ................................................................................................................ 4830
SwapModeDescription
................................................................................................................ 4831
SwapRollover3days
................................................................................................................ 4832
SwapRollover3daysDescription
................................................................................................................ 4833
MarginInitial................................................................................................................ 4834
MarginMaintenance
................................................................................................................ 4835
MarginLong................................................................................................................ 4836
MarginShort ................................................................................................................ 4837
MarginLimit................................................................................................................ 4838
MarginStop................................................................................................................ 4839
MarginStopLimit
................................................................................................................ 4840
TradeTimeFlags
................................................................................................................ 4841
TradeFillFlags
................................................................................................................ 4842
Digits ................................................................................................................ 4843
Point ................................................................................................................ 4844
TickValue ................................................................................................................ 4845
TickValueProfit
................................................................................................................ 4846
TickValueLoss................................................................................................................ 4847
TickSize ................................................................................................................ 4848
ContractSize ................................................................................................................ 4849
LotsMin ................................................................................................................ 4850
LotsMax ................................................................................................................ 4851
LotsStep ................................................................................................................ 4852
LotsLimit ................................................................................................................ 4853
SwapLong ................................................................................................................ 4854
SwapShort ................................................................................................................ 4855
CurrencyBase ................................................................................................................ 4856
CurrencyProfit
................................................................................................................ 4857
CurrencyMargin
................................................................................................................ 4858
Bank ................................................................................................................ 4859
Description................................................................................................................ 4860
Path ................................................................................................................ 4861
SessionDeals ................................................................................................................ 4862
SessionBuyOrders
................................................................................................................ 4863
SessionSellOrders
................................................................................................................ 4864
SessionTurnover
................................................................................................................ 4865
SessionInterest
................................................................................................................ 4866
SessionBuyOrdersVolume
................................................................................................................ 4867
SessionSellOrdersVolume
................................................................................................................ 4868
SessionOpen ................................................................................................................ 4869
SessionClose ................................................................................................................ 4870
SessionAW ................................................................................................................ 4871
SessionPriceSettlement
................................................................................................................ 4872
SessionPriceLimitMin
................................................................................................................ 4873
SessionPriceLimitMa
................................................................................................................
x 4874
InfoInteger................................................................................................................ 4875
InfoDouble ................................................................................................................ 4876
InfoString ................................................................................................................ 4877
NormalizePrice
................................................................................................................ 4878
COrderInfo
......................................................................................................................... 4879
Ticket ................................................................................................................ 4882
TimeSetup ................................................................................................................ 4883
TimeSetupMsc ................................................................................................................ 4884
OrderType................................................................................................................ 4885
TypeDescription
................................................................................................................ 4886

© 2000-2021, MetaQuotes Ltd


53 Content

State ................................................................................................................ 4887


StateDescription
................................................................................................................ 4888
TimeEx piration
................................................................................................................ 4889
TimeDone ................................................................................................................ 4890
TimeDoneMsc ................................................................................................................ 4891
TypeFilling ................................................................................................................ 4892
TypeFillingDescription
................................................................................................................ 4893
TypeTime ................................................................................................................ 4894
TypeTimeDescription
................................................................................................................ 4895
Magic ................................................................................................................ 4896
PositionId ................................................................................................................ 4897
VolumeInitial................................................................................................................ 4898
VolumeCurrent................................................................................................................ 4899
PriceOpen ................................................................................................................ 4900
StopLoss ................................................................................................................ 4901
TakeProfit ................................................................................................................ 4902
PriceCurrent ................................................................................................................ 4903
PriceStopLimit
................................................................................................................ 4904
Symbol ................................................................................................................ 4905
Comment ................................................................................................................ 4906
InfoInteger................................................................................................................ 4907
InfoDouble ................................................................................................................ 4908
InfoString ................................................................................................................ 4909
StoreState................................................................................................................ 4910
CheckState................................................................................................................ 4911
Select ................................................................................................................ 4912
SelectByInde ................................................................................................................
x 4913
C HistoryOrderInfo
......................................................................................................................... 4914
TimeSetup ................................................................................................................ 4916
TimeSetupMsc ................................................................................................................ 4917
OrderType................................................................................................................ 4918
TypeDescription
................................................................................................................ 4919
State ................................................................................................................ 4920
StateDescription
................................................................................................................ 4921
TimeEx piration
................................................................................................................ 4922
TimeDone ................................................................................................................ 4923
TimeDoneMsc ................................................................................................................ 4924
TypeFilling ................................................................................................................ 4925
TypeFillingDescription
................................................................................................................ 4926
TypeTime ................................................................................................................ 4927
TypeTimeDescription
................................................................................................................ 4928
Magic ................................................................................................................ 4929
PositionId ................................................................................................................ 4930
VolumeInitial................................................................................................................ 4931
VolumeCurrent................................................................................................................ 4932
PriceOpen ................................................................................................................ 4933
StopLoss ................................................................................................................ 4934
TakeProfit ................................................................................................................ 4935
PriceCurrent ................................................................................................................ 4936
PriceStopLimit
................................................................................................................ 4937
Symbol ................................................................................................................ 4938
Comment ................................................................................................................ 4939
InfoInteger................................................................................................................ 4940
InfoDouble ................................................................................................................ 4941
InfoString ................................................................................................................ 4942
Ticket ................................................................................................................ 4943
SelectByInde ................................................................................................................
x 4944
CPositionInfo
......................................................................................................................... 4945

© 2000-2021, MetaQuotes Ltd


54 Content

Time ................................................................................................................ 4947


TimeMsc ................................................................................................................ 4948
TimeUpdate................................................................................................................ 4949
TimeUpdateMsc................................................................................................................ 4950
PositionType ................................................................................................................ 4951
TypeDescription
................................................................................................................ 4952
Magic ................................................................................................................ 4953
Identifier ................................................................................................................ 4954
Volume ................................................................................................................ 4955
PriceOpen ................................................................................................................ 4956
StopLoss ................................................................................................................ 4957
TakeProfit ................................................................................................................ 4958
PriceCurrent ................................................................................................................ 4959
Commission................................................................................................................ 4960
Swap ................................................................................................................ 4961
Profit ................................................................................................................ 4962
Symbol ................................................................................................................ 4963
Comment ................................................................................................................ 4964
InfoInteger................................................................................................................ 4965
InfoDouble ................................................................................................................ 4966
InfoString ................................................................................................................ 4967
Select ................................................................................................................ 4968
SelectByInde ................................................................................................................
x 4969
SelectByMagic................................................................................................................ 4970
SelectByTicket
................................................................................................................ 4971
StoreState................................................................................................................ 4972
CheckState................................................................................................................ 4973
CDealInfo
......................................................................................................................... 4974
Order ................................................................................................................ 4976
Time ................................................................................................................ 4977
TimeMsc ................................................................................................................ 4978
DealType ................................................................................................................ 4979
TypeDescription
................................................................................................................ 4980
Entry ................................................................................................................ 4981
EntryDescription
................................................................................................................ 4982
Magic ................................................................................................................ 4983
PositionId ................................................................................................................ 4984
Volume ................................................................................................................ 4985
Price ................................................................................................................ 4986
Commision ................................................................................................................ 4987
Swap ................................................................................................................ 4988
Profit ................................................................................................................ 4989
Symbol ................................................................................................................ 4990
Comment ................................................................................................................ 4991
InfoInteger................................................................................................................ 4992
InfoDouble ................................................................................................................ 4993
InfoString ................................................................................................................ 4994
Ticket ................................................................................................................ 4995
SelectByInde ................................................................................................................
x 4996
CTrade ......................................................................................................................... 4997
LogLevel ................................................................................................................ 5002
SetEx pertMagicNumber
................................................................................................................ 5003
SetDeviationInPoints
................................................................................................................ 5004
SetTypeFilling
................................................................................................................ 5005
SetTypeFillingBySymbol
................................................................................................................ 5006
SetAsyncMode ................................................................................................................ 5007
SetMarginMode................................................................................................................ 5008
OrderOpen................................................................................................................ 5009

© 2000-2021, MetaQuotes Ltd


55 Content

OrderModify................................................................................................................ 5011
OrderDelete................................................................................................................ 5012
PositionOpen
................................................................................................................ 5013
PositionModify
................................................................................................................ 5014
PositionClose
................................................................................................................ 5015
PositionCloseBy
................................................................................................................ 5016
Buy ................................................................................................................ 5017
Sell ................................................................................................................ 5018
BuyLimit ................................................................................................................ 5019
BuyStop ................................................................................................................ 5021
SellLimit ................................................................................................................ 5022
SellStop ................................................................................................................ 5023
Request ................................................................................................................ 5024
RequestAction
................................................................................................................ 5025
RequestActionDescription
................................................................................................................ 5026
RequestMagic
................................................................................................................ 5027
RequestOrder
................................................................................................................ 5028
RequestSymbol
................................................................................................................ 5029
RequestVolume
................................................................................................................ 5030
RequestPrice
................................................................................................................ 5031
RequestStopLimit
................................................................................................................ 5032
RequestSL ................................................................................................................ 5033
RequestTP ................................................................................................................ 5034
RequestDeviation
................................................................................................................ 5035
RequestType................................................................................................................ 5036
RequestTypeDescription
................................................................................................................ 5037
RequestTypeFilling
................................................................................................................ 5038
RequestTypeFillingDescription
................................................................................................................ 5039
RequestTypeTime
................................................................................................................ 5040
RequestTypeTimeDescription
................................................................................................................ 5041
RequestEx piration
................................................................................................................ 5042
RequestComment
................................................................................................................ 5043
RequestPosition
................................................................................................................ 5044
RequestPositionBy
................................................................................................................ 5045
Result ................................................................................................................ 5046
ResultRetcode
................................................................................................................ 5047
ResultRetcodeDescription
................................................................................................................ 5048
ResultDeal ................................................................................................................ 5049
ResultOrder................................................................................................................ 5050
ResultVolume
................................................................................................................ 5051
ResultPrice................................................................................................................ 5052
ResultBid ................................................................................................................ 5053
ResultAsk ................................................................................................................ 5054
ResultComment
................................................................................................................ 5055
CheckResult................................................................................................................ 5056
CheckResultRetcode
................................................................................................................ 5057
CheckResultRetcodeDescription
................................................................................................................ 5058
CheckResultBalance
................................................................................................................ 5059
CheckResultEquity
................................................................................................................ 5060
CheckResultProfit
................................................................................................................ 5061
CheckResultMargin
................................................................................................................ 5062
CheckResultMarginFree
................................................................................................................ 5063
CheckResultMarginLevel
................................................................................................................ 5064
CheckResultComment
................................................................................................................ 5065
PrintRequest
................................................................................................................ 5066
PrintResult................................................................................................................ 5067
FormatRequest
................................................................................................................ 5068
FormatRequestResult
................................................................................................................ 5069

© 2000-2021, MetaQuotes Ltd


56 Content

CTerminalInfo
......................................................................................................................... 5070
Build ................................................................................................................ 5072
IsConnected ................................................................................................................ 5073
IsDLLsAllowed ................................................................................................................ 5074
IsTradeAllowed ................................................................................................................ 5075
IsEmailEnabled ................................................................................................................ 5076
IsFtpEnabled ................................................................................................................ 5077
Max Bars ................................................................................................................ 5078
CodePage ................................................................................................................ 5079
CPUCores ................................................................................................................ 5080
MemoryPhysical ................................................................................................................ 5081
MemoryTotal ................................................................................................................ 5082
MemoryAvailable................................................................................................................ 5083
MemoryUsed ................................................................................................................ 5084
Is X 64 ................................................................................................................ 5085
OpenCLSupport ................................................................................................................ 5086
DiskSpace ................................................................................................................ 5087
Language ................................................................................................................ 5088
Name ................................................................................................................ 5089
Company ................................................................................................................ 5090
Path ................................................................................................................ 5091
DataPath ................................................................................................................ 5092
CommonDataPath ................................................................................................................ 5093
InfoInteger................................................................................................................ 5094
InfoString ................................................................................................................ 5095
............................................................................................................................5096
Moduli Strategia
Classi base
.........................................................................................................................
per Ex pert Advisors 5099
CEx pertBase ................................................................................................................ 5100
InitPhase ........................................................................................................... 5103
TrendType........................................................................................................... 5104
UsedSeries........................................................................................................... 5105
EveryTick ........................................................................................................... 5106
Open ........................................................................................................... 5107
High ........................................................................................................... 5108
Low ........................................................................................................... 5109
Close ........................................................................................................... 5110
Spread ........................................................................................................... 5111
Time ........................................................................................................... 5112
TickVolume........................................................................................................... 5113
RealVolume........................................................................................................... 5114
Init ........................................................................................................... 5115
Symbol ........................................................................................................... 5116
Period ........................................................................................................... 5117
Magic ........................................................................................................... 5118
ValidationSettings
........................................................................................................... 5119
SetPriceSeries
........................................................................................................... 5120
SetOtherSeries
........................................................................................................... 5121
InitIndicators
........................................................................................................... 5122
InitOpen ........................................................................................................... 5123
Init High ........................................................................................................... 5124
InitLow ........................................................................................................... 5125
InitClose ........................................................................................................... 5126
InitSpread ........................................................................................................... 5127
InitTime ........................................................................................................... 5128
InitTickVolume
........................................................................................................... 5129
InitRealVolume
........................................................................................................... 5130
PriceLevelUnit
........................................................................................................... 5131
StartIndex........................................................................................................... 5132

© 2000-2021, MetaQuotes Ltd


57 Content

CompareMagic........................................................................................................... 5133
CEx pert ................................................................................................................ 5134
Init ........................................................................................................... 5139
Magic ........................................................................................................... 5140
InitSignal ........................................................................................................... 5141
InitTrailing........................................................................................................... 5142
InitMoney ........................................................................................................... 5143
InitTrade ........................................................................................................... 5144
Deinit ........................................................................................................... 5145
OnTickProcess
........................................................................................................... 5146
OnTradeProcess
........................................................................................................... 5147
OnTimerProcess
........................................................................................................... 5148
OnChartEventProcess
........................................................................................................... 5149
OnBookEventProcess
........................................................................................................... 5150
Max Orders........................................................................................................... 5151
Signal ........................................................................................................... 5152
ValidationSettings
........................................................................................................... 5153
InitIndicators
........................................................................................................... 5154
OnTick ........................................................................................................... 5155
OnTrade ........................................................................................................... 5156
OnTimer ........................................................................................................... 5157
OnChartEvent........................................................................................................... 5158
OnBookEvent ........................................................................................................... 5159
InitParameters
........................................................................................................... 5160
DeinitTrade........................................................................................................... 5161
DeinitSignal........................................................................................................... 5162
DeinitTrailing
........................................................................................................... 5163
DeinitMoney ........................................................................................................... 5164
DeinitIndicators
........................................................................................................... 5165
Refresh ........................................................................................................... 5166
Processing........................................................................................................... 5167
SelectPosition
........................................................................................................... 5169
CheckOpen........................................................................................................... 5170
CheckOpenLong
........................................................................................................... 5171
CheckOpenShort
........................................................................................................... 5172
OpenLong ........................................................................................................... 5173
OpenShort ........................................................................................................... 5174
CheckReverse........................................................................................................... 5175
CheckReverseLong
........................................................................................................... 5176
CheckReverseShort
........................................................................................................... 5177
ReverseLong ........................................................................................................... 5178
ReverseShort........................................................................................................... 5180
CheckClose........................................................................................................... 5182
CheckCloseLong
........................................................................................................... 5183
CheckCloseShort
........................................................................................................... 5184
CloseAll ........................................................................................................... 5185
Close ........................................................................................................... 5186
CloseLong ........................................................................................................... 5187
CloseShort ........................................................................................................... 5188
CheckTrailingStop
........................................................................................................... 5189
CheckTrailingStopLong
........................................................................................................... 5190
CheckTrailingStopShort
........................................................................................................... 5191
TrailingStopLong
........................................................................................................... 5192
TrailingStopShort
........................................................................................................... 5193
CheckTrailingOrderLong
........................................................................................................... 5194
CheckTrailingOrderShort
........................................................................................................... 5195
TrailingOrderLong
........................................................................................................... 5196
TrailingOrderShort
........................................................................................................... 5197

© 2000-2021, MetaQuotes Ltd


58 Content

CheckDeleteOrderLong
........................................................................................................... 5198
CheckDeleteOrderShort
........................................................................................................... 5199
DeleteOrders........................................................................................................... 5200
DeleteOrder ........................................................................................................... 5201
DeleteOrderLong
........................................................................................................... 5202
DeleteOrderShort
........................................................................................................... 5203
LotOpenLong ........................................................................................................... 5204
LotOpenShort........................................................................................................... 5205
LotReverse........................................................................................................... 5206
PrepareHistoryDate
........................................................................................................... 5207
HistoryPoint........................................................................................................... 5208
CheckTradeState
........................................................................................................... 5209
WaitEvent ........................................................................................................... 5210
NoWaitEvent ........................................................................................................... 5211
TradeEventPositionStopTake
........................................................................................................... 5212
TradeEventOrderTriggered
........................................................................................................... 5213
TradeEventPositionOpened
........................................................................................................... 5214
TradeEventPositionVolumeChanged
........................................................................................................... 5215
TradeEventPositionModified
........................................................................................................... 5216
TradeEventPositionClosed
........................................................................................................... 5217
TradeEventOrderPlaced
........................................................................................................... 5218
TradeEventOrderModified
........................................................................................................... 5219
TradeEventOrderDeleted
........................................................................................................... 5220
TradeEventNotIdentified
........................................................................................................... 5221
TimeframeAdd........................................................................................................... 5222
TimeframesFlags
........................................................................................................... 5223
CEx pertSignal
................................................................................................................ 5224
BasePrice ........................................................................................................... 5227
UsedSeries........................................................................................................... 5228
Weight ........................................................................................................... 5229
PatternsUsage
........................................................................................................... 5230
General ........................................................................................................... 5231
Ignore ........................................................................................................... 5232
Invert ........................................................................................................... 5233
ThresholdOpen
........................................................................................................... 5234
ThresholdClose
........................................................................................................... 5235
PriceLevel........................................................................................................... 5236
StopLevel ........................................................................................................... 5237
TakeLevel ........................................................................................................... 5238
Ex piration ........................................................................................................... 5239
Magic ........................................................................................................... 5240
ValidationSettings
........................................................................................................... 5241
InitIndicators
........................................................................................................... 5242
AddFilter ........................................................................................................... 5243
CheckOpenLong
........................................................................................................... 5244
CheckOpenShort
........................................................................................................... 5245
OpenLongParams
........................................................................................................... 5246
OpenShortParams
........................................................................................................... 5247
CheckCloseLong
........................................................................................................... 5248
CheckCloseShort
........................................................................................................... 5249
CloseLongParams
........................................................................................................... 5250
CloseShortParams
........................................................................................................... 5251
CheckReverseLong
........................................................................................................... 5252
CheckReverseShort
........................................................................................................... 5253
CheckTrailingOrderLong
........................................................................................................... 5254
CheckTrailingOrderShort
........................................................................................................... 5255
LongCondition
........................................................................................................... 5256
ShortCondition
........................................................................................................... 5257

© 2000-2021, MetaQuotes Ltd


59 Content

Direction ........................................................................................................... 5258


CEx pertTrailing
................................................................................................................ 5259
CheckTrailingStopLong
........................................................................................................... 5261
CheckTrailingStopShort
........................................................................................................... 5262
CEx pertMoney ................................................................................................................ 5263
Percent ........................................................................................................... 5265
ValidationSettings
........................................................................................................... 5266
CheckOpenLong........................................................................................................... 5267
CheckOpenShort
........................................................................................................... 5268
CheckReverse ........................................................................................................... 5269
CheckClose........................................................................................................... 5270
I moduli.........................................................................................................................
di Segnali di Trade 5271
Signals of the................................................................................................................
Indicator Accelerator Oscillator 5274
Signals of the................................................................................................................
Indicator Adaptive Moving Average 5277
Signals of the................................................................................................................
Indicator Awesome Oscillator 5281
Signals of the................................................................................................................
Oscillator Bears Power 5285
Signals of the................................................................................................................
Oscillator Bulls Power 5287
Signals of the................................................................................................................
Oscillator Commodity Channel Index 5289
Signals of the................................................................................................................
Oscillator DeMarker 5293
Signals of the................................................................................................................
Indicator Double Ex ponential Moving Average 5297
Signals of the................................................................................................................
Indicator Envelopes 5301
Signals of the................................................................................................................
Indicator Fractal Adaptive Moving Average 5304
Signals of the................................................................................................................
Intraday Time Filter 5308
Signals of the................................................................................................................
Oscillator MACD 5310
Signals of the................................................................................................................
Indicator Moving Average 5316
Signals of the................................................................................................................
Indicator Parabolic SAR 5320
Signals of the................................................................................................................
Oscillator Relative Strength Index 5322
Signals of the................................................................................................................
Oscillator Relative Vigor Index 5328
Signals of the................................................................................................................
Oscillator Stochastic 5330
Signals of the................................................................................................................
Oscillator Triple Ex ponential Average 5335
Signals of the................................................................................................................
Indicator Triple Ex ponential Moving Average 5339
Signals of the................................................................................................................
Oscillator Williams Percent Range 5343
Trailing .........................................................................................................................
Stop Classes 5346
CTrailingFix................................................................................................................
edPips 5347
StopLevel ........................................................................................................... 5349
ProfitLevel........................................................................................................... 5350
ValidationSettings
........................................................................................................... 5351
CheckTrailingStopLong
........................................................................................................... 5352
CheckTrailingStopShort
........................................................................................................... 5353
CTrailingMA................................................................................................................ 5354
Period ........................................................................................................... 5356
Shift ........................................................................................................... 5357
Method ........................................................................................................... 5358
Applied ........................................................................................................... 5359
InitIndicators
........................................................................................................... 5360
ValidationSettings
........................................................................................................... 5361
CheckTrailingStopLong
........................................................................................................... 5362
CheckTrailingStopShort
........................................................................................................... 5363
CTrailingNone ................................................................................................................ 5364
CheckTrailingStopLong
........................................................................................................... 5365
CheckTrailingStopShort
........................................................................................................... 5366
CTrailingPSAR ................................................................................................................ 5367
Step ........................................................................................................... 5369
Max imum ........................................................................................................... 5370
InitIndicators
........................................................................................................... 5371
CheckTrailingStopLong
........................................................................................................... 5372
CheckTrailingStopShort
........................................................................................................... 5373
Classi Money
.........................................................................................................................
Management 5374

© 2000-2021, MetaQuotes Ltd


60 Content

CMoneyFix edLot
................................................................................................................ 5375
Lots ........................................................................................................... 5377
ValidationSettings
........................................................................................................... 5378
CheckOpenLong
........................................................................................................... 5379
CheckOpenShort
........................................................................................................... 5380
CMoneyFix edMargin
................................................................................................................ 5381
CheckOpenLong
........................................................................................................... 5382
CheckOpenShort
........................................................................................................... 5383
CMoneyFix edRisk
................................................................................................................ 5384
CheckOpenLong
........................................................................................................... 5385
CheckOpenShort
........................................................................................................... 5386
CMoneyNone................................................................................................................ 5387
ValidationSettings
........................................................................................................... 5388
CheckOpenLong
........................................................................................................... 5389
CheckOpenShort
........................................................................................................... 5390
CMoneySizeOptimized
................................................................................................................ 5391
DecreaseFactor
........................................................................................................... 5393
ValidationSettings
........................................................................................................... 5394
CheckOpenLong
........................................................................................................... 5395
CheckOpenShort
........................................................................................................... 5396
Pannelli e ............................................................................................................................5397
Dialoghi
CRect ......................................................................................................................... 5399
Left ................................................................................................................ 5400
Top ................................................................................................................ 5401
Right ................................................................................................................ 5402
Bottom ................................................................................................................ 5403
Width ................................................................................................................ 5404
Height ................................................................................................................ 5405
SetBound ................................................................................................................ 5406
Move ................................................................................................................ 5407
Shift ................................................................................................................ 5408
Contains ................................................................................................................ 5409
Format ................................................................................................................ 5410
CDateTime
......................................................................................................................... 5411
MonthName................................................................................................................ 5413
ShortMonthName
................................................................................................................ 5414
DayName ................................................................................................................ 5415
ShortDayName ................................................................................................................ 5416
DaysInMonth ................................................................................................................ 5417
DateTime ................................................................................................................ 5418
Date ................................................................................................................ 5419
Time ................................................................................................................ 5420
Sec ................................................................................................................ 5421
Min ................................................................................................................ 5422
Hour ................................................................................................................ 5423
Day ................................................................................................................ 5424
Mon ................................................................................................................ 5425
Y ear ................................................................................................................ 5426
SecDec ................................................................................................................ 5427
SecInc ................................................................................................................ 5428
MinDec ................................................................................................................ 5429
MinInc ................................................................................................................ 5430
HourDec ................................................................................................................ 5431
HourInc ................................................................................................................ 5432
DayDec ................................................................................................................ 5433
DayInc ................................................................................................................ 5434
MonDec ................................................................................................................ 5435
MonInc ................................................................................................................ 5436

© 2000-2021, MetaQuotes Ltd


61 Content

Y earDec ................................................................................................................ 5437


Y earInc ................................................................................................................ 5438
CWnd ......................................................................................................................... 5439
Create ................................................................................................................ 5443
Destroy ................................................................................................................ 5444
OnEvent ................................................................................................................ 5445
OnMouseEvent................................................................................................................ 5446
Name ................................................................................................................ 5447
ControlsTotal
................................................................................................................ 5448
Control ................................................................................................................ 5449
ControlFind................................................................................................................ 5450
Rect ................................................................................................................ 5451
Left ................................................................................................................ 5452
Top ................................................................................................................ 5453
Right ................................................................................................................ 5454
Bottom ................................................................................................................ 5455
Width ................................................................................................................ 5456
Height ................................................................................................................ 5457
Move ................................................................................................................ 5458
Shift ................................................................................................................ 5459
Resize ................................................................................................................ 5460
Contains ................................................................................................................ 5461
Alignment ................................................................................................................ 5462
Align ................................................................................................................ 5463
Id ................................................................................................................ 5464
IsEnabled ................................................................................................................ 5465
Enable ................................................................................................................ 5466
Disable ................................................................................................................ 5467
IsVisible ................................................................................................................ 5468
Visible ................................................................................................................ 5469
Show ................................................................................................................ 5470
Hide ................................................................................................................ 5471
IsActive ................................................................................................................ 5472
Activate ................................................................................................................ 5473
Deactivate................................................................................................................ 5474
StateFlags ................................................................................................................ 5475
StateFlagsSet
................................................................................................................ 5476
StateFlagsReset
................................................................................................................ 5477
PropFlags ................................................................................................................ 5478
PropFlagsSet................................................................................................................ 5479
PropFlagsReset
................................................................................................................ 5480
MouseX ................................................................................................................ 5481
MouseY ................................................................................................................ 5482
MouseFlags................................................................................................................ 5483
MouseFocus................................................................................................................
Kill 5484
OnCreate ................................................................................................................ 5485
OnDestroy ................................................................................................................ 5486
OnMove ................................................................................................................ 5487
OnResize ................................................................................................................ 5488
OnEnable ................................................................................................................ 5489
OnDisable ................................................................................................................ 5490
OnShow ................................................................................................................ 5491
OnHide ................................................................................................................ 5492
OnActivate................................................................................................................ 5493
OnDeactivate................................................................................................................ 5494
OnClick ................................................................................................................ 5495
OnChange ................................................................................................................ 5496
OnMouseDown ................................................................................................................ 5497

© 2000-2021, MetaQuotes Ltd


62 Content

OnMouseUp................................................................................................................ 5498
OnDragStart ................................................................................................................ 5499
OnDragProcess................................................................................................................ 5500
OnDragEnd................................................................................................................ 5501
DragObjectCreate
................................................................................................................ 5502
DragObjectDestroy
................................................................................................................ 5503
CWndOb.........................................................................................................................
j 5504
OnEvent ................................................................................................................ 5506
Tex t ................................................................................................................ 5507
Color ................................................................................................................ 5508
ColorBackground
................................................................................................................ 5509
ColorBorder................................................................................................................ 5510
Font ................................................................................................................ 5511
FontSize ................................................................................................................ 5512
ZOrder ................................................................................................................ 5513
OnObjectCreate
................................................................................................................ 5514
OnObjectChange
................................................................................................................ 5515
OnObjectDelete
................................................................................................................ 5516
OnObjectDrag ................................................................................................................ 5517
OnSetTex t ................................................................................................................ 5518
OnSetColor................................................................................................................ 5519
OnSetColorBackground
................................................................................................................ 5520
OnSetFont ................................................................................................................ 5521
OnSetFontSize................................................................................................................ 5522
OnSet ZOrder ................................................................................................................ 5523
OnDestroy ................................................................................................................ 5524
OnChange ................................................................................................................ 5525
CWndContainer
......................................................................................................................... 5526
Destroy ................................................................................................................ 5528
OnEvent ................................................................................................................ 5529
OnMouseEvent ................................................................................................................ 5530
ControlsTotal................................................................................................................ 5531
Control ................................................................................................................ 5532
ControlFind................................................................................................................ 5533
Add ................................................................................................................ 5534
Delete ................................................................................................................ 5535
Move ................................................................................................................ 5536
Shift ................................................................................................................ 5537
Id ................................................................................................................ 5538
Enable ................................................................................................................ 5539
Disable ................................................................................................................ 5540
Show ................................................................................................................ 5541
Hide ................................................................................................................ 5542
MouseFocus................................................................................................................
Kill 5543
Save ................................................................................................................ 5544
Load ................................................................................................................ 5545
OnResize ................................................................................................................ 5546
OnActivate................................................................................................................ 5547
OnDeactivate ................................................................................................................ 5548
CLabel ......................................................................................................................... 5549
Create ................................................................................................................ 5554
OnSetTex t ................................................................................................................ 5555
OnSetColor................................................................................................................ 5556
OnSetFont ................................................................................................................ 5557
OnSetFontSize................................................................................................................ 5558
OnCreate ................................................................................................................ 5559
OnShow ................................................................................................................ 5560
OnHide ................................................................................................................ 5561

© 2000-2021, MetaQuotes Ltd


63 Content

OnMove ................................................................................................................ 5562


CBmpButton
......................................................................................................................... 5563
Create ................................................................................................................ 5570
Border ................................................................................................................ 5571
BmpNames ................................................................................................................ 5572
BmpOffName ................................................................................................................ 5573
BmpOnName ................................................................................................................ 5574
BmpPassiveName
................................................................................................................ 5575
BmpActiveName................................................................................................................ 5576
Pressed ................................................................................................................ 5577
Locking ................................................................................................................ 5578
OnSet ZOrder ................................................................................................................ 5579
OnCreate ................................................................................................................ 5580
OnShow ................................................................................................................ 5581
OnHide ................................................................................................................ 5582
OnMove ................................................................................................................ 5583
OnChange ................................................................................................................ 5584
OnActivate................................................................................................................ 5585
OnDeactivate ................................................................................................................ 5586
OnMouseDown ................................................................................................................ 5587
OnMouseUp................................................................................................................ 5588
CButton......................................................................................................................... 5589
Create ................................................................................................................ 5596
Pressed ................................................................................................................ 5597
Locking ................................................................................................................ 5598
OnSetTex t ................................................................................................................ 5599
OnSetColor................................................................................................................ 5600
OnSetColorBackground
................................................................................................................ 5601
OnSetColorBorder
................................................................................................................ 5602
OnSetFont ................................................................................................................ 5603
OnSetFontSize................................................................................................................ 5604
OnCreate ................................................................................................................ 5605
OnShow ................................................................................................................ 5606
OnHide ................................................................................................................ 5607
OnMove ................................................................................................................ 5608
OnResize ................................................................................................................ 5609
OnMouseDown ................................................................................................................ 5610
OnMouseUp................................................................................................................ 5611
CEdit ......................................................................................................................... 5612
Create ................................................................................................................ 5617
ReadOnly ................................................................................................................ 5618
Tex tAlign ................................................................................................................ 5619
OnObjectEndEdit
................................................................................................................ 5620
OnSetTex t ................................................................................................................ 5621
OnSetColor................................................................................................................ 5622
OnSetColorBackground
................................................................................................................ 5623
OnSetColorBorder
................................................................................................................ 5624
OnSetFont ................................................................................................................ 5625
OnSetFontSize................................................................................................................ 5626
OnSet ZOrder ................................................................................................................ 5627
OnCreate ................................................................................................................ 5628
OnShow ................................................................................................................ 5629
OnHide ................................................................................................................ 5630
OnMove ................................................................................................................ 5631
OnResize ................................................................................................................ 5632
OnChange ................................................................................................................ 5633
OnClick ................................................................................................................ 5634
CPanel ......................................................................................................................... 5635

© 2000-2021, MetaQuotes Ltd


64 Content

Create ................................................................................................................ 5640


BorderType................................................................................................................ 5641
OnSetTex t ................................................................................................................ 5642
OnSetColorBackground
................................................................................................................ 5643
OnSetColorBorder
................................................................................................................ 5644
OnCreate ................................................................................................................ 5645
OnShow ................................................................................................................ 5646
OnHide ................................................................................................................ 5647
OnMove ................................................................................................................ 5648
OnResize ................................................................................................................ 5649
OnChange ................................................................................................................ 5650
CPicture......................................................................................................................... 5651
Create ................................................................................................................ 5656
Border ................................................................................................................ 5657
BmpName ................................................................................................................ 5658
OnCreate ................................................................................................................ 5659
OnShow ................................................................................................................ 5660
OnHide ................................................................................................................ 5661
OnMove ................................................................................................................ 5662
OnChange ................................................................................................................ 5663
CScroll ......................................................................................................................... 5664
Create ................................................................................................................ 5666
OnEvent ................................................................................................................ 5667
MinPos ................................................................................................................ 5668
Max Pos ................................................................................................................ 5669
CurrPos ................................................................................................................ 5670
CreateBack................................................................................................................ 5671
CreateInc ................................................................................................................ 5672
CreateDec ................................................................................................................ 5673
CreateThumb ................................................................................................................ 5674
OnClickInc ................................................................................................................ 5675
OnClickDec................................................................................................................ 5676
OnShow ................................................................................................................ 5677
OnHide ................................................................................................................ 5678
OnChangePos ................................................................................................................ 5679
OnThumbDragStart
................................................................................................................ 5680
OnThumbDragProcess
................................................................................................................ 5681
OnThumbDragEnd................................................................................................................ 5682
CalcPos ................................................................................................................ 5683
CScrollV......................................................................................................................... 5684
CreateInc ................................................................................................................ 5690
CreateDec ................................................................................................................ 5691
CreateThumb ................................................................................................................ 5692
OnResize ................................................................................................................ 5693
OnChangePos ................................................................................................................ 5694
OnThumbDragStart
................................................................................................................ 5695
OnThumbDragProcess
................................................................................................................ 5696
OnThumbDragEnd................................................................................................................ 5697
CalcPos ................................................................................................................ 5698
CScrollH......................................................................................................................... 5699
CreateInc ................................................................................................................ 5705
CreateDec ................................................................................................................ 5706
CreateThumb ................................................................................................................ 5707
OnResize ................................................................................................................ 5708
OnChangePos ................................................................................................................ 5709
OnThumbDragStart
................................................................................................................ 5710
OnThumbDragProcess
................................................................................................................ 5711
OnThumbDragEnd................................................................................................................ 5712

© 2000-2021, MetaQuotes Ltd


65 Content

CalcPos ................................................................................................................ 5713


CWndClient
......................................................................................................................... 5714
Create ................................................................................................................ 5717
OnEvent ................................................................................................................ 5718
ColorBackground
................................................................................................................ 5719
ColorBorder................................................................................................................ 5720
BorderType................................................................................................................ 5721
VScrolled ................................................................................................................ 5722
HScrolled ................................................................................................................ 5723
CreateBack................................................................................................................ 5724
CreateScrollV ................................................................................................................ 5725
CreateScroll ................................................................................................................
H 5726
OnResize ................................................................................................................ 5727
OnVScrollShow ................................................................................................................ 5728
OnVScrollHide ................................................................................................................ 5729
OnHScrollShow ................................................................................................................ 5730
OnHScrollHide ................................................................................................................ 5731
OnScrollLineDown
................................................................................................................ 5732
OnScrollLineUp................................................................................................................ 5733
OnScrollLineLeft
................................................................................................................ 5734
OnScrollLineRight
................................................................................................................ 5735
Rebound ................................................................................................................ 5736
CListView
......................................................................................................................... 5737
Create ................................................................................................................ 5743
OnEvent ................................................................................................................ 5744
TotalView ................................................................................................................ 5745
AddItem ................................................................................................................ 5746
Select ................................................................................................................ 5747
SelectByTex................................................................................................................
t 5748
SelectByValue ................................................................................................................ 5749
Value ................................................................................................................ 5750
CreateRow................................................................................................................ 5751
OnResize ................................................................................................................ 5752
OnVScrollShow ................................................................................................................ 5753
OnVScrollHide ................................................................................................................ 5754
OnScrollLineDown
................................................................................................................ 5755
OnScrollLineUp................................................................................................................ 5756
OnItemClick ................................................................................................................ 5757
Redraw ................................................................................................................ 5758
RowState ................................................................................................................ 5759
CheckView................................................................................................................ 5760
CComboBo.........................................................................................................................
x 5761
Create ................................................................................................................ 5767
OnEvent ................................................................................................................ 5768
AddItem ................................................................................................................ 5769
ListViewItems ................................................................................................................ 5770
Select ................................................................................................................ 5771
SelectByTex................................................................................................................
t 5772
SelectByValue ................................................................................................................ 5773
Value ................................................................................................................ 5774
CreateEdit................................................................................................................ 5775
CreateButton ................................................................................................................ 5776
CreateList ................................................................................................................ 5777
OnClickEdit................................................................................................................ 5778
OnClickButton ................................................................................................................ 5779
OnChangeList ................................................................................................................ 5780
ListShow ................................................................................................................ 5781
List Hide ................................................................................................................ 5782

© 2000-2021, MetaQuotes Ltd


66 Content

CCheckBo
.........................................................................................................................
x 5783
Create ................................................................................................................ 5789
OnEvent ................................................................................................................ 5790
Tex t ................................................................................................................ 5791
Color ................................................................................................................ 5792
Checked ................................................................................................................ 5793
Value ................................................................................................................ 5794
CreateButton ................................................................................................................ 5795
CreateLabel ................................................................................................................ 5796
OnClickButton................................................................................................................ 5797
OnClickLabel ................................................................................................................ 5798
CCheckGroup
......................................................................................................................... 5799
Create ................................................................................................................ 5805
OnEvent ................................................................................................................ 5806
AddItem ................................................................................................................ 5807
Value ................................................................................................................ 5808
CreateButton ................................................................................................................ 5809
OnVScrollShow................................................................................................................ 5810
OnVScrollHide................................................................................................................ 5811
OnScrollLineDown
................................................................................................................ 5812
OnScrollLineUp
................................................................................................................ 5813
OnChangeItem ................................................................................................................ 5814
Redraw ................................................................................................................ 5815
RowState ................................................................................................................ 5816
CRadioButton
......................................................................................................................... 5817
Create ................................................................................................................ 5819
OnEvent ................................................................................................................ 5820
Tex t ................................................................................................................ 5821
Color ................................................................................................................ 5822
State ................................................................................................................ 5823
CreateButton ................................................................................................................ 5824
CreateLabel ................................................................................................................ 5825
OnClickButton................................................................................................................ 5826
OnClickLabel ................................................................................................................ 5827
CRadioGroup
......................................................................................................................... 5828
Create ................................................................................................................ 5834
OnEvent ................................................................................................................ 5835
AddItem ................................................................................................................ 5836
Value ................................................................................................................ 5837
CreateButton ................................................................................................................ 5838
OnVScrollShow................................................................................................................ 5839
OnVScrollHide................................................................................................................ 5840
OnScrollLineDown
................................................................................................................ 5841
OnScrollLineUp
................................................................................................................ 5842
OnChangeItem ................................................................................................................ 5843
Redraw ................................................................................................................ 5844
RowState ................................................................................................................ 5845
Select ................................................................................................................ 5846
CSpinEdit
......................................................................................................................... 5847
Create ................................................................................................................ 5853
OnEvent ................................................................................................................ 5854
MinValue ................................................................................................................ 5855
Max Value ................................................................................................................ 5856
Value ................................................................................................................ 5857
CreateEdit................................................................................................................ 5858
CreateInc ................................................................................................................ 5859
CreateDec ................................................................................................................ 5860
OnClickInc ................................................................................................................ 5861

© 2000-2021, MetaQuotes Ltd


67 Content

OnClickDec................................................................................................................ 5862
OnChangeValue ................................................................................................................ 5863
CDialog ......................................................................................................................... 5864
Create ................................................................................................................ 5866
OnEvent ................................................................................................................ 5867
Caption ................................................................................................................ 5868
Add ................................................................................................................ 5869
CreateWhiteBorder
................................................................................................................ 5870
CreateBackground
................................................................................................................ 5871
CreateCaption ................................................................................................................ 5872
CreateButtonClose
................................................................................................................ 5873
CreateClientArea
................................................................................................................ 5874
OnClickCaption................................................................................................................ 5875
OnClickButtonClose
................................................................................................................ 5876
ClientAreaVisible
................................................................................................................ 5877
ClientAreaLeft................................................................................................................ 5878
ClientAreaTop ................................................................................................................ 5879
ClientAreaRight
................................................................................................................ 5880
ClientAreaBottom
................................................................................................................ 5881
ClientAreaWidth
................................................................................................................ 5882
ClientAreaH................................................................................................................
eight 5883
OnDialogDragStart
................................................................................................................ 5884
OnDialogDragProcess
................................................................................................................ 5885
OnDialogDragEnd
................................................................................................................ 5886
CAppDialog
......................................................................................................................... 5887
Create ................................................................................................................ 5890
Destroy ................................................................................................................ 5891
OnEvent ................................................................................................................ 5892
Run ................................................................................................................ 5893
ChartEvent................................................................................................................ 5894
Minimized ................................................................................................................ 5895
IniFileSave ................................................................................................................ 5896
IniFileLoad................................................................................................................ 5897
IniFileName................................................................................................................ 5898
IniFileEx t ................................................................................................................ 5899
CreateCommon ................................................................................................................ 5900
CreateEx pert ................................................................................................................ 5901
CreateIndicator
................................................................................................................ 5902
CreateButtonMinMa
................................................................................................................
x 5903
OnClickButtonClose
................................................................................................................ 5904
OnClickButtonMinMa
................................................................................................................
x 5905
OnAnotherApplicationClose
................................................................................................................ 5906
Rebound ................................................................................................................ 5907
Minimize ................................................................................................................ 5908
Max imize ................................................................................................................ 5909
CreateInstanceId
................................................................................................................ 5910
ProgramName ................................................................................................................ 5911
SubwinOff ................................................................................................................ 5912
34 Il passaggio dall'
.................................................................................................
MQL4 5913
35 List of MQL5 .................................................................................................
Functions 5917
36 List of MQL5 .................................................................................................
Constants 5955

© 2000-2021, MetaQuotes Ltd


68

Riferimento MQL5
MetaQuotes Language 5 (MQL5) è un linguaggio ad alto-livello progettato per lo sviluppo di indicatori
tecnici, robot di trading e applicazioni di utilità, che automatizzano il trading finanziario. MQL5 è
stato sviluppato da MetaQuotes per la loro piattaforma di trading. La sintassi del linguaggio è molto
vicina al C++, consentendo ai programmatori di sviluppare applicazioni nello stile di programmazione
orientata agli oggetti (OOP).

Oltre al linguaggio MQL5, il pacchetto della piattaforma di trading include anche il MetaEditor IDE con
strumenti di scrittura del codice estremamente avanzati, quali templates, snippet, debugging,
profiling e strumenti di completamento automatico, cos ì come MQL5 S torage che abilita il controllo
delle versioni dei file.

Il supporto al linguaggio è disponibile sul sito W eb MQL5.community, che contiene un numero enorme
di CodeBase gratuito e una pletora di articoli. Questi articoli coprono tutti gli aspetti del trading
moderno, tra cui reti neurali, statistiche e analisi, trading ad alta frequenza, arbitraggio, testing ed
ottimizzazione delle strategie di trading, utilizzo di robot di automazione di trading e altro ancora.

Gli sviluppatori di programmi di trading e MQL5 possono comunicare sul forum, ordinare e sviluppare
applicazioni usando il servizio Freelance, cos ì come acquistare e vendere programmi protetti nel
Mark et di applicazioni di trading automatico.

Il linguaggio MQL5 fornisce specializzate funzioni di trading e predefiniti gestori di eventi per aiutare i
programmatori a sviluppare Ex pert Advisors (EA), che controllano automaticamente i processi di
trading seguendo specifiche regole di trading. Oltre agli EA, MQL5 consente lo sviluppo personalizzato
di indicatori tecnici, script e librerie.

Questo riferimento al linguaggio MQL5 contiene funzioni, operazioni, parole riservate ed altre
costruzioni del linguaggio, suddivisi in categorie. Il riferimento fornisce anche le descrizioni delle
classi della Libreria S tandard utilizzate per lo sviluppo di strategie di trading, pannelli di controllo,
grafica personalizzata e abilitazione dell'accesso ai file.

Inoltre, il CodeBase contiene la libreria di analisi numerica A L GL IB, che può essere utilizzata per
risolvere vari problemi matematici.

Tipi di applicazioni MQL5


I programmi MQL5 sono suddivisi in quattro tipi specializzati basati sulle attività di automazione del
trading che implementano:

· Un Expert Advisor è un sistema di trading automatico collegato ad un grafico-chart. n Ex pert


U

A dvisor contiene gestori(handlers) di evento per gestire eventi predefiniti che attivano l'esecuzione

di elementi di strategia di trading appropriati. Ad esempio, un evento di inizializzazione e


deinizializzazione del programma, nuovi tick s, eventi timer, modifiche alla profondità di
mercato(Depth of Mark et), eventi chart e personalizzati.
Oltre a calcolare i segnali di trading in base alle regole implementate, gli Ex pert Advisors possono
anche eseguire automaticamente le operazioni e inviarle direttamente ad un server di trading. Gli
Ex pert Advisors sono memorizzati in <Directory_del_Terminale>\MQL5\Experts.
· Un Indicatore personalizzato è un indicatore tecnico sviluppato da un utente in aggiunta agli
indicatori standard integrati nella piattaforma di trading. Gli indicatori personalizzati, oltre a quelli
standard, non possono fare il trade automaticamente, ma implementano solo funzioni analitiche. Gli

© 2000-2021, MetaQuotes Ltd


69

indicatori personalizzati possono utilizzare i valori di altri indicatori per i calcoli e possono essere
chiamati da Ex pert Advisors.
Gli indicatori personalizzati sono memorizzati in <Directory_del_Terminale>\MQL5\Indicators.

· Uno Script è un programma per una singola esecuzione di un'azione. A differenza degli Ex pert

Advisors, gli script non gestiscono alcun evento tranne per i trigger(inneschi), inizializzazione e
deinitializzazione. Un codice di script deve contenere la funzione di gestore di OnS tart. Gli script
sono memorizzati in <Directory_del_Terminale>\MQL5\Scripts.
· Servizio è un programma che, a differenza degli indicatori, degli Ex pert Advisors e degli script, non
richiede di essere associato ad un chart per funzionare. Come gli script, i servizi non gestiscono
alcun evento tranne che per l'attivazione(innesco/trigger). Per avviare un servizio, il suo codice
dovrebbe contenere la funzione dell handler OnS tart. I servizi non accettano altri eventi tranne
S tart, ma sono in grado di inviare eventi personalizzati ai charts usando EventChartCustom. I

servizi sono memorizzati in <Directory_del_Terminale>\MQL5\Services.


· Una Libreriaè un insieme di funzioni personalizzate. Le librerie sono destinate a memorizzare e
distribuire algoritmi comunemente usati di programmi personalizzati.
Le librerie sono memorizzate in <Directory_del_Terminale>\MQL5\Libraries.
· Un file Include è un testo di sorgente dei blocchi più utilizzati di programmi personalizzati. Tali file
possono essere inclusi nei testi dei sorgenti di Ex pert Advisors, script, indicatori personalizzati e
librerie nella fase di compilazione. L 'uso di file inclusi è più preferibile rispetto all'uso delle librerie a
causa di un carico aggiuntivo che si verifica quando si chiamano le funzioni della libreria.
I file I nclude possono essere memorizzati nella stessa directory in cui si trova il file originale. I n

questo caso viene usata la direttiva #include con le virgolette. Un'altra opzione è quella di

memorizzare i file include nella <Directory_del_Terminale>\MQL5\Include. In questo caso #include


deve essere usato con parentesi angolari.

-
© 2000 2021 , MetaQuotes Ltd

© 2000-2021, MetaQuotes Ltd


70 Le basi del linguaggio

Le basi del Linguaggio


Il Linguaggio MetaQuotes 5 (MQL5) è un linguaggio di programmazione object-oriented ad alto livello
destinato alla scrittura di strategie di trading automatiche, indicatori tecnici personalizzati per l'analisi
dei vari mercati finanziari. Permette non solo di scrivere una varietà di sistemi esperti, progettati per
funzionare in tempo reale, ma anche creare i propri strumenti grafici per aiutare a prendere decisioni
di trade.

MQL5 si basa sul concetto del popolare linguaggio di programmazione C++. R ispetto ad MQL 4, il nuovo
linguaggio ha ora enumerazioni, strutture, classi e event handlers. Aumentando il numero degli inclusi
tipi main, l'interazione di programmi eseguibili in MQL5 con altre applicazioni attraverso le dll è ora il
più semplice possibile. La sintassi MQL5 è simile alla sintassi del C++, e questo lo rende facile tradurlo
in programmi informatici da moderni linguaggi di programmazione.

Per aiutarvi a studiare il linguaggio MQL5, tutti gli argomenti sono raggruppati nelle seguenti sezioni:

· S intassi
· T ipi di Dati
· Operazioni ed Espressioni

· Operatori

· F unzioni
· V ariabili
· Preprocessore

· Programmazione Ad Oggetti (OOP Object-Oriented-Programming)

· N amespaces

© 2000-2021, MetaQuotes Ltd


71 Le basi del linguaggio

Sintassi
Per quanto riguarda la sintassi, il linguaggio MQL5 per la progrmamazione di strategie di trading, è
molto simile al linguaggio di programmazione C++ , fatta eccezione per alcune caratteristiche:

· nessun indirizzo aritmetico;

· nessun operatore goto;

· un' enumerazione anonima non può essere dichiarata;

· non multiple ereditarietà.

Vedi anche
Enumerazioni, S trutture e Classi, Eredità

© 2000-2021, MetaQuotes Ltd


72 Le basi del linguaggio

Commenti
I commenti multi-riga iniziano con la coppia di simboli /* e termina con */ questa. T ali tipi di
commenti non possono essere nidificati. Commenti a riga singola iniziano con la coppia di simboli // e
termina con il carattere di nuova riga, essi possono essere annidati in altri commenti su più righe. I
commenti sono consentiti ovunque dove gli spazi siano consentiti, e possono avere qualsiasi numero
di spazi tra loro.

Esempi:
//--- Commento a riga-singola
/* Commento-
  Multi- // riga singola di commento, annidata
  riga
*/

© 2000-2021, MetaQuotes Ltd


73 Le basi del linguaggio

Identificatori
Gli identificatori vengono usati come nomi di variabili e funzioni. La lunghezza dell'identificatore non
può superare 63 caratteri.

Icaratteri consentiti da scrivere in un identificatore: cifre 0-9, lettere latine maiuscole e minuscole a-
z ed A-Z, riconosciute come diversi caratteri, il carattere di sottolineatura (_). Il primo carattere non
può essere un numero.

L 'identificatore non deve coincidere con la parolareserved.

Esempi:
NAME1 namel Total_5 Paper

Vedi anche
Variabili, Funzioni

© 2000-2021, MetaQuotes Ltd


74 Le basi del linguaggio

Parole riservate
I seguenti identificatori sono registrati come parole riservate, ciascuno di essi corrisponde ad una
certa azione, e non può essere utilizzato in un altro significato:

Tipi di Dati

bool float uint

char int ulong

class long union

color short ushort

datetime string void

double struct

enum uchar

Specificatori di accesso

const private virtual

delete protected

override public

Classi di memoria

ex tern input static

Operatori

break dynamic_cast operator

case else pack

continue for return

default if sizeof

delete new s witch

do offsetof w hile

Altro

this # define # import

true # ifdef # include

© 2000-2021, MetaQuotes Ltd


75 Le basi del linguaggio

this # define # import

false # ifndef # property

template # else group

typename # endif namespace

© 2000-2021, MetaQuotes Ltd


76 Le basi del linguaggio

Tipi di Dati
Qualsiasi programma opera con i dati. I dati possono essere di tipi diversi a seconda dei loro fini. Ad
esempio, i dati integer(_*interi) vengono utilizzati per accedere ai componenti degli array. I dati sui
prezzi appartengono a quelli di doppia precisione con virgola mobile. Ciò è dovuto al fatto che nessun
particolare tipo di dati per dati sui prezzi, è fornito in MQL5.

I dati di differenti tipi sono trattati con tassi differenti. I dati integer vengono elaborati come i più
veloci. Per elaborare i dati a doppia precisione, una speciale co-processore viene utilizzato. H owever,
because of complex ity of internal representation of data with floating point, they are processed slower
than the integer ones.

Dati stringa vengono elaborati in modo più lungo presso a causa dell' allocazione/riallocazione
dinamica della memoria del computer.

I tipi di dati di base sono:

· interi (char, short, int, long, uchar, ushort, uint, ulong);

· logici (bool);

· letterali (ushort);

· stringa (string);

· numeri in virgola-mobile (double, float);

· colori (color);

· data ed orario (datetime);

· enumerazioni (enum).

T ipi di dati complessi sono i seguenti:

· strutture;

· classi.

I n termini di OOP i tipi di dati complessi sono chiamati tipi di dati astratti.

I tipi color e datetime hanno senso solo per facilitare la visualizzazione e l'input dei parametri definiti
dal di fuori - dalla tabella di Ex pert Advisor o delle proprietà degli indicatori personalizzati (la scheda
I nputs). I dati color e datetime vengono rappresentati come interi. I tipi interi ed in virgola-mobile

vengono chiamati tipi aritmetici (numerici).

Vengono usati solo i type casting impliciti nelle espressioni, a meno che non viene specificato il
casting esplicito.

Vedi anche
Ty pecasting

© 2000-2021, MetaQuotes Ltd


77 Le basi del linguaggio

Tipi Integer
In MQL5 gli interi sono rappresentati da undici tipi. Alcuni tipi possono essere usati insieme ad altri,
se richiesto dalla logica del programma, ma in questo caso è necessario ricordare le regole di
conversione di tipo.

La tabella seguente elenca le caratteristiche di ogni tipo. Inoltre, l'ultima colonna mostra il tipo in C++
corrispondente a ciascun tipo.

Tipo Dimensione in Valore Minimo Valore Massimo Analogo C++


Byte
char 1 -128 127 char

uchar 1 0 2 55 unsigned char,


BYT E

bool 1 0 (false) 1 (true) bool

short 2 -32 768 32 767 short, wchar_t

ushort 2 0 6 5 535 unsigned short,


W O RD

int 4 - 2 147 483 648 2 147 483 647 int

uint 4 0 4 294 967 29 5 unsigned int,


DW O RD

color 4 -1 16 777 21 5 int, COLORR EF

long 8 -9 223 372 036 9 223 372 036 __ int64


854 775 808 5
8 4 77 5 807

ulong 8 0 18 446 744 073 unsigned __int64


709 551 61 5

datetime 8 0 (1970.01.01 32 535 244 799 __ time64_t


0:00:00) (3000.12.31
23: 59: 59)

Valori di tipo intero possono essere presentati come costanti numeriche, letterali di colore, letterali
data-ora, caratteri costanti ed enumerazioni.

Vedi anche
Conversione Dati, Costanti dei T ipi Numerici

© 2000-2021, MetaQuotes Ltd


78 Le basi del linguaggio

Tipi Char, Short, Int e Long


char
Il tipo char prende 1 byte di memoria (8 bit) e consente di esprimere in notazione binaria 2^8=256
valori. Il tipo char può contenere valori sia positivi che negativi. L 'intervallo di valori va da -128 a 127.

uchar
Il tipo intero uchar occupa anche 1 byte di memoria, cos ì come il tipo char, ma a differenza da esso,
uchar è designato solo per i valori positivi. Il valore minimo è zero, il valore massimo è 255. La prima
lettera u del nome del tipo uchar è l'abbreviazione di unsigned.

short
La dimensione del tipo short è 2 byte (16 bit) e, di conseguenza, consente di esprimere l'intervallo di
valori pari a 2 alla potenza di16: 2^16=65 536. S iccome il tipo short è con il segno, e contiene i valori
sia positivi che negativi, l'intervallo di valori è compreso tra -32 768 e 32 767.

ushort
I l tipo short senza segno, è il tipo ushort, che anche, ha una dimensione di 2 byte. Il valore minimo è
0 , il valore massimo è 65 535.

int
La dimensione del tipo int è di 4 byte (32 bit). Il valore minimo è di -2 147 483 648 , quello massimo è
di 2 147 483 647.

uint
I l tipo intero senza segno è uint. Ci vogliono 4 byte di memoria e consente di esprimere interi da 0 a 4

294 967 29 5.

long
La grandezza del tipo long è di 8 byte (64 bit). Il valore minimo è -9 5
223 372 036 8 4 77 5 808 , il valore
massimo è di 9 223 372 036 854 775 807.

ulong
I l tipo ulong anche, occupa 8 byte e può memorizzare i valori da 0 a 18 446 744 073 709 551 61 5.

Esempi:
char ch=12;
short sh=-5000;
int in=2445777;

© 2000-2021, MetaQuotes Ltd


79 Le basi del linguaggio

Poiché i tipi interi senza segno non sono designati per memorizzare i valori negativi, il tentativo di
impostare un valore negativo può portare a conseguenze inaspettate. Un tale semplice script porterà
ad un ciclo infinito:

//--- Loop infinito


voidOnStart()
{
uchar u_ch;

for(char ch=-128;ch<128;ch++)
{
u_ch=ch;
Print("ch = ",ch," u_ch = ",u_ch);
}
}

La variante corretta è:

//--- Variante corretta


voidOnStart()
{
uchar u_ch;

for(char ch=-128;ch<=127;ch++)
{
u_ch=ch;
Print("ch = ",ch," u_ch = ",u_ch);
if(ch==127) break;
}
}

Risultato:
ch= -128 u_ch= 128
ch= -127 u_ch= 129
ch= -126 u_ch= 130
ch= -125 u_ch= 131
ch= -124 u_ch= 132
ch= -123 u_ch= 133
ch= -122 u_ch= 134
ch= -121 u_ch= 135
ch= -120 u_ch= 136
ch= -119 u_ch= 137
ch= -118 u_ch= 138
ch= -117 u_ch= 139
ch= -116 u_ch= 140
ch= -115 u_ch= 141
ch= -114 u_ch= 142
ch= -113 u_ch= 143
ch= -112 u_ch= 144

© 2000-2021, MetaQuotes Ltd


80 Le basi del linguaggio

ch= -111 u_ch= 145


...

Esempi:
//--- Valori negativi non possono essere memorizzati in tipi senza segno
uchar u_ch=-120;
ushort u_sh=-5000;
uint u_in=-401280;

Esadecimale: numeri 0-9, le lettere a-f o A-F per i valori di - 5, iniziano con 0x o 0X.
10 1

Esempi:
0x0A, 0x12, 0X12, 0x2f, 0xA3, 0Xa3, 0X7C7

Per le variabili intere, i valori possono essere impostati in forma binaria utilizzando il prefisso B. Ad
esempio, è possibile codificare le ore di lavoro di una sessione di trading in variabile di tipo int ed
utilizzare le informazioni su di esse secondo l'algoritmo richiesto:

//+--------------------------------------------------------------------------------+
//| Funzione di avvio del programma Script |
//+--------------------------------------------------------------------------------+
voidOnStart()
{
//--- imposta 1 per le ore di lavoro e 0 per quelle non lavorative
int AsianSession =B'111111111'; // Sessione Asiatica da 00:00 alle 9:00
int EuropeanSession=B'111111111000000000'; // Sessione Europea 9:00 - 18:00
int AmericanSession =B'111111110000000000000011'; // Sessione Americana 16:00 - 02:00
//--- derive numerical values of the sessions
PrintFormat("Ore della sessione Asiatica come valore =%d",AsianSession);
PrintFormat("Ore della sessione Europea come valore è %d",EuropeanSession);
PrintFormat("Ore della sessione Americana come valore è %d %d",AmericanSession);
//--- e ora visualizziamo le rappresentazioni stringa delle ore di lavoro delle sessioni '
Print("Sessione Asiatica ",GetHoursForSession(AsianSession));
Print("Sessione Europea ",GetHoursForSession(EuropeanSession));
Print("Sessione Americana ",GetHoursForSession(AmericanSession));
//---
}
//+--------------------------------------------------------------------------------+
//| restituisce le ore di lavoro della sessione come stringa |
//+--------------------------------------------------------------------------------+
string GetHoursForSession(int session)
{
//--- al fine di verificare, usale l'orperazione bit AND e slittamenti sinistro di 1 bit <<=1
//--- avviare il controllo dal bit più basso
int bit=1;
string out="ore lavorative: ";
//--- controlla tutti i 24 bit a partire da quello zero e fino a 23, inclusivamente
for(int i=0;i<24;i++)
{

© 2000-2021, MetaQuotes Ltd


81 Le basi del linguaggio

//--- riceve lo stato dei bit in numeri


bool workinghour=(session&bit)==bit;
//--- aggiunge il numero di ore al messaggio
if(workinghour )out=out+StringFormat("%d ",i);
//--- slitta di un bit a sinistra e controlla il valore di quello successivo
bit<<=1;
}
//--- stringa risultato
return out;
}

Vedi anche
Typecasting

© 2000-2021, MetaQuotes Ltd


82 Le basi del linguaggio

Costanti Carattere
Icaratteri come elementi di un stringa in MQL5 sono indici nel set di caratteri Unicode. S ono valori
esadecimali che possono essere espressi in numeri interi, e che possono essere manipolati da
operazioni integer come addizione e sottrazione.

Qualsiasi carattere singolo tra virgolette o un codice esadecimale AS CII di un carattere '\x10' è un
carattere costante ed è di tipo ushort. Ad esempio, un record di tipo '0' è un valore numerico 30, che
corrisponde all'indice di zero nella tabella di caratteri.

Esempio:
voidOnStart()
{
//--- definizione delle costanti carattere
int symbol_0='0';
int symbol_9=symbol_0+9; // ottengo simbolo '9'
//--- valori output delle costanti
printf("In a decimal form: symbol_0 = %d, symbol_9 = %d",symbol_0,symbol_9);
printf("In a hexadecimal form: symbol_0 = 0x%x, symbol_9 = 0x%x",symbol_0,symbol_9);
//--- inserire costanti in una stringa
string test="";
StringSetCharacter(test,0,symbol_0);
StringSetCharacter(test,1,symbol_9);
//--- questo è ciò che sembrano in una stringa
Print(test);
}

Il back slash è un carattere di controllo per il compilatore quando si tratta di stringhe costanti e le
costanti di caratteri nel testo sorgente di un programma. Alcuni simboli, per esempio un singolo apice
('), i doppi apici (" ), back slash (\) e caratteri di controllo possono essere rappresentati come una
combinazione di simboli che iniziano con un back slash (\), secondo la seguente tabella:

Nome del carattere Codice mnemonico Record in MQL5 Valore numerico


o immagine
nuova linea (line LF '\ n' 10

feed)

tabulazione HT '\ ' t 9

orizzontale

ritorno a capo CR '\ ' r 13

back slash \ '\\' 92

apice singolo ' '\'' 39

virgolette o apice " '\" ' 34

doppio

codice esadecimale hhhh '\x hhhh' Da 1 a 4 caratteri


esadecimali

© 2000-2021, MetaQuotes Ltd


83 Le basi del linguaggio

Nome del carattere Codice mnemonico Record in MQL5 Valore numerico


o immagine
codice decimale d '\ d' numero decimale da 0

a 65535

Se il back slash è seguito da un carattere diverso da uelli sopra descritti, il risultato risultato è
q

indefinito.

Esempio
voidOnStart()
{
//--- dichiarazione delle costanti carattere
int a='A';
int b='$';
int c='©'; // codice 0xA9
int d='\xAE'; // codice per il simbolo ®
//--- print output delle costanti
Print(a,b,c,d);
//--- aggiungere un carattere alla stringa
string test="";
StringSetCharacter(test,0,a);
Print(test);
//--- sostituire un carattere in una stringa
StringSetCharacter(test,0,b);
Print(test);
//--- sostituire un carattere in una stringa
StringSetCharacter(test,0,c);
Print(test);
//--- sostituire un carattere in una stringa
StringSetCharacter(test,0,d);
Print(test);
//--- rappresentare i caratteri come un numero
int a1=65;
int b1=36;
int c1=169;
int d1=174;
//--- aggiungere un carattere alla stringa
StringSetCharacter(test,1,a1);
Print(test);
//--- aggiungere un carattere alla stringa
StringSetCharacter(test,1,b1);
Print(test);
//--- aggiungere un carattere alla stringa
StringSetCharacter(test,1,c1);
Print(test);
//--- aggiungere un carattere alla stringa
StringSetCharacter(test,1,d1);

© 2000-2021, MetaQuotes Ltd


84 Le basi del linguaggio

Print(test);
}

Come è stato menzionato sopra, il valore di una costante (o variabile) carattere è un indice nella
tabella dei caratteri. L ' indice essendo un intero, esso può essere scritto in modi diversi.

voidOnStart()
{
//---
int a=0xAE; // il codice di ® corrisponde al letterale '\xAE'
int b=0x24; // il codice di $ corrisponde al letterale '\x24'
int c=0xA9; // il codice di © corrisponde al letterale '\xA9'
int d=0x263A; // il codice di ☺ corrisponde al letterale '\x263A'
//--- mostra valori
Print(a,b,c,d);
//--- aggiungere un carattere alla stringa
string test="";
StringSetCharacter(test,0,a);
Print(test);
//--- sostituire un carattere in una stringa
StringSetCharacter(test,0,b);
Print(test);
//--- sostituire un carattere in una stringa
StringSetCharacter(test,0,c);
Print(test);
//--- sostituire un carattere in una stringa
StringSetCharacter(test,0,d);
Print(test);
//--- codici di suits
int a1=0x2660;
int b1=0x2661;
int c1=0x2662;
int d1=0x2663;
//--- aggiungere il carattere di picche
StringSetCharacter(test,1,a1);
Print(test);
//--- aggiungere il carattere di cuori
StringSetCharacter(test,2,b1);
Print(test);
//--- aggiungere il carattere di quadri
StringSetCharacter(test,3,c1);
Print(test);
//--- aggiungere il carattere di bastoni
StringSetCharacter(test,4,d1);
Print(test);
//--- esempio di letterali carattere in una stringa
test="Regina\x2660Ace\x2662";
printf("%s",test);
}

© 2000-2021, MetaQuotes Ltd


85 Le basi del linguaggio

La rappresentazione interna di un carattere letterale è il tipoushort. Le costanti carattere possono


accettare valori da 0 a 65535.

Vedi anche
S tring S etCharacter(), S tring GetCharacter(), S hortT oS tring(), S hortArrayT oS tring(),
S tring T oS hortA rray()

© 2000-2021, MetaQuotes Ltd


86 Le basi del linguaggio

Tipo Datetime
Il tipo datetime è destinato a memorizzare la data e l'ora come il numero di secondi trascorsi dal 01

gennaio 1970. Questo tipo occupa 8 byte di memoria.

Costanti di data e ora possono essere rappresentate come una stringa letterale, che consiste in 6 parti
che mostrano il valore numerico dell 'anno, mese, giorno (o giorno, mese, anno), ore, minuti e
secondi. La costante è racchiusa tra virgolette singole e inizia con il carattere D.

I valori vanno dal 1 ° gennaio 1970 al 31 dicembre 3000. S ia data (anno, mese, giorno) che orario
(ore, minuti, secondi), o tutti insieme possono essere omessi.

Con la specificazione della data letterale, è desiderabile che si specifichi l'anno, mese e giorno.
A ltrimenti il ​compilatore restituisce un avviso su una voce incompleta.

Esempi:
datetime NY=D'2015.01.01 00:00'; // Orario dell'inizio dell'anno 2015
datetime d1=D'1980.07.19 12:30:27'; // Anno Mese Giorno Ore Minuti Secondi
datetime d2=D'19.07.1980 12:30:27'; // Equivale a D'1980.07.19 12:30:27';
datetime d3=D'19.07.1980 12'; // Equivale a D'1980.07.19 12:00:00'
datetime d4=D'01.01.2004'; // Equivale aD'01.01.2004 00:00:00'
datetime compilation_date=__DATE__; // Data di compilazione
datetime compilation_date_time=__DATETIME__; // Data ed orario di compilazione
datetime compilation_time=__DATETIME__-__DATE__;// Orario di compilazione
//--- Examples of declarations after which compiler warnings will be returned
datetime warning1=D'12:30:27'; // Equivale a D'[data di compilazione] 12:30:27'
datetime warning2=D''; // Equivale a __DATETIME__

Vedi anche
S truttura del tipo Data, Data ed Ora, T imeT oS tring, S tring T oT ime

© 2000-2021, MetaQuotes Ltd


87 Le basi del linguaggio

Color Type
l tipo colore è stato progettato per la memorizzazione delle informazioni sul colore ed occupa
I 4 byte in
memoria. Il primo byte viene ignorato, i restanti 3 byte contengono i-componenti RGB.

Costanti di colore possono essere rappresentate in tre modi: letteralmente, da numeri interi, o per
nome (per i colori nominati W eb-colori solamente).

La rappresentazione letterale è composta da tre parti che rappresentano i valori dei tassi numerici dei
tre principali componenti di colore: rosso, verde, blu. La costante inizia con C ed è racchiusa tra apici.
I tassi dei valori numerici di una componente di colore giacciono nell'intervallo da 0 a 255.

Integer-valued representation is written in a form of hex adecimal or a decimal number. Un numero


esadecimale sembra 0x00BBGGRR , dove RR è il tasso del componente di colore rosso, GG - del verde,
e BB - di quello blu. Costanti decimali non si riflettono direttamente nel RGB. Esse rappresentano un
valore decimale della rappresentazione esadecimale intera.

Colori specifici riflettono il cosiddetto W eb-color impostato.

Esempi:
//--- Letterali
C'128,128,128' // Grigio
C'0x00,0x00,0xFF' // Blu
//nomi dei colori
clrRed // rosso
clrYellow // giallo
clrBlack // nero
//--- Rappresentazioni integrali
0xFFFFFF // Bianco
16777215 // Bianco
0x008000 // Verde
32768 // Verde

Vedi anche
W eb Colors,ColorT oS tring, S tring T oColor, pecasting
Ty

© 2000-2021, MetaQuotes Ltd


88 Le basi del linguaggio

Tipo Bool
Il tipo bool è designato per memorizzare i valori logici true o false, la rappresentazione numerica di
essi è 1 o 0, rispettivamente.

Esempi:
bool a = true;
bool b = false;
bool c = 1;

La rappresentazione interna è un numero intero largo 1 byte. Va notato che nelle espressioni logiche è
possibile utilizzare altro numero intero o tipi reali o espressioni di questi tipi - il compilatore non
genererà alcun errore. In questo caso, il valore zero viene interpretato come false, e tutti gli altri
valori - come true.

Esempi:
int i=5;
double d=-2.5;
if(i) Print("i = ",i," ed è impostato a true");
else Print("i = ",i," ed è impostato a false");

if(d) Print("d = ",d," ed ha il valore true");


else Print("d = ",d," ed ha il valore false");

i=0;
if(i) Print("i = ",i," ed ha il valore true");
else Print("i = ",i," ed ha il valore false");

d=0.0;
if(d) Print("d = ",d," ed ha il valore true");
else Print("d = ",d," ed ha il valore false");

//--- Risultato dell'esecuzione


// i= 5 ed ha il valore true
// d= -2.5 ed ha il valore true
// i= 0 ed ha il valore false
// d= 0 ed ha il valore false

Vedi anche
Operazioni Booleane, Precedenza R egole

© 2000-2021, MetaQuotes Ltd


89 Le basi del linguaggio

Enumerazioni
Dati del tipo enum appartengono ad un certo insieme limitato di dati. D efinizione del tipo di
enumerazione:

enum nome del tipo enumerabile


{
  elenco di valori
};

L 'elenco dei valori è un elenco di identificatori di costanti denominate, separate da virgole.

Esempio:
enum mese// enumerazione di costanti denominate
{
  Gennaio,
  Febbraio,
  Marzo,
  Aprile,
  Maggio,
  Giugno,
  Luglio,
  Agosto,
  Settembre,
  Ottobre,
  Novembre,
  Dicembre
};

Dopo l'enumerazione viene dichiarata, appare un nuovo tipo di dati integer-a-valore-4-byte. La


dichiarazione del nuovo tipo di dati consente al compilatore di controllare rigorosamente i tipi di
parametri passati, perchè l'enumerazione introduce nuove costanti denominate. Nel precedente
esempio, la costante denominata Gennaio ha il valore di 0, Febbraio - 1, Dicembre - 11.

Regola: Se un certo valore non è assegnato ad una costante nominata che è un membro
dell'enumerazione, il nuovo valore viene formato automaticamente. S e è il primo membro
dell'enumerazione, ad esso verrà assegnato il valore 0. Per tutti i membri successivi, i valori vengono
calcolati sulla base del valore dei componenti precedenti aggiungendo uno.

Esempio:
enum intervals // Enumerazione delle costanti nominate
{
month=1, // Intervallo di un mese
two_months, // Due mesi
quarter, // Tre mesi - un quarto di anno
halfyear=6, // Mezzo anno
year=12, // Anno - 12 mesi
};

© 2000-2021, MetaQuotes Ltd


90 Le basi del linguaggio

Note
· A differenza di C++, la grandezza della rappresentazione interna del tipo enumerato in MQL5 è
sempre uguale a 4 byte. Che è, sizeof (months) restituisce il valore 4.
· A differenza del C++, un' enumerazione anonima non può essere dichiarata in MQL5. Vale a dire, un
nome univoco deve essere sempre specificato dopo la parola chiave enum.

Vedi anche
Ty pecasting

© 2000-2021, MetaQuotes Ltd


91 Le basi del linguaggio

Tipi Reali (double, float)


I tipi reali (o tipi a virgola mobile) rappresentano i valori con una parte frazionaria. Nel linguaggio
MQL5 ci sono due tipi di numeri floating point(_* a virgola mobile) .Il metodo di rappresentazione dei
numeri reali nella memoria del computer è definito dallo standard IEEE 754 ed è indipendente dalle
piattaforme, sistemi operativi o linguaggi di programmazione.

Tipo Dimensione in Valore Minimo Valore Massimo Analogo C++


byte Positivo
float 4 . 5
1 17 4943 15 e-38 .
3 402823466 e+3 float
8

double 8 . 5 5 5
2 22 0738 8 07 .
1 797693134862 double
2014 e-308 31 8 5 e+308

Il nome double significa che la precisione di questi numeri è due volte l'accuratezza del tipo di
numerifloat. Nella maggior parte dei casi, il tipo double è il più conveniente. In molti casi la precisione
limitata dei numeri float non è sufficiente. Il motivo per cui il tipo float è ancora usato, è per salvare
la memoria (questo è importante per grandi array di numeri reali).

Costanti in floating-point consistono di una parte intera, un punto (.) e la parte frazionaria. Le parti
intera e frazionaria sono sequenze di cifre decimali.

Esempi:
double a=12.111;
double b=-956.1007;
float c =0.0001;
float d =16;

C'è un modo scientifico di scrivere costanti reali, spesso questo metodo di registrazione è più
compatto di quello tradizionale.

Esempio:
double c1=1.12123515e-25;
double c2=0.000000000000000000000000112123515; // 24 zero dopo il punto decimale

Print("1. c1 =",DoubleToString(c1,16));
// Result: 1. c1 = 0.0000000000000000

Print("2. c1 =",DoubleToString(c1,-16));
// Result: 2. c1 = 1.1212351499999999e-025

Print("3. c2 =",DoubleToString(c2,-16));
// Result: 3. c2 = 1.1212351499999999e-025

Va ricordato che i numeri reali sono memorizzati nella memoria con una certa precisione limitata nel
sistema binario, mentre generalmente viene utilizzata la notazione decimale . Ecco perché molti
numeri che sono appunto rappresentati nel sistema decimale possono essere scritti solo come una
frazione infinita nel sistema binario.

© 2000-2021, MetaQuotes Ltd


92 Le basi del linguaggio

Per esempio, i numeri 0,3 e 0,7 sono rappresentati nel computer come frazioni infinite, mentre il
numero di 0,25 è memorizzato esattamente cos ì, perché rappresenta la potenza di due.

A questo proposito, si raccomanda di non confrontare due numeri reali per l'uguaglianza, in quanto tale
confronto non è corretto.

Esempio:
voidOnStart()
{
//---
double three=3.0;
double x,y,z;
x=1/three;
y=4/three;
z=5/three;
if(x+y==z)
Print("1/3 + 4/3 == 5/3");
else
Print("1/3 + 4/3 != 5/3");
// Risultato: 1/3 + 4/3 != 5/3
}

Se si ha ancora bisogno di confrontare l'uguaglianza di due numeri reali, allora si può fare in due modi
diversi. Il primo modo consiste nel confrontare la differenza tra due numeri con qualche piccola
quantità che specifica la precisione del confronto.

Esempio:
bool EqualDoubles(double d1,double d2,double epsilon)
{
if(epsilon<0)
epsilon=-epsilon;
//---
if(d1-d2>epsilon)
return false;
if(d1-d2<-epsilon)
return false;
//---
return true;
}
voidOnStart()
{
double d_val=0.7;
float f_val=0.7;
if(EqualDoubles(d_val,f_val,0.000000000000001))
Print(d_val," equals ",f_val);
else
Print("Different: d_val = ",DoubleToString(d_val,16)," f_val = ",DoubleToString(f_val,16));
// Risultato: Different: d_val= 0.7000000000000000 f_val= 0.6999999880790710
}

© 2000-2021, MetaQuotes Ltd


93 Le basi del linguaggio

Osservato che il valore di epsilon nell'esempio precedente non può essere inferiore alla costante
predefinita DBL _EPS ILON. Il valore di questa costante è 2.2204460492503131e-016. La corrispondente
costante per il tipo float è FL T_EPS ILON = 1.192092896e-07. Il significato di questi valori è il
seguente: è il valore più basso che soddisfa la condizione 1.0 + DBL _EPS ILON! = 1.0 (per numeri di tipo
float 1.0 + FL T_EPS ILON! = 1.0).

Il secondo modo offre il confronto della differenza normalizzata di due numeri reali con zero. Non ha
senso confrontare la differenza di numeri normalizzati con uno zero, perché qualsiasi operazione
matematica con i numeri normalizzati da un risultato non-normalizzato.

Esempio:
bool CompareDoubles(double number1,double number2)
{
if(NormalizeDouble(number1-number2,8)==0)
return(true);
else
return(false);
}
voidOnStart()
{
double d_val=0.3;
float f_val=0.3;
if(CompareDoubles(d_val,f_val))
Print(d_val," equals ",f_val);
else
Print("Different: d_val = ",DoubleToString(d_val,16)," f_val = ",DoubleToString(f_val,16));
// Result: Different: d_val= 0.3000000000000000 f_val= 0.3000000119209290
}

A lcune operazioni del co-processore matematico possono provocare il numero reale valido, che non può
essere utilizzato in operazioni matematiche e operazioni di confronto, poiché il risultato di operazioni
con numeri reali non validi è indefinito. Per esempio, quando si cerca di calcolare l' arcoseno di 2, il
risultato è l'infinito negativo.

Esempio:
double abnormal = MathArcsin(2.0);
Print("MathArcsin(2.0) =",abnormal);
// Risultato: MathArcsin(2.0) = -1.#IND

Oltre al meno infinito c'è il più infinito e NaN (not a number). Per determinare che questo numero non
è valido, è possibile utilizzare MathIs ValidNumber(). S econdo lo standard IEEE, hanno una particolare
rappresentazione macchina. Per esempio, più infinito per il tipo double ha la rappresentanza bit di
0x7FF0 0000 0000 0000.

Esempi:
struct str1
{
double d;
};

© 2000-2021, MetaQuotes Ltd


94 Le basi del linguaggio

struct str2
{
long l;
};

//--- Start
str1 s1;
str2 s2;
//---
s1.d=MathArcsin(2.0); // Ottiene il numero non valido -1.#IND
s2=s1;
printf("1. %f %I64X",s1.d,s2.l);
//---
s2.l=0xFFFF000000000000; // numero non valido -1.#QNAN
s1=s2;
printf("2. %f %I64X",s1.d,s2.l);
//---
s2.l=0x7FF7000000000000; // il più grande non-numero SNaN
s1=s2;
printf("3. %f %I64X",s1.d,s2.l);
//---
s2.l=0x7FF8000000000000; // il più piccolo non-numero QNaN
s1=s2;
printf("4. %f %I64X",s1.d,s2.l);
//---
s2.l=0x7FFF000000000000; // il più grande non-numero QNaN
s1=s2;
printf("5. %f %I64X",s1.d,s2.l);
//---
s2.l=0x7FF0000000000000; // Infinito positivo 1.#INF ed il più piccolo non numero SNaN
s1=s2;
printf("6. %f %I64X",s1.d,s2.l);
//---
s2.l=0xFFF0000000000000; // Infinito negativo -1.#INF
s1=s2;
printf("7. %f %I64X",s1.d,s2.l);
//---
s2.l=0x8000000000000000; // Zero negativo -0.0
s1=s2;
printf("8. %f %I64X",s1.d,s2.l);
//---
s2.l=0x3FE0000000000000; // 0.5
s1=s2;
printf("9. %f %I64X",s1.d,s2.l);
//---
s2.l=0x3FF0000000000000; // 1.0
s1=s2;
printf("10. %f %I64X",s1.d,s2.l);
//---

© 2000-2021, MetaQuotes Ltd


95 Le basi del linguaggio

s2.l=0x7FEFFFFFFFFFFFFF; // Il più grande numero normalizzato (MAX_DBL)


s1=s2;
printf("11. %.16e %I64X",s1.d,s2.l);
//---
s2.l=0x0010000000000000; // Il più piccolo positivo normalizzato (MIN_DBL)
s1=s2;
printf("12. %.16e %.16I64X",s1.d,s2.l);
//---
s1.d=0.7; // Mostra il numero di 0.7 - frazione senza fine
s2=s1;
printf("13. %.16e %.16I64X",s1.d,s2.l);
/*
1. -1.#IND00 FFF8000000000000
2. -1.#QNAN0 FFFF000000000000
3. 1.#SNAN0 7FF7000000000000
4. 1.#QNAN0 7FF8000000000000
5. 1.#QNAN0 7FFF000000000000
6. 1.#INF00 7FF0000000000000
7. -1.#INF00 FFF0000000000000
8. -0.000000 8000000000000000
9. 0.500000 3FE0000000000000
10. 1.000000 3FF0000000000000
11. 1.7976931348623157e+308 7FEFFFFFFFFFFFFF
12. 2.2250738585072014e-308 0010000000000000
13. 6.9999999999999996e-001 3FE6666666666666
*/

Vedi anche
D oubleT oS tring, NormalizeDouble, Costanti dei T ipi Numerici

© 2000-2021, MetaQuotes Ltd


96 Le basi del linguaggio

Tipo Stringa
Il tipo stringa viene utilizzato per la memorizzazione di stringhe di testo. Una stringa di testo è una
sequenza di caratteri in formato Unicode con lo zero finale al termine di essa. Una costante stringa
può essere assegnata ad una variabile stringa. Una costante stringa è una sequenza di caratteri
Unicode racchiuse tra virgolette: " Questa è una costante stringa" .

Se è necessario includere le virgolette (" ) in una stringa, il carattere di back slash (\) deve essere
messo prima. Qualsiasi speciali costanti carattere possono essere scritte in una stringa, se il carattere
di back slash (\) viene digitato prima di esse.

Esempi:
string svar="Questo è un carattere stringa";
string svar2=StringSubstr(svar,0,4);
Print("Simbolo del Copyright\t\x00A9");
FileWrite(handle,"Questa stringa contiene il simbolo di nuova riga \n");
string MT5path="C:\\Program Files\\MetaTrader 5";

Per rendere il codice sorgente leggibile, lunghe costanti stringa possono essere suddivise in parti
senza operazione di addizione. Durante la compilazione, queste parti verranno combinate in una
stringa long :

//--- Dichiarare una costante stringa long


string HTML_head="<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\""
" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
"<html xmlns=\"http://www.w3.org/1999/xhtml\">\n"
"<head>\n"
"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n"
"<title>Report Operazioni di Trade</title>\n"
"</head>";
//--- Fai l'output della costante stringa nel log
Print(HTML_head);
}

Vedi anche
F unzioni di Conversione, Funzioni di S tringa,FileOpen, FileR eadS tring, FileW riteS tring

© 2000-2021, MetaQuotes Ltd


97 Le basi del linguaggio

Strutture, Classi e Interfacce


Strutture
Una struttura è un insieme di elementi di qualsiasi tipo (ad eccezione del tipo void). Cos ì, la struttura
combina dati logicamente correlati di tipo diverso.

Dichiarazione Struttura
I l tipo di dati struttura è determinato dalla seguente descrizione:

struct structure_name
{
elements_description
};

Il nome struttura non può essere usato come un identificatore (nome di una variabile o funzione). Va
notato che in MQL5 elementi strutturali si susseguono direttamente, senza allineamento. In C++ un
tale ordine è fatto per il compilatore utilizzando la seguente istruzione:

#pragma pack(1)

Se si vuole fare un altro allineamento nella struttura, utilizzare i membri ausiliari, " fillers " per la giusta
dimensione.

Esempio:
struct trade_settings
{
uchar slippage; // valore grandezza-slippage permissibile 1 byte
char reserved1; // salta 1 byte
short reserved2; // salta 2 bytes
int reserved4; // altri 4 bytes vengono saltati. garantisce l'allineamento del bordo 8 byt
double take; // valore del prezzo del fissaggio del profitto
double stop; // valore del prezzo dello stop protettivo
};

Tale descrizione delle strutture allineate è necessaria solo per il trasferimento di funzioni importate
dll.

Attenzione: Questo esempio illustra dati non correttamente designati. S arebbe meglio prima

dichiarare take e stop dati di grandi dimensioni del tipo double, e quindi dichiarare lo slippagemembro
del tipo uchar. In questo caso, la rappresentazione interna dei dati sarà sempre la stessa
indipendentemente dal valore specificato in #pragma pack().

Se una struttura contiene variabili di tipo string e/o oggetto di un array dinamico, il compilatore
assegna un costruttore implicito a tale struttura. Questo costruttore resetta tutti i membri della
struttura di tipo string ed inizializza correttamente oggetti della matrice dinamica.

Strutture Semplici

© 2000-2021, MetaQuotes Ltd


98 Le basi del linguaggio

Le strutture che non contengono stringhe, oggetti delle classi, puntatori ed oggetti di array dinamici
sono chiamate S trutture S emplici. Le variabili di strutture semplici e le loro array possono essere
passate come parametri alle funzioni importate da DLL.

La copia di strutture semplici è consentita solo in due casi:

· S e gli oggetti appartengono allo stesso tipo di struttura


· S e gli oggetti sono collegati dalla linea che significa che una struttura è un discendente di un'altra.

Per fornire un esempio, sviluppiamo la struttura personalizzata CustomM qlT ick con il suo contenuto
identico a quella built-in M qlT ick . Il compilatore non consente di copiare il valore dell'oggetto M qlT ick
nell'oggetto di tipo CustomM qlT ick . Typecasting diretto al tipo necessario provoca anche l'errore di
compilazione:

//--- la copia di strutture semplici di diversi tipi è vietata


my_tick1=last_tick; // il compilatore restituisce un errore qui

//--- fare il typecasting di strutture di tipi differenti l'un l'altra è vietato anche
my_tick1=(CustomMqlTick)last_tick;// il compilatore restituisce un errore qui

Pertanto, resta una sola opzione – la copia dei valori degli elementi della struttura uno ad uno. È

comunque permesso copiare i valori dello stesso tipo di CustomM qlT ick .

CustomMqlTick my_tick1,my_tick2;
//--- è consentito copiare gli oggetti dello stesso tipo di CustomMqlTick nel seguente modo
my_tick2=my_tick1;

//--- creare un array dagli oggetti della struttura semplice CustomMqlTick e scrivere valori
CustomMqlTick arr[2];
arr[0]=my_tick1;
arr[1]=my_tick2;

La funzione ArrayPrint() è chiamata per un controllo per visualizzare la funzione arr[] valore array nel
journal.

//+------------------------------------------------------------------+
//| Funzione start programma Script |
//+------------------------------------------------------------------+
void OnStart()
{
// --- sviluppa la struttura simile al built-in MqlTick
struct CustomMqlTick
{
datetime time; // Ora di aggiornamento del prezzo Last
double bid; // Prezzo Bid corrente
double ask; // Prezzo Ask corrente
double last; // Prezzo corrente dell'ultimo trade (Last)
ulong volume; // Volume per il corrente prezzo Last
long time_msc; // Tempo di aggiornamento del prezzo Last in millisecondi
uint flags; // Tick flags
};
//--- ottiene l'ultimo valore tick

© 2000-2021, MetaQuotes Ltd


99 Le basi del linguaggio

MqlTick last_tick;
CustomMqlTick my_tick1,my_tick2;
//--- tentativo di copiare dati da MqlTick a CustomMqlTick
if(SymbolInfoTick(Symbol(),last_tick))
{
//--- la copia di strutture semplici non correlate è vietata
//1. my_tick1=last_tick; // il compilatore restituisce un errore qui

//--- il typecastin di strutture non correlate l'una all'altra, è vietato, pure


//2. my_tick1=(CustomMqlTick)last_tick;// il compilatore restituisce un errore qui

//--- quindi copia i membri della struttura uno per uno


my_tick1.time=last_tick.time;
my_tick1.bid=last_tick.bid;
my_tick1.ask=last_tick.ask;
my_tick1.volume=last_tick.volume;
my_tick1.time_msc=last_tick.time_msc;
my_tick1.flags=last_tick.flags;

//--- è consentito copiare gli oggetti dello stesso tipo di CustomMqlTick nel seguente modo
my_tick2=my_tick1;

//--- creare un array dagli oggetti della struttura semplice CustomMqlTick e scrivere valori
CustomMqlTick arr[2];
arr[0]=my_tick1;
arr[1]=my_tick2;
ArrayPrint(arr);
/ --- esempio di visualizzazione dei valori dell'array contenente gli oggetti del tipo CustomMqlTic
/*
[time] [bid] [ask] [last] [volume] [time_msc] [flags]
[0] 2017.05.29 15:04:37 1.11854 1.11863 +0.00000 1450000 1496070277157 2
[1] 2017.05.29 15:04:37 1.11854 1.11863 +0.00000 1450000 1496070277157 2
*/
}
else
Print("SymbolInfoTick() failed, error = ",GetLastError());
}

Il secondo esempio mostra le caratteristiche della copia di strutture semplici dalla discendenza.
S upponiamo di avere la struttura base A nimal, da cui derivano le strutture Cat e Dog. Possiamo

copiare gli oggetti Animal e Cat, cos ì come gli oggetti Animal e Dog, ma non possiamo copiare Cat e
Dog a vicenda, anche se entrambi sono discendenti della struttura A nimal.

//--- struttura per descrivere i cani


struct Dog: Animal
{
bool hunting; // razza da caccia
};
//--- struttura per descrivere i gatti

© 2000-2021, MetaQuotes Ltd


100 Le basi del linguaggio

struct Cat: Animal


{
bool home; // animale domestico
};
//--- creare oggetti di strutture figlio
Dog dog;
Cat cat;
//--- può essere copiato da antenato a discendente (Animal ==> Dog)
dog=some_animal;
dog.swim=true; // i cani possono nuotare
//--- non è possibile copiare oggetti di strutture figlie (Dog != Cat)
cat=dog; // il compilatore restituisce un errore

Codice completo di esempio:

//--- struttura di base per la descrizione degli animali


struct Animal
{
int head; // numero di teste
int legs; // numero di zampe
int wings; // numero di ali
bool tail; // coda
bool fly; // che vola
bool swim; // che nuota
bool run; // che corre
};
//--- struttura per descrivere i cani
struct Dog: Animal
{
bool hunting; // razza da caccia
};
//--- struttura per descrivere i gatti
struct Cat: Animal
{
bool home; // animale domestico
};
//+------------------------------------------------------------------+
//| Funzione start programma Script |
//+------------------------------------------------------------------+
void OnStart()
{
//--- crea e descrive un oggetto del tipo di base Animal
Animal some_animal;
some_animal.head=1;
some_animal.legs=4;
some_animal.wings=0;
some_animal.tail=true;
some_animal.fly=false;
some_animal.swim=false;

© 2000-2021, MetaQuotes Ltd


101 Le basi del linguaggio

some_animal.run=true;
//--- crea oggetti di tipo figlio
Dog dog;
Cat cat;
//--- può essere copiato da antenato a discendente (Animal ==> Dog)
dog=some_animal;
dog.swim=true; // i cani possono nuotare
//--- non è possibile copiare oggetti di strutture figlie (Dog != Cat)
//cat=dog; // il compilatore restituisce errore qui
//--- è pertanto possibile copiare gli elementi uno per uno, solamente
cat.head=dog.head;
cat.legs=dog.legs;
cat.wings=dog.wings;
cat.tail=dog.tail;
cat.fly=dog.fly;
cat.swim=false; // cats cannot swim
//--- è possibile copiare i valori dal discendente all'antenato
Animal elephant;
elephant=cat;
elephant.run=false;// gli elefanti non possono correre
elephant.swim=true;// gli elefanti possono nuotare
//--- crea un array
Animal animals[4];
animals[0]=some_animal;
animals[1]=dog;
animals[2]=cat;
animals[3]=elephant;
//--- stampare
ArrayPrint(animals);
//--- risultato dell' esecuzione
/*
[head] [legs] [wings] [tail] [fly] [swim] [run]
[0] 1 4 0 true false false true
[1] 1 4 0 true false true true
[2] 1 4 0 true false false false
[3] 1 4 0 true false true false
*/
}

Un altro modo per copiare i tipi semplici è l'utilizzo dell' unione. G li oggetti delle strutture dovrebbero
essere membri della stessa unione - vedere l'esempio in union.

L'accesso ai Membri Struttura


La struttura è un nuovo tipo di dati che consente di dichiarare variabili di questo tipo. La struttura può
essere dichiarata solo una volta all'interno di un progetto. I membri della struttura sono accessibili
usando l'operazione point(.).

Esempio:

© 2000-2021, MetaQuotes Ltd


102 Le basi del linguaggio

struct trade_settings
{
double take; // valori della fissazione dei prezzi profitto
double stop; // valore del prezzo di stop protettivo
uchar slippage; // valore dello scostamento accettabile
};
//--- creare ed inizializza una variabile di tipo trade_settings
trade_settings my_set={0.0,0.0,5};
if (input_TP>0) my_set.take=input_TP;

'pack' per allineare i campi struttura e classe


Lo speciale l'attributo pacck consente di impostare l'allineamento dei campi della struttura o della
classe.

pack([n])

dove n è uno dei seguenti valori: 1, 2, 4, 8 o 16. Potrebbe essere assente.

Esempio:
struct pack(sizeof(long)) MyStruct
{
// i membri della struttura devono essere allineati al limite di 8 byte
};
or
struct MyStruct pack(sizeof(long))
{
// i membri della struttura devono essere allineati al limite di 8 byte
};

pack (1)' è applicato di default per le strutture. Ciò significa che i membri della struttura si trovano
'

uno dopo l'altro in memoria e la dimensione della struttura è uguale alla somma della dimensione dei
membri.

Esempio:
//+------------------------------------------------------------------+
// | Funzione Start del programma di Script |
//+------------------------------------------------------------------+
void OnStart()
{
//--- struttura semplice senza allineamento
struct Simple_Structure
{
char c; // sizeof(char)=1
short s; // sizeof(short)=2
int i; // sizeof(int)=4
double d; // sizeof(double)=8
};
//--- dichiara una semplice istanza di struttura

© 2000-2021, MetaQuotes Ltd


103 Le basi del linguaggio

Simple_Structure s;
//--- mostra la dimensione di ogni membro della struttura
Print("sizeof(s.c)=",sizeof(s.c));
Print("sizeof(s.s)=",sizeof(s.s));
Print("sizeof(s.i)=",sizeof(s.i));
Print("sizeof(s.d)=",sizeof(s.d));
//--- assicurati che la dimensione della struttura POD sia uguale alla somma della dimensione dei s
Print("sizeof(simple_structure)=",sizeof(simple_structure));
/*
  Result:
sizeof(s.c)=1
sizeof(s.s)=2
sizeof(s.i)=4
sizeof(s.d)=8
sizeof(simple_structure)=15
*/
}

L 'allineamento dei campi della struttura può essere necessario quando si scambiano dati con librerie di
terze parti (*.DLL) in cui viene applicato tale allineamento.

Usiamo alcuni esempi per mostrare come funziona l'allineamento. A pplicheremo una struttura
composta da quattro membri senza allineamento.

//--- struttura semplice senza allineamento


struct Simple_Structure pack() // nessuna dimensione è specificata, l'allineamento al limite di
{
char c; // sizeof(char)=1
short s; // sizeof(short)=2
int i; // sizeof(int)=4
double d; // sizeof(double)=8
};
//--- dichiara una semplice istanza di struttura
Simple_Structure s;

I campi della struttura devono essere collocati in memoria uno dopo l'altro in base all'ordine di
dichiarazione e dimensione del tipo. La dimensione della struttura è 15, mentre un offset rispetto ai
campi della struttura negli array non è definito.

Ora dichiariamo la stessa struttura con l'allineamento di 4 byte ed eseguire il codice.

//+------------------------------------------------------------------+
// | Funzione Start del programma di Script |
//+------------------------------------------------------------------+
void OnStart()
{

© 2000-2021, MetaQuotes Ltd


104 Le basi del linguaggio

//--- struttura semplice con l'allineamento a 4 byte


struct Simple_Structure pack(4)
{
char c; // sizeof(char)=1
short s; // sizeof(short)=2
int i; // sizeof(int)=4
double d; // sizeof(double)=8
};
//--- dichiara una semplice istanza di struttura
Simple_Structure s;
//--- mostra la dimensione di ogni membro della struttura
Print("sizeof(s.c)=",sizeof(s.c));
Print("sizeof(s.s)=",sizeof(s.s));
Print("sizeof(s.i)=",sizeof(s.i));
Print("sizeof(s.d)=",sizeof(s.d));
//--- assicurati che la dimensione della struttura POD non sia ora uguale alla somma della dimensio
Print("sizeof(simple_structure)=",sizeof(simple_structure));
/*
  Result:
sizeof(s.c)=1
sizeof(s.s)=2
sizeof(s.i)=4
sizeof(s.d)=8
sizeof(simple_structure)=16 // la dimensione della struttura è cambiata
*/
}

La dimensione della struttura è cambiata in modo che tutti i membri di 4 byte e più abbiano un offset
dall'inizio della struttura multipla di 4 byte. I membri più piccoli devono essere allineati al loro limite di
dimensione (ad esempio, 2 per " short" ). Ecco come appare (il byte aggiunto è mostrato in grigio).

In questo caso, 1 byte viene aggiunto dopo il sc membro, in modo che il campo s.s (sizeof (short)==2)
ha il limite di 2 byte (allineamento per il tipo 'short').

Anche l'offset all'inizio della struttura nell'array è allineato al limite di 4 byte, ovvero gli indirizzi degli
elementi a [0], a[1] ed a[n] devono essere multipli di 4 byte per S imple_S tructure arr[].

Consideriamo altre due strutture costituite da tipi simili con un allineamento di 4 byte ma un ordine di
membro diverso. Nella prima struttura, i membri si trovano nell'ordine crescente della dimensione del
tipo.

//+------------------------------------------------------------------+
// | Funzione Start del programma di Script |
//+------------------------------------------------------------------+

© 2000-2021, MetaQuotes Ltd


105 Le basi del linguaggio

void OnStart()
{
//--- semplice struttura allineata al limite di 4 byte
struct CharShortInt pack(4)
{
char c; // sizeof(char)=1
short s; // sizeof(short)=2
int i; // sizeof(double)=4
};
//--- dichiara una semplice istanza di struttura
CharShortInt ch_sh_in;
//--- mostra la dimensione di ogni membro della struttura
Print("sizeof(ch_sh_in.c)=",sizeof(ch_sh_in.c));
Print("sizeof(ch_sh_in.s)=",sizeof(ch_sh_in.s));
Print("sizeof(ch_sh_in.i)=",sizeof(ch_sh_in.i));

//--- assicurati che la dimensione della struttura POD sia uguale alla somma della dimensione dei s
Print("sizeof(CharShortInt)=",sizeof(CharShortInt));
/*
  Result:
sizeof(ch_sh_in.c)=1
sizeof(ch_sh_in.s)=2
sizeof(ch_sh_in.i)=4
sizeof(CharShortInt)=8
*/
}

Come possiamo vedere, la dimensione della struttura è 8 e consiste dei due blocchi da 4 byte. Il primo
blocco contiene i campi con i tipi " char" e " short" , mentre il secondo contiene il campo con il tipo 'int'.

Ora trasformiamo la prima struttura nella seconda, che differisce solo nell'ordine dei campi, spostando
il membro di tipo 'short' alla fine.

//+------------------------------------------------------------------+
// | Funzione Start del programma di Script |
//+------------------------------------------------------------------+
void OnStart()
{
//--- semplice struttura allineata al limite di 4 byte
struct CharIntShort pack(4)
{
char c; // sizeof(char)=1
int i; // sizeof(double)=4
short s; // sizeof(short)=2
};
//--- dichiara una semplice istanza di struttura

© 2000-2021, MetaQuotes Ltd


106 Le basi del linguaggio

CharIntShort ch_in_sh;
//--- mostra la dimensione di ogni membro della struttura
Print("sizeof(ch_in_sh.c)=",sizeof(ch_in_sh.c));
Print("sizeof(ch_in_sh.i)=",sizeof(ch_in_sh.i));
Print("sizeof(ch_in_sh.s)=",sizeof(ch_in_sh.s));
//--- assicurati che la dimensione della struttura POD sia uguale alla somma della dimensione dei s
Print("sizeof(CharIntShort)=",sizeof(CharIntShort));
/*
  Result:
sizeof(ch_in_sh.c)=1
sizeof(ch_in_sh.i)=4
sizeof(ch_in_sh.s)=2
sizeof(CharIntShort)=12
*/
}

Sebbene il contenuto della struttura non sia cambiato, l'alterazione della sequenza dei membri ha
aumentato le sue dimensioni.

L 'allineamento dovrebbe anche essere considerato quando si eredita. Dimostriamolo usando la


semplice struttura Parent con un singolo membro di tipo 'char'. La dimensione della struttura senza
allineamento è 1.

struct Parent
{
char c; // sizeof(char)=1
};

Creiamo la classe figlia Children con il membro di tipo " short" (sizeof (short)=2).

struct Children pack(2) : Parent


{
short s; // sizeof(short)=2
};

D i conseguenza, quando si imposta l'allineamento su 2 byte, la dimensione della struttura è uguale a 4,


sebbene la dimensione dei suoi membri sia 3. In questo esempio, 2 byte devono essere allocati alla
classe Parent, in modo che l'accesso al campo " short" della classe figlia sia allineato a 2 byte.

La conoscenza di come viene allocata la memoria per i membri della struttura è necessaria se
un'applicazione MQL5 interagisce con i dati di terze parti scrivendo/leggendo sul livello dei file o degli
stream.

La directory MQL5\Include\W inAPI della Libreria standard contiene le funzioni per lavorare con le
funzioni W inAPI. Queste funzioni applicano le strutture con un allineamento specificato per i casi
quando è richiesto per lavorare con W inA PI .

© 2000-2021, MetaQuotes Ltd


107 Le basi del linguaggio

offsetof è un comando speciale direttamente correlato all'attributo pack . Ci consente di ottenere un


offset membro dall'inizio della struttura.

//--- dichiara la variabile di tipo Children


Children child;
//--- rileva gli offset dall'inizio della struttura
Print("offsetof(Children,c)=",offsetof(Children,c));
Print("offsetof(Children,s)=",offsetof(Children,s));
/*
  Result:
offsetof(Children,c)=0
  offsetof(Children,s)=2
*/

Modificatore 'final'
L 'uso del modificatore 'final' durante la dichiarazione struttura vieta ulteriori eredità da questa
struttura. S e una struttura non necessita di ulteriori modifiche, o le modifiche non sono ammesse per
motivi di sicurezza, dichiarare tale struttura con il modificatore 'final'. Inoltre, tutti i componenti della
struttura saranno implicitamente considerati definitivi.

struct settings final


{
//--- Corpo della struttura
};

struct trade_settings : public settings


{
//--- Corpo della struttura
};

Se si tenta di ereditare da una struttura con il modificatore 'final', come mostrato nell'esempio
precedente, il compilatore restituirà un errore:

non può ereditare da 'Impostazioni', siccome è stato dichiarato come 'final'


vedi dichiarazione di 'impostazioni'

Classi
Le classi differiscono dalle strutture in base a quanto riportato qui di seguito:

· la parola chiave class viene utilizzata nella dichiarazione;

· Per impostazione predefinita, tutti i membri della classe hanno lo specificatore di accesso private,
se non diversamente indicato. Data-membri della struttura hanno il tipo predefinito di accesso come
public, salvo diversa indicazione;
· oggetti della classe hanno sempre una tabella di funzioni virtuali, anche se non ci sono funzioni
virtuali dichiarate nella classe. Le strutture non possono avere funzioni virtuali;
· l'operatore new può essere applicato ad oggetti della classe, questo operatore non può essere
applicato a strutture;
· le classi possono essere ereditate solo dalle classi; le strutture possono essere ereditate solo dalle
strutture.

© 2000-2021, MetaQuotes Ltd


108 Le basi del linguaggio

Le classi e le strutture possono avere un costruttore e distruttore espliciti. S e il costruttore è definito


in modo esplicito, l'inizializzazione di una struttura o variabile della classe, utilizzando la sequenza di
inizializzazione, è impossibile.

Esempio:
struct trade_settings
{
double take; // valori della fissazione dei prezzi profitto
double stop; // valore del prezzo di stop protettivo
uchar slippage; // valore dello scostamento accettabile
//--- Costruttore
trade_settings() { take=0.0; stop=0.0; slippage=5; }
//--- Distruttore
~trade_settings() { Print("Questa è la fine"); }
};
//--- Il compilatore genera un messaggio di errore riferendo che l'inizializzazione è impossibile
trade_settings my_set={0.0,0.0,5};

Costruttori e distruttori
U n costruttore è una funzione speciale, che viene chiamata automaticamente quando si crea un
oggetto di una struttura o di una classe, e di solito è usato per inizializzare membri della classe.
I noltre parleremo solo di classi, mentre lo stesso vale per le strutture, se non diversamente indicato. I l

nome di un costruttore deve corrispondere al nome della classe. Il costruttore non ha alcun tipo di
ritorno (è possibile specificare il tipo void).

Imembri definiti della classe - stringhe, array dinamici ed oggetti che richiedono inizializzazioni -
verranno in ogni caso inizializzati, indipendentemente dal fatto che vi sia un costruttore.

Ogni classe può avere multipli costruttori, differendo per il numero di parametri e la lista di
inizializzazione. Un costruttore che richiede il fatto di specificare i parametri, viene chiamato un
costruttore parametrico.

Un costruttore senza parametri viene chiamato un costruttore di default. S e non vi sono costruttori
dichiarati in una classe, il compilatore crea un costruttore di default durante la compilazione.

//+--------------------------------------------------------------------------------+
//| La classe per lavorare con una data  |
//+--------------------------------------------------------------------------------+
class MyDateClass
{
private:
int m_year; // Anno
int m_month; // Mese
int m_day; // Giorno del mese
int m_hour; // Ore in un giorno
int m_minute; // Minuti
int m_second; // Secondi
public:
//--- Costruttore default

© 2000-2021, MetaQuotes Ltd


109 Le basi del linguaggio

MyDateClass(void);
//--- Costruttore parametrico
MyDateClass(int h,int m,int s);
};

Un costruttore può essere dichiarato nella descrizione della classe e poi il suo corpo può essere
definito. Ad esempio, due costruttori di M yDateClass possono essere definiti nel modo seguente:

//+--------------------------------------------------------------------------------+
//| Costruttore default |
//+--------------------------------------------------------------------------------+
MyDateClass::MyDateClass(void)
{
//---
MqlDateTime mdt;
datetime t=TimeCurrent(mdt);
m_year=mdt.year;
m_month=mdt.mon;
m_day=mdt.day;
m_hour=mdt.hour;
m_minute=mdt.min;
m_second=mdt.sec;
Print(__FUNCTION__);
}
//+--------------------------------------------------------------------------------+
//| Costruttore parametrico |
//+--------------------------------------------------------------------------------+
MyDateClass::MyDateClass(int h,int m,int s)
{
MqlDateTime mdt;
datetime t=TimeCurrent(mdt);
m_year=mdt.year;
m_month=mdt.mon;
m_day=mdt.day;
m_hour=h;
m_minute=m;
m_second=s;
Print(__FUNCTION__);
}

Nel costruttore di default, tutti i membri della classe vengono riempiti con la funzione T imeCurrent(),
nel costruttore parametrico solo i valori orari vengono compilati Altri membri della classe (m_year,
m_month e m_day) viene automaticamente inizializzati con la data corrente.

Il costruttore predefinito ha uno scopo speciale durante l'inizializzazione di un array di oggetti della sua
classe. Il costruttore, di cui tutti i parametri hanno valori predefiniti, non è un costruttore di default.
Ecco un esempio:

//+--------------------------------------------------------------------------------+

© 2000-2021, MetaQuotes Ltd


110 Le basi del linguaggio

//| La classe per il costruttore di default |


//+--------------------------------------------------------------------------------+
class CFoo
{
datetime m_call_time; // Ora della chiamata ultimo oggetto
public:
//--- Un costruttore con un parametro che ha un valore predefinito non è un costruttore di defau
CFoo(const datetime t=0){m_call_time=t;};
//--- Un costruttore di copia
CFoo(const CFoo &foo){m_call_time=foo.m_call_time;};

string ToString(){return(TimeToString(m_call_time,TIME_DATE|TIME_SECONDS));};
};
//+--------------------------------------------------------------------------------+
//| Funzione di avvio del programma Script |
//+--------------------------------------------------------------------------------+
voidOnStart()
{
// CFoo foo; // Questa variante non può essere utilizzata - un costruttore di default non è imposta
//--- Le possibili opzioni per creare l'oggetto CFoo
CFoo foo1(TimeCurrent()); // Una chiamata esplicita di un costruttore parametrico
CFoo foo2(); // Una chiamata esplicita di un costruttore parametrico con un par
CFoo foo3=D'2009.09.09'; // Una chiamata implicita di un costruttore parametrico
CFoo foo40(foo1); // Una chiamata esplicita di un costruttore di copia
CFoo foo41=foo1; // Una chiamata implicita di un costruttore di copia
CFoo foo5; // Una chiamata esplicita di un costruttore di default (se non c'è
// allora viene chiamato un costruttore parametrico con un valore
//--- Le opzioni possibili per ricevere puntatori CFoo
CFoo *pfoo6=new CFoo(); // Creazione dinamica di un oggetto e la ricezione di un puntatore
CFoo *pfoo7=new CFoo(TimeCurrent());// Un'altra opzione di creazione di oggetti dinamici
CFoo *pfoo8=GetPointer(foo1); // Ora pfoo8 punta all'oggetto foo1
CFoo *pfoo9=pfoo7; // pfoo9 e pfoo7 puntano all'unico e stesso oggetto
// CFoo foo_array[3]; // Questa opzione non può essere utilizzata - un costruttore di de
//--- Mostra il valore di m_call_time
Print("foo1.m_call_time=",foo1.ToString());
Print("foo2.m_call_time=",foo2.ToString());
Print("foo3.m_call_time=",foo3.ToString());
Print("foo4.m_call_time=",foo4.ToString());
Print("foo5.m_call_time=",foo5.ToString());
Print("pfoo6.m_call_time=",pfoo6.ToString());
Print("pfoo7.m_call_time=",pfoo7.ToString());
Print("pfoo8.m_call_time=",pfoo8.ToString());
Print("pfoo9.m_call_time=",pfoo9.ToString());
//--- Elimina array creati dinamicamente
delete pfoo6;
delete pfoo7;
//delete pfoo8; // Non è necessario eliminare pfoo8 in modo esplicito, in quanto indica l'ogget
//delete pfoo9; // Non è necessario eliminare pfoo9 esplicitamente. in quanto punta allo stesso
}

© 2000-2021, MetaQuotes Ltd


111 Le basi del linguaggio

S e si toglie il commento alle stringhe

  //CFoo foo_array[3]; // Questa variante non può essere utilizzata - un costruttore di default

  //CFoo foo_dyn_array[]; // Questa variante non può essere utilizzata - un costruttore di default

il compilatore restituisce un errore per loro " il costruttore di default non è definito" .

S e una classe ha un costruttore definito-dall'utente, il costruttore di default non viene generato dal
compilatore. Ciò significa che se un costruttore parametrico è dichiarato in una classe, ma un
costruttore di default non è dichiarato, non è possibile dichiarare gli array di oggetti di questa classe.
I l compilatore restituirà un errore per questo script:

//+--------------------------------------------------------------------------------+
//| Una classe senza un costruttore di default |
//+--------------------------------------------------------------------------------+
class CFoo
{
string m_name;
public:
CFoo(string name) { m_name=name;}
};
//+--------------------------------------------------------------------------------+
//| Funzione di avvio del programma Script |
//+--------------------------------------------------------------------------------+
voidOnStart()
{
//--- Ottiene durante la compilazione l'errore "il costruttore di default non è definito"
CFoo badFoo[5];
}

In questo esempio, la classe CFoo dispone di un costruttore parametrico dichiarato - in questi casi, il
compilatore non crea un costruttore di default automaticamente durante la compilazione. Allo stesso
tempo, quando si dichiara un array di oggetti, si presume che tutti gli oggetti debbano essere creati
ed inizializzati automaticamente. Durante l'auto-inizializzazione di un oggetto, è necessario chiamare
un costruttore di default, ma dal momento che il costruttore di default non è esplicitamente dichiarato
e non generato automaticamente dal compilatore, non è possibile creare un tale oggetto. Per questo
motivo, il compilatore genera un errore in fase di compilazione.

C'è una sintassi speciale per inizializzare un oggetto utilizzando un costruttore. Inizializzatori
Costruttore (costruzioni speciali per l'inizializzazione) per i membri di una struttura o classe, possono
essere specificato nella lista di inizializzazione.

Un elenco di inizializzazione è un elenco di inizializzatori separati da virgole, che arriva dopo i due
punti dopo la lista dei parametri di un costruttore e precede il corpo (va prima di una parentesi graffa
di apertura). Ci sono diversi requisiti:

· Elenchi di inizializzazione possono essere utilizzati solo nei costruttori;

· G enitore membri non possono essere inizializzati nella lista di inizializzazione;

© 2000-2021, MetaQuotes Ltd


112 Le basi del linguaggio

· L 'elenco di inizializzazione deve essere seguito da una definizione (implementazione) di una


funzione.

Ecco un esempio di diversi costruttori per inizializzare i membri della classe.

//+--------------------------------------------------------------------------------+
//| Una classe per memorizzare il nome di un personaggior |
//+--------------------------------------------------------------------------------+
class CPerson
{
string m_first_name; // Primo nome
string m_second_name; // Secondo nome
public:
//--- Un costruttore di default vuoto
CPerson() {Print(__FUNCTION__);};
//--- Un costruttore parametrico
CPerson(string full_name);
//--- Un costruttore con un elenco di inizializzazione
CPerson(string surname,string name): m_second_name(surname), m_first_name(name
void PrintName(){PrintFormat("Name=%s Surname=%s",m_first_name,m_second_name);};
};
//+--------------------------------------------------------------------------------+
//| |
//+--------------------------------------------------------------------------------+
CPerson::CPerson(string full_name)
{
int pos=StringFind(full_name," ");
if(pos>=0)
{
m_first_name=StringSubstr(full_name,0,pos);
m_second_name=StringSubstr(full_name,pos+1);
}
}
//+--------------------------------------------------------------------------------+
//| Funzione di avvio del programma Script |
//+--------------------------------------------------------------------------------+
voidOnStart()
{
//--- Riceve un errore "il costruttore di default non è definito"
CPerson people[5];
CPerson Tom="Tom Sawyer"; // Tom Sawyer
CPerson Huck("Huckleberry","Finn"); // Huckleberry Finn
CPerson *Pooh = new CPerson("Winnie","Pooh"); // Winnie the Pooh
//--- Valori in Output
Tom.PrintName();
Huck.PrintName();
Pooh.PrintName();

//--- Eliminazione di un oggetto creato in modo dinamico


delete Pooh;

© 2000-2021, MetaQuotes Ltd


113 Le basi del linguaggio

I n questo caso, la classe CPerson ha tre costruttori:

1 . Un esplicito costruttore di default, che permette di creare un array di oggetti di questa classe;
2 . Un costruttore con un parametro, che ottiene un nome completo come parametro e lo divide per il
nome e il secondo nome secondo lo spazio trovato;
3 . Un costruttore con due parametri che contiene un elenco di inizializzazione. Inizializzatori -
m_second_name(surname) e m_first_name(name).

Si noti che l'inizializzazione utilizzando una lista ha sostituito un' assegnazione. I singoli membri
devono essere inizializzati come:

 class_member (una lista di espressioni)

N ella lista di inizializzazione, i membri possono andare in qualsiasi ordine, ma tutti i membri della
classe verranno inizializzati secondo l'ordine del loro annuncio. Ciò significa che nel terzo costruttore,
prima il membro m_first_name verrà inizializzato, come è annunciato prima, e solo dopo che
m_second_name viene inizializzato. Ciò deve essere tenuto in considerazione nel caso in cui
l'inizializzazione di alcuni membri della classe dipendono dai valori di altri membri della classe.

Se un costruttore di default non viene dichiarato nella classe base, ed al tempo stesso vengono
dichiarati uno o più costruttori con parametri, si dovrebbe sempre chiamare uno dei costruttori della
classe base nella lista di inizializzazione. Passa attraverso la virgola come membri ordinari della lista e
verrà chiamato la prima volta durante l'inizializzazione dell'oggetto, non importa dove si trova
nell'elenco di inizializzazione.

//+--------------------------------------------------------------------------------+
//| Classe Base  |
//+--------------------------------------------------------------------------------+
class CFoo
{
string m_name;
public:
//--- Un costruttore con un elenco di inizializzazione
CFoo(string name) : m_name(name) { Print(m_name);}
};
//+--------------------------------------------------------------------------------+
//| Classe derivata da CFoo |
//+--------------------------------------------------------------------------------+
class CBar : CFoo
{
CFoo m_member; // Un membro della classe è un oggetto del genitore
public:
//--- Un costruttore di default nella lista di inizializzazione chiama il costruttore di un geni
CBar(): m_member(_Symbol), CFoo("CBAR") {Print(__FUNCTION__);}
};
//+--------------------------------------------------------------------------------+
//| Funzione di avvio del programma Script |
//+--------------------------------------------------------------------------------+
voidOnStart()

© 2000-2021, MetaQuotes Ltd


114 Le basi del linguaggio

{
CBar bar;
}

In questo esempio, quando si crea l'oggetto bar, verrà chiamato un costruttore di default CBar(), in cui
prima viene chiamato un un costruttore per la CFoo padre, e poi arriva un costruttore per il membro
della classe m_member.

U n distruttore è una funzione speciale che viene chiamata automaticamente quando un oggetto della
classe viene distrutto. Il nome del distruttore è scritto come il nome della classe con una tilde (~).
S tringhe, array dinamici ed oggetti, richiedenti la deinizializzazione, verranno de-inizializzati in ogni

caso, indipendentemente dalla presenza o assenza del distruttore. S e c'è un distruttore, queste azioni
verranno eseguite dopo aver chiamato il distruttore.

I distruttori sono sempre virtuali, indipendentemente dal fatto che siano dichiarati con la parola
chiave virtual o meno.

Definizione dei Metodi della Classe


I metodi-funzione della classe possono essere definiti sia all'interno della classe che all'esterno della
dichiarazione della classe. S e il metodo viene definito all'interno di una classe, allora il suo corpo viene
subito dopo la dichiarazione del metodo.

Esempio:
class CTetrisShape
{
protected:
int m_type;
int m_xpos;
int m_ypos;
int m_xsize;
int m_ysize;
int m_prev_turn;
int m_turn;
int m_right_border;
public:
void CTetrisShape();
void SetRightBorder(int border) { m_right_border=border; }
void SetYPos(int ypos) { m_ypos=ypos; }
void SetXPos(int xpos) { m_xpos=xpos; }
int GetYPos() { return(m_ypos); }
int GetXPos() { return(m_xpos); }
int GetYSize() { return(m_ysize); }
int GetXSize() { return(m_xsize); }
int GetType() { return(m_type); }
void Left() { m_xpos-=SHAPE_SIZE; }
void Right() { m_xpos+=SHAPE_SIZE; }
void Rotate() { m_prev_turn=m_turn; if(++m_turn>3) m_turn=0; }
virtual void Draw() { return; }
virtual bool CheckDown(int& pad_array[]);

© 2000-2021, MetaQuotes Ltd


115 Le basi del linguaggio

virtual bool CheckLeft(int& side_row[]);


virtual bool CheckRight(int& side_row[]);
};

Le funzioni da S etR ightBorder (confine int) per D raw() vengono dichiarate e definite direttamente
all'interno della classe CT etris S hape.

Il costruttore CT etris S hape() ed i metodi CheckDown(int& pad_array[]), Check Left(int& side_row[])


and CheckR ight(int& side_row[]) vengono solo dichiarati all'interno della classe, ma non ancora
definiti. Le definizioni di queste funzioni ci saranno ulteriormente, nel codice. Per definire il metodo
all'esterno della classe, viene utilizzato l' operatore di risoluzione ambito, il nome della classe viene
utilizzato come ambito.

Esempio:
//+--------------------------------------------------------------------------------+
//| Costruttore della classe base |
//+--------------------------------------------------------------------------------+
void CTetrisShape::CTetrisShape()
{
m_type=0;
m_ypos=0;
m_xpos=0;
m_xsize=SHAPE_SIZE;
m_ysize=SHAPE_SIZE;
m_prev_turn=0;
m_turn=0;
m_right_border=0;
}
//+--------------------------------------------------------------------------------+
//| Controlla l'abilità di spostarsi giù (per il "lungo" ed il cubo) |
//+--------------------------------------------------------------------------------+
bool CTetrisShape::CheckDown(int& pad_array[])
{
int i,xsize=m_xsize/SHAPE_SIZE;
//---
for(i=0; i<xsize; i++)
{
if(m_ypos+m_ysize>=pad_array[i]) return(false);
}
//---
return(true);
}

Modificatori di accesso Public, Protected e Private


Nello sviluppo di una nuova classe, si consiglia di limitare l'accesso ai membri dall'esterno. Per questo
scopo vengono utilizzate le parole chiave private oprotected. In questo caso, i dati nascosti possono
essere acceduti solo dai metodi-funzione della stessa classe. S e viene utilizzata la parola chiave

© 2000-2021, MetaQuotes Ltd


116 Le basi del linguaggio

protected, i dati nascosti possono essere acceduti anche dai metodi delle classi - eredi di questa
classe. Lo stesso metodo può essere utilizzato per limitare l'accesso ai metodi-funzione di una classe.

Se è necessario aprire completamente l'accesso ai membri e/o metodi di una classe, utilizzare la
parola chiave public.

Esempio:
class CTetrisField
{
private:
int m_score; // Punteggio
int m_ypos; // Posizione corrente delle figure
int m_field[FIELD_HEIGHT][FIELD_WIDTH]; // Matrice del pozzo
int m_rows[FIELD_HEIGHT]; // Numerazione delle righe del pozzo
int m_last_row; // Ultime righe libere
CTetrisShape *m_shape; // Figura Tetris
bool m_bover; // Game over
public:
void CTetrisField() { m_shape=NULL; m_bover=false; }
void Init();
void Deinit();
void Down();
void Left();
void Right();
void Rotate();
void Drop();
private:
void NewShape();
void CheckAndDeleteRows();
void LabelOver();
};

I membri della classe e metodi dichiarati dopo l'identificatore public: (e prima dello specificatore di
accesso successivo) sono disponibili in qualsiasi riferimento all'oggetto classe dal programma. In
questo esempio questi sono i seguenti membri : funzioni C T etris Field(), I nit(), Deinit(), Down(), Left(),

R ight(), R otate() and Drop().

Imembri che vengono dichiarati dopo lo specificatore di accesso agli elementi private: (e prima dello
specificatore di accesso successivo) sono disponibili solo per i membri funzioni di questa classe. Gli
secificatori di accesso agli elementi finiscono sempre con i due punti (:) e possono comparire nella
definizione della classe molte volte.

Qualsiasi membro della classe dichiarato dopo l' identificatore di accesso protected:(e fino al
successivo identificatore di accesso) sono disponibili solo per le funzioni-membro di questa classe e
per le funzioni-membro delle classi discendenti. Quando si tenta di fare riferimento ai membri che
presentano gli specificatori private e protected dall'esterno, otteniamo l'errore della fase di
compilazione. Esempio:

class A
{

© 2000-2021, MetaQuotes Ltd


117 Le basi del linguaggio

protected:
// --- l'operatore copy è disponibile solo all'interno della classe A e suoi discendenti
void operator=(const A &)
{
}
};
class B
{
//--- oggetto della classe A dichiarato
A a;
};
//+------------------------------------------------------------------+
//| Funzione di avvio del programma di script |
//+------------------------------------------------------------------+
void OnStart()
{
//--- dichiara due variabili di tipo B.
B b1, b2;
//--- tenta di copiare un oggetto in un altro
b2=b1;
}

D urante la compilazione del codice, viene visualizzato il messaggio di errore - tentativo di chiamare
l'operatore copy remoto:

attempting to reference deleted function 'void B::operator=(const B&)' trash3.mq5 32 6

La seconda stringa di seguito fornisce una descrizione più dettagliata — l'operatore copy nella classe B
è stato eliminato esplicitamente, poiché viene chiamato l'operatore copy non disponibile della classe A:

function 'void B::operator=(const B&)' was implicitly deleted because it invokes inaccessible fu

L 'accesso ai membri della classe base può essere ridefinito duranteeredità nelle classi derivate.

'delete' specifier
L ' identificatore delete contrassegna le funzioni dei membri della classe che non possono essere
utilizzate. Ciò significa che se il programma fa riferimento a tale funzione in modo esplicito o
implicito, l'errore viene già ricevuto in fase di compilazione. Ad esempio, questo identificatore
consente di rendere i metodi parent non disponibili in una classe child. Lo stesso risultato può essere
ottenuto se dichiariamo la funzione nell'area privata della classe genitrice (dichiarazioni nella sezione
private). Qui, usare delete rende il codice più leggibile e gestibile a livello di discendenti.

class A
{
public:
A(void) {value=5;};
double GetValue(void) {return(value);}
private:
double value;
};

© 2000-2021, MetaQuotes Ltd


118 Le basi del linguaggio

class B: public A
{
double GetValue(void)=delete;
};
//+------------------------------------------------------------------+
//| Funzione di avvio del programma di script |
//+------------------------------------------------------------------+
void OnStart()
{
//--- dichiara la variabile di tipo A.
A a;
Print("a.GetValue()=", a.GetValue());
//--- tenta di ottenere valore dalla variabile di tipo B.
B b;
Print("b.GetValue()=", b.GetValue()); // il compilatore mostra un errore in questa stringa
}

I l messaggio del compilatore:

attempting to reference deleted function 'double B::GetValue()'


function 'double B::GetValue()' was explicitly deleted here

Lo specificatore 'delete' consente di disabilitare il casting automatico o il costruttore copy, che


altrimenti dovrebbe essere nascosto nella sezione private anche. Esempio:

class A
{
public:
void SetValue(double v) {value=v;}
//--- disabilita la chiamata di tipo int
void SetValue(int) = delete;
//--- disabilita l'operatore copy
void operator=(const A&) = delete;
private:
double value;
};
//+------------------------------------------------------------------+
//| Funzione di avvio del programma di script |
//+------------------------------------------------------------------+
void OnStart()
{
//--- dichiara due variabili di tipo A.
A a1, a2;
a1.SetValue(3); // errore!
a1.SetValue(3.14); // OK
a2=a1; // errore!
}

D urante la compilazione, riceviamo i messaggi di errore:

tentativodiriferimento ad una funzione 'void cancellataUna::funzione SetValue(int)'

© 2000-2021, MetaQuotes Ltd


119 Le basi del linguaggio

'void A::SetValue(int)' was explicitly deleted here


attempting to reference deleted function 'void A::operator=(const A&)'
function 'void A::operator=(const A&)' was explicitly deleted here

Modificatore 'final'
L 'uso del modificatore 'final' durante la dichiarazione della classe vieta ulteriori eredità da questa
classe. S e l'interfaccia della classe non richiede ulteriori modifiche, o le modifiche non sono ammesse
per motivi di sicurezza, dichiarare questa classe con il modificatore 'final'. Inoltre, tutti i membri della
classe saranno implicitamente considerati definitivi.

class CFoo final


{
//--- Corpo della classe
};

class CBar : public CFoo


{
//--- Corpo della classe
};

Se si tenta di ereditare da una classe con il modificatore 'final', come mostrato nell'esempio
precedente, il compilatore restituirà un errore:

non si può ereditare da 'CFoo' siccome è stato dichiarato come 'final'


vedi dichiarazione di 'CFoo'

Unioni (union)
Union è un tipo di dati speciale costituito da diverse variabili che condividono la stessa area di
memoria. Pertanto, l'unione fornisce la capacità di interpretare la stessa sequenza di bit in due (o più)
modi diversi. La dichiarazione dell'unione è simile alla dichiarazione della struttura ed inizia con la
parola chiave union.

union LongDouble
{
long long_value;
double double_value;
};

A differenza della struttura, i vari membri sindacali appartengono alla stessa area di memoria. In
questo esempio, l'unione di Long Double è dichiarata con valori di tipo long e double che condividono la
stessa area di memoria. S i prega di notare che è impossibile fare in modo che union memorizzi (a
differenza di una struttura) simultaneamente valori integer long e valori real double , poiché le
variabili long _value e double_value si sovrappongono (in memoria). D'altro canto, un programma MQL5
è in grado di elaborare in qualsiasi momento i dati contenenti nell'unione un valore intero(long) o
reale(double). Pertanto, l'unione consente di ricevere due (o più) opzioni per rappresentare la stessa
sequenza di dati.

Durante la dichiarazione dell' unione, il compilatore assegna automaticamente l'area di memoria


sufficiente per memorizzare il tipo più grande (per volume) nella variabile union. La stessa sintassi
viene utilizzata per accedere all'elemento union come per le strutture – operatore point.

union LongDouble

© 2000-2021, MetaQuotes Ltd


120 Le basi del linguaggio

{
long long_value;
double double_value;
};
//+------------------------------------------------------------------+
//| Funzione start programma Script |
//+------------------------------------------------------------------+
void OnStart()
{
//---
LongDouble lb;
//--- ottiene e visualizza il numero -nan(ind) non valido
lb.double_value=MathArcsin(2.0);
printf("1. double=%f integer=%I64X",lb.double_value,lb.long_value);
//--- il più ampio valore normalizzato (DBL_MAX)
lb.long_value=0x7FEFFFFFFFFFFFFF;
printf("2. double=%.16e integer=%I64X",lb.double_value,lb.long_value);
//--- il più piccolo positivo normalizzato (DBL_MIN)
lb.long_value=0x0010000000000000;
printf("3. double=%.16e integer=%.16I64X",lb.double_value,lb.long_value);
}
/* Risultato dell'esecuzione
1. double=-nan(ind) integer=FFF8000000000000
2. double=1.7976931348623157e+308 integer=7FEFFFFFFFFFFFFF
3. double=2.2250738585072014e-308 integer=0010000000000000
*/

Poiché le unioni consentono al programma di interpretare gli stessi dati di memoria in modi diversi,
esse vengono spesso utilizzate quando un' inusuale conversione di tipo è richiesta.

Le unioni non possono essere coinvolte nella eredità(inheritance), e loro anche non possono avere
membri statici a causa della loro stessa natura. In tutti gli altri aspetti, l' unione si comporta come una
struttura con tutti i suoi membri con un offset di zero. I seguenti tipi non possono essere i membri
dell'unione:

· dynamic arrays

· strings

· puntatori ad oggetti e funzioni

· oggetti della classe

· oggetti di struttura con costruttori o distruttori

· oggetti di struttura aventi membri dai punti 1-5

Simillmente alle classi, l'unione è in grado di avere costruttori e distruttori, cos ì come metodi. Per
default, i membri dell'unione sono di tipo di accesso public. Per creare elementi privati, utilizzare la
parola chiave private. T utte queste possibilità sono visualizzate nell'esempio che illustra come
convertire un colore del tipo color in ARGB come fa la funzione ColorT oARGB().

//+------------------------------------------------------------------+
//| Unione per la conversione in colori (BGR) in ARGB |
//+------------------------------------------------------------------+

© 2000-2021, MetaQuotes Ltd


121 Le basi del linguaggio

union ARGB
{
uchar argb[4];
color clr;
//--- costruttori
ARGB(color col,uchar a=0){Color(col,a);};
~ARGB(){};
//--- metodi pubblici
public:
uchar Alpha(){return(argb[3]);};
void Alpha(const uchar alpha){argb[3]=alpha;};
color Color(){ return(color(clr));};
//--- metodi privati
private:
//+------------------------------------------------------------------+
//| imposta il valore del canale alpha ed il colore |
//+------------------------------------------------------------------+
void Color(color col,uchar alpha)
{
//--- imposta il colore al membro clr
clr=col;
//--- imposta il valore del componente Alpha - livello d'opacità
argb[3]=alpha;
//--- scambia i bite dei componenti R e B (Red e Blue)
uchar t=argb[0];argb[0]=argb[2];argb[2]=t;
};
};
//+------------------------------------------------------------------+
//| Funzione start programma Script |
//+------------------------------------------------------------------+
void OnStart()
{
//--- 0x55 significa 55/255=21.6 % (0% - completamente trasparente)
uchar alpha=0x55;
//--- il tipo di colore è rappresentato come 0x00BBGGRR
color test_color=clrDarkOrange;
//--- qui vengono accettati i valori di byte provenienti dall'unione ARGB
uchar argb[];
PrintFormat("0x%.8X - qui è come il tipo 'color' appare per %s, BGR=(%s)",
test_color,ColorToString(test_color,true),ColorToString(test_color));
//--- Il tipo ARGB è rappresentato da 0x00RRGGBB, RR e BB vengono scambiati
ARGB argb_color(test_color);
//--- copia l'array di byte
ArrayCopy(argb,argb_color.argb);
//--- ecco come appare nella rappresentazione ARGB
PrintFormat("0x%.8X - rappresentazione ARGB con il canale alpha=0x%.2x, ARGB=(%d,%d,%d,%d)",
argb_color.clr,argb_color.Alpha(),argb[3],argb[2],argb[1],argb[0]);
//--- aggiungi livello opacità
argb_color.Alpha(alpha);

© 2000-2021, MetaQuotes Ltd


122 Le basi del linguaggio

//--- prova a definire ARGB come tipo 'color'


Print("ARGB как color=(",argb_color.clr,") alpha channel=",argb_color.Alpha());
//--- copia l'array di byte
ArrayCopy(argb,argb_color.argb);
//--- ecco come appare nella rappresentazione ARGB
PrintFormat("0x%.8X - rappresentazione ARGB con il canale alpha=0x%.2x, ARGB=(%d,%d,%d,%d)",
argb_color.clr,argb_color.Alpha(),argb[3],argb[2],argb[1],argb[0]);
//--- controlla i risultati della funzione ColorToARGB()
PrintFormat("0x%.8X - risultato di ColorToARGB(%s,0x%.2x)",ColorToARGB(test_color,alpha),
ColorToString(test_color,true),alpha);
}
/* Risultato dell'esecuzione
0x00008CFF - qui è come il tipo color appare per clrDarkOrange, BGR=(255,140,0)
  0x00FF8C00 - rappresentazione ARGB con il canale alpha=0x00, ARGB=(0,255,140,0)
ARGB as color=(0,140,255) alpha channel=85
  0x55FF8C00 - rappresentazione ARGB con il canale alfa = 0x55, ARGB = (85,255,140,0)
0x55FF8C00 - result of ColorToARGB(clrDarkOrange,0x55)
*/

Interfacce
n interfaccia consente la determinazione di specifiche funzionalità, che una classe può quindi
U '

implementare. Infatti, un'interfaccia è una classe che non può contenere membri, e non può avere un
costruttore e/o un distruttore. T utti i metodi dichiarati in una interfaccia sono puramente virtuali,
anche in assenza di una definizione esplicita.

n interfaccia è definita utilizzando la parola chiave " interfaccia" . Esempio:


U '

//--- Interfaccia base per descrivere animali


interface IAnimal
{
//--- I metodi dell'interfaccia hanno accesso pubblico per default
void Sound(); // Il suono prodotto dall'animale
};
//+------------------------------------------------------------------+
//| The classe CCat è ededitata dalla classe IAnimal interface |
//+------------------------------------------------------------------+
class CCat : public IAnimal
{
public:
CCat() { Print("Il gatto è nato"); }
~CCat() { Print("Il gatto è morto"); }
//--- Implementare il metodo Sound di IAnimal interface
void Sound(){ Print("meou"); }
};
//+------------------------------------------------------------------+
//| La classe CDog è ereditata dalla classe IAnimal interface |
//+------------------------------------------------------------------+
class CDog : public IAnimal

© 2000-2021, MetaQuotes Ltd


123 Le basi del linguaggio

{
public:
CDog() { Print("Il cane è nato"); }
~CDog() { Print("Il cane è morto"); }
//--- Implementare il metodo Sound di IAnimal interface
void Sound(){ Print("guaf"); }
};
//+------------------------------------------------------------------+
//| Programma Script funzione start |
//+------------------------------------------------------------------+
void OnStart()
{
//--- Un array di puntatori a oggetti del tipo IAnimal
IAnimal *animals[2];
//--- La creazione di classi figlio di IAnimal e risparmio di puntatori a loro, in un array
animals[0]=new CCat;
animals[1]=new CDog;
//--- Chiamata al metodo Suono() dell'interfaccia base IAnimal per ogni bambino
for(int i=0;i<ArraySize(animals);++i)
animals[i].Sound();
//--- Eliminazione oggetti
for(int i=0;i<ArraySize(animals);++i)
delete animals[i];
//--- Risultato dell'esecuzione
/*
  Il gatto è nato
  Il cane è nato
meou
guaf
  Il gatto è morto
  Il cane è morto
*/
}

Come le classi astratte, un oggetto interfaccia non può essere creato senza eredità. Un'interfaccia può
essere ereditata solo dalle altre interfacce e può essere un genitore per una classe. Un interfaccia è
sempre con visibilità pubblica.

n interfaccia non può essere dichiarata all'interno di una dichiarazione della classe o di una struttura,
U '

ma un puntatore per l'interfaccia può essere salvato in una variabile di tipo void *. In generale, un
puntatore ad un oggetto di qualsiasi classe può essere salvato in una variabile di tipo void *. Per
convertire un puntatore void * a un puntatore ad un oggetto di una classe particolare, utilizzare
l'operatore dynamic_cast. S e la conversione non è possibile, il risultato dell'operazione dynamic_cast
sarà NULL.

Vedi anche
Programmazione Ad Oggetti (OOP Object-Oriented-Programming)

© 2000-2021, MetaQuotes Ltd


124 Le basi del linguaggio

Oggetto Array Dinamico


Array dinamici
Massimo array a 4-dimensioni possono essere dichiarati. Quando si dichiara un array dinamico (un
array di valore non specificato nella prima coppia di parentesi quadre), il compilatore crea
automaticamente una variabile della struttura di cui sopra (un oggetto array dinamico) e fornisce un
codice per la corretta inizializzazione.

Array dinamici vengono automaticamente liberati quando si va oltre l'area visibilità del blocco in cui
sono dichiarati

Esempio:
double matrix[][10][20]; // array dinamico tri-dimensionale
ArrayResize(matrix,5); // Imposta la grandezza della prima dimensione

Array statici
Quando tutte le significative dimensioni dell'array sono specificate in modo esplicito, il compilatore
pre-alloca la dimensione necessaria della memoria. Un tale array è chiamato statico. T uttavia, il
compilatore alloca memoria aggiuntiva per l'oggetto di un array dinamico, il cui (oggetto) è associato
al buffer statico pre-assegnato (parte della memoria per memorizzare l'array).

La creazione di un oggetto array dinamico è dovuta alla possibile necessità di passare questo array
statico come parametro per qualche funzione.

Esempi:
double stat_array[5]; // array statico uni-dimensionale
some_function(stat_array);
...
bool some_function(double& array[])
{
if(ArrayResize(array,100)<0) return(false);
...
return(true);
}

Array in Strutture
Quando un array statico è dichiarato come un membro di una struttura, un oggetto array dinamico non
viene creato. Questo viene fatto per garantire la compatibilità delle strutture di dati utilizzati per la
A PI di W indows.

Tuttavia, gli array statici che vengono dichiarati come membri delle strutture, possono anche essere
passati funzioni-MQL5. In questo caso, quando si passa il parametro di un oggetto temporaneo di un
array dinamico, collegato con l'array statico - verrà creato il membro della struttura.

Vedi anche
F unzioni di Array, Inizializzazione delle Variabili, Visibilità Ambito di Applicazione e Durata delle
V ariabili, Creazione ed Eliminazione di Oggetti

© 2000-2021, MetaQuotes Ltd


125 Le basi del linguaggio

Typecasting
Casting di Tipi Numerici
Spesso si verifica la necessità di convertire un tipo numerico in un altro. N on tutti i tipi numerici
possono essere convertiti in altri. Ecco lo schema di casting consentito:

Le linee continue con le frecce indicano le modifiche che vengono eseguite quasi senza alcuna perdita
di informazioni. Al posto del tipo char, può essere usato il tipo bool (entrambi prendono 1 byte di
memoria), al posto del tipo int, può essere utilizzato il tipo color (4 byte), al posto del tipo long, può
essere utilizzato il tipo datetime (prende 8 byte). Le quattro linee tratteggiate grigie, anch'esse a
freccia, denotano conversioni, quando la perdita di precisione può verificarsi. Ad esempio, il numero
di cifre nel numero intero pari a 123456789 (int) è superiore al numero di cifre che possono essere
rappresentate da un float.

int n=123456789;
float f=n; // il contenuto di f è uguale a 1.234567892E8
Print("n = ",n," f = ",f);
// risulta n= 123456789 f= 123456792.00000

Un numero convertito in float ha lo stesso ordine, ma è meno accurato. Le conversioni, inversamente


alle frecce nere, possono essere eseguite con eventuale perdita di dati. Conversioni tra char ed uchar,
short ed ushort, int ed uint, long ed ulong (conversioni da entrambe le parti), possono portare alla
perdita di dati.

Come risultato di conversione di valori in virgola mobile verso il tipo intero, la parte frazionaria viene
sempre eliminata. S e si desidera arrotondare un float al numero intero più vicino (che in molti casi è
più utile), è necessario utilizzare MathR ound ().

Esempio:
// --- Accelerazione gravitazionale
double g=9.8;
double round_g=(int)g;
double math_round_g=MathRound(g);
Print("round_g = ",round_g);
Print("math_round_g = ",math_round_g);
/*
  Risultato:
round_g = 9
math_round_g = 10

© 2000-2021, MetaQuotes Ltd


126 Le basi del linguaggio

*/

S e due valori vengono combinati da un operatore binario, prima dell'esecuzione dell'operazione


l'operando di tipo inferiore viene convertito nel tipo superiore secondo la priorità data nel seguente
schema:

I tipi di dati char, uchar, short, ed ushort incondizionatamente vengono convertiti nel tipo int.

Esempi:
char c1=3;
//--- Primo esempio
double d2=c1/2+0.3;
Print("c1/2 + 0.3 = ",d2);
// Risultato: c1/2+0.3 = 1.3

//--- Secondo esempio


d2=c1/2.0+0.3;
Print("c1/2.0 + 0.3 = ",d2);
// Risultato: c1/2.0+0.3 = 1.8

L 'espressione calcolata si compone di due operazioni. Nel primo esempio, la variabile c1 del tipo char
viene convertita in una variabile temporanea di tipo int, perché il secondo operando nell'operazione di
divisione, la costante 2, è del tipo superiore int. Come risultato della divisione intera 3/2 si ottiene il
valore 1, che è di tipo int.

Nella seconda operazione del primo esempio, il secondo operando è la costante 0.3, che è di tipo
double, quindi il risultato della prima operazione viene convertito in una variabile temporanea di tipo
double con il valore di 1.0 .

Nel secondo esempio la variabile di tipo char c1 viene convertita in una variabile temporanea di tipo
double, perché il secondo operando nell'operazione di divisione, la costante 2.0, è di tipo double; non
vengono effettuate altre conversioni.

Typecasting di Tipi Numerici


Nelle espressioni del linguaggio MQL5 entrambi il typecasting esplicito ed implicito, può essere
utilizzato. Il typecasting esplicito è scritto come segue:

var_1 = (tipo)var_2;

Un risultato di un'espressione o di esecuzione di una funzione può essere utilizzato come variabile
var_2. La registrazione funzionale del typecasting esplicito è anche possibile:

var_1 = tipo(var_2);

Consideriamo un typecasting esplicito sulla base del primo esempio.

© 2000-2021, MetaQuotes Ltd


127 Le basi del linguaggio

//--- Terzo esempio


double d2=(double)c1/2+0.3;
Print("(double)c1/2 + 0.3 = ",d2);
// Risultato: (double)c1/2+0.3 = 1.80000000

Prima che l'operazione di divisione venga eseguita, la variabile c1 è esplicitamente 'castata'(_*


neologismo, da cast/casting) al tipo double. Ora il numero costante integer 2 è castato al valore 2.0
valore di tipo double, perché come risultato della conversione del primo operando ha preso il tipo
double. Infatti, il typecasting esplicito è un'operazione unaria.

Inoltre, quando si cerca di castare i tipi, il risultato può andare oltre il range permissibile. In questo
caso, avviene un troncamento. Ad esempio:

char c;
uchar u;
c=400;
u=400;
Print("c = ",c); // Risultato c=-112
Print("u = ",u); // Risultato u=144

Prima che le operazioni (ad eccezione di quelle assegnazione) vengano eseguite, i dati vengono
convertiti nel tipo massima priorità. Prima che vengano eseguite le operazioni di assegnazione, i dati
vengono castati nel tipo target(_*di destinazione).

Esempi:
int i=1/2; // nessun casting del tipo, il risultato è 0
Print("i = 1/2 ",i);

int k=1/2.0; // l'espressione viene castata al tipo double,


Print("k = 1/2 ",k); // quindi al tipo int, ed il risultato è 0

double d=1.0/2.0; // nessun casting del tipo, il risultato è 0.5


Print("d = 1/2.0; ",d);

double e=1/2.0; // l'espressione è castata al tipo double,


Print("e = 1/2.0; ",e);// che è lo stesso del tipo target, il risultato è 0.5

double x=1/2; // l'espressione di tipo int viene castata al target di tipo double,
Print("x = 1/2; ",x); // il risultato è 0.0

Durante la conversione di tipo long /ulong in double, la precisione può venir persa nel caso in cui il
valore integer sia maggiore di 9223372036854774784 o minore di -9223372036854774784.

voidOnStart()
{
long l_max=LONG_MAX;
long l_min=LONG_MIN+1;
//--- definisce il valore integer più alto, che non perde precisione quando viene castato in double
while(l_max!=long((double)l_max))
l_max--;
//--- definisce il valore integer più basso, che non perde precisione quando viene castato a double

© 2000-2021, MetaQuotes Ltd


128 Le basi del linguaggio

while(l_min!=long((double)l_min))
l_min++;
//--- deriva l'intervallo trovato per valori interi
PrintFormat("Quando si casta un valore integer a double, dev'essere"
"all'interno dell'intervallo [%I64d, %I64d] ",l_min,l_max);
//--- ora, vediamo cosa succede se il valore cade al di fuori di questo intervallo
PrintFormat("l_max+1=%I64d, double(l_max+1)=%.f, ulong(double(l_max+1))=%I64d",
l_max+1,double(l_max+1),long(double(l_max+1)));
PrintFormat("l_min-1=%I64d, double(l_min-1)=%.f, ulong(double(l_min-1))=%I64d",
l_min-1,double(l_min-1),long(double(l_min-1)));
//--- visualizza il seguente risultato
// Il casting di un valore integer a double, dovrebbe essere entro l'intervallo [-92233720368547747
// l_max+1=9223372036854774785, double(l_max+1)=9223372036854774800, ulong(double(l_max+1))=9223372
// l_min-1=-9223372036854774785, double(l_min-1)=-9223372036854774800, ulong(double(l_min-1))=-9223
}

Typecasting per il tipo String


Il tipo stringa ha la priorità più alta tra i tipi semplici. Pertanto, se uno degli operandi di un'operazione
è di tipo stringa, il secondo operando sarà castato in una stringa automaticamente. S i noti che per una
stringa, è possibile una singola operazione di addizione diadica a doppio-luogo. Il casting esplicito di
stringa in un qualsiasi tipo numerico, è consentito.

Esempi:
string s1=1.0/8; // l'espressione viene castata al tipo double,
Print("s1 = 1.0/8; ",s1); // quindi nel tipo target stringa,
// il risultato è "0.12500000" (una stringa contenente 10 caratteri)

string s2=NULL; // deinizializzazione stringa


Print("s2 = NULL; ",s2); // il risultato è una stringa vuota
string s3="Ticket N"+12345; // l'espressione viene castata al tipo stringa
Print("s3 = \"Ticket N\"+12345",s3);

string str1="true";
string str2="0,255,0";
string str3="2009.06.01";
string str4="1.2345e2";
Print(bool(str1));
Print(color(str2));
Print(datetime(str3));
Print(double(str4));

Typecasting di Puntatori di Classe Base a Puntatori di Classi Derivate

© 2000-2021, MetaQuotes Ltd


129 Le basi del linguaggio

Oggetti di classi aperte generate possono anche essere visti come oggetti della classe base
corrispondente. Questo porta ad alcune conseguenze interessanti. Per esempio, nonostante il fatto che
gli oggetti di diverse classi, generati da una singola classe di base, possono differire
significativamente l'uno dall'altro, possiamo creare una lista collegata (List) di essi, giacchè li vediamo
come oggetti del tipo di base. Ma il contrario non è vero: gli oggetti della classe base non sono
automaticamente gli oggetti di una classe derivata.

È possibile utilizzare il casting esplicito per convertire i puntatori della classe base in puntatori di una
classe derivata. Ma si deve essere pienamente fiduciosi nella ammissibilità di tale trasformazione,
perché altrimenti un errore runtime critico si verificherà e il programma MQL5 sarà interrotto.

Dynamic typecasting using dynamic_cast operator


Dy namic typecasting is performed using dynamic_cast operator that can be applied only to pointers to
classes. Type validation is performed at runtime. T his means that the compiler does not check the
data type applied for typecasting when dynamic_cast operator is used. If a pointer is converted to a
data type which is not the actual type of an object, the result is NULL.

dynamic_cast <type-id> ( expression )

The type-id parameter in angle brack ets should point to a previously defined class type. U nlik e C++,
expression operand type can be of any value ex cept for void.

Example:
class CBar { };
class CFoo : public CBar { };

void OnStart()
{
CBar bar;
//--- dynamic casting of *bar pointer type to *foo pointer is allowed
CFoo *foo = dynamic_cast<CFoo *>(&bar); // no critical error
Print(foo); // foo=NULL
//--- an attempt to explicitly cast a Bar type object reference to a Foo type object is forbidden
foo=(CFoo *)&bar; // critical runtime error
Print(foo); // this string is not executed
}

Vedi anche
T ipi di Dati

© 2000-2021, MetaQuotes Ltd


130 Le basi del linguaggio

Tipo Void e Costante NULL


S intatticamente il tipo void è un tipo fondamentale insieme ai tipi char, uchar, bool, short, ushort,
int, uint, color, long, ulong, datetime, float, double e string. Questo tipo è utilizzato per indicare che
la funzione non restituisce alcun valore, o come parametro di funzione che indica l'assenza di
parametri.

La variabile costante predefinita NULL è di tipo void. Può essere assegnato a variabili di altri tipi
fondamentali senza conversione. Il confronto tra variabili di tipo fondamentale con il valore NULL è
consentito.

Esempio:
//--- Se la stringa non viene inizializzata, allora assegniamo il nostro valore predefinito ad essa
if(some_string==NULL) some_string="empty";

A nche, NULL, può essere paragonato a puntatori a oggetti creati con l'operatore new.

Vedi anche
V ariabili, Funzioni

© 2000-2021, MetaQuotes Ltd


131 Le basi del linguaggio

I tipi definiti dall'utente


La parola chiave typedef in C++ permette di creare tipi di dati definiti dall'utente. Per farlo, è
sufficiente specificare un nuovo nome di tipo di dati per un tipo di dati già esistenti. Il nuovo tipo di
dati non viene creato. Un nuovo nome per il tipo esistente viene definito, invece. I tipi definiti
dall'utente rendono le applicazioni più flessibili: a volte, è sufficiente cambiare istruzioni typedef
utilizzando macro sostitutive (#define). I tipi definiti dall'utente anche migliorano la leggibilità del
codice dal momento che è possibile applicare nomi personalizzati ai tipi di dati standard utilizzando
typedef. Il formato generale della voce per la creazione di un tipo definito dall'utente:

typedef type new_name;

Qui, type significa qualsiasi tipo di dati accettabile, mentre new_name è un nuovo nome del tipo. Un
nuovo nome viene impostato soltanto in aggiunta (non in sostituzione) a un nome di tipo esistente.
MQL5 permette di creare puntatori a funzioni utilizzando typedef.

Puntatore alla funzione


U n puntatore a una funzione è generalmente definito nel seguente formato

typedef tipo_risultato_funzione*Nome_tipo_funzione)(lista_di_tipi_di_parametri_di_input);

dove dopo typedef, viene impostata la firma di funzione (numero e tipo dei parametri di input, cos ì
come un tipo di risultato restituito dalla funzione). Ecco un semplice esempio di creazione ed
applicazione di un puntatore ad una funzione:

//--- dichiarare un puntatore a una funzione che accetta due parametri int
typedef int (*TFunc)(int,int);
//--- TFunc è un tipo, ed è possibile dichiarare la variabile puntatore alla funzione
TFunc func_ptr; // puntatore alla funzione
//--- dichiara le funzioni corrispondenti alla descrizione TFunc
int sub(int x,int y) { return(x-y); } // sottrae un numero da un altro
int add(int x,int y) { return(x+y); } // aggiunta di due numeri
int neg(int x) { return(~x); } // inverte i bit nella variabile
//--- la variabile func_ptr può memorizzare l'indirizzo della funzione da dichiarare successivament
func_ptr=sub;
Print(func_ptr(10,5));
func_ptr=add;
Print(func_ptr(10,5));
func_ptr=neg; // errore: neg non ha il tipo int (int,int)
Print(func_ptr(10)); // errore: mancano due parametri

In questo esempio, la variabile func_ptr può ricevere le funzioni sub e add poiché hanno due input
ciascuno di tipo int definito nel puntatore alla funzione TFunc. Al contrario, la funzione neg non può
essere assegnata al puntatore func_ptr giacchè dalla sua firma è diversa.

Organizzazione di modelli di eventi nell'interfaccia utente


Puntatori a funzioni permettono di creare facilmente l'elaborazione di eventi durante la creazione di
un'interfaccia utente. Facciamo un esempio, dalla sezione CButton per mostrare come creare bottoni

© 2000-2021, MetaQuotes Ltd


132 Le basi del linguaggio

ed aggiungere le funzioni per il loro handling. In primo luogo, definire un puntatore alla funzione
TAction da chiamare premendo il bottone e creare tre funzioni secondo la descrizione TAction.

//--- crea un tipo di funzione personalizzata


typedef int(*TAction)(string,int);
//+------------------------------------------------------------------+
//| Apre il file |
//+------------------------------------------------------------------+
int Open(string name,int id)
{
PrintFormat("%s funzione chiamata (nome=%s id=%d)",__FUNCTION__,name,id);
return(1);
}
//+------------------------------------------------------------------+
//| Salva il file |
//+------------------------------------------------------------------+
int Save(string name,int id)
{
PrintFormat("%s funzione chiamata (nome=%s id=%d)",__FUNCTION__,name,id);
return(2);
}
//+------------------------------------------------------------------+
//| Chiude il file |
//+------------------------------------------------------------------+
int Close(string name,int id)
{
PrintFormat("%s funzione chiamata (nome=%s id=%d)",__FUNCTION__,name,id);
return(3);
}

Quindi, crea la classe M yButton da CButton, dove dovremmo aggiungere il puntatore alla funzione
TAction.

//+------------------------------------------------------------------+
//| Creare la classe bottone con la funzione di elaborazione eventi |
//+------------------------------------------------------------------+
class MyButton: public CButton
{
private:
TAction m_action; // chart events handler
public:
MyButton(void){}
~MyButton(void){}
//--- costruttore specificando il testo del bottone e il puntatore all' event handler della funz
MyButton(string text, TAction act)
{
Text(text);
m_action=act;
}

© 2000-2021, MetaQuotes Ltd


133 Le basi del linguaggio

//--- imposta la funzione personalizzata chiamata dall'event handler OnEvent()


void SetAction(TAction act){m_action=act;}
//--- standard chart event handler
virtual bool OnEvent(const int id,const long &lparam,const double &dparam,const string &spa
{
if(m_action!=NULL && lparam==Id())
{
//--- chiama l'handler custom m_action()
m_action(sparam,(int)lparam);
return(true);
}
else
//--- restituisce la chiamate dell'handler dalla classe genitore CButton
return(CButton::OnEvent(id,lparam,dparam,sparam));
}
};

Crea la classe derivata CControls Dialog daCAppDialog, aggiunge l'array m_buttons ad essal per
memorizzare i pulsanti tel tipo MyButton, nonché i metodi AddButton(MyButton &button) e
CreateButtons() .

//+------------------------------------------------------------------+
//| CControlsDialog class |
//| Obiettivo: pannello grafico per la gestione dell'applicazione |
//+------------------------------------------------------------------+
class CControlsDialog : public CAppDialog
{
private:
CArrayObj m_buttons; // array del bottone
public:
CControlsDialog(void){};
~CControlsDialog(void){};
//--- crea
virtual bool Create(const long chart,const string name,const int subwin,const int x1,const
//--- aggiunge il bottone
bool AddButton(MyButton &button){return(m_buttons.Add(GetPointer(button)));m_button
protected:
//--- crea i bottoni
bool CreateButtons(void);
};
//+------------------------------------------------------------------+
//| Crea l'oggetto CControlsDialog sul chart  |
//+------------------------------------------------------------------+
bool CControlsDialog::Create(const long chart,const string name,const int subwin,const int x1,const
{
if(!CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2))
return(false);
return(CreateButtons());
//---

© 2000-2021, MetaQuotes Ltd


134 Le basi del linguaggio

}
//+------------------------------------------------------------------+
//| i defines |
//+------------------------------------------------------------------+
//--- indents e gaps
#define INDENT_LEFT (11) // indentazione da sinistra (con permissività
#define INDENT_TOP (11) // indentazione dall'alto(con permissività pe
#define CONTROLS_GAP_X (5) // gap da coordinata X
#define CONTROLS_GAP_Y (5) // gap da coordinata Y
//--- per i bottoni
#define BUTTON_WIDTH (100) // grandezza da coordinate X
#define BUTTON_HEIGHT (20) // grandezza da coordinata Y
//--- for the indication area
#define EDIT_HEIGHT (20) // grandezza da coordinata Y
//+------------------------------------------------------------------+
//| Creare ed aggiunge bottoni al pannello CControlsDialog |
//+------------------------------------------------------------------+
bool CControlsDialog::CreateButtons(void)
{
//--- calcula le coordinate dei buttoni
int x1=INDENT_LEFT;
int y1=INDENT_TOP+(EDIT_HEIGHT+CONTROLS_GAP_Y);
int x2;
int y2=y1+BUTTON_HEIGHT;
//--- aggiunge oggetti bottoni con puntatori a funzioni
AddButton(new MyButton("Open",Open));
AddButton(new MyButton("Save",Save));
AddButton(new MyButton("Close",Close));
//--- creare i bottoni graficamente
for(int i=0;i<m_buttons.Total();i++)
{
MyButton *b=(MyButton*)m_buttons.At(i);
x1=INDENT_LEFT+i*(BUTTON_WIDTH+CONTROLS_GAP_X);
x2=x1+BUTTON_WIDTH;
if(!b.Create(m_chart_id,m_name+"bt"+b.Text(),m_subwin,x1,y1,x2,y2))
{
PrintFormat("Fallimento nel creare il bottone %s %d",b.Text(),i);
return(false);
}
//--- aggiungere ogni bottone al contenitore CControlsDialog
if(!Add(b))
return(false);
}
//--- successo
return(true);
}

© 2000-2021, MetaQuotes Ltd


135 Le basi del linguaggio

Ora, siamo in grado di sviluppare il programma utilizzando il pannello di controllo CControls Dialog
avente 3 pulsanti: Apri, S alva e Chiudi. Quando si fa clic su un bottone, la funzione appropriata nella
forma di puntatore TAction viene chiamata.

//--- dichiara l'oggetto a livello globale per creare automaticamente quando si lancia il programma
CControlsDialog MyDialog;
//+------------------------------------------------------------------+
//| Funzione di inizializzazione Expert |
//+------------------------------------------------------------------+
int OnInit()
{
//--- ora, crea l'oggetto sul chart
if(!MyDialog.Create(0,"Controls",0,40,40,380,344))
return(INIT_FAILED);
//--- avvia l'applicazione
MyDialog.Run();
//--- applicazione inizializzata con successo
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Funzione deinizializzazione Expert |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//--- distrugge la finestra
MyDialog.Destroy(reason);
}
//+------------------------------------------------------------------+
//| Funzione di evento chart dell' Expert |
//+------------------------------------------------------------------+
void OnChartEvent(const int id, // ID evento
const long& lparam, // parametro evento del tipo long
const double& dparam, // parametro event del tipo double
const string& sparam) // paraemetro evento del tipo string
{
//--- chiama l'handler della classe padre (qui è CAppDialog) per gli eventi chart
MyDialog.ChartEvent(id,lparam,dparam,sparam);
}

L 'apparenza dell'applicazione lanciata e il click dei bottoni viene fornita sulla schermata.

© 2000-2021, MetaQuotes Ltd


136 Le basi del linguaggio

I l codice sorgente completo del programma

//+------------------------------------------------------------------+
//| Panel_Buttons.mq5 |
//| Copyright 2017, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+

#property copyright "Copyright 2017, MetaQuotes Software Corp."


#property link "https://www.mql5.com"
#property version "1.00"
#property description "Il pannello con vari bottoni CButton"
#include <Controls\Dialog.mqh>
#include <Controls\Button.mqh>
//+------------------------------------------------------------------+
//| i defines |
//+------------------------------------------------------------------+
//--- indents e gaps
#define INDENT_LEFT (11) // indentazione da sinistra (con permissività
#define INDENT_TOP (11) // indentazione dall'alto(con permissività pe
#define CONTROLS_GAP_X (5) // gap da coordinata X
#define CONTROLS_GAP_Y (5) // gap da coordinata Y

© 2000-2021, MetaQuotes Ltd


137 Le basi del linguaggio

//--- per i bottoni


#define BUTTON_WIDTH (100) // grandezza da coordinate X
#define BUTTON_HEIGHT (20) // grandezza da coordinata Y
//--- for the indication area
#define EDIT_HEIGHT (20) // grandezza da coordinata Y

//--- crea il tipo della funzione custom


typedef int(*TAction)(string,int);
//+------------------------------------------------------------------+
//| Apre il file |
//+------------------------------------------------------------------+
int Open(string name,int id)
{
PrintFormat("%s funzione chiamata (nome=%s id=%d)",__FUNCTION__,name,id);
return(1);
}
//+------------------------------------------------------------------+
//| Salva il file |
//+------------------------------------------------------------------+
int Save(string name,int id)
{
PrintFormat("%s funzione chiamata (nome=%s id=%d)",__FUNCTION__,name,id);
return(2);
}
//+------------------------------------------------------------------+
//| Chiude il file |
//+------------------------------------------------------------------+
int Close(string name,int id)
{
PrintFormat("%s funzione chiamata (nome=%s id=%d)",__FUNCTION__,name,id);
return(3);
}
//+------------------------------------------------------------------+
//| Creare la classe bottone con la funzione di elaborazione eventi |
//+------------------------------------------------------------------+
class MyButton: public CButton
{
private:
TAction m_action; // chart events handler
public:
MyButton(void){}
~MyButton(void){}
//--- costruttore specificando il testo del bottone e il puntatore all' event handler della funz
MyButton(string text,TAction act)
{
Text(text);
m_action=act;
}
//--- imposta la funzione personalizzata chiamata dall'event handler OnEvent()

© 2000-2021, MetaQuotes Ltd


138 Le basi del linguaggio

void SetAction(TAction act){m_action=act;}


//--- standard chart event handler
virtual bool OnEvent(const int id,const long &lparam,const double &dparam,const string &spa
{
if(m_action!=NULL && lparam==Id())
{
//--- chiama l'handler custom
m_action(sparam,(int)lparam);
return(true);
}
else
//--- restituisce la chiamate dell'handler dalla classe genitore CButton
return(CButton::OnEvent(id,lparam,dparam,sparam));
}
};
//+------------------------------------------------------------------+
//| CControlsDialog class |
//| Obiettivo: pannello grafico per la gestione dell'applicazione |
//+------------------------------------------------------------------+
class CControlsDialog : public CAppDialog
{
private:
CArrayObj m_buttons; // array del bottone
public:
CControlsDialog(void){};
~CControlsDialog(void){};
//--- crea
virtual bool Create(const long chart,const string name,const int subwin,const int x1,const
//--- aggiunge il bottone
bool AddButton(MyButton &button){return(m_buttons.Add(GetPointer(button)));m_button
protected:
//--- crea i bottoni
bool CreateButtons(void);
};
//+------------------------------------------------------------------+
//| Crea l'oggetto CControlsDialog sul chart  |
//+------------------------------------------------------------------+
bool CControlsDialog::Create(const long chart,const string name,const int subwin,const int x1,const
{
if(!CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2))
return(false);
return(CreateButtons());
//---
}
//+------------------------------------------------------------------+
//| Creare ed aggiunge bottoni al pannello CControlsDialog |
//+------------------------------------------------------------------+
bool CControlsDialog::CreateButtons(void)
{

© 2000-2021, MetaQuotes Ltd


139 Le basi del linguaggio

//--- calcula le coordinate dei buttoni


int x1=INDENT_LEFT;
int y1=INDENT_TOP+(EDIT_HEIGHT+CONTROLS_GAP_Y);
int x2;
int y2=y1+BUTTON_HEIGHT;
//--- aggiunge oggetti bottoni con puntatori a funzioni
AddButton(new MyButton("Open",Open));
AddButton(new MyButton("Save",Save));
AddButton(new MyButton("Close",Close));
//--- creare i bottoni graficamente
for(int i=0;i<m_buttons.Total();i++)
{
MyButton *b=(MyButton*)m_buttons.At(i);
x1=INDENT_LEFT+i*(BUTTON_WIDTH+CONTROLS_GAP_X);
x2=x1+BUTTON_WIDTH;
if(!b.Create(m_chart_id,m_name+"bt"+b.Text(),m_subwin,x1,y1,x2,y2))
{
PrintFormat("Fallimento nel creare il bottone %s %d",b.Text(),i);
return(false);
}
//--- aggiungere ogni bottone al contenitore CControlsDialog
if(!Add(b))
return(false);
}
//--- successo
return(true);
}
//--- dichiara l'oggetto a livello globale per creare automaticamente quando si lancia il programma
CControlsDialog MyDialog;
//+------------------------------------------------------------------+
//| Funzione di inizializzazione Expert |
//+------------------------------------------------------------------+
int OnInit()
{
//--- ora, crea l'oggetto sul chart
if(!MyDialog.Create(0,"Controls",0,40,40,380,344))
return(INIT_FAILED);
//--- avvia l'applicazione
MyDialog.Run();
//--- applicazione inizializzata con successo
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Funzione deinizializzazione Expert |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//--- distrugge la finestra
MyDialog.Destroy(reason);

© 2000-2021, MetaQuotes Ltd


140 Le basi del linguaggio

}
//+------------------------------------------------------------------+
//| Funzione di evento chart dell' Expert |
//+------------------------------------------------------------------+
void OnChartEvent(const int id, // ID evento
const long& lparam, // parametro evento del tipo long
const double& dparam, // parametro event del tipo double
const string& sparam) // paraemetro evento del tipo string
{
//--- chiama l'handler della classe padre (qui è CAppDialog) per gli eventi chart
MyDialog.ChartEvent(id,lparam,dparam,sparam);
}

Guarda anche
variabili, Funzioni

© 2000-2021, MetaQuotes Ltd


141 Le basi del linguaggio

Puntatori agli Oggetti


In MQL5, vi è la possibilità di creare dinamicamente oggetti di tipo complesso. Ciò viene fatto da un
nuovo operatore, che restituisce un descrittore dell'oggetto creato. Il descrittore è largo 8 byte.
S intatticamente, i descrittori di oggetti in MQL5 sono simili ai puntatori in C++.

Esempi:
MyObject* hobject= new MyObject();

In contrast to C++, the hobject variable from ex ample above is not a pointer to memory, but rather an
object descriptor. Furthermore, in MQL5 all objects in function parameters must be passed by
reference. Below are ex amples of passing objects as function parameters :

class Foo
{
public:
string m_name;
int m_id;
static int s_counter;
//--- constructors and desctructors
Foo(void){Setup("noname");};
Foo(string name){Setup(name);};
~Foo(void){};
//--- initializes object of type Foo
void Setup(string name)
{
m_name=name;
s_counter++;
m_id=s_counter;
}
};
int Foo::s_counter=0;
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//--- declare an object as variable with its automatic creation
Foo foo1;
//--- variant of passing an object by reference
PrintObject(foo1);

//--- declare a pointer to an object and create it using the 'new' operator
Foo *foo2=new Foo("foo2");
//--- variant of passing a pointer to an object by reference
PrintObject(foo2); // pointer to an object is converted automatically by compiler

//--- declare an array of objects of type Foo


Foo foo_objects[5];

© 2000-2021, MetaQuotes Ltd


142 Le basi del linguaggio

//--- variant of passing an array of objects


PrintObjectsArray(foo_objects); // separate function for passing an array of objects

//--- declare an array of pointers to objects of type Foo


Foo *foo_pointers[5];
for(int i=0;i<5;i++)
{
foo_pointers[i]=new Foo("foo_pointer");
}
//--- variant of passing an array of pointers
PrintPointersArray(foo_pointers); // separate function for passing an array of pointers

//--- it is obligatory to delete objects created as pointers before termination


delete(foo2);
//--- delete array of pointers
int size=ArraySize(foo_pointers);
for(int i=0;i<5;i++)
delete(foo_pointers[i]);
//---
}
//+------------------------------------------------------------------+
//| Objects are always passed by reference |
//+------------------------------------------------------------------+
void PrintObject(Foo &object)
{
Print(__FUNCTION__,": ",object.m_id," Object name=",object.m_name);
}
//+------------------------------------------------------------------+
//| Passing an array of objects |
//+------------------------------------------------------------------+
void PrintObjectsArray(Foo &objects[])
{
int size=ArraySize(objects);
for(int i=0;i<size;i++)
{
PrintObject(objects[i]);
}
}
//+------------------------------------------------------------------+
//| Passing an array of pointers to object |
//+------------------------------------------------------------------+
void PrintPointersArray(Foo* &objects[])
{
int size=ArraySize(objects);
for(int i=0;i<size;i++)
{
PrintObject(objects[i]);
}
}

© 2000-2021, MetaQuotes Ltd


143 Le basi del linguaggio

Vedi anche
Variabili, Inizializzazione delle Variabili, Visibilità Campo e Durata delle Variabili, Creazione ed
Eliminazione di Oggetti

© 2000-2021, MetaQuotes Ltd


144 Le basi del linguaggio

Riferimenti: Modificatore & e Parola Chiave this


Passaggio di parametri per Riferimento
In MQL5 parametri di tipo semplice possono essere passati sia per valore che per riferimento, mentre
i parametri di tipi composti vengono sempre passati per riferimento. Per informare il compilatore che
un parametro deve essere passato per riferimento, il carattere 'e commerciale' & viene aggiunto prima
del nome del parametro.

Il passaggio di un parametro per riferimento significa passare l'indirizzo della variabile, è per questo
che tutte le variazioni del parametro che viene passato per riferimento verranno immediatamente
riflesse nella variabile sorgente. Utilizzando il passaggio di parametro per riferimento, è possibile
implementare il ritorno dei svariati risultati di una funzione allo stesso tempo. Al fine di impedire la
variazione di un parametro passato per riferimento, utilizzare il modificatore const.

Pertanto, se il parametro di input di una funzione è un array, un oggetto di struttura o di classe, il


simbolo '&' viene posto nell'intestazione della funzione dopo il tipo di variabile e prima del nome.

Esempio
class CDemoClass
{
private:
double m_array[];

public:
void setArray(double &array[]);
};
//+--------------------------------------------------------------------------------+
//| riempie l'array |
//+--------------------------------------------------------------------------------+
void CDemoClass::setArray(double &array[])
{
if(ArraySize(array)>0)
{
ArrayResize(m_array,ArraySize(array));
ArrayCopy(m_array, array);
}
}

N ell'esempio sopra la classe viene dichiarata la CDemoClass, la qualeche contiene il membro privato -
array m_array[] di tipo double. Funzione setArray() viene dichiarata, alla quale array[] è passato per
riferimento. S e l'intestazione funzione non contiene l'indicazione di passaggio per riferimento, cioè
non contiene il carattere 'e commerciale', un messaggio di errore viene generato al tentativo di
compilare tale codice.

Nonostante il fatto che la matrice viene passata per riferimento, non possiamo assegnare un array ad
un altro. Abbiamo bisogno di effettuare la copia elemento-per-elemento dei contenuti della matrice di
origine alla matrice destinataria. La presenza dei & nella descrizione della funzione è la condizione
obbligatoria per array e strutture quando viene passata come parametro della funzione.

© 2000-2021, MetaQuotes Ltd


145 Le basi del linguaggio

Parola chiave this


Una variabile di tipo classe (oggetto) può essere passata sia per riferimento e per puntatore. Cos ì
come per il riferimento, il puntatore permette di avere accesso ad un oggetto. Dopo che il puntatore
oggetto viene dichiarato, il nuovo operatore deve essere applicato ad esso per crearlo ed inizializzarlo.

La parola riservata this è designata per ottenere il riferimento dell'oggetto stesso, che è disponibile
all'interno di metodi di classe o struttura. this sempre fa riferimento all'oggetto, nel metodo di cui è
utilizzato, e l'espressione GetPointer(this) dà il puntatore dell'oggetto, il cui componente è la funzione,
in cui viene eseguita la chiamata di GetPointer(). In MQL5 funzioni non possono restituire oggetti, ma
possono restituire il puntatore dell'oggetto.

Quindi, se abbiamo bisogno che una funzione restituisca un oggetto, siamo in grado di restituire il
puntatore di questo oggetto sottoforma di GetPointer(this). Aggiungiamo la funzione getDemoClass()
che restituisce il puntatore del oggetto di questa classe, nella descrizione di CDemoClass.

class CDemoClass
{
private:
double m_array[];

public:
void setArray(double &array[]);
CDemoClass *getDemoClass();
};
//+--------------------------------------------------------------------------------+
//| riempie l'array |
//+--------------------------------------------------------------------------------+
void CDemoClass::setArray(double &array[])
{
if(ArraySize(array)>0)
{
ArrayResize(m_array,ArraySize(array));
ArrayCopy(m_array,array);
}
}
//+--------------------------------------------------------------------------------+
//| restituisce il suo puntatore |
//+--------------------------------------------------------------------------------+
CDemoClass *CDemoClass::getDemoClass(void)
{
return(GetPointer(this));
}

Le strutture non hanno puntatori, gli operatori new e delete non possono essere applicati ad essi,
GetPointer(this) non può essere utilizzato.

Vedi anche
Puntatori Oggetto, Creazione ed Eliminazione di Oggetti, Visibilità Campo e Durata di Variabili

© 2000-2021, MetaQuotes Ltd


146 Le basi del linguaggio

Operazioni ed Espressioni
Alcuni caratteri e sequenze di caratteri sono di particolare importanza. Questi sono i cosiddetti simboli
delle operazioni, ad esempio:

+ - * / % Simboli di operazioni aritmetiche


&& || Simboli di operazioni logiche
= += *= Caratteri degli operatori di assegnazione

Simboli delle operazioni vengono utilizzati nelle espressioni ed hanno senso quando vengono dati ad
essi operandi appropriati. I segni di punteggiatura sono enfatizzati, anche. S i tratta di parentesi,
virgola, due punti e punto e virgola.

S imboli di operazioni, segni di punteggiatura e spazi vengono utilizzati per separare gli elementi del
linguaggio gli uni dagli altri.

Questa sezione contiene la descrizione dei seguenti argomenti:

· Ex pressions

· A rithmetical Operations
· Operazioni di assegnazione

· Operations of R elation
· Boolean Operations
· Operazioni bit per bit

· A ltre Operazioni
· Priorità ed Ordine delle operazioni

© 2000-2021, MetaQuotes Ltd


147 Le basi del linguaggio

Expressions
n espressione è composta da uno o più operandi e simboli di funzionamento.
U ' n espressione può
U '

essere scritta in più linee.

Esempi:
a++; b = 10; // in una riga ci sono varie espressioni
//--- un'espressione è divisa in varie righe
x = (y * z) /
(w + 2) + 127;

n espressione che termina con un punto e virgola (;) è un operatore.


U '

Vedi anche
R egole di Precedenza

© 2000-2021, MetaQuotes Ltd


148 Le basi del linguaggio

Operazioni Aritmetiche
Operazioni aritmetiche includono operazioni di addizione e moltiplicazione:

Somma delle variabili i = j + 2;


Differenza delle variabili i = j - 3;
Modifica del segno x = -x;
Prodotto delle variabili z = 3 * x;
Divisione quoziente i = j / 5;
Il resto della divisione minutes = time % 60;
Aggiunge 1 al valore della variabile i++;
Aggiunge 1 al valore della variabile ++i;
Sottrae 1 dal valore della variabile k--;
Sottrae 1 dal valore della variabile --k;

Le operazioni di incremento e decremento sono applicate solo alle variabili, non possono essere
applicate alle costanti. I prefissi incremento (++i) e decremento (--k ) vengono applicati a destra
variabile, giusto prima che questa variabile venga utilizzata in un'espressione.

Post-incremento (i++) e post-decremento (k --) vengono applicati alla variabile, giusto dopo che questa
vnga utilizzata in un'espressione.

Avviso importante
int i=5;
int k = i++ + ++i;

Problemi computazionali possono verificarsi durante lo spostamento della suddetta espressione da un


ambiente di programmazione ad un altro (per esempio, da Borland C++ ad MQL5). In generale, l'ordine
dei calcoli dipende dall'implementazione del compilatore. In pratica, ci sono due modi per
implementare il post-decremento (e post-incremento):
1. Il post-decremento (ed il post-incremento) viene applicato alla variabile dopo il calcolo dell'intera
espressione.
2. I l post-decremento (post-incremento) viene applicato alla variabile immediatamente
all'operazione.

A ttualmente per i calcoli è implementato in MQL5 il primo metodo di post-decremento (e di post-


incremento). Ma anche conoscendo questa sua peculiarità, non è consigliabile sperimentare con il suo
uso.

Esempi:
int a=3;
a++; // espressione valida
int b=(a++)*3; // espressione non valida

Vedi anche
R egole di Precedenza

© 2000-2021, MetaQuotes Ltd


149 Le basi del linguaggio

Operazioni di assegnazione
I l valore dell'espressione che include l'operazione data è il valore dell'operando sinistro dopo
l'assegnazione:

Assegnazione del valore x alla variabile y y = x;

Le seguenti operazioni uniscono operazioni aritmetiche o di bit con operazioni di assegnazione:

Aggiungere x alla variabile y y += x;


Sottrarre x dalla y variabile y y -= x;
Moltiplicare la variabile y per x y *= x;
Dividere la variabile y per x y /= x;
Resto della divisione della variabile y per x y %= x;
Slittamento della rappresentazione binaria di y a destra di x bits y >>= x;
Slittamento della rappresentazione binaria di y a sinistra di x bit y <<= x;
Operazione AND di bit della rappresentazione binaria di y ed x y &= x;
Operazione OR di bit della rappresentazione binaria di y ed x y |= x;
Operazione OR Esclusivo di bit della rappresentazione binaria di y ed x y ^= x;

Operazioni di bit possono essere applicate solo a numeri interi. Quando si esegue l'operazione di
slittamento logico della rappresentazione y verso destra/sinistra di x -bit, vengono utilizzate le 5 cifre
binarie più piccole del valore x , le più alte vengono scartate, cioè il passaggio è fatto per 0-31 bit.

Con l'operazione %= (valore y dal modulo di x ), il segno del risultato è uguale al segno del numero
diviso.

L 'operatore di assegnazione può essere utilizzato più volte in un'espressione. In q uesto caso la
trasformazione dell'espressione viene eseguita da sinistra a destra:

y=x=3;

In primo luogo, alla variabile x viene assegnato il valore 3, poi alla variabile y viene assegnato il valore
di x , vale a dire 3, anche.

Vedi anche
R egole di Precedenza

© 2000-2021, MetaQuotes Ltd


150 Le basi del linguaggio

Operations of Relation
Il booleano FAL S E (_*falso) è rappresentato da un valore intero pari a zero, mentre il booleano TRU E
(_*vero) è rappresentato da qualsiasi valore diverso da zero.

Il valore delle espressioni che contengono operazioni di relazione oppure operazioni logiche è FA L S E(0)
o TRUE(1).

True se a è uguale a b a == b;
True se a non è uguale a b a != b;
True se a è minore di b a < b;
True se a è maggiore di b a > b;
True se a è minore o uguale a b a <= b;
True se a è maggiore o uguale a b a >= b;

L 'uguaglianza di due numeri reali non può essere confrontata. Nella maggior parte dei casi, due numeri
apparentemente identici possono essere diversi a causa di diversi valori nel 15esimo posto decimale.
Per poter confrontare correttamente due numeri reali, confrontare la differenza normalizzata di questi
numeri con lo zero.

Esempio:
bool CompareDoubles(double number1,double number2)
{
if(NormalizeDouble(number1-number2,8)==0) return(true);
else return(false);
}
voidOnStart()
{
double first=0.3;
double second=3.0;
double third=second-2.7;
if(first!=third)
{
if(CompareDoubles(first,third))
printf("%.16f e %.16f sono uguali",first,third);
}
}
// Result: 0.3000000000000000 0.2999999999999998 sono uguali

Vedi anche
R egole di Precedenza

© 2000-2021, MetaQuotes Ltd


151 Le basi del linguaggio

Boolean Operations
Negazione Logica NOT (!)
L 'operando della negazione logica (!) deve essere di tipo aritmetico. Il risultato è TRUE (1), se il valore
operando è FAL S E (0), ed è uguale a FAL S E (0), se l'operando è diverso da FAL S E (0).

if(!a) Print("not 'a'");

Operazione Logica OR (||)


Operazione Logica OR (||) dei valori x e y. Il valore dell'espressione è TRUE (1), se almeno uno dei due
tra il valore di x oppure il valore y sono veri (cioè non nulli). In caso contrario - FAL S E (0).

if(x<0 || x>=max_bars) Print("fuori dal range");

Operazione Logica AND (&&)


Operazione Logica AND (&&) dei valori x e y. Il valore dell'espressione è TRUE (1), se il valore di x ed il
valore di y sono entrambi veri (cioè non nulli). In caso contrario - FAL S E (0).

Stima sintetica delle Operazioni Booleane


Lo schema della cosiddetta " stima breve" viene applicato ad operazioni booleane, ossia il calcolo
dell'espressione è terminato quando il risultato dell'espressione può essere stimato con precisione.

//+--------------------------------------------------------------------------------+
//| Funzione di avvio del programma Script |
//+--------------------------------------------------------------------------------+
voidOnStart()
{
//--- il primo esempio della stima breve
if(func_false() && func_true())
{
Print("Operazione &&: Non vedrai mai questa espressione");
}
else
{
Print("Operazione &&: Il risultato della prima espressione è falso, così la seconda non viene
}
//--- il secondo esempio della stima breve
if(!func_false() || !func_true())
{
Print("Operazione ||: Il risultato della prima espressione è vero, così la seconda non viene
}
else
{
Print("Operazione ||: Non vedrai mai questa espressione");
}
}
//+--------------------------------------------------------------------------------+

© 2000-2021, MetaQuotes Ltd


152 Le basi del linguaggio

//| La funzione restituisce sempre falso |


//+--------------------------------------------------------------------------------+
bool func_false()
{
Print("Function func_false()");
return(false);
}
//+--------------------------------------------------------------------------------+
//| La funzione restituisce sempre vero |
//+--------------------------------------------------------------------------------+
bool func_true()
{
Print("Function func_true()");
return(true);
}

Vedi anche
R egole di Precedenza

© 2000-2021, MetaQuotes Ltd


153 Le basi del linguaggio

Operazioni bit per bit


Complemento ad Uno
Complemento del valore della variabile fino ad uno. Il valore dell'espressione contiene 1 in tutte le cifre
dove il valore della variabile contiene 0, e 0 in tutte le cifre dove la variabile contiene 1.

b = ~n;

Esempio:
char a='a',b;
b=~a;
Print("a = ",a, " b = ",b);
// Il risultato sarà:
// a = 97 b = -98

Slittamento a Destra
La rappresentazione binaria di x è spostata a destra di y cifre. S e il valore per slittamento è del tipo
senza segno, viene fatto lo slittamento logico destra, cioè i bit liberati del lato sinistro saranno
riempiti con zeri.

Se il valore per lo slittamento è di tipo segnato, viene fatto lo slittamento aritmetico a destra, cioè le
cifre liberate del lato-sinistro verranno riempitecon il valore di un bit di segno (se il numero è
positivo, il valore del bit di segno è 0 , se il numero è negativo, il valore del bit di segno è 1).

x = x >> y;

Esempio:
char a='a',b='b';
Print("Prima: a = ",a, " b = ",b);
//--- slittamento verso destra
b=a>>1;
Print("Dopo: a = ",a, " b = ",b);
// Il risultato sarà:
// Prima: a = 97 b = 98
// Dopo: a = 97 b = 48

Slittamento sinistro
La rappresentazione binaria di x viene slittata verso si