Да, согласен, это логично.
Вот, хочу чтобы разработчики подтвердили это. Поскольку в документации об этой разнице ничего не сказано.
Дело в том, что все индикаторы строятся именно по цене Bid. А это значит, что при сравнении - надо учитывать, о какой позиции идет речь - если длинная - то брать текущую цену "как есть", а если короткая - то учитывать, что необходимо еще учесть спред.
Да, согласен, это логично.
Вот, хочу чтобы разработчики подтвердили это. Поскольку в документации об этой разнице ничего не сказано.
Дело в том, что все индикаторы строятся именно по цене Bid. А это значит, что при сравнении - надо учитывать, о какой позиции идет речь - если длинная - то брать текущую цену "как есть", а если короткая - то учитывать, что необходимо еще учесть спред.
При чем тут индикаторы?
Текущая цена позиции - это цена, по которой позиция может быть закрыта в текущий момент.
При чем тут индикаторы?
Ну, глядите:
Я сравниваю текущую цену позиции с минимумом или максимумом последних нескольких свечей. Понятное дело, что цена при этом должна быть и там, и там - одна, либо Bid, либо Ask. Я запрашиваю значение цен, нахожу максимум... И теперь - должен получить текущую цену позиции. При равенстве - произвести изменения (передвинуть СЛ). Когда позиция длинная - то никаких проблем. Начал проверять короткие позиции - СЛ не двигается. Начал разбираться... опа ! Оказывается, минимум цен никогда не равен текущей цене, потому, что минимум, максимум и цена длиной позиции считаются по Bid'y, а вот цена короткой позиции - по Ask'y.
Вот, и интересуюсь - всегда ли это так. Если всегда - то никаких проблем, просто учту такую особенность.
Текущая цена позиции - это цена, по которой позиция может быть закрыта в текущий момент.
Спасибо за информацию. Я тоже склоняюсь к этому мнению.
Но в документации об этом ничего не сказано. А хотелось бы знать точно. Поэтому я обратился с вопросом к форуму. Если здесь не получу ответ - обращусь в Сервисдеск.
- www.mql5.com
Ну, глядите:
Я сравниваю текущую цену позиции с минимумом или максимумом последних нескольких свечей. Понятное дело, что цена при этом должна быть и там, и там - одна, либо Bid, либо Ask. Я запрашиваю значение цен, нахожу максимум... И теперь - должен получить текущую цену позиции. При равенстве - произвести изменения (передвинуть СЛ). Когда позиция длинная - то никаких проблем. Начал проверять короткие позиции - СЛ не двигается. Начал разбираться... опа ! Оказывается, минимум цен никогда не равен текущей цене, потому, что минимум, максимум и цена длиной позиции считаются по Bid'y, а вот цена короткой позиции - по Ask'y.
Вот, и интересуюсь - всегда ли это так. Если всегда - то никаких проблем, просто учту такую особенность.
Спасибо за информацию. Я тоже склоняюсь к этому мнению.
Но в документации об этом ничего не сказано. А хотелось бы знать точно. Поэтому я обратился с вопросом к форуму. Если здесь не получу ответ - обращусь в Сервисдеск.
Ну, вот так и делаю.
Проблема в том, что сейчас у меня на всех демо-счетах фиксированный спред. А для полной уверенности, что возвращается именно цена Ask - надо испытать код на плавающем спреде. Соответственно, надо разбираться, какой демо-счет и у какого ДЦ открыть, чтобы в истории был плавающий спред, возможно, учитывать особенности этого ДЦ - то есть, возможны "подводные камни". Хорошо бы, если бы разработчик сразу бы подтвердил мое предположение.
Ну, не подтвердит - ничего кроме такого тестирования и не остается.
- www.mql5.com
Ну, вот так и делаю.
Проблема в том, что сейчас у меня на всех демо-счетах фиксированный спред. А для полной уверенности, что возвращается именно цена Ask - надо испытать код на плавающем спреде. Соответственно, надо разбираться, какой демо-счет и у какого ДЦ открыть, чтобы в истории был плавающий спред, возможно, учитывать особенности этого ДЦ - то есть, возможны "подводные камни". Хорошо бы, если бы разработчик сразу бы подтвердил мое предположение.
Ну, не подтвердит - ничего кроме такого тестирования и не остается.
zfs:
Текущая цена позиции отображается прямо в терминале, так что тестирование очень простое.
Нет. Это - не тестирование. Такая проверка отвечает лишь на вопрос "равна ли цена открытой позиции цене Ask в ДАННЫЙ МОМЕНТ ?".
Тестирование - это запрос у ДЦ исторических данных с плавающим спредом хотя бы за месяц (а лучше - за год), открытие случайным образом в тестере не мене сотни сделок, и проверка на КАЖДОЙ сделке, чему равна цена позиции, возвращаемой функцией PositionGetDouble(POSITION_PRICE_CURRENT)).
И очень хорошо бы получить подтверждение разработчика, что, действительно, в этой функции по длинной позиции - возвращается текущая цена Bid, а по короткой - текущая цена Ask.
И очень хорошо бы получить подтверждение разработчика, что, действительно, в этой функции по длинной позиции - возвращается текущая цена Bid, а по короткой - текущая цена Ask.
Нет. Это - не тестирование. Такая проверка отвечает лишь на вопрос "равна ли цена открытой позиции цене Ask в ДАННЫЙ МОМЕНТ ?".
Тестирование - это запрос у ДЦ исторических данных с плавающим спредом хотя бы за месяц (а лучше - за год), открытие случайным образом в тестере не мене сотни сделок, и проверка на КАЖДОЙ сделке, чему равна цена позиции, возвращаемой функцией PositionGetDouble(POSITION_PRICE_CURRENT)).
И очень хорошо бы получить подтверждение разработчика, что, действительно, в этой функции по длинной позиции - возвращается текущая цена Bid, а по короткой - текущая цена Ask.
Не надо городить огороды.
Для начала надо подумать на тему "что есть цена позиции". Лично у меня как бы и невозникало никогда вопроса "почему цена открытой SELL-позиции равняется текущему Ask-у", это как-бы само-собой разумеющееся.
Renat:
Да, действительно.
Благодарю. Теперь буду иметь ввиду.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Приветствую.
Ситуация:
Получаю текущую цену по позиции с помощью метода СPositionInfo::PriceCurrent();
Этот метод реализован как PositionGetDouble(POSITION_PRICE_CURRENT)); И в документации просто прописано, что так возвращается цена по позиции.
Пока я тестировал обработку длинных позиций - никаких проблем не было. Но на коротких позициях - код перестал работать. Оказывается, на коротких позициях данный метод возвращает какую-то другую цену, не ту, что дается в графике тестера стратегий.
После проверок выяснилось, что, оказывается, для длинных позиций мой код получает цену Bid, а для коротких - Аsk !
Вопросы:
Правильно ли я понимаю, что ВСЕГДА по запросу PositionGetDouble(POSITION_PRICE_CURRENT)) для длинных позиций возвращается текущая цена Bid, а для короткий - текущая цена Ask ?
Может быть, стоит это более конкретно указать в справке по константе POSITION_PRICE_CURRENT и в документации по методу СPositionInfo::PriceCurrent() ?