[ARCHIVIO]Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non posso andare da nessuna parte senza di te - 5. - pagina 265

 
vasabu2012:

Ragazzi, non conosco Kim, forse qualcuno esperto potrebbe rispondere in questo thread.

Lo apprezzerei molto!

Eccolo qui Kim Igor V. Ed ecco alcune funzioni utili di KimIV
 

Domanda per i professionisti: abbiamo bisogno di estrarre i dati sull'ultimo chiuso
ordine, tenere il conto dei numeri d'ordine non è possibile perché
Se vuoi ottenere i dati sull'ultimo ordine chiuso devi tenere il conto di tutti i numeri d'ordine, è impossibile perché diversi EA lavorano e tutti mettono e chiudono
Ogni EA ha il suo mago.
La domanda riguarda i dati dell'ultimo ordine chiuso nel terminale?

CHI CONOSCE LA RISPOSTA PER FAVORE!!!

 
vasabu2012:
Domanda per i professionisti: abbiamo bisogno di estrarre i dati dall'ultimo chiuso
ordine, tenere il conto dei numeri d'ordine non è possibile perché
Ho alcuni EA che lavorano e tutti mettono e chiudono
Ogni EA ha il suo mago.
Ladomanda riguarda i dati dell'ultimo ordine chiuso nel terminale?

Non sono uno scienziato, ma se state cercando l'ultimo ordine, trovatelo in base al tempo...
 
SPECIFICAMENTE COME?
 
Come faccio a far funzionare un EA non solo sulla demo?
File:
sovetnik.ex4  31 kb
 
sergio7:
come faccio a far funzionare un EA non solo sulla demo?
Quello che hai postato qui - NULLA
 
sergio7:
Come faccio a far funzionare un EA non solo sulla demo?

Non è il codice sorgente! Dovrebbe essere mq4, non eh4!
 
paladin80:
Quello che avete postato qui non è NULLA.


Lo stesso intruso in un altro thread:

sergio704.04.2013 21:04
Aiuta a far funzionare l'EA non solo sulla demo.
File allegati:
tpyokfcx.ex4(30,27 KB)
 

Ho deciso di controllare le librerie scritte daTarasBy. Ho iniziato con questohttps://www.mql5.com/ru/code/10659

Ci sono alcune domande. Sarò coerente. Per esempio:

//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//|  Автор : TarasBY, taras_bulba@tut.by                                              |
//+-----------------------------------------------------------------------------------+
//|        Получаем торговую информацию по символу                                    |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
void fGet_MarketInfo (string fs_Symbol, int fi_Ticket = 0)
{
//----
         if (fs_Symbol != bs_Symbol || fi_Ticket < 0)
         {
                  if (fi_Ticket > 0)
                  {
                     bs_Symbol = OrderSymbol();
                  }
                  else
                  {
                     bs_Symbol = fs_Symbol;
                  }
                  if (bs_Symbol == Symbol())
                  {
                      bi_SymDigits = Digits;
                      bd_SymPoint = Point;
                  }
                  else
                  {
                      bi_SymDigits = MarketInfo (fs_Symbol, MODE_DIGITS);
                      bd_SymPoint = MarketInfo (fs_Symbol, MODE_POINT);
                  }
        if (bd_SymPoint == 0.0)
        {
           bd_SymPoint = fGet_Point (fs_Symbol);
        }
                  bd_ProfitMIN = NDP (ProfitMIN_Pips);
         }
         if (fi_Ticket > 0)
         {
            fGet_OrderDetails (fi_Ticket);
         }
    //---- Получаем текущие цены по инструменту
    RefreshRates();
    bda_Price[0] = NDD (fGet_TradePrice (0, bb_RealTrade, bs_Symbol));
    bda_Price[1] = NDD (fGet_TradePrice (1, bb_RealTrade, bs_Symbol));
    bd_Spread = NDD (bda_Price[1] - bda_Price[0]);
//----
}

Possiamo vedere nel parametro della funzione stessa:

fi_Ticket = 0

Di solito tali funzioni sono chiamate già dopo la selezione dell'ordine, il che significa che avranno un biglietto. Perché allora dovremmo assegnare un valore predefinito di zero?

Il passo successivo è ancora più interessante:

if (fs_Symbol != bs_Symbol || fi_Ticket < 0)
{
   if (fi_Ticket > 0)
   {
      bs_Symbol = OrderSymbol();
   }
   else
   {
     bs_Symbol = fs_Symbol;
                  }
                  if (bs_Symbol == Symbol())
                  {
                      bi_SymDigits = Digits;
                      bd_SymPoint = Point;
                  }

La variabile fs_Symbol viene immediatamente confrontata con bs_Symbol.

Ilbs_Symbol di cui sopra non è stato inizializzato, dove viene chiamata lafunzionefGet_MarketInfo()stessa. E comunque a cosa serve questo bs_Symbol?

anche nella condizione:

if (fs_Symbol != bs_Symbol || fi_Ticket < 0)

condizione, sefi_Ticket < 0, allora il prossimo...

if (fi_Ticket > 0)
{
   bs_Symbol = OrderSymbol();
}

e questo già contraddice la condizione. All'inizio del codice deve valere la condizionefi_Ticket < 0, e poi dentro questa condizione il ticket > 0. Dov'è la logica?

Motivazione: