Errori, bug, domande - pagina 1287

 
paladin800:
GMT.
TimeGMT();
 
artmedia70:
TimeGMT();
Sì, anch'io mi sono imbattuto in questa funzione. Non riesco a capire come rendere una variabile nei parametri esterni come 4AM e l'altra come 5PM e poi semplicemente confrontare il risultato di TimeGMT() con loro.
 
papaklass:

Perché il mio profilo mostra 4 codici pubblicati in CodeBase?

Ma se vado su CodeBase attraverso il menu e seleziono "My Codes", ho 7 codici pubblicati:

Qual è il trucco?

Il calcolo è davvero diverso. I risultati degli utenti non tengono conto delle pubblicazioni importate da mql4.com, ne hai 3.

Vengono contate solo le pubblicazioni originariamente pubblicate su mql5.com - hai 4 di queste = tre per MT5 + una per MT4.

 

Penso che tutti abbiano notato che non è necessario fare attenzione alle maiuscole e alle minuscole per accedere al proprio account qui. Quando sto scrivendo qui ora, potete vedere che il mio login è scritto in piccole lettere e numeri. Se faccio il login con tutte le lettere maiuscole o maiuscole-piccole, sarò comunque loggato. Ok, non mi dirige in alcun modo.

Nel suo ME5 creato un progetto, che dovrebbe collegare un altro partito e il disagio è che quando la finestra per aggiungere un utente per scrivere un compagno di accesso, il messaggio appare che non c'è tale. Ho chiesto in ServiceDesk, mi hanno detto che devo rispettare il caso delle lettere. Cioè qui alla registrazione non è importante, ma quando si aggiunge al progetto ME5 è importante. Se il caso non ha importanza qui, allora fate in modo che anche nei progetti non abbia importanza.
 
zhserg:

Puoi dirmi cosa c'è che non va, almeno approssimativamente. Potrebbe essere a causa di WinXP?

Controllato in WinXP - il tuo codice funziona.

Il tuo oggetto appare nella lista degli oggetti sul grafico?

 
Sto pubblicando la mia domanda al servizio di scrivania qui per accelerare la sua elaborazione. (È passata una settimana e nessuna risposta.)Aperto,Iniziato: 2015.03.03 10:49,#1169959

Versione del terminale e bit rate

MetaTrader 5, build 1085

Descrizione del problema

Grado di dipendenza del tempo di ricerca degli ordini o delle offerte dal loro numero. È chiaro che il tempo di esecuzione delle funzioni HistoryOrderGetDouble, HistoryOrderGetInteger, HistoryDealGetInteger, HistoryDealGetDouble chiamate per ogni ordine nella storia dovrebbe aumentare linearmente con il numero crescente di ordini trattati da esse:

tempo di esecuzione totale = tempo di esecuzione della query per ordine * numero di ordini;

In realtà non è così. Invece, c'era una dipendenza dalla potenza rivelata di unconteggio di millisecondi =0,000005*n^2 doven è il numero di ordini da elaborare.

Sequenza di azioni

Questo script mostra il problema esistente:

//+------------------------------------------------------------------+
//|                                             TestSpeedHistory.mq5 |
//|                                 Copyright 2015, Vasiliy Sokolov. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property  copyright "Copyright 2015, Vasiliy Sokolov."
#property  link      "http://www.mql5.com"
#property  version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
{
//---
   HistorySelect(0, TimeCurrent()+100);
   for(int end_order_index = 1000; end_order_index < HistoryOrdersTotal(); end_order_index+=1000)
   {
      uint tiks_begin = GetTickCount();
      TestProgression(end_order_index);
      uint tiks = GetTickCount() - tiks_begin;
      printf("Parsing " + (string)end_order_index + " for " + (string)tiks + " msc.");   
   }
}

void TestProgression(int end_order_index)
{
   for(int i = 0; i < end_order_index; i++)
   {
      ulong id = HistoryOrderGetTicket(i);
      string symbol = HistoryOrderGetString(id, ORDER_SYMBOL);
      double priceSetup = HistoryOrderGetDouble(id, ORDER_PRICE_OPEN);
      double volumeSetup = HistoryOrderGetDouble(id, ORDER_VOLUME_INITIAL);
      long tSetup = HistoryOrderGetInteger(id, ORDER_TIME_SETUP_MSC);
      string comment = HistoryOrderGetString(id, ORDER_COMMENT);
      ENUM_ORDER_TYPE type = (ENUM_ORDER_TYPE)HistoryOrderGetInteger(id, ORDER_TYPE);
      ENUM_ORDER_STATE state = (ENUM_ORDER_STATE)HistoryOrderGetInteger(id, ORDER_STATE);
      ulong magic = HistoryOrderGetInteger(id, ORDER_MAGIC);
      HistoryDealGetInteger
   }
}
//+------------------------------------------------------------------+

Il risultato ottenuto

Sembra ovvio che il tempo di esecuzione di questo script dovrebbe aumentare linearmente all'aumentare di end_order_index. Così, se l'elaborazione di 1000 ordini in TestRegression richiede 16 ms, l'elaborazione di 2 000 ordini dovrebbe richiedere 16 * 2 = 32 ms. Ma non è questo il caso. Invece, la dipendenza è una dipendenza a gradini. Lo script mostra il seguente messaggio:

2015.03.03 12:14:29.385 TestSpeedHistory (USDCHF,D1)    Parsing 22000 for 4025 msc.
2015.03.03 12:14:25.354 TestSpeedHistory (USDCHF,D1)    Parsing 21000 for 3666 msc.
2015.03.03 12:14:21.689 TestSpeedHistory (USDCHF,D1)    Parsing 20000 for 3323 msc.
2015.03.03 12:14:18.358 TestSpeedHistory (USDCHF,D1)    Parsing 19000 for 2995 msc.
2015.03.03 12:14:15.365 TestSpeedHistory (USDCHF,D1)    Parsing 18000 for 2715 msc.
2015.03.03 12:14:12.658 TestSpeedHistory (USDCHF,D1)    Parsing 17000 for 2418 msc.
2015.03.03 12:14:10.243 TestSpeedHistory (USDCHF,D1)    Parsing 16000 for 2106 msc.
2015.03.03 12:14:08.134 TestSpeedHistory (USDCHF,D1)    Parsing 15000 for 1872 msc.
2015.03.03 12:14:06.266 TestSpeedHistory (USDCHF,D1)    Parsing 14000 for 1622 msc.
2015.03.03 12:14:04.645 TestSpeedHistory (USDCHF,D1)    Parsing 13000 for 1388 msc.
2015.03.03 12:14:03.244 TestSpeedHistory (USDCHF,D1)    Parsing 12000 for 1170 msc.
2015.03.03 12:14:02.074 TestSpeedHistory (USDCHF,D1)    Parsing 11000 for 983 msc.
2015.03.03 12:14:01.097 TestSpeedHistory (USDCHF,D1)    Parsing 10000 for 796 msc.
2015.03.03 12:14:00.295 TestSpeedHistory (USDCHF,D1)    Parsing 9000 for 639 msc.
2015.03.03 12:13:59.657 TestSpeedHistory (USDCHF,D1)    Parsing 8000 for 500 msc.
2015.03.03 12:13:59.164 TestSpeedHistory (USDCHF,D1)    Parsing 7000 for 358 msc.
2015.03.03 12:13:58.796 TestSpeedHistory (USDCHF,D1)    Parsing 6000 for 266 msc.
2015.03.03 12:13:58.537 TestSpeedHistory (USDCHF,D1)    Parsing 5000 for 171 msc.
2015.03.03 12:13:58.369 TestSpeedHistory (USDCHF,D1)    Parsing 4000 for 94 msc.
2015.03.03 12:13:58.277 TestSpeedHistory (USDCHF,D1)    Parsing 3000 for 47 msc.
2015.03.03 12:13:58.229 TestSpeedHistory (USDCHF,D1)    Parsing 2000 for 15 msc.
2015.03.03 12:13:58.208 TestSpeedHistory (USDCHF,D1)    Parsing 1000 for 16 msc.


Funzione per la dipendenza del tempo di elaborazione dal numero di ordini:

Risultato atteso

Questa operazione dovrebbe richiedereO(n) tempo, mentre richiedeO(n^2).

Ulteriori dettagli

Per assicurarsi che lo script funzioni correttamente, dovreste eseguirlo su un account con una grande quantità di offerte e ordini.

Si allega il grafico in funzione del tempo rispetto al numero di ordini. Illustra chiaramente la dipendenza di grado del funzionamento della funzione dalla quantità di ordini

Importante: secondo le mie osservazioni, questa spiacevole dipendenza è apparsa in MetaTrader 5 intorno all'inizio dell'estate 2014. Prima di allora tutto funzionava velocemente.

 
Buona giornata! Spero di postare la mia domanda nella sezione giusta. Ho provato a testare MT5 sotto Wine e non funziona. Quando avvio Wine mostra un errore, anche se l'applicazione funziona. Non è nemmeno chiaro dove conservare i certificati. Ho provato a installarlo o semplicemente a copiare l'applicazione, l'errore è lo stesso. Ho anche disabilitato i suoni per sicurezza, ma non aiuta. Forse da qualche parte per scaricare una versione stabile e non ambiguamente funzionante sotto Linux?
 
polik:
Buona giornata! Spero di aver posto la mia domanda nella sezione corretta. Ho provato a usare MT5 sotto Wine e non funziona. Wine mostra un errore durante l'avvio di Wine, anche se l'applicazione funziona. Non è nemmeno chiaro dove conservare i certificati. Ho provato a installarlo o semplicemente a copiare l'applicazione, l'errore è lo stesso. Ho anche disabilitato i suoni per sicurezza, ma non aiuta. Non ho idea di dove posso scaricare una versione stabile che funzioni inequivocabilmente sotto Linux.

Pomeriggio,

Qual è l'errore? Che sistema è? Versione vino?

 
C-4:
Pubblico qui la mia richiesta nel servizio di scrivania per accelerare la sua elaborazione. (È passata una settimana ormai, nessuna risposta.)Aperto,Iniziato: 2015.03.03 10:49,#1169959

Versione del terminale e bit rate

MetaTrader 5, build 1085

Descrizione del problema

Grado di dipendenza del tempo di ricerca degli ordini o degli affari dal loro numero. È chiaro che il tempo di esecuzione delle funzioni HistoryOrderGetDouble, HistoryOrderGetInteger, HistoryDealGetInteger, HistoryDealGetDouble chiamate per ogni ordine nella storia dovrebbe aumentare linearmente con il numero crescente di ordini trattati da esse:

tempo di esecuzione totale = tempo di esecuzione della query per ordine * numero di ordini;

In realtà non è così. Invece, è stata rilevata una dipendenza dalla potenza dovemillisecondi =0,000005*n^2 doven è il numero di ordini da elaborare.

Un modello simile accade quando si calcola un gran numero di indicatori. Tutto è iniziato bruscamente con la versione 1079.
Ho 8 TF aperti allo stesso tempo, con 10 indicatori su ciascuno. È impossibile lavorare.

 

Chi ha questo nella vita reale.....

gli orari sono costantemente in bilico su mt4