Данная библиотека может быть использована в качестве замены встроенным торговым уровням. Кроме привлекательного внешнего вида, имеются следующие особенности:
Полная настраиваемость
Цвета и стили линий можно настроить как для позиций, так и для ордеров.
Выравнивание позиций и ордеров
Позиции и ордера могут быть выровнены по центру, левому или правому краю графика.
Изменение ордера – удаление
Полное удаление ордера, стоп-лосса или целевого стоп-уровня.
Изменение ордера – редактирование
Перетаскивание линии входа, стоп-уровня или цели к новому значению. Ордер будет изменен с помощью библиотеки.
Изменение ордера – свернуть/развернуть
Свернуть/развернуть визуальное представление торговых уровней.
Изменение ордера – удаление
Полное удаление позиции, стоп-лосса или целевого стоп-уровня.
Изменение позиции – редактирование
Перетаскивание линии входа, стоп-уровня или цели к новому значению. Позиция будет изменена с помощью библиотеки.
Изменение позиции – свернуть/развернуть
Свернуть/развернуть визуальное представление торговых уровней.
Функции, экспортируемые данной библиотекой:
- ExtendedTradeLevels_SetNamespace задает префикс пространства имен для графических объектов, чтобы избежать пересечений с другими объектами. Пространство имен имеет значение “ExtendedTradeLevels” по умолчанию.
void ExtendedTradeLevels_SetNamespace(const string namespace);
Параметры:
namespace – префикс пространства имен для графических объектовВозвращаемые значения:
Нет.Примечание:
Данная функция должна быть вызвана перед ExtendededTradeLevels_Init(). В противном случае изменение не даст никакого эффекта. - ExtendedTradeLevels_Init инициализирует библиотеку Extended TradeLevels. Данная функция должна быть вызвана в функции OnInit() торгового советника.
int ExtendedTradeLevels_Init(void);
Параметры:
Нет.Возвращаемые значения:
В соответствии с возвращаемыми значениями OnInit(), в случае успеха возвращается INIT_SUCCESS, а в случае неудачи – INIT_FAILED. - ExtendedTradeLevels_DeInit деинициализирует библиотеку Extended TradeLevels. Данная функция должна быть вызвана в функции DeInit() торгового советника.
void ExtendedTradeLevels_DeInit(const int reason);
Параметры:
reason – причина деинициализации, соответствующая параметру reason функции DeInit() торгового советника.Возвращаемые значения:
Нет.Примечание:
В качестве причины предоставляется параметр reason функции DeInit() торгового советника. - ExtendedTradeLevels_ChartEvent вызывает обработку события графика библиотеки Extended TradeLevels. Данная функция должна быть вызвана в функции OnChartEvent() торгового советника.
void ExtendedTradeLevels_ChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam);
Параметры:
id – см. ID-параметр OnChartEvent()
lparam – см. Iparam-параметр OnChartEvent()
dparam – см. dparam-параметр OnChartEvent()
sparam – см. sparam-параметр OnChartEvent()Возвращаемые значения:
Нет.Примечание:
Данная функция должна получить параметры OnChartEvent() торгового советника без изменений. - ExtendedTradeLevels_TradeTransaction вызывает функцию обработки торговой транзакции библиотеки Extended TradeLevels. Данная функция должна быть вызвана в функции OnTradeTransaction() торгового советника.
void ExtendedTradeLevels_TradeTransaction(const MqlTradeTransaction& trans, const MqlTradeRequest& request, const MqlTradeResult& result);
Параметры:
trans – см. trans-параметр OnTradeTransaction()
request – см. request-параметр OnTradeTransaction()
result – см. result-параметр OnTradeTransaction()Возвращаемые значения:
Нет.Примечание:
Данная функция должна получить параметры OnTradeTransaction() без изменений. - ExtendedTradeLevels_SetColor задает свойство color для отображения ордеров и позиций. Список возможных настроек приведен ниже.
void ExtendedTradeLevels_SetColor(const string paramId, const color c);
Параметры:
paramId – ID настройки
c – цвет ID настройкиВозвращаемые значения:
Нет.Примечание:
Список возможных настроек color приведен ниже. - ExtendedTradeLevels_SetInteger задает свойство integer для отображения ордеров и позиций. Список возможных настроек приведен ниже.
void ExtendedTradeLevels_SetInteger(const string paramId, const int i);
Параметры:
paramId – ID настройки
i – целое значение ID настройкиВозвращаемые значения:
Нет.Примечание:
Список возможных настроек integer приведен ниже.
Возможные настройки цвета библиотеки Extended TradeLevels:
paramId | Описание | Значение по умолчанию |
---|---|---|
orderEntryColor | Цвет для отображения уровня входа в рынок по ордеру (покупка и продажа). | clrPaleGreen |
orderStopColor | Цвет для отображения уровня выхода из рынка по ордеру (покупка и продажа). | clrMistyRose |
orderTargetColor | Цвет для отображения целевого торгового уровня ордера (покупка и продажа). | clrAliceBlue |
orderFontColor | Цвет шрифта на всех торговых уровнях ордера. | clrBlack |
positionEntryColor | Цвет для отображения торгового уровня входа в позицию (покупка и продажа). | clrPaleGreen |
positionStopColor | Цвет для отображения торгового уровня выхода из позиции (покупка и продажа). | clrMistyRose |
positionTargetColor | Цвет для отображения целевого торгового уровня позиции (покупка и продажа). | clrAliceBlue |
positionFontColor | Цвет шрифта на всех торговых уровнях позиции. | clrBlack |
Возможные целочисленные параметры библиотеки Extended TradeLevels:
paramId | Описание | Значение по умолчанию |
---|---|---|
orderAlignment | Выравнивание указывает расположение панелей торговых уровней ордера. Возможные значения:1 – выравнивание по левому краю 2 – выравнивание по правому краю 4 – выравнивание по центру |
1 |
orderEntryLineStyle | Данный параметр задает стиль линии входа в рынок по ордеру. Входит в состав ENUM_LINE_STYLE. | STYLE_SOLID |
orderStopLineStyle | Данный параметр задает стиль линии выхода из рынка по ордеру. Входит в состав ENUM_LINE_STYLE. | STYLE_SOLID |
orderTargetLineStyle | Данный параметр задает стиль целевой линии ордера. Входит в состав ENUM_LINE_STYLE. | STYLE_SOLID |
positionAlignment | Выравнивание указывает расположение панелей торговых уровней позиции. Возможные значения:1 – выравнивание по левому краю 2 – выравнивание по правому краю 4 – выравнивание по центру |
4 |
positionEntryLineStyle | Данный параметр задает стиль линии входа в позицию. Входит в состав ENUM_LINE_STYLE. | STYLE_SOLID |
positionStopLineStyle | Данный параметр задает стиль линии выхода из позиции. Входит в состав ENUM_LINE_STYLE. | STYLE_SOLID |
positionTargetLineStyle | Данный параметр задает стиль целевой линии позиции. Входит в состав ENUM_LINE_STYLE. | STYLE_SOLID |
Импорт функций библиотеки Extended TradeLevels
Для использования функций библиотеки они должны быть импортированы следующим образом:
#import "ExtendedTradeLevels.ex5" int ExtendedTradeLevels_Init(void); void ExtendedTradeLevels_SetNamespace(const string namespace); void ExtendedTradeLevels_DeInit(const int reason); void ExtendedTradeLevels_ChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam); void ExtendedTradeLevels_TradeTransaction(const MqlTradeTransaction& trans, const MqlTradeRequest& request, const MqlTradeResult& result); void ExtendedTradeLevels_SetColor(const string paramId, const color c); void ExtendedTradeLevels_SetInteger(const string paramId, const int i); #import
Образец торгового советника, использующего библиотеку Extended TradeLevels:
//+------------------------------------------------------------------+ //| ETL.mq5 | //| Copyright 2013, MetaQuotes Software Corp. | //| http://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2013, MetaQuotes Software Corp." #property link "http://www.mql5.com" #property version "1.00" // Импорт функций библиотеки Extended TradeLevels #import "ExtendedTradeLevels.ex5" int ExtendedTradeLevels_Init(void); void ExtendedTradeLevels_SetNamespace(const string namespace); void ExtendedTradeLevels_DeInit(const int reason); void ExtendedTradeLevels_ChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam); void ExtendedTradeLevels_TradeTransaction(const MqlTradeTransaction& trans, const MqlTradeRequest& request, const MqlTradeResult& result); void ExtendedTradeLevels_SetColor(const string paramId, const color c); void ExtendedTradeLevels_SetInteger(const string paramId, const int i); #import //+------------------------------------------------------------------+ //| Функция инициализации советника | //+------------------------------------------------------------------+ int OnInit() { // установка пространства имен для графических объектов, созданных в библиотеке Extended TradeLevels ExtendedTradeLevels_SetNamespace("myEA"); // Инициализация библиотеки Extended TradeLevels int result = ExtendedTradeLevels_Init(); return(result); } //+------------------------------------------------------------------+ //| Функция деинициализации эксперта | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { // Деинициализация библиотеки Extended TradeLevels ExtendedTradeLevels_DeInit(reason); } //+------------------------------------------------------------------+ //| Функция события графика эксперта | //+------------------------------------------------------------------+ void OnChartEvent(const int id,const long& lparam,const double& dparam,const string& sparam) { // Вызов обработчика событий графика библиотеки Extended TradeLevels ExtendedTradeLevels_ChartEvent(id, lparam, dparam, sparam); } //+------------------------------------------------------------------+ //| Функция торговой транзакции советника | //+------------------------------------------------------------------+ void OnTradeTransaction(const MqlTradeTransaction& trans, const MqlTradeRequest& request, const MqlTradeResult& result) { // Вызов обработчика торговой транзакции библиотеки Extended TradeLevels ExtendedTradeLevels_TradeTransaction(trans, request, result); }