Помогите разрулить парадокс. - страница 2

 

Конструкция

while (Ans_B==false)

{

умышленно созданный вечный цикл.

Далее: Ans_B=OrderModify(...). Если модификация не удалась по каким-то причинам, то Ans_B=false и мы не выходим из цикла, а пытаемся выполнить модификацию до победного конца.

Если модификация удалась, то Ans_B получает значение true и мы выходим из цикла по return(0). 

Повторюсь: парадокс состоит в том, что модификация происходит успешно, но почему-то  Ans_B не возвращает значение true  и залипает в цикле. Еще более странным выглядит то, что

такая ситуация происходит при значении b_TP=0. Если этой переменной задать другое (не нулевое) значение, то все шуршит без вопросов. 

 
AlexeyVik:

1. Догадайся сам надо-ли ставить в условие для модификации ордера проверку значения тейка.

2. Если при модификации ордера сервер вернул ошибку #1 то Ans_B никак не может стать true

3. Что на что менял? Если всё работает то в чём вопрос и какая проблемка осталась?

Проблема в следующем. 

В моем понимании возможно только два варианта: либо модификация выполняется успешно и OrderModify() возвращает true,

либо ордер не модифицируется и возвращает false. У меня же получается, что ордер модифицируется (!!!) успешно, но сервер возвращает ошибку 1 и Ans_B=false.

 
Кладите результат выполнения функции в переменную и выводите её в принт, для проверки что возвращается.
 
nys2000:

Проблема в следующем. 

В моем понимании возможно только два варианта: либо модификация выполняется успешно и OrderModify() возвращает true,

либо ордер не модифицируется и возвращает false. У меня же получается, что ордер модифицируется (!!!) успешно, но сервер возвращает ошибку 1 и Ans_B=false.

Я балдею...

Потому и false что модифай не произведён и сервер вернул ошибку 1

 
AlexeyVik:

Я балдею...

Потому и false что модифай не произведён и сервер вернул ошибку 1

В том-то и проблема, в что в терминале ордер МОДИФИЦИРОВАН (!!!), с новыми параметрами. А возвращает false (???)
 
nys2000:
В том-то и проблема, в что в терминале ордер МОДИФИЦИРОВАН (!!!), с новыми параметрами. А возвращает false (???)
Какие параметры были и на какие модифицируешь ордер???
 
AlexeyVik:
Какие параметры были и на какие модифицируешь ордер???
Были: стоп-лосс =0,  тейк-профит - 600 пунктов от цены. Модификация: тейк-профит = 0
 

Вот о чём и говорю тебе уже не первый день.

Ans_B == false

while(Ans_B == false) // пока Ans_B = false

 {
  Ans_B = OrderModify(***********); // при первом модифае сервер вернул true 

 }

И после этого, тейк-профит ордера уже равен нулю..., но на следующем тике опять вызывается OrderModify() и сервер возвращает false и ошибку 1

 
AlexeyVik:

Вот о чём и говорю тебе уже не первый день.

И после этого, тейк-профит ордера уже равен нулю..., но на следующем тике опять вызывается OrderModify() и сервер возвращает false и ошибку 1


Модификация ордера с теми же параметрами возвращает ошибку 1?
 
У вас потерялась фигурная закрывающая скобка в конце, для else.
Причина обращения: