Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 813

 
WinProject:
Guten Abend, könnten Sie mich bitte beraten. Ich lese FileOpen ihrer Text-.csv-Datei. Jede Zeile der Datei enthält drei Werte, nämlich das Instrument, das Datum (in absteigender Reihenfolge) und den Preis. Ich möchte den Preiskommentar des letzten Datums erhalten (es ist die erste Zeile), aber die Datei wird immer bis zum Ende gelesen und ich erhalte den Kommentar des ältesten Preises (aus der letzten Zeile). Wie kann ich den Preiswert aus der ersten Zeile ohne Umwege in den Kommentar übernehmen?

FileSeek()

Документация по MQL5: Файловые операции
Документация по MQL5: Файловые операции
  • www.mql5.com
Из соображений безопасности в языке MQL5 строго контролируется работа с файлами. Файлы, с которыми проводятся файловые операции средствами языка MQL5, не могут находиться за пределами файловой "песочницы". общая папка всех установленных на компьютере терминалов  – обычно расположена в каталоге C:\Documents and Settings\All Users\Application...
 
Igor Makanu:

Jeder Broker hat seine eigenen Kursanbieter, oft sind es mehrere, sowie die Algorithmen zur Glättung der Kurse

Wenn Sie echte Ticks benötigen, übertragen Sie Ihren TS auf MQL5 - dort gibt es Tests durch echte Ticks, Sie sparen Zeit beim Testen

Erzählen Sie uns kurz etwas über die Algorithmen zur Glättung von Kursen, was ist das? mql5 ermöglicht die Prüfung auf die Geschichte der TS von Ticks, dh, das Ergebnis wird eins-zu-eins mit requotes und Lücken, und es gibt eine Möglichkeit, einen Test auf Ticks unter Berücksichtigung der Bid Asc, requotes und Lücken?

 
Seric29:

Bitte erläutern Sie uns kurz die Algorithmen zur Glättung von Kursen, welche sind das? Auf mql5 gibt es die Möglichkeit, den TS auf Tick-Historie zu testen, d.h. das Ergebnis wird eins zu eins unter Berücksichtigung von Requotes und Gaps sein, und es gibt eine Möglichkeit, auf Ticks unter Berücksichtigung von Bid Asc sowie Requotes und Gaps zu testen?

alle Informationen sind öffentlich zugänglich auf diesem Forum, über Zecken Suche Admin-Nachrichten 6-8 Jahre her

über die Qualität von Prüfungen - Artikel

 
Alexey Viktorov:

Vielleicht versuchen Sie, ein entgegengesetztes Abschlussvolumen zu eröffnen und OrderCloseBy anzuwenden?

Grüße. Können Sie mir bitte sagen, was ich falsch mache?

OrderCloseBy() ergibt Fehler 3

3

ERR_INVALID_TRADE_PARAMETERS

Falsche Parameter

Code-Beispiel

#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict


datetime time; int ticket_buy; int ticket_sell; 
bool open=false; bool close=false;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
ticket_sell=OrderSend(NULL, OP_SELL, 0.1, Bid, 0, 0, 0, "", 0, 0, Red);  

time=TimeCurrent();
//if (Digits() ==3 || Digits()==5) {trailingStep*=10; }
   return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason)
  {
//---
   
  }
void OnTick(){
if(!open && TimeCurrent()>=time+2600){
   ticket_buy=OrderSend(NULL, OP_BUY, 0.1, Ask, 1, 0, 0, "buy order", 0, 0, Blue);
   open=true;
}
if(!close && TimeCurrent()>=time+3000){
   if(OrderCloseBy(ticket_buy, ticket_sell , Black)){ }
   close=true;
}

}//+------------------------------------------------------------------+
 
Andrey Sokolov:

Grüße. Können Sie mir bitte sagen, was ich falsch mache?

OrderCloseBy() ergibt Fehler 3

3

ERR_INVALID_TRADE_PARAMETERS

Falsche Parameter

Code-Beispiel

Code funktioniert im Tester,OrderSend() aufräumen, kein normalisierter Preis und Lot

und die zweite Bedingung - nicht alle Broker erlauben die Verwendung von OrderCloseBy() - ich denke, dies ist der Hauptgrund für den Fehler

 
Igor Makanu:

der Code funktioniert im Testgerät,

Sie schließen doch, oder? Welchen Makler haben Sie? Ich habe Alpari.
 
Igor Makanu:

OrderSend() aufräumen, kein normalisierter Preis und Lot


Ich verstehe nicht ganz, was hier normalisiert werden soll und warum, wenn es keine mathematischen Operationen gibt?
 
Andrey Sokolov:
Ich bin mir nicht ganz sicher, was hier normalisiert werden soll und warum, wenn es keine mathematischen Operationen gibt?

Weil Sie sich daran gewöhnen müssen, normalisierte Preise an den Server zu senden, wird die Bestellung jetzt gesendet - morgen ist sie es nicht, Sie werden ständig nach Ihren Fehlern suchen

Was ist daran kompliziert? Kopieren Sie es selbst, wenn es kompliziert ist:

ticket_sell=OrderSend(_Symbol, OP_SELL, 0.1, Bid,10,
                     NormalizeDouble(0.0,_Digits),NormalizeDouble(0.0,_Digits), "", 0, 0, clrRed);  

mathematische Operationen haben nichts damit zu tun, in neuen Builds gab es seltsames Terminalverhalten, auf alle Fragen schrieben die Entwickler - schreibt eure Codes richtig - sie haben recht )))

auf dem Server Metakvot überprüfen Sie Ihren Code - alles funktioniert

SZS: 0 ist nicht 0.0, also kann es sein, dass es nicht ganz das erwartete Ergebnis gibt - auch eine gute Angewohnheit, nicht nach Fehlern zu suchen ;)

 
Igor Makanu:

und die zweite Bedingung - nicht alle Makler erlauben die Verwendung von OrderCloseBy() - ich denke, dies ist der Hauptgrund für den Fehler

Im Allgemeinen verstehe ich richtig, dass, wenn Alpari und wahrscheinlich auch andere es nicht unterstützen, es besser ist, es überhaupt nicht zu benutzen, es als nicht funktionierend zu markieren?

 
Andrey Sokolov:

Gehe ich recht in der Annahme, dass es am besten ist, es überhaupt nicht zu benutzen, wenn Alpari und möglicherweise andere es nicht unterstützen, und es als nicht funktionierend zu markieren?

die Funktion funktioniert

leider müssen die Einstellungen jedes Servers überprüft werden - es gibt nur sehr wenige Universallösungen (alpars hat auch stoplevel = 0, Sie werden vielleicht überrascht sein, wenn Sie mit Trailing arbeiten)

Wenn ich mich nicht irre, gab es in MarketInfo() eine Anfrage, um festzustellen, ob ein Server eine Position mit einem entgegengesetzten Auftrag schließen wird