Как нормализовать цену?

 
Как нормализовать цену кратной 5 пунктам для корректной установки отложенных ордеров бай и селл стоп?
 
FxPro2 писал(а) >>
Как нормализовать цену кратной 5 пунктам для корректной установки отложенных ордеров бай и селл стоп?

А в чем принципиальное отличие от 4-х пунктов?, я делаю также....

 
эксперт пытаестся по сигналу войти по цене например 8080,3 а котировки идут кратно 5 и эксперт есттественно дает ошибку так как должен войти по цене кратной 5 тоесть 8080,5 или 8080,0
 
FxPro2 писал(а) >>
эксперт пытаестся по сигналу войти по цене например 8080,3 а котировки идут кратно 5 и эксперт есттественно дает ошибку так как должен войти по цене кратной 5 тоесть 8080,5 или 8080,0

Ясно, сразу не понял. А откуда эксперт берет цену 8080,3 такой цены нет и небыло? Цена должна браться с рынка, и нормализация это обычно касается кол-ва знаков после запятой, в Вашем случае это будет скорее округляться по методу угадайки, попаду в рынок или нет...

 

Тож такая проблема иной раз встает. Эксперт торгует Даксом, Футси или Доу (тут вообще кратность -25)

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

Надеюсь, понятно сказал...

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

Как это сделать ? Мож кто уже решал проблему?

 
rid писал(а) >>

Тож такая проблема иной раз встает. Эксперт торгует Даксом, Футси или Доу (тут вообще кратность -25)

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

Надеюсь понятно сказал...

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

Как это сделать ? Мож кто уже решал проблему?

Математика, должна быть примерно такая, берем цену которую собираемся выставить в качестве стопа, пусть будет 83.58, TICKSIZE 0.25, берем 83.58/0.25=334.32, либо округляем до ближайшего целого, либо нормализуем до 0 знаков после запятой. Получилось 334, обратная операция 334*0.25=83.5 вот искомая цена. Через зад, но более умного сегодня в голову не лезет)

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

 
Благодарю, Figar0, будем думать...
 
//---------------------------------------------------------------------
// Нормализация цены с учетом шага изменения котировок:
//---------------------------------------------------------------------
double
NormalisePrice( string _symbol, double _org_price )
{
double norm_price = _org_price;
double point = MarketInfo( _symbol, MODE_POINT );
int digits = MarketInfo( _symbol, MODE_DIGITS );

double min_price_step = NormalizeDouble( MarketInfo( _symbol, MODE_TICKSIZE ) / point, 0 ); // минимальный размер шага изменения котировок, пунктов

norm_price = NormalizeDouble( NormalizeDouble(( NormalizeDouble( _org_price / point, 0 )) / min_price_step, 0 ) * min_price_step * point, digits );


return( norm_price );
}
Попробуйте вот так. Проверено для валют, индексных и товарных фьючерсов.
 
спасибо. обязатеьлно проверю
Причина обращения: