Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
код вставляется, не прикрепляется файл
Внесли исправления.
Попробуйте еще раз.
Виснет он из-за бесконечного цикла.
У вас есть единственный выход из цикла - по break. Но брейк у вас возникает при выполнении определенного условия. Один из компонентов
Внутри функции вы каждый раз ЗАНОВО получаете хэндл индикатора и без проверки на готовность данных копируете их.
Предложение.
1. Вынесите переменную хэндла на глобальный уровень.
2. Получайте хэндл индикатора в OnInit (у вас все равно параметры параболика не меняются).
3. Перед тем как скопировать данные из индикаторного буфера проверяйте их готовность (расчитанность) - функция BarsCalculated(Parabolic) вам в помощь.
4. Организуйте выход из цикла, если п. 3 не выполняется.
2. Это в тестовом примере не меняется, а на самом деле эта функция используется все время с различными параметрами, поэтому получаю хэндл не в OnInit
3. Хорошо сделаю проверку, просто не очень понимаю смысл зачем это нужно, условие такое, что оно не может не выполниться, серия из точек параболика это ближайшие бары, они однозначно должны закачиваться(и вобще, я так понял история закачивается в тестер за год до указанной даты начала тестирования). Реально это нормально работает. В МQL4 работает и реально и в тестере(правда там не отдельная функция параболика а встроенная...)
Внесли исправления.
Попробуйте еще раз.
2. Это в тестовом примере не меняется, а на самом деле эта функция используется все время с различными параметрами, поэтому получаю хэндл не в OnInit
3. Хорошо сделаю проверку, просто не очень понимаю смысл зачем это нужно, условие такое, что оно не может не выполниться, серия из точек параболика это ближайшие бары, они однозначно должны закачиваться(и вобще, я так понял история закачивается в тестер за год до указанной даты начала тестирования). Реально это нормально работает. В МQL4 работает и реально и в тестере(правда там не отдельная функция параболика а встроенная...)
3. По поводу зачем оно нужно уже неоднократно обсуждалось и описано в справке (https://www.mql5.com/ru/docs/series/barscalculated).
Примечание
Функция полезна в тех случаях, когда необходимо получить данные индикатора сразу после его создания (получения хэндла индикатора).
Это как раз Ваш случай.
Индикатор расчитывается на данных баров. Бары-то есть, а вот расчитанных данных может и не быть.
Это означает, что данная позиция является результатом нескольких сделок по данному инструменту. Как следствие, Вы видите средневзвешенную цену позиции.
3. По поводу зачем оно нужно уже неоднократно обсуждалось и описано в справке (https://www.mql5.com/ru/docs/series/barscalculated).
Это как раз Ваш случай.
Индикатор расчитывается на данных баров. Бары-то есть, а вот расчитанных данных может и не быть.
Да с BarsCalculated получилось, спасибо
ну и все равно по логике это не правильно, что реально работает а в тестере нет. Нужно что бы все проверки уже в тестер были встроены, и если запрос идет к каким-то данным а их нет, то выдавалась ошибка. А то бары есть, а расчитать данные тестер почему-то не может и молчит...
я думал средневзвешенная цена относиться только к техническим индикаторам.. то то я думаю мне в тестере при прогонах не всегда удаеться поджаться в 0.. иногда несколько центов все ж торчат
Средневзвешенная по объему. Например, было три сделки по EURUSD:
Имеем в итоге позицию по EURUSD объемом 0.6 лота, но по какой цене?
Средневзвешенная по объему. Например, было три сделки по EURUSD:
Имеем в итоге позицию по EURUSD объемом 0.6 лота, но по какой цене?
А не проще будет округлить цену до уровня точности валюты на уровне сервера? Ведь по любому советнику придется мучится с подгонкой в точности и ценой за пункт..
Зачем советнику мучиться? Эта средневзвешенная цена нужна будет для расчетов при закрытии позиции. Советнику она, по большому счету, ни к чему. Закрывать позицию все равно придется по нормальной цене с нужным количеством знаков для данного символа.
В некоторых случаях приходится иметь нормализованное значение цены, в не зависимости от того как эта цена получена.
Проще ведь сразу со стороны сервера нормализацию сделать, раз сервер все равно цену открытия пересчитывает (по крайней мере на мой взгляд).
Кстати, раз речь зашла о средневзвешенной цене и неттенговой платформе.
Насколько я понимаю есть две модели урезки (частичного закрытия) убыточной позиции, которая была ранее долита:
1. Не фиксировать убыток по частичному закрытию, а просто пересчитать цену открытия (если не ошибаюсь так делает ФК);
2. Оставить цену открытия без изменения, зафиксировав убыток.
Подобное качается и переворота убыточных позиций
Хочется узнать мнение разработчиков о том какой способ в конечном счете будет стандартизирован в MT5, если можно почему...