Fehler, Irrtümer, Fragen - Seite 2684

 
fxsaber:

Sie verstehen das falsch. Sie ist tatsächlich auf jedem Terminal durchsuchbar. Aber ich kann nur selbst auf das Konto zugreifen. Auf keinem anderen Terminal.

Höchstwahrscheinlich hat das Terminal, das keine Verbindung herstellt, alte Zugangspunkte zwischengespeichert und keine neuen Zugangspunkte (Makler ändern die Konfiguration der Zugangspunkte).

1) Haben Sie schon einmal eine (erfolgreiche oder erfolglose) Verbindung zum Swissquote-Server über ein nicht verbundenes Terminal hergestellt?

2) Gehen Sie zum Kontoeröffnungsfenster, geben Sie "Swissquote-Server" ein, drücken Sie Enter, warten Sie auf den Erfolg und versuchen Sie erneut, sich zu verbinden.

3) Handelt es sich um einen neu installierten/neuen/unbenbenutzten Computer? Um welches Betriebssystem handelt es sich und sind die Updates auf dem neuesten Stand?

 
Renat Fatkhullin:

Höchstwahrscheinlich sind auf dem Terminal, auf dem die Verbindung fehlschlägt, die alten Zugangspunkte zwischengespeichert und es gibt keine neuen (Makler ändern die Konfiguration der Zugangspunkte).

1) Haben Sie auf einem unverbundenen Terminal schon einmal eine Verbindung zum Swissquote-Server hergestellt (erfolgreich oder erfolglos)?

Das habe ich nicht.

2) Gehen Sie zum Fenster "Konto öffnen", geben Sie "Swissquote-Server" ein, drücken Sie die Eingabetaste, warten Sie auf den Erfolg und versuchen Sie erneut, sich zu verbinden.

Genau das tue ich, wenn ich eine Verbindung zu einem Server herstellen muss, der nicht in der Liste steht. Server ist aufgelistet, keine Verbindung.

3) Handelt es sich um einen neu installierten/neuen/unbenbenutzten Computer? Welches Betriebssystem und gibt es irgendwelche Updates?

Einheimisches Terminal.

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


Alien Terminal.

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


Läuft auf demselben Rechner. Wenn ich den Konfigurationsordner zerstöre, geht die Verbindung durch. Aber dann verliere ich die Daten aller anderen Konten auf dem Forschungsterminal.


ZS Können Sie mir die IP-Adresse des Servers mitteilen, damit ich es direkt ausprobieren kann?

 
fxsaber:

Das habe ich nicht.

Das mache ich immer, wenn ich eine Verbindung zu einem Server herstellen muss, der nicht auf der Liste steht. Der Server ist aufgelistet, keine Verbindung.

Einheimisches Terminal.


Alien Terminal.


Läuft auf demselben Rechner. Wenn ich den Konfigurationsordner zerstöre, geht die Verbindung verloren. Aber dann verliere ich die Daten aller anderen Konten auf dem Forschungsterminal.


ZS Können Sie mir die IP-Adresse des Servers per PM mitteilen, damit ich es direkt ausprobieren kann?

Ich wurde ohne Probleme verbunden:

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:

Ich habe alles ohne Probleme angeschlossen:

Ja, die Demo kommt ohne Probleme rein.

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


In der Realität ist das nicht der Fall.

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:

Ja, die Demo kommt ohne Probleme rein.


Bei der echten, nein.

Es gab zwei Server:

Ich habe die Demo auf der ersten Seite erstellt.

Vielleicht wirklich auf dem zweiten?

 
Artyom Trishkin:

Es gab zwei Server:

Ich habe eine Demo für die erste erstellt.

Dasselbe.

Vielleicht wirklich auf dem zweiten?

Auf dem zweiten war ein anderer Handelsserver.

 

Leute, helft bitte!

Vor nicht allzu langer Zeit habe ich mit dem Programmieren begonnen, und ich habe diese Fehler bekommen.

1. Ich habe MarketInfo(Symbol(),MODE_TICKVALUE) verwendet. Mein EURUSD-Paar im Tester zeigt die Zahl 0,01, aber mein Terminal zeigt 1.

2. iClose,iOpen,iHigh,iLow geben manchmal 0 zurück, wenn shift=1.


Dankeschön

 

Das Problem der Geschwindigkeit von ArrayResize()+reserve beunruhigt mich immer noch.
Diesmal geht es um Arrays von primitivenDatentypen.

