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

 
Vladimir Karputov:

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

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

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

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

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

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

Я пока не запускал на реальном и демо счете, только в режиме тестировщика. И выходит ошибка с Invalid order type
 
post_ek:
Я пока не запускал на реальном и демо счете, только в режиме тестировщика. И выходит ошибка с Invalid order type
Я прогонял в тестере - нет такой ошибки. Опишите как Вы тестировали: режим генерации тиков, депозит, плечо, период и предоставьте журнал тестера. Также укажите какой билд Вы используете - я проверял на 1486.
 
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 в Открытии или нет?
Причина обращения: