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

 

"OrderSelect()" возвращает целое число, когда в документации ясно сказано, что он возвращает булево число?

Булево - это 0 или 1

Вы даже не проверяете результат "OrderClose()" или произошла ли ошибка во время выполнения! Я напишу код после того, как пойму order select FMIC.

программирование на c важно для понимания. довольны?

 
boopa26:

"OrderSelect()" возвращает целое число, когда в документации ясно сказано, что он возвращает булево число?

Булево - это 0 или 1

Вы даже не проверяете результат "OrderClose()" или произошла ли ошибка во время выполнения! Да, но это происходит после FMIC.

Это уже булево, вам не нужно сравнивать его ни с чем, будь то другая булева константа или типизированный Integer. Вы не должны жестко кодировать внутренние представленные булевы значения! Вы должны использовать "true" или "false", но в идеале только при инициализации переменной, а не в сравнениях.

if(  OrderSelect( ... ) )  // instead of "if( OrderSelect( ... ) == true )"
if(  OrderSelect( ... ) )  // instead of "if( OrderSelect( ... ) == 1 )"
if( !OrderSelect( ... ) )  // instead of "if( OrderSelect( ... ) == false )"
if( !OrderSelect( ... ) )  // instead of "if( OrderSelect( ... ) == 0 )"

Если бы вы потрудились выучить язык "С", вы бы это знали!

 

вот мой вопрос

что переключает функцию order select с false на true?

Я понимаю ! равно не

примеры

if not order select или if order select BUT

по умолчанию order select равен 0, так что переключает order select с 0 на 1?

документация гласит

"Возвращаемое значение

Возвращает true, если функция успешна".

Этой информации недостаточно для понимания.


спасибо FMIC

 
boopa26:

только этот форум

Эдди, ты знаешь что-нибудь о функции выбора заказа?

Конечно, знаю.

Я учился у других программистов и умею читать книги и руководства по MQL.

Но самое главное: я научился пользоваться отладчиком. Это сэкономило мне много времени на поиск ошибок в аналитике и кодировании.

 
молодец Эдди
 
boopa26: Я понимаю ! равно не

Если вы понимаете, то почему вы не сделали это правильно в первую очередь!

boopa26 : вот мой вопрос

что переключает функцию order select с false на true?

примеры

if not order select или if order select BUT

по умолчанию order select равен 0, что переключает order select с 0 на 1?

документация гласит

"Возвращаемое значение При успешном выполнении функции возвращается true".

мне недостаточно информации для понимания

Нет ни "по умолчанию", ни переключения с одного значения на другое! Она либо успешно выбирает заказ и возвращает "true", либо терпит неудачу, возвращая "false", и вы должны проверить код ошибки, чтобы выяснить причину!

 
  1. boopa26: хочет написать функцию выбора ордеров, чтобы закрывать ордера без циклов for или while.
    Затем постит код с циклами
  2. boopa26: сейчас читаю документацию https://docs.mql4.com/trading/orderselect
    Постит вопросы до прочтения.
  3. boopa26:

    1. не требуется знание языка си. mql4 - это различные функции

    3. уже читаю документацию

    4. уже написанный код

    Затем противоречит сам себе по поводу документации. и становится спорным.
  4. Musngi забанили, а boopa26 внезапно появился. Совпадение? Я так не думаю.

Пожалуйста, не кормите тролля. Когда вы отвечаете, вы даете троллю власть. Когда вы игнорируете тролля, он голодает по вниманию и в конце концов умирает.

 

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

Этот код циклирует order select для поиска открытых ордеров.

static int a;

//cycle order select

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

   a++;

//close open order

if(OrdersTotal()>0&&
   OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==1&&
   OrderMagicNumber()==magic_number&&
   OrderType()==OP_BUY&&
// close order signal)
  
   OrderClose(OrderTicket(),lots_2,Bid,3,Blue);

https://docs.mql4.com/trading/orderselect

https://docs.mql4.com/trading/orderprofit

возможно это

if(OrdersHistoryTotal()>0&&
   b<OrdersHistoryTotal()&&
   OrderSelect(b,SELECT_BY_POS,MODE_HISTORY)==0)

   b++;
 
static int a;

//cycle order select

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

   a++;

//close open order

if(OrdersTotal()>0&&
   OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==1&&
   OrderMagicNumber()==magic_number&&
   OrderType()==OP_BUY&&
// close order signal)
  

   OrderClose(OrderTicket(),lots_2,Bid,3,Blue);

static int a;

почему вы не инициализируете переменную a и почему она статическая?


OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==0)

Вам уже говорили, что нужно использовать true или false, а не 1 или 0.

OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==false)
// OR
!OrderSelect(a,SELECT_BY_POS,MODE_TRADES))


Вы не выполняете циклический перебор заказов

 
Keith Watford:
static int a;

//cycle order select

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

   a++;

//close open order

if(OrdersTotal()>0&&
   OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==1&&
   OrderMagicNumber()==magic_number&&
   OrderType()==OP_BUY&&
// close order signal)
  

   OrderClose(OrderTicket(),lots_2,Bid,3,Blue);

static int a;

иу не инициализирует переменную a и почему она статическая?


OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==0)

Вам уже говорили, что вы должны использовать true или false, а не 1 или 0

OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==false)
// OR
!OrderSelect(a,SELECT_BY_POS,MODE_TRADES))


Вы не перебираете порядки

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

нет никакой разницы 1 или 0. true или false

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