Domanda sulla funzione OrderSelect - pagina 2

 
//+------------------------------------------------------------------+
//| Check for close order conditions                                 |
//+------------------------------------------------------------------+
void CheckForClose()
  {
   double ma;
//--- go trading only for first tiks of new bar
   if(Volume[0]>1) return;
//--- get Moving Average 
   ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//---
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
      //--- check order type 
      if(OrderType()==OP_BUY)
        {
         if(Open[1]>ma && Close[1]<ma)
           {
            if(!OrderClose(OrderTicket(),OrderLots(),Bid,3,White))
               Print("OrderClose error ",GetLastError());
           }
         break;
        }
      if(OrderType()==OP_SELL)
        {
         if(Open[1]<ma && Close[1]>ma)
           {
            if(!OrderClose(OrderTicket(),OrderLots(),Ask,3,White))
               Print("OrderClose error ",GetLastError());
           }
         break;
        }
     }
//---
  }
for(int i=0;i<OrdersTotal();i++)
 

Un nuovo tipo di arte.

Satira commerciale.

Lo adoro.

 
boopa26:

1. non ha bisogno di conoscenze di c. mql4 è funzioni diverse

boopa26 non fa perdere tempo alle persone

  1. Pensi di poter scrivere codice senza sapere come scrivere codice. Le funzioni sono irrilevanti.
    boopa26 : vuole scrivere la funzione order select per chiudere gli ordini senza cicli for o while.
    Allora perché hai appena postato del codice che usa i cicli? Ci stai facendo perdere tempo.
  2. In presenza di ordini multipli (un EA più grafici, più EA, trading manuale)
 
for(last_index_inside_trade_pool=OrdersTotal()-1;last_index_inside_trade_pool>=0;last_index_inside_trade_pool--)

   {if(OrderSelect(last_index_inside_trade_pool,SELECT_BY_POS,MODE_TRADES)==1&&
       OrderMagicNumber()==magic_number&&
       OrderType()==OP_SELL)

       OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Red);


    if(OrderSelect(last_index_inside_trade_pool,SELECT_BY_POS,MODE_TRADES)==0)

       Print("OrderSelectError: ",GetLastError());}

Perdere tempo, eh? Il codice di cui sopra sembra che io stia perdendo il tuo tempo? Uh... probabilmente no WHRoeder

questo non era un compito facile, ma il codice sopra fa chiudere gli ordini. non capisce però. sarebbe bello se il coder spiega più dettagli

cosa pensa boopa26

static int last_index_inside_trade_pool = OrdersTotal()-1

while last_index_inside_trade_pool >=0 do codice sotto. do last_index_inside_trade_pool--

il codice qui sotto trova l'ordine. controlla l'ordine. chiude l'ordine. fa GetLastError()

non capisce però

if(OrderSelect(last_index_inside_trade_pool,SELECT_BY_POS,MODE_TRADES)==1&&
 
boopa26: Perdere tempo, eh? Il codice di cui sopra ti sembra che io stia perdendo il tuo tempo?
Sì. Ho fatto due domande e tu le hai completamente ignorate.
 

Allora perché hai appena postato del codice che usa i cicli?

il codice dei cicli può essere scritto diversamente per fare lo stesso senza cicli. esempio

static int last_index_inside_trade_pool;
//below start()
last_index_inside_trade_pool=OrdersTotal()-1;

  if(OrdersTotal()>0&&
     iMA(NULL,0,1,0,MODE_SMMA,PRICE_CLOSE,1)>iMA(NULL,0,10,0,MODE_SMMA,PRICE_CLOSE,1)&&
     OrderSelect(last_index_inside_trade_pool,SELECT_BY_POS,MODE_TRADES)==1&&
     OrderMagicNumber()==99999&&
     OrderType()==OP_SELL)

    {last_index_inside_trade_pool--;
     OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Red);}

nessun ciclo ma stesso risultato. boopa26 preferisce le condizioni if a for cycles while cycles

Pensi di poter scrivere codice senza sapere come scrivere codice. Le funzioni sono irrilevanti.

So come fare if condition while cycles for cycles matematica di base. questo è un buon inizio WHRoeder. la programmazione c è la programmazione c. mql4 è mql4. PERCHE'? a causa delle FUNZIONI. mql4 fa l'esempio di programmazione c * () == etc ma non lo stesso a causa delle funzioni

 

quali interruttori ordinano la funzione di selezione da 0 a 1?

if(OrderSelect(last_index_inside_trade_pool,SELECT_BY_POS,MODE_TRADES))==1

la funzione order select passa da 0 a 1 dopo che il totale degli ordini è maggiore di zero?


documentazione

"Valore restituito

Restituisce vero se la funzione ha successo, altrimenti falso. Per ottenere le informazioni sugli errori, bisogna chiamare la funzione GetLastError()".

restituisce 1 se la funzione ha successo?

 

Amo questo ragazzo :-)

Stai scrivendo solo su questo forum o hai altri link?

Se lo fai su un palco, dove posso trovare i biglietti?

 

solo questo forum

eddie sai qualcosa sulla funzione order select?

 
boopa26:

Allora perché hai appena postato del codice che usa i cicli?

il codice dei cicli può essere scritto diversamente per fare le stesse funzioni senza cicli. esempio

nessun ciclo ma stesso risultato. boopa26 preferisce le condizioni if a for cycles while cycles

Pensi di poter scrivere codice senza sapere come scrivere codice. Le funzioni sono irrilevanti.

So come fare if condition while cycles for cycles matematica di base. questo è un buon inizio WHRoeder. la programmazione c è la programmazione c. mql4 è mql4. PERCHE'? a causa delle FUNZIONI

E ti chiedi perché il tuo codice ancora non funziona? Perché ancora non conosci le "basi", che se avessi seguito il "passo 1" e avessi imparato a codificare correttamente in "C", saresti stato molto più abile a codificare in MQL (perché è simile a C e C++)!

Non riesci nemmeno a capire le "funzioni" (passo 3)! Da quando"OrderSelect()" restituisce un numero intero, quando la documentazione dice chiaramente che restituisce un booleano? Non controlli nemmeno il risultato di "OrderClose()" o se si è verificato un errore di esecuzione in qualche parte del tuo codice!

Il tuo risultato: Ti sei ritrovato con il "carbone bruciato" e visto che ti rifiuti di seguire i nostri consigli, sprechi anche il nostro tempo!

Motivazione: