Errori, bug, domande - pagina 2684

 
fxsaber:

Lei ha frainteso. È effettivamente ricercabile su qualsiasi terminale. Ma posso accedere all'account solo per conto mio. Non su nessun altro terminale.

Molto probabilmente il terminale che non si connette ha memorizzato i vecchi punti di accesso e nessun nuovo punto di accesso (i broker cambiano le configurazioni dei punti di accesso).

1) Avete già effettuato connessioni (con successo o senza successo) a Swissquote-Server su un terminale non collegato?

2) Vai alla finestra di apertura del conto, inserisci "Swissquote-Server", premi Invio, aspetta il successo e prova a connetterti di nuovo

3) Si tratta di un computer reinstallato/nuovo/non utilizzato? Che sistema operativo è e gli aggiornamenti sono aggiornati?

 
Renat Fatkhullin:

Molto probabilmente sul terminale dove la connessione fallisce, i vecchi punti di accesso sono nella cache e non ce ne sono di nuovi (i broker cambiano le configurazioni dei punti di accesso).

1) Su un terminale non collegato, hai già effettuato connessioni (con successo o senza successo) al server Swissquote?

Non l'ho fatto.

2) Vai alla finestra di apertura del conto, inserisci "Swissquote-Server", premi Invio, aspetta il successo e prova a connetterti di nuovo.

Esattamente quello che faccio sempre quando ho bisogno di connettermi a un server che non era nella lista. Il server è elencato, nessuna connessione.

3) Si tratta di un computer reinstallato/nuovo/non utilizzato? Quale sistema operativo e ci sono aggiornamenti?

Terminale nativo.

2020.03.26 08:05:40.967 Terminal        Swissquote Bank MT5 Client Terminal x64 build 2368 started for Swissquote Bank SA
2020.03.26 08:05:40.969 Terminal        Windows 7 Service Pack 1 build 7601, Intel Core i7-2700 K  @ 3.50 GHz, 7 / 15 Gb memory, 4 / 29 Gb disk, IE 11, Admin, GMT+2
2020.03.26 08:05:40.969 Terminal        C:\Program Files\Swissquote Bank MT5 Client Terminal


Terminale alieno.

2020.03.26 08:06:51.678 ICMarkets - MetaTrader 5 x64 build 2368 started for International Capital Markets Pty Ltd.
2020.03.26 08:06:51.679 Windows 7 Service Pack 1 build 7601, Intel Core i7-2700 K  @ 3.50 GHz, 7 / 15 Gb memory, 4 / 29 Gb disk, IE 11, Admin, GMT+2
2020.03.26 08:06:51.679 C:\Program Files\ICMarkets - MetaTrader 5


Funziona sulla stessa macchina. Se distruggo la cartella config, la connessione passa. Ma poi perdo i dati di tutti gli altri account su Research Terminal.


ZS Puoi mandarmi in PM l'indirizzo IP del server così posso provare direttamente?

 
fxsaber:

Non l'ho fatto.

È quello che faccio sempre quando ho bisogno di connettermi a un server che non era nella lista. Il server è elencato, nessuna connessione.

Terminale nativo.


Terminale alieno.


Funziona sulla stessa macchina. Se distruggo la cartella config, la connessione va. Ma poi perdo i dati di tutti gli altri account su Research Terminal.


ZS Puoi mandarmi in PM l'indirizzo IP del server così posso provare direttamente?

Mi sono collegato senza problemi:

2020.03.26 13:34:06.558 Network new demo account '6036452' opened on Swissquote-Server
2020.03.26 13:34:21.308 Network '8550475': disconnected from MetaQuotes-Demo
2020.03.26 13:34:22.540 HistoryCenter   delete old files from E:\MetaQuotes\MetaTrader 5\bases\Swissquote-Server\history\AEP, last access time 2018.03.02 18:42
2020.03.26 13:34:23.588 Experts automated trading is disabled because the account has been changed
2020.03.26 13:34:23.946 Network '6036452': authorized on Swissquote-Server
2020.03.26 13:34:23.946 Network '6036452': previous successful authorization performed from 176.49.173.218 on 2020.03.26 07:34:05
2020.03.26 13:34:25.751 Network '6036452': terminal synchronized with Swissquote Bank SA
2020.03.26 13:34:25.751 Network '6036452': trading has been enabled - hedging mode
2020.03.26 13:34:26.843 Network '6036452': scanning network for access points
2020.03.26 13:35:01.961 Network '6036452': scanning network finished
 
Artyom Trishkin:

Ho collegato tutto senza problemi:

Sì, la demo entra senza problemi.

2020.03.26 08:42:07.401 new demo account '6036453' opened on Swissquote-Server
2020.03.26 08:42:09.188 '6036453': authorized on Swissquote-Server


Su quello vero, non lo fa.

2020.03.26 08:42:40.551 '6036453': disconnected from Swissquote-Server
2020.03.26 08:42:41.418 'xxxxxxx': no connection to Swissquote-Server
 
fxsaber:

Sì, la demo entra senza problemi.


Su quello vero, no.

C'erano due server:

Ho creato la demo sul primo.

Forse reale sul secondo?

 
Artyom Trishkin:

C'erano due server:

Ho creato una demo sul primo.

Lo stesso.

Forse reale sul secondo?

Nel secondo c'era un server di trading diverso.

 

Ragazzi aiutate per favore!

Non molto tempo fa ho iniziato a programmare, ho avuto questi errori, ditemi di cosa si tratta...

1. Ho usato MarketInfo(Symbol(),MODE_TICKVALUE). La mia coppia EURUSD nel tester mostra il numero 0,01, ma nel terminale è 1.

2. iClose,iOpen,iHigh,iLow a volte restituiscono 0 quando shift=1.


Grazie

 

Il problema della velocità di ArrayResize()+reserve mi preoccupa ancora.
Questa volta il problema riguarda gli array ditipi di dati primitivi.

#define  K 1000
#define  M (1000 * K)

#define    SpeedTest(test_count,msg,EX_pref, EX_test, EX_post) {         \
               uint result = 0; ulong count=test_count;                 \
               for(ulong ii=0;ii<count&&!_StopFlag;ii++){               \ 
                   EX_pref                                              \
                   uint start=GetTickCount();                           \
                   EX_test                                              \
                   result += GetTickCount() - start;                    \ 
                   EX_post                                              \
               }                                                        \
               printf("%-60s: loops=%i ms=%u",msg,count,result);}
                                              
class A{
public:
   int data;
};


template<typename T>
void test1(const int test_count, const int array_size){
   T class_array[];
   T tmp[];
   
   SpeedTest(
      test_count, StringFormat("Test %s ArrayResize all", typename(T)),
      {}
      ,
      {
         ArrayResize(class_array, array_size);
         for(int i = 1; i <= array_size; i++){
            ArrayResize(class_array, array_size, i);
            class_array[i-1] = NULL;
         }
      },
      {            
         ArraySwap(tmp, class_array);
         ArrayFree(tmp);
      }
   )
};

template<typename T>
void test2(const int test_count, const int array_size){
   T class_array[];
   T tmp[];
   
   SpeedTest(
      test_count, StringFormat("Test %s ArrayResize one by one with reserved memory", typename(T)),
      {},
      {
         ArrayResize(class_array, array_size);         
         for(int i = 1; i <= array_size; i++){
            ArrayResize(class_array, i, i);
            class_array[i-1] = NULL;
         }
      },   
      {            
         ArraySwap(tmp, class_array);
         ArrayFree(tmp);
      }
   )
};

 


void OnStart()
{
  const int test_count = 1;
  const int array_size = 20*K*K;  
  
   printf("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
   test1<int>(test_count, array_size);              // Avg time: release( 120) / debug( 155)
   test2<int>(test_count, array_size);              // Avg time: release( 205) / debug( 235)
   test1<int>(test_count, array_size);
   test2<int>(test_count, array_size);
   test1<int>(test_count, array_size);
   test2<int>(test_count, array_size);
   test1<int>(test_count, array_size);
   test2<int>(test_count, array_size);
   test1<int>(test_count, array_size);
   test2<int>(test_count, array_size);
   
   printf("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
   test1<double>(test_count, array_size);           // Avg time: release( 155) / debug( 190)
   test2<double>(test_count, array_size);           // Avg time: release( 250) / debug( 260)
   test1<double>(test_count, array_size);
   test2<double>(test_count, array_size);
   test1<double>(test_count, array_size);
   test2<double>(test_count, array_size);
   test1<double>(test_count, array_size);
   test2<double>(test_count, array_size);
   test1<double>(test_count, array_size);
   test2<double>(test_count, array_size);
   
   printf("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
   test1<A*>(test_count, array_size);              // Avg time: release( 190) / debug( 200)
   test2<A*>(test_count, array_size);              // Avg time: release( 330) / debug( 340)
   test1<A*>(test_count, array_size);
   test2<A*>(test_count, array_size);
   test1<A*>(test_count, array_size);
   test2<A*>(test_count, array_size);
   test1<A*>(test_count, array_size);
   test2<A*>(test_count, array_size);
   test1<A*>(test_count, array_size);
   test2<A*>(test_count, array_size);
}

Rispetto alla versione precedente, il codice è stato leggermente migliorato:
- per entrambi i test ArrayResize è garantito per essere chiamato lo stesso numero di volte, precedentemente l'ottimizzatore ha contribuito...
- Il tempo di ArrayFree è escluso dal calcolo del runtime;


Per i tipi di dati primitivi ArrayResize()+reserve viene eseguito più di 3 volte più lentamente del solito ArrayResize() (205 ms contro 65 ms).
Questo è molto, così per Generic\ArrayList.mqh su 20M chiamate a CArrayList::Add la velocità senza e con riserva di memoria è 1,85 volte diversa (170 ms vs 95 ms).
Qui c'è ovviamente qualcosa che non va.

C'è un modo per migliorare la velocità per i tipi di funzionalità primitive ArrayResize()+reserve?
Cosa potrebbe essere una perdita così grande lì?

Capisco che la realtà possa essere molto più complicata, ma ci sono solo un paio di controlli che influenzano il risultato dell'esecuzione:

IsDynamic == vero
IsIndexBuffer == false
IsSetAsSerrias == false
new_size > dimensione
new_size < capacità
IsFundamental == true (o costruttore e distruttore == 0)

Alcuni controlli possono anche essere combinati tramite una bitmask per accelerare la direzione principale e più probabile dell'esecuzione del codice.
E nei rari casi in cui il controllo bitmask fallisce, per specificare ulteriormente quale dei flag ha influenzato il risultato...

 
fxsaber:

Sì, la demo entra senza problemi.

Su quello vero, no.

2020.03.26 08:42:41.418 'xxxxxxx': no connection to Swissquote-Server

Buona giornata,

1. Sul terminale (ricerca), dove non c'è connessione al conto reale, questo conto è presente nella lista dei conti?

Cioè, questo account xxxxxxxx è mostrato nel navigatore?


2. Se c'è un conto xxxxxxxx, è visualizzato con il nome YYYYYY dopo i due punti (non solo come numero)?

3. Se l'account xxxxxxxx è presente, allora se lo cancelli (nel navigatore tramite il comando Delete menu) e ti riconnetti, allora la connessione ha successo?


Grazie

 
Anton:

1. Sul terminale (terminale di ricerca) dove la connessione al conto reale non passa, questo conto è presente nella lista dei conti?

Cioè, se questo account xxxxxxxx è visualizzato nel navigatore:

Mostra xxxx.

2. Se il conto xxxxxxxx è presente, è visualizzato con il nome YYYYY dopo i due punti (non solo come numero)?

Niente YYYYY e niente due punti.

3. se ho l'account xxxxxxxx, se lo cancello (nel navigatore tramite Delete) e lo ricollego, si connette?

Capito!


Sembra che la prima volta che mi sono connesso, ho solo inserito il nome del server. Questa voce è apparsa nel navigatore, ma non c'erano dati del server commerciale e ci è andato un vuoto. E anche dopo aver forzato i dati attraverso la ricerca di quell'account, veniva ancora sostituito un vuoto.


Grazie!


SZZ In tema.

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Nuova versione della piattaforma MetaTrader 5 build 2280

fxsaber, 2020.02.19 11:32

Quando mi connetto a un conto di trading esistente, se specifico un nome di server di trading sbagliato, il conto viene spostato nel Navigatore in modo tale che si potrebbe pensare che sia semplicemente scomparso.


Quando si accede a MetaQuotes-Demo, specificare l'indirizzo del server MetaQuotes-Demo2. Vedi cosa succede nel Navigatore. Si prega di applicare questa regola agli account esistenti solo dopo una connessione riuscita.

Stringa di ricerca: Uluchshenie 005.
Motivazione: