опять эта ошибка 130 :( - страница 2

 

 OP1=MathFloor(Close[0]*100)/100;

Цена открытия байстоп оказывается ниже текущей цены. Для селлстоп подойдет, а для байстоп больше подойдет MathCeil().

 

На всякий случай я сообщу - в чём же заключалась моя ошибка. 

 Я пытался добиться того, чтобы мой отложенный стоп-ордер выставлялся к ближайшему целому уровню, например, 1, 34; 1,35, 1,4 и т.д. То есть я стремился отсечь всё что находится после 0.00 (вместо 0.0000 или 0.00000 получить просто 0.00). С этой целью мой "пытливый" ум придумал: OP1=MathFloor(Close[0]*100)/100; 

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

Вот в чём была моя ошибка.

 
Integer:

 OP1=MathFloor(Close[0]*100)/100;

Цена открытия байстоп оказывается ниже текущей цены. Для селлстоп подойдет, а для байстоп больше подойдет MathCeil().


Спасибо.... я как раз писал  - только что сам допёр)))
 
concord99:

Спасибо.... я как раз писал  - только что сам допёр)))


Всегда рад помочь....

В вашем вопросе по поводу 0,00  и 0,00000

лучше использовать следующее

opb=NormalizeDouble(Ask,2);// Для баев
ops=NormalizeDouble(Bid,2);// Для селов

 в этом случае из цены типа 1,24569  вы получите 1,24000   круглый уровень, это будет работать на всех видах брокеров

нужно учесть что при подходе цены к 1,24000  цена может проскочить этот уровень   1,23999 и следующая котировка 1,24001 тогда ваш сигнал не сработает ....

Выход, сделать диапазон .... 

 
VOLDEMAR:



нужно учесть что при подходе цены к 1,24000  цена может проскочить этот уровень   1,23999 и следующая котировка 1,24001 тогда ваш сигнал не сработает ....



Ой ли?
 
MikeM:

Ой ли?

как понимать ?
 
VOLDEMAR:

как понимать ?

Сработает
 
Если все правильно сделать то да ...
Причина обращения: