Нестабильность тестера советников - страница 2

 
goldtrader писал(а) >>

Пытаемся резюмировать:

Это - гадание.

Нужен внятный ответ разработчиков.

 
goldtrader писал(а) >>

Хорошо если дождёмся этих комментариев. :(

Услышать бы хотя бы практические рекомендации от корифеев. Пытаюсь резюмировать:

Нужно нормализовать ЛЮБЫЕ цены, подаваемые в функции OrderSend(), OrderClose(), OrderCloseBy() и OrderModify()

Так?

во избежание трудно определяемых ошибок, при переносе на терминал неизвестной компании у клиента. при использовании точных цен - да. при сравнениях необязательно.

 
PapaYozh писал(а) >>

Это - гадание.

Нужен внятный ответ разработчиков.

Кто б спорил - конечно нужен. Дождёмся ли?

Ещё вопрос к разработчикам есть:

- почему при заданном параметре Slipage 1п в OrderSend()/OrderClose() реальное открытие/закрытие бывает с проскальзыванием 3-5 и более пунктов?

 

аналогичный вопрос: почему при слипаже в 100 пип и больше, на быстром рынке невозможно открыть ордер, хотя цена не выходит за пределы слипажа ?

 
xrust писал(а) >>

аналогичный вопрос: почему при слипаже в 100 пип и больше, на быстром рынке невозможно открыть ордер, хотя цена не выходит за пределы слипажа ?

Этот вопрос немного проще т.к. на него уже давал ответ Ренат:

Максимальное отклонение не действует, если на сервер приходит явно и сильно устаревшая заявка (что часто бывает на сильных движениях).

В этом случае торговый сервер сам безусловно отдает реквот даже без транслировании заявки дилеру. То есть, сервер получает устаревшую цену в торговой заявке и говорит клиенту:

"Дружище, ты пришел с совсем непонятной ценой. Я не буду тебе слать прямой отказ, но вот тебе текущие цены - подумай еще раз и прими новое решение".

Фактически максимально допустимый слиппаж (допустимое отклонение) в функции OrderSend не более 5 пунктов (или 1-2 спреда). БОльшее значение все равно не будет принято во внимание на торговом сервере при анализе цен.

при при вполне достаточном слипаже (10-15) появляются реквоты, особенно если попытка открыться происходит по "удачной" для меня цене

Реквот при слиппаже 10 однозначно означает реально устаревшую (но "удачную" для трейдера) цену. Как раз описываемый мною случай.

 
xrust писал(а) >>

аналогичный вопрос: почему при слипаже в 100 пип и больше, на быстром рынке невозможно открыть ордер, хотя цена не выходит за пределы слипажа ?

Ответ на этот вопрос был. Слипаж не может быть больше 10 пунктов. Ответ на этот вопрос был когда-то сделан. Но что такое 10 пунктов для кроссов.

 

дело не в этом, даже если колебания цены не выходят за пределы максимально допустимого слипажа 5-10 пип, все равно есть проблема открыть ордер, или закрыть, а на пятизнаке и подавно...

 
xrust >>:

во избежание трудно определяемых ошибок, при переносе на терминал неизвестной компании у клиента. при использовании точных цен - да. при сравнениях необязательно.


к сожалению и при сравнениях тоже надо ...

у меня часто вылетает в условии не туда при таких сравнениях

OrderStopLoss()==0.

Поэтому нормализую АБСОЛЮТНО ВСЁ. Причём с учётом тиксайз... случаи разные бывают.

ND(OrderStopLoss())==ND(0)

А при нормализации я уже давно забыл, что такое проблемы с открытием/закрытием... зачем голову ломать, когда проще дописать пару лишних буковок.

 
sergeev писал(а) >>

к сожалению и при сравнениях тоже надо ...

у меня часто вылетает в условии не туда при таких сравнениях

OrderStopLoss()==0.

Поэтому нормализую АБСОЛЮТНО ВСЁ. Причём с учётом тиксайз... случаи разные бывают.

ND(OrderStopLoss())==ND(0)

А при нормализации я уже давно забыл, что такое проблемы с открытием/закрытием... зачем голову ломать, когда проще дописать пару лишних буковок.

совершенно согласен. я имел ввиду сравнение по модулю типа if( x > y), если говорить осравнении по абсолютному значеню, то нормализовать надо, тем более что вызов функции очень прост и надо дописать лишь nd(), так что даже переделка других своветников не занимает много времени и сил...

 

Но это заслуга "языка". ;)

А ведь чуть изменив логику его реализации - тысячи ошибок исчезли....

взять бы ту же операцию деления. Кто мешает для этой операции задействовать промежуточный тип не зависящий от тира операндов, а double...

;)

Причина обращения: