Обсуждение статьи "Ограничения и проверки в экспертах"

 

Опубликована статья Ограничения и проверки в экспертах:

Можно ли торговать этим инструментом в понедельник? Хватит ли денег на открытие позиции? Какой размер убытка мы получим, если сработает Stop Loss? Как ограничить количество отложенных ордеров? Была ли выполнена торговая операция на этом баре или это было на предыдущем? Если торговый робот не может сделать подобные проверки, то любая прибыльная торговая система может превратиться в проигрышную. В этой статье показаны примеры проверок, которые пригодятся в любом эксперте.


Автор:  MetaQuotes

 

полезная статейка

 
согласен, много полезного... Просьба, не сочтите за труд, объясните, пожалуйста, понятие "Торговая сессия" и "Котировочная сессия".
 

я так понимаю что торговая сессия отличается от  котировочная сессия то что можно уже выставлять заявки

но котировки ещё не идут т.е. торги не происходят но ордера выставлять можно

ну котировочные уже ясно котировки идут значит ведутся торги по данному инструменту 


поправте если не прав

 
В торговую сессию можно торговать, в котировочную цены поступают как и в торговой, но торговать нельзя.
 
Rosh:
В торговую сессию можно торговать, в котировочную цены поступают как и в торговой, но торговать нельзя.

Спасибо, теперь понятно.
 
В связи с изменением в языке MQL5, теперь максимально разрешенный совокупный объем на один символ нужно получать так:
//--- получим ограничение по символу на объем
   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT);

Старый вариант был такой и его больше использовать не надо:

//--- получим ограничение по символу на объем
   double max_volume=AccountInfoDouble(ACCOUNT_LIMIT_VOLUME);


В статье сделаны поправки, приложен новый код эксперта Check_Order_And_Volume_Limits.mq5

 

В связи с изменениями в MQL5, теперь максимальный общий объем, допустимый для одного символа, можно получить следующим образом:

//--- получить ограничение символов для тома
   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT);

Не используйте старый вариант! Он выглядел следующим образом:

//--- получить ограничение символов для тома
   double max_volume=AccountInfoDouble(ACCOUNT_LIMIT_VOLUME);
Статья исправлена, к ней прикреплен новый экспертный код Check_Order_And_Volume_Limits.mq5.
 

(строение 306)

void OnStart()
{
double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT);
}

ошибки компиляции:

'SYMBOL_VOLUME_LIMIT' - необъявленный идентификатор test.mq5 4 46
'SymbolInfoDouble' - ни одна из перегрузок не может быть применена к вызову функции test.mq5 4 20

 

Цитата из статьи: "Получить время открытия последнего бара можно функцией SeriesInfoInteger(), которой необходимо указать имя символа, таймфрейм и свойство SERIES_LASTBAR_DATE".

В ранней версии справочника приводился пример получения времени открытия последнего бара с помощью функции CopyTime, примерно так:

datetime lastbar_time[1];

CopyTime(Symbol(),0,0,1,lastbar_time);

Вопрос: какой из этих двух вариантов получения времени открытия последнего бара является предпочтительным с точки зрения скорости получения информации и эффективности использования?

 
Yedelkin:

Цитата из статьи: "Получить время открытия последнего бара можно функцией SeriesInfoInteger(), которой необходимо указать имя символа, таймфрейм и свойство SERIES_LASTBAR_DATE".

В ранней версии справочника приводился пример получения времени открытия последнего бара с помощью функции CopyTime, примерно так:

Вопрос: какой из этих двух вариантов получения времени открытия последнего бара является предпочтительным с точки зрения скорости получения информации и эффективности использования?

Они должны быть равноценны по времени, но вариант SERIES_LASTBAR_DATE с  выглядит лучше.