#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);
}

Im Vergleich zur vorherigen Version wurde der Code leicht verbessert:
- für beide Tests wird ArrayResize garantiert gleich oft aufgerufen, zuvor trug der Optimierer...
- Die ArrayFree-Zeit wird bei der Laufzeitberechnung nicht berücksichtigt;


Für primitive Datentypen wird ArrayResize()+reserve mehr als dreimal langsamer ausgeführt als das normale ArrayResize() (205 ms gegenüber 65 ms).
Dies ist sehr viel, so dass für Generic\ArrayList.mqh bei 20M Aufrufen von CArrayList::Add die Geschwindigkeit ohne und mit Speicherreservierung 1,85 mal unterschiedlich ist (170 ms vs 95 ms).
Hier stimmt offensichtlich etwas nicht.

Gibt es eine Möglichkeit, die Geschwindigkeit für die primitive ArrayResize()+reserve-Funktionalität Typen zu verbessern?
Was könnte da ein so großer Verlust sein?

Ich verstehe, dass die Realität viel komplizierter sein kann, aber es gibt nur ein paar Prüfungen, die das Ergebnis der Ausführung beeinflussen:

IsDynamic == true
IsIndexBuffer == false
IsSetAsSerrias == false
neue_Größe > Größe
neue_Größe < Kapazität
IsFundamental == true (oder constructor und destructor == 0)

Einige Prüfungen können sogar über eine Bitmaske kombiniert werden, um die Hauptrichtung der Codeausführung zu beschleunigen, was wahrscheinlicher ist.
Und in den seltenen Fällen, in denen die Bitmaskenprüfung fehlschlägt, ist zusätzlich anzugeben, welche der Flags das Ergebnis beeinflusst haben...

 
fxsaber:

Ja, die Demo kommt ohne Probleme rein.

Bei der echten, nein.

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

Guten Tag,

1. Ist dieses Konto in der Liste der Konten auf dem Terminal (Explorer) vorhanden, wo es nicht mit dem echten Konto verbunden ist?

Das heißt, wird dieses xxxxxxxx-Konto im Navigator angezeigt?


2. Wenn es ein xxxxxxxx-Konto gibt, wird es mit dem Namen YYYYYY nach einem Doppelpunkt angezeigt (nicht nur als Zahl)?

Wenn das Konto xxxxxxxx vorhanden ist und Sie es löschen (im Navigator über den Menübefehl "Löschen") und die Verbindung erneut herstellen, ist die Verbindung dann erfolgreich?


Dankeschön

 
Anton:

1. Ist das Konto auf dem Terminal (Forschungsterminal), auf dem die Verbindung zum echten Konto nicht hergestellt werden kann, in der Liste der Konten enthalten?

Das heißt, ob dieses xxxxxxxx-Konto im Navigator angezeigt wird:

Es wird xxxx angezeigt.

2. Wenn das Konto xxxxxxxx vorhanden ist, wird es mit dem Namen YYYYY nach einem Doppelpunkt angezeigt (nicht nur als Zahl)?

Kein YYYYY und kein Doppelpunkt.

3. Wenn ich ein xxxxxxxx-Konto habe, lösche ich es (im Navigator über "Löschen") und verbinde es erneut, wird es dann verbunden?

Ich hab's!


Bei der ersten Verbindung habe ich wohl nur den Servernamen eingegeben. Dieser Eintrag erschien im Navigator, aber es gab keine Handelsserverdaten und ein Leerzeichen erschien dort. Und selbst nachdem ich die Daten durch eine Suche nach diesem Konto erzwungen hatte, wurde immer noch ein Leerzeichen ersetzt.


Ich danke Ihnen!


SZZ Zum Thema.

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Neue Version der MetaTrader 5 Plattform Build 2280

fxsaber, 2020.02.19 11:32

Wenn ich beim Verbinden mit einem bestehenden Handelskonto einen falschen Handelsservernamen angebe, wird das Konto im Navigator so verschoben, dass man meinen könnte, es sei einfach verschwunden.


Wenn Sie sich bei MetaQuotes-Demo anmelden, geben Sie die Serveradresse von MetaQuotes-Demo2 an. Sehen Sie sich an, was im Navigator passiert. Bitte wenden Sie diese Regel auf bestehende Konten erst nach einer erfolgreichen Verbindung an.

Suchbegriff: Uluchshenie 005.