Maksim Neimerik:
Вот кусок кода:
Я бы это убрал, зачем 2 раза нормализация
BuyLevel=NormalizeDouble(Bid-(BuyProfit/(TickValue*BuyLots)*Point),Digits)+NormalizeDouble(tp2*Point(),Digits());
Сделал-бы так
BuyLevel=NormalizeDouble(Bid-(BuyProfit/(TickValue*BuyLots)*Point)+tp2*Point()),Digits());
Vitaly Muzichenko:
Я бы это убрал, зачем 2 раза нормализация
Сделал-бы так
Согласен, но проблему это же не решит...
Maksim Neimerik:
Согласен, но проблему это же не решит...
Сравнивайте не на равенство, а "не менее"
if(BuyLevel < TPB)
А вообще, здесь на форуме целая ветка посвящена "Равенство вещественных чисел"
BuyLevel не нормализован.
Maksim Neimerik:
Вот кусок кода:
Вот принты:
ДА КАК ТАК ТО??!!
Почитайте документацию о сравнении вещественных чисел.
if(NormalizeDouble(BuyLevel - TPB, _Digits) > 0)
во-первых нужно делать везде одинаковый Digits
BuyLevel=NormalizeDouble(Bid-(BuyProfit/(TickValue*BuyLots)*Point),Digits)+NormalizeDouble(tp2*Point(),Digits());
во-вторых, сложение нормализованных чисел дает НЕнормализованный результат
нужно делать так
BuyLevel=NormalizeDouble( (Bid-(BuyProfit/(TickValue*BuyLots)*Point))+(tp2*Point()) ,_Digits);
или так
if(NormalizeDouble(BuyLevel,_Digits) != NormalizeDouble(TPB,_Digits))

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вот кусок кода:
Вот принты:
ДА КАК ТАК ТО??!!