Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 958

 

Sono molto confuso riguardo agli ordini pendenti e alle posizioni quando accedo alla cronologia delle transazioni.

Se un ordine in sospeso è scattato e si è spostato in una posizione ed è stato chiuso con successo (deal), allora come viene memorizzato nella cache della storia come un ordine o come una posizione?

Come lo affronto come posizione o come ordine attraverso lo stato?

 
vladzeit:

Sono molto confuso riguardo agli ordini pendenti e alle posizioni quando accedo alla cronologia delle transazioni.

Se un ordine in sospeso è scattato e si è spostato in una posizione ed è stato chiuso con successo (deal), allora come viene memorizzato nella cache della storia come un ordine o come una posizione?

Come lo affronto come posizione o come ordine attraverso lo stato?

Studiare questa sezione della documentazione dovrebbe aiutare.

Prima un ordine, poi un trade, poi una posizione. Poi se è un conto di compensazione più ordini e accordi e alla fine un ordine nella direzione opposta con un lotto uguale alla posizione esistente, da esso un accordo e nessuna posizione. È chiusa e non è nella storia, ci sono solo ordini e operazioni che hanno creato, cambiato e chiuso questa posizione. Ma tutti sono collegati all'ID della posizione.
Документация по MQL5: Торговые функции / HistorySelectByPosition
Документация по MQL5: Торговые функции / HistorySelectByPosition
  • www.mql5.com
Не следует путать между собой ордера из торговой истории и действующие отложенные ордера, которые отображаются на вкладке "Торговля" в панели "Инструменты". Список ордеров, которые были отменены или привели к проведению торговой операции, можно посмотреть  в закладке "История" на панели "Инструменты" клиентского терминала. Функция...
 

4758

Mancato calcolo del profitto o del margine


Come si può risolvere questo problema?

 
Alexey Viktorov:

Studiare questa sezione della documentazione dovrebbe aiutare.

Prima un ordine, poi un trade, poi una posizione. Poi, se è un conto di compensazione più ordini e accordi e alla fine un ordine nella direzione opposta con un lotto uguale alla posizione esistente, da esso un accordo e nessuna posizione. È chiusa e non c'è nessuna posizione nella storia, ci sono solo ordini e operazioni che hanno creato, cambiato e chiuso questa posizione. Ma tutti sono collegati all'ID della posizione.

Alexey. Ho letto il primer, ma tu hai spiegato tutto con le tue parole in modo più semplice di come era scritto lì... Tutto è chiaro e comprensibile. Grazie)

 
vladzeit:

Alexey. Ho letto il primer, ma tu hai spiegato tutto con le tue parole in modo più semplice di come era scritto lì... Tutto è chiaro e comprensibile. Grazie)

Per favore.




Ma ho detto "studiare la sezione", non leggerla. È tutto lì, ma sparso con descrizioni di varie funzioni di questa sezione, è solo documentazione, non un libro per principianti. Ci sono anche altri articoli. Sicuramente ce ne sarà uno che ne parla.

 
Alexey Viktorov:
Per favore.




Ma ho detto "studiare la sezione", non leggerla. C'è tutto, ma disseminato di descrizioni delle varie funzioni di questa sezione, è solo documentazione, non un primer per principianti. Ci sono anche altri articoli. Sicuramente ce ne sarà uno che ne parla.

Hai ragione, dovrei studiare, non solo leggere, ciò che ha suscitato interesse al momento. Ma sto seguendo le mie emozioni e il mio desiderio di ottenere un risultato rapido e pratico, implementato sotto forma di un algoritmo funzionante.

E sto cercando di ottenere da mql5 solo ciò di cui ho bisogno per risolvere questo stretto compito... Come risultato ho un sacco di lacune nell'istruzione)

Mi sembra già di saper riconoscere le lettere, ma non vogliono formare parole e frasi).

È anche difficile perché non c'è un libro di testo preciso con esempi ed esercizi, e la Guida è progettata per coloro che hanno già una certa esperienza di programmazione e infatti spiega solo la propria sintassi.

Naturalmente ci sono molte informazioni sul forum, ma tutto è molto sparso e a volte non affidabile a causa dei nuovi cambiamenti in mql5.

Probabilmente avrei dovuto iniziare la mia conoscenza con mql4... Ci sono ovviamente altri tutorial lì, e poi, avendo ricevuto l'esperienza di base, un'idea, iniziare a usare mql5, studiando le sue differenze.

Lo sto facendo in parte, cercando esempi in mql4 e cercando di implementarli in mql5 per analogia. Ma a volte, a causa delle differenze cardinali di alcune funzioni e principi, mi rende ancora più confuso)))).

A quanto pare tutti gli autodidatti passano attraverso questo).

Quello che hai detto sopra, lo terrò certamente in considerazione, almeno ci proverò).

 

Dopo aver aggiornato il terminale, l'Expert Advisor ha smesso di costruirsi.

Errore

'INIT_FAILED' - expression not boolean  

Quale potrebbe essere il problema?

//+------------------------------------------------------------------+
//| Lots or risk in percent for a deal from a free margin            |
//+------------------------------------------------------------------+
bool LotsOrRisk(const double lots,const double risk,const int digits_adjust)
  {
   if(lots<0.0 && risk<0.0)
     {
      Print(__FUNCTION__,",ERROR: Parameter(\"lots\" or \"risk\") can't be less than zero");
      return(false);
     }
   if(lots==0.0 && risk==0.0)
     {
      Print(__FUNCTION__,", ERROR: Trade is impossible: You have set \"lots\" == 0.0 and \"risk\" == 0.0");
      return(false);
     }
   if(lots>0.0 && risk>0.0)
     {
      Print(__FUNCTION__,", ERROR: Trade is impossible: You have set \"lots\" > 0.0 and \"risk\" > 0.0");
      return(false);
     }
   if(lots>0.0)
     {
      string err_text="";
      if(!CheckVolumeValue(lots,err_text))
        {
         Print(__FUNCTION__,", ERROR: ",err_text);
         return(false);
        }
     }
   else if(risk>0.0)
     {
      if(m_money!=NULL)
         delete m_money;
      m_money=new CMoneyFixedMargin;
      if(m_money!=NULL)
        {
         if(!m_money.Init(GetPointer(m_symbol),Period(),m_symbol.Point()*digits_adjust))
            return(INIT_FAILED);
         m_money.Percent(risk);
        }
      else
        {
         Print(__FUNCTION__,", ERROR: Object CMoneyFixedMargin is NULL");
         return(INIT_FAILED);
        }
     }
//---
   return(true);
  }
//+------------------------------------------------------------------+

Questa è la funzione su cui giura il compilatore

return(INIT_FAILED);
 
ilvic:

Dopo aver aggiornato il terminale, l'Expert Advisor ha smesso di costruirsi.

Errore

Quale potrebbe essere il problema?

Questa è la funzione su cui giura il compilatore

La funzione LotsOrRisk() è dichiarata come bool. Significa che può restituire solo true OR false.

 
Juer:

A quanto pare è più colpa del mio hardware... e il mio sistema.

Ho aggiornato il sistema a vin10, ho fatto un controllo del disco con la localizzazione dei settori bit. Beh, dovrò passare all'SSD, immagino.

Anche la compilazione ha richiesto più di 10 minuti. Non è normale che ci voglia così tanto tempo per compilare...

 
Buon pomeriggio.
È possibile che l'indicatore visualizzi i parametri di input sul grafico? Forse c'è un esempio pronto?