Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4484
Beiträge: 40806
Benutzer: 6.868
Aktive Benutzer: 253
Links: 80
Wir begrüßen unseren neuesten Benutzer: huseceti
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 14 Stunden
- huseceti
vor einem Tag
- petra25
vor 4 Tagen
- hk0163
vor 4 Tagen
- magnr1
vor 5 Tagen
- boypac007

Onlineuser
'Wer ist online' anzeigen Benutzer: 2
Gäste: 87
Gesamt: 89
Team: 0
Team:  
Benutzer:  Indikator-Trading, MA-EA
Freunde anzeigen

Empfehlungen

Like Tree1Likes
  • 1 Post By AVT
Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor 2 Wochen
Premium Mitglied
 
Registriert seit: Apr 2015
Beiträge: 418
Raul0 befindet sich auf einem aufstrebenden Ast
Standard Fehler beim Datei auslesen

Hallo,

ich möchte eine CSV Datei auslesen. Leider erhalte ich nicht die richtigen Werte in der gewünschten Reihenfolge.
Die gewünschte Reihenfolge lautet:
OrderTicket, OrderSymbol, OrderType, OrderLots, OrderOpenPrice, OrderStopLoss, OrderTakeProfit.

Empfangen per Printausgabe im MT4: 0 358864481 0 0.0 2.0 0.01 1.10108

In der CSV Datei steht es richtig: 358864481,EURUSD,2,0.01,1.10108,0,0

Und so sieht die mql aus:

PHP-Code:
   //Datei öffnen
   
int file_handle FileOpenPipesdateiFILE_READ|FILE_CSV|FILE_COMMON',');
   
//if( file_handle == INVALID_HANDLE ) { Comment("\n Fehler, siehe Reiter Experten"); PrintFormat( "Error, code = %d", GetLastError() ); }

   
if( file_handle >= 
   {
      
int    W1 FileReadInteger(file_handle);
      
string W2 FileReadString(file_handle);
      
int    W3 FileReadInteger(file_handle);
      
double W4 FileReadNumber(file_handle);
      
double W5 FileReadNumber(file_handle);
      
double W6 FileReadNumber(file_handle);
      
double W7 FileReadNumber(file_handle);
      Print(
"Empfangen: "W1 ," ",W2," ",W3 ," ",W4," ",W5," ",W6," ",W7 ); 
      
FileClosefile_handle );

   } 
Der Fehler tritt auf, wenn ich verschiedene Variablen aufrufe, lasse ich alles auf double, dann stimmt die Reihenfolge. Was mache ich an der Stelle falsch?

Gruss, Raul
__________________

Easy Trading Assistant
Mit Zitat antworten
  #2 (permalink)  
Alt vor 2 Wochen
AVT AVT ist offline
Premium Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 376
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Raul0 Beitrag anzeigen
Hallo,

ich möchte eine CSV Datei auslesen. Leider erhalte ich nicht die richtigen Werte in der gewünschten Reihenfolge.
Die gewünschte Reihenfolge lautet:
OrderTicket, OrderSymbol, OrderType, OrderLots, OrderOpenPrice, OrderStopLoss, OrderTakeProfit.

Empfangen per Printausgabe im MT4: 0 358864481 0 0.0 2.0 0.01 1.10108

In der CSV Datei steht es richtig: 358864481,EURUSD,2,0.01,1.10108,0,0

Der Fehler tritt auf, wenn ich verschiedene Variablen aufrufe, lasse ich alles auf double, dann stimmt die Reihenfolge. Was mache ich an der Stelle falsch?l
Meine Auslese Funktion sieht z.B. so aus (den Kommentar lasse ich immer drin, damit ich dran denke, die Art zu berücksichtigen):
Code:
   int handle=FileOpen(ConfigCVS, FILE_CSV|FILE_READ,Delim);
   if(handle>0)
   {
      /* Examples how to write and read the values
         1. Variabel = true||false 
         => write: BoolToInteger(Variable)
         => saved: as 1||0
         => read : StrToInteger(FileReadString(handle)); 
         2. Variable = "13:00"
         => write: Variable
         => saved: as 13:00
         => read : FileReadString(handle);
         3. Variable = "Arial"
         => write: Variable
         => saved: as Arial
         => read : FileReadString(handle);
         =============== colors
         BEST: always convert colors to uint type, as we don't know what user inputs
         x. Variable = clrColor
            Variable = C'128,128,128'
         => convert: ColorToARGB(Variable,255); //TableChoiceHasNoAlpha
         => write: ColorToARGB(Variable,255);
         => write: ColorToString(Variable);
         => saved: as 128,128,128
         => read : (color)StringToColor(FileReadString(handle));
      */
      MAGIC             = StrToInteger(FileReadString(handle));
      ASDSHOWSIG        = (bool)StrToInteger(FileReadString(handle));
      LOOKBACKBARS      = StrToInteger(FileReadString(handle));
      ASDMAPRICE        = (ENUM_APPLIED_PRICE)StrToInteger(FileReadString(handle));
      ASDMAKIND         = (ENUM_MA_METHOD)StrToInteger(FileReadString(handle));
      ASDPOS            = (ENUM_BASE_CORNER)StrToInteger(FileReadString(handle));
      ASDCOLORLONG      = (color)StringToColor(FileReadString(handle));
      ASDCOLORSHORT     = (color)StringToColor(FileReadString(handle));
      ASDCOLOREXIT      = (color)StringToColor(FileReadString(handle));

      if(FileIsEnding(handle)==true) FileClose(handle);
   }
BoolToInteger is ne Minifunktion, die eine Benutzereingabe =true||false umwandelt.

Versuch es also mal bei jedem Wert, der nicht Double ist, die Art voranzustellen. AVT
Raul0 likes this.
Mit Zitat antworten
  #3 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.376
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Yep, ich empfehle auch immer allen, die Daten als String in die csv zu speichern und auch als solche auszulesen, um sie erst dann in die entsprechenden Variablentypen umzuwandeln.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +2. Es ist jetzt 18:42 Uhr.





Die Suchmaschine - Der Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2020 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2020 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------