Поддержка типов MQL

Все данные внутри Tcl инкапсулируются в виде объекта Tcl_Obj. Библиотека ATcl представляет программисту унифицированный интерфейс для конверсий типов MQL в Tcl_Obj и обратно

В общем случае методы поддержки типов выглядят так:

// type - поддерживаемый тип MQL
// создание объекта из значения или массива
Tcl_Obj Obj(type value);
Tcl_Obj Obj(type &array[],int pos=0,int count=WHOLE_ARRAY);
 
// получение значения из объекта
int ToType(Tcl_Obj obj,type &valueRef);	// если удачно вернёт TCL_OK, значение сохранит по ссылке
type Type(Tcl_Obj obj,type defaultValue); // конвертировать, при неудаче вернуть default
type Type(Tcl_Obj obj,int nth,type defaultValue); // получить nth элемент списка
 
// присвоение значения переменной
Tcl_Obj Set(Tcl_Obj varObj,type value);
Tcl_Obj Set(string varName,type value);
 
// получение значения переменной
type Get(Tcl_Obj varObj,type defaultValue); // конвертировать значение в тип, при неудаче вернуть default
 
// выполнить команду/скрипт и сразу получить результат
type TypeEval(string script,type defaultValue);
type TypeEval(Tcl_Obj scriptObj,type defaultValue);
type TypeCall(Tcl_Obj &objv[],int objc,type defaultValue);
 
// получить результат последней команды как type
type TypeResult();

На уровне библиотеки полностью поддерживаются типы long, double, string, datetime ; частично поддерживаются специальные типы MqlRates MqlTick