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: 4978
Beiträge: 43271
Benutzer: 7.222
Aktive Benutzer: 72
Links: 84
Wir begrüßen unseren neuesten Benutzer: Mane
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einem Tag
- Mane
vor 2 Wochen
- AlbertZiz
vor 2 Wochen
- michak
vor 2 Wochen
- Amateur
vor 2 Wochen
- infos1982

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 192
Gesamt: 192
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Like Tree1Likes
  • 1 Post By AVT
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 25.06.20
Premium Mitglied
 
Registriert seit: Apr 2015
Beiträge: 422
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
  #2 (permalink)  
Alt 25.06.20
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
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.
  #3 (permalink)  
Alt 25.06.20
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
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.
Thema geschlossen

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 19:26 Uhr.





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