Vitalii Ananev: Это не для того что бы узнать какая ошибка, а для того что бы вывести значения переменных при которых возникает эта ошибка для последующего анализа причины ошибки. Может вы передаете в функцию модификации ордера отрицательные значения или эти значения получаются внутри спреда.
с модификацией как я написал выше ошибку победил дело не в отрицательных и ли каких либо еще значениях, а в шаге цены. Осталось победить ошибку неверной цены при открытии позиции, вот лог тестера что можете сказать
Sergey Gritsay: с модификацией как я написал выше ошибку победил дело не в отрицательных и ли каких либо еще значениях, а в шаге цены. Осталось победить ошибку неверной цены при открытии позиции, вот лог тестера что можете сказать
Зачем мне лог тестера, вы его смотрели? Вы там видите причину ошибки?
Говорю же после каждого какого либо действия с ордером вызывайте GetLastError если он больше нуля выводите значения переменных в журнал. Шаг цены можно получить SYMBOL_TRADE_TICK_SIZE
Зачем мне лог тестера, вы его смотрели? Вы там видите причину ошибки?
Говорю же после каждого какого либо действия с ордером вызывайте GetLastError если он больше нуля выводите значения переменных в журнал. Шаг цены можно получить SYMBOL_TRADE_TICK_SIZE
Видимо мы с вами не понимаем друг-друга, как получить шаг цены я знаю. Давайте попробуем решить такую задачу
вводные данные:
шаг цены инструмента 0,01 указан в спецификации инструмента
текущая цена по инструменту bid = 1209.378 ask = 1209.678
как нам открыть сделку по текущей цене если сервер ее не принимает, так как котировка приходит с шагом 0,001
Видимо мы с вами не понимаем друг-друга, как получить шаг цены я знаю. Давайте попробуем решить такую задачу
вводные данные:
шаг цены инструмента 0,01 указан в спецификации инструмента
текущая цена по инструменту bid = 1209.378 ask = 1209.678
как нам открыть сделку по текущей цене если сервер ее не принимает, так как котировка приходит с шагом 0,001
Попробуйте сравнивать последний пришедший тик с предыдущим и если изменения меньше чем указан в спецификации инструмента (в данном случае 0.01) не открывать сделку если больше то открывать.
Vitalii Ananev: Попробуйте сравнивать последний пришедший тик с предыдущим и если изменения меньше чем указан в спецификации инструмента (в данном случае 0.01) не открывать сделку если больше то открывать.
А если ни когда не придет котировка кратная шагу 0,01 или придет когда сигнал на открытие уже потерял свою актуальность. Просто суть вопроса в чем получается сервер брокера настроен не правильно. На реалтайм котировках такой ошибки не встречал, только в тестере, а из-за нее не принимаю продукт в маркет, попробуйте любой из своих советников запустить на этих инструментах на сервере MetaQuotes-Demo думаю получите аналогичную ошибку.
Sergey Gritsay: А если ни когда не придет котировка кратная шагу 0,01 или придет когда сигнал на открытие уже потерял свою актуальность. Просто суть вопроса в чем получается сервер брокера настроен не правильно. На реалтайм котировках такой ошибки не встречал, только в тестере, а из-за нее не принимаю продукт в маркет, попробуйте любой из своих советников запустить на этих инструментах на сервере MetaQuotes-Demo думаю получите аналогичную ошибку.
Возможно, что и сервер настроен неправильно. На моей практике такого не было, как правило такая ошибка встречается из за неверных параметров передаваемых при открытии или модификации позиции.
Это не для того что бы узнать какая ошибка, а для того что бы вывести значения переменных при которых возникает эта ошибка для последующего анализа причины ошибки. Может вы передаете в функцию модификации ордера отрицательные значения или эти значения получаются внутри спреда.
с модификацией как я написал выше ошибку победил дело не в отрицательных и ли каких либо еще значениях, а в шаге цены. Осталось победить ошибку неверной цены при открытии позиции, вот лог тестера что можете сказать
Зачем мне лог тестера, вы его смотрели? Вы там видите причину ошибки?
Говорю же после каждого какого либо действия с ордером вызывайте GetLastError если он больше нуля выводите значения переменных в журнал. Шаг цены можно получить SYMBOL_TRADE_TICK_SIZE
Зачем мне лог тестера, вы его смотрели? Вы там видите причину ошибки?
Говорю же после каждого какого либо действия с ордером вызывайте GetLastError если он больше нуля выводите значения переменных в журнал. Шаг цены можно получить SYMBOL_TRADE_TICK_SIZE
Видимо мы с вами не понимаем друг-друга, как получить шаг цены я знаю. Давайте попробуем решить такую задачу
вводные данные:
шаг цены инструмента 0,01 указан в спецификации инструмента
текущая цена по инструменту bid = 1209.378 ask = 1209.678
как нам открыть сделку по текущей цене если сервер ее не принимает, так как котировка приходит с шагом 0,001
Видимо мы с вами не понимаем друг-друга, как получить шаг цены я знаю. Давайте попробуем решить такую задачу
вводные данные:
шаг цены инструмента 0,01 указан в спецификации инструмента
текущая цена по инструменту bid = 1209.378 ask = 1209.678
как нам открыть сделку по текущей цене если сервер ее не принимает, так как котировка приходит с шагом 0,001
Попробуйте сравнивать последний пришедший тик с предыдущим и если изменения меньше чем указан в спецификации инструмента (в данном случае 0.01) не открывать сделку если больше то открывать.
А если ни когда не придет котировка кратная шагу 0,01 или придет когда сигнал на открытие уже потерял свою актуальность. Просто суть вопроса в чем получается сервер брокера настроен не правильно. На реалтайм котировках такой ошибки не встречал, только в тестере, а из-за нее не принимаю продукт в маркет, попробуйте любой из своих советников запустить на этих инструментах на сервере MetaQuotes-Demo думаю получите аналогичную ошибку.