Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 680

Vladimir Karputov:
Я прогонял в тестере - нет такой ошибки. Опишите как Вы тестировали: режим генерации тиков, депозит, плечо, период и предоставьте журнал тестера. Также укажите какой билд Вы используете - я проверял на 1486.

билд 1485



Файлы:
Zhurnal.txt  52 kb
post_ek:

билд 1485

Пожалуйста покажите спецификацию контракта SBER - это вообще что: фьючерс?, название торгового сервера к которому логинитесь и журнал тестера.
Vladimir Karputov:
Пожалуйста покажите спецификацию контракта SBER - это вообще что: фьючерс?, название торгового сервера к которому логинитесь и журнал тестера.

Торговый сервер - Open-Broker 

Файлы:
Zhurnal.txt  52 kb
post_ek:

Торговый сервер - Open-Broker 

А акциями уже можно торговать? Замените Buy на BuyLimit и Sell на SellLimit.
Vladimir Karputov:
А акциями уже можно торговать? Замените Buy на BuyLimit и Sell на SellLimit.

А разве на бирже не торгуют акциями? 

Если я заменю Buy на BuyLimit то как я буду покупать акции по рыночной цене?  

[Удален]
Vladimir Karputov:
А акциями уже можно торговать? Замените Buy на BuyLimit и Sell на SellLimit.
Почти как год на МТ5 в Открытии.
[Удален]
Vladimir Karputov:

Так делать нельзя:

bool TimeFlag,FLG;
int TimeScale=50,TimeInMemory,TimeNow;

точнее после такого объявления обязательно в OnInit() нужно явно проинициализировать (присвоить значения) этим переменным.

Метод Sell также обложите проверками, вроде

trade.ResultRetcode(),
            " (",trade.ResultRetcodeDescription(),")");

А ещё может быть одна загвоздка - утром, при открытии торгов, торги идут не сразу, не с первой секунды - вот в этот момент возможны ошибки.

Владимир, не путайте человека!

Из документации:

Область видимости глобальных переменных - вся программа, глобальные переменные доступны из всех функций, определенных в программе. Инициализируются нулем, если явно не задано другое начальное значение. Глобальная переменная может быть проинициализирована только соответствующей ее типу константой либо константным выражением.

Инициализация глобальных переменных производится однократно после загрузки программы в память клиентского терминала и перед первой обработкой события Init. Для глобальных переменных, представляющих собой объекты классов, при инициализации вызываются соответствующие конструкторы. В скриптах инициализация глобальных переменных производится перед обработкой события Start. 

https://www.mql5.com/ru/docs/basis/variables/global
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Основы языка / Переменные / Глобальные переменные - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Alexey Kozitsyn:
Почти как год на МТ5 в Открытии.
Так можно торговать акциями МТ5 в Открытии или нет?
[Удален]
post_ek:
Так можно торговать акциями МТ5 в Открытии или нет?
Можно! Только будут либо акции, либо фьючерсы (бесплатно дается только одна платформа МТ5). За вторую - нужно будет ежемесячно платить. Насколько я помню - так. Посмотрите подробности в личном кабинете Открытия.
Alexey Kozitsyn:

Владимир, не путайте человека!

Из документации:

https://www.mql5.com/ru/docs/basis/variables/global
Привычка неинициализировать переменные - пагубна, так как такое поведение часто приводит к появлению "черного лебедя". Поэтому нужно брать за правило - создал переменную, сразу инициализируй.