Вопрос по функции OrderSelect - страница 4

 
boopa26:

static int a; sits above start(){ GLOBAL VALUE

нет разницы 1 или 0. истина или ложь

Я увеличиваю значение a после того, как условия вступают в силу


Когда вы просите помощи у других, вы должны сделать свой код максимально простым для чтения, это включает использование true или false с bools.

Использование чисел может привести к ошибкам, подобным этой


   bool a=1;
   bool b=-1;
   if(a+b==0)
      Print("a+b equals 0");
   else
      Print("a+b does not equal 0");
  


Вы увеличиваете значение a только в случае сбоя OrderSelect, где оно сбрасывается?

В вашем коде нет цикла, где он перебирает заказы?

 
Keith Watford:


Когда вы просите помощи у других, вы должны сделать свой код максимально простым для чтения, что включает в себя использование true или false с bools.

Использование чисел может привести к ошибкам, подобным этой


   bool a=1;
   bool b=-1;
   if(a+b==0)
      Print("a+b equals 0");
   else
      Print("a+b does not equal 0");
  


Вы только увеличиваете a, если OrderSelect не работает, где он сбрасывается?

У вас нет цикла в коде, где он перебирает заказы?

Вы увеличиваете только a, если OrderSelect не работает, где происходит сброс?

a не сбрасывается

У вас в коде нет цикла, где он перебирает заказы?

Ошибкой было написать cycle, но код имеет значение, а не комментарии.

 

Ну, вы, очевидно, знаете все.

Почему вы просите о помощи?

 
Keith Watford:

Ну, ты, очевидно, знаешь все.

Почему вы просите о помощи?

Я могу сделать

if(OrdersHistoryTotal()>0&&
   OrderProfit()<0)

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

 
boopa26:

Я могу сделать

if(OrdersHistoryTotal()>0&&
   OrderProfit()<0)

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

Это не работает, так как вы не выбрали ордер. Я не могу придумать причину, по которой эти два теста должны находиться в одном if() без OrderSelect().
 
Keith Watford:
Это не работает, поскольку вы не выбрали заказ. Я не могу придумать причину, по которой эти два теста должны находиться в одном if() без OrderSelect().

if(OrdersTotal()>0&&
   a<OrdersTotal()&&
   OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==0)

   a++;

if(OrdersHistoryTotal()>0&&OrderProfit()<0)

читать сейчас
 

Почему вы показываете

if(OrdersTotal()>0&&
   a<OrdersTotal()&&
   OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==0)

   a++;

в ответ на комментарий

if(OrdersHistoryTotal()>0&&
   OrderProfit()<0)

?

Они явно не имеют ничего общего друг с другом

 
Keith Watford:

Почему вы показываете

if(OrdersTotal()>0&&
   a<OrdersTotal()&&
   OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==0)

   a++;

в ответ на комментарий

if(OrdersHistoryTotal()>0&&
   OrderProfit()<0)

?

Они явно не имеют ничего общего друг с другом

тогда почему он делает то, что делает? Он работает в моем терминале mt4
 
boopa26:
Тогда почему он делает то, что делает? Он работает в моем терминале mt4.

Возможно, он что-то и делает, но я очень сомневаюсь, что он делает то, что вы ожидаете.

Иначе зачем вы задаете вопрос?

Перепишите код логическим образом, чтобы отдельные блоки работали друг с другом. Используйте цикл для перебора ордеров и не используйте глобально объявленную переменную для индекса ордера.

 
Keith Watford:

Возможно, он что-то и делает, но я очень сомневаюсь, что он делает то, что вы ожидаете.

Иначе зачем вы задаете вопрос?

Перепишите код логическим образом, чтобы отдельные блоки работали друг с другом. Используйте цикл для перебора заказов и не используйте глобально объявленную переменную для индекса заказа.

Хорошо. Спасибо