Ошибки, баги, вопросы - страница 2492
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Хочу ещё раз поднять тему "проблема средневзвешенной цены" в описании CPositionInfo, команды PriceOpen()
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Сервисдеск. Жалобы, предложения.
Francuz, 2019.06.13 11:36
Ошибка в описании стандартной библиотеки
Конкретно в описании CPositionInfo, команды PriceOpen()
https://www.mql5.com/ru/docs/standardlibrary/tradeclasses/cpositioninfo/cpositioninfopriceopen
Возвращаемое значение не "цена открытия", а "средневзвешенная цена открытия"
Для примера:
Открываем позицию на 1 лот по цене 61532. PriceOpen() в этом случае вернёт 61532.
Дополнительно увеличиваем позицию ещё на 1 лот по цене 61615. PriceOpen() в этом случае вернёт средневзвешенную цену двух лотов 61573,5, а не цену открытия позиции.
Хотелось бы видеть не только исправление одного слова в описании, но и краткое пояснение-иллюстрацию.
Проблема средневзвешенной цены открытия имеет неприятные последствия.
Дело в том что если позицию увеличить до количества при котором невозможно деления без остатка, то начинают делится копейки, что при округлении происходит их потеря. И в итоге в конце не сходится баланс. Все сделки производятся сугубо целыми рублями, а итоговый баланс не сходится из-за потерянных копеек.
Схема воспроизведения ошибки с потерей копейки в балансе, даже при ручной торговле.
Дополнительно разъясню что за ошибка:
Столбец "А" - это фактаж (цены совершения сделок). Столбец "Б" это производное от столбца "А" с потерей точности. Любой квалифицированный бухгалтер пояснит, что сводить баланс нужно только по фактажу, и ни в коем случае не по производным с потерей точности.
Копейка не просто неверно отображается в терминале, она реально перемещается между счетами клиента и брокера. Любой юрист или налоговый инспектор вам пояснит, что это "залёт" и данный факт может быть предметом юридического разбирательства между трейдером и брокером.
Подтверждая утверждение, что копейки реально потерянны, является проведение коррекции спустя значительное время. Что за коррекция? Почему такими странными объёмами?
Хочу ещё раз поднять тему "проблема средневзвешенной цены" в описании CPositionInfo, команды PriceOpen()
Это проверим.
Вы нам очень поможете, если дадите в личке временно инвесторский пароль на пару часов. Мы хотим проверить цены и возможные округления в таблице ваших сделок. К вам обратятся.
Коррекция - это другое.
Это проверим.
Вы нам очень поможете, если дадите в личке временно инвесторский пароль на пару часов. Мы хотим проверить цены и возможные округления в таблице ваших сделок. К вам обратятся.
Коррекция - это другое.
Открытие Брокер
По горячим следам: https://www.mql5.com/ru/signals/596871
Если мне не изменяет память, то несколько лет назад мы с Вами обсуждали уже эту особенность, правда речь тогда шла о том, какую перегрузку лучше вызывать ближайшую по наследованию или более точную по параметрам.
Да... помню... С++ использует ближайшую по наследованию перегрузку - чтобы последующие изменения в базовых классах (появление новой перегрузки - более точной по параметрам) не влияли на порядок вычислений в производных (не вызывалась бы эта новая перегрузка)
Обратите еще пожалуйста внимание на следующее:
Казалось бы мелочь - напиши
и радуйся, но смысл как раз в том что не нужно дважды и более раз писать b = 2, а значит при последующем изменении на допустим: b = 3 - нужно будет поменять только в одном месте (а не в двух и более), а значит (с учетом распределенности программы) нельзя забыть это сделать в других местах
Подскажите
ERR_INDICATOR_DATA_NOT_FOUND
4806
Запрошенные данные не найдены
При этом индикатор на графике отображается нормально.
Куда копать?
Куда копать?
Нужно подождать - кабинка занята (данные на момент обращения не были рассчитаны)
Словил ошибку
...tested with error "critical runtime error 502 in OnTester function (array out of range, module ....ex5, file ....mqh, line 237, col 51...Вот сам код:
При i = 6 correcton_index7[i+2] (i+2=8) ну никак не может выйти за пределы массива. Тем более что аналогичный предыдущий цикл не ругается. Чего я не вижу?