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: 4538
Beiträge: 41168
Benutzer: 6.933
Aktive Benutzer: 230
Links: 80
Wir begrüßen unseren neuesten Benutzer: peterken
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 3 Tagen
- peterken
vor 5 Tagen
- traderotor
vor 6 Tagen
- Brummi
vor einer Woche
- Fussellien...
vor einer Woche
- ZHannes82

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

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #11 (permalink)  
Alt 12.08.20
LQK LQK ist offline
Mitglied
 
Registriert seit: Nov 2019
Beiträge: 76
LQK befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von RetepM Beitrag anzeigen
Ok, wenn man die mq4-Beispiele nicht umsetzen kann, dann gibt es immer noch die Möglichkeit eine Suchmaschine zu bemühen. Da findet man dann z.B. mit der Suche "script history" fertigen und funktionsfähigen Code.
Selbst hier im Forum gibt es Beispiele.
Mit Suchmaschinen findet man vieles. Den mit einer Suchmaschine Code gefunden selbst auszuprobieren, auf dem eigenen Rechner zum Laufen zu bringen, zu verstehen, für eigene Zwecke anzupassen und daraus zu lernen, kann allerdings keine Suchmaschine abnehmen.

Ich tue all das gerade und habe dafür speziell diese Code-Beispiele ausgewählt weil diese, im Gegensatz den meisten anderen Funden, wenig mit zusätzlichen Features überfrachtet sind, die ich im Moment gerade nicht brauche und die nur vom Wesentlichen ablenken.
Mit Zitat antworten
  #12 (permalink)  
Alt 12.08.20
LQK LQK ist offline
Mitglied
 
Registriert seit: Nov 2019
Beiträge: 76
LQK befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von TogoTiger Beitrag anzeigen
Ich habe zwar schon lange keine Datei mehr erstellt, aber in einem meiner alten EA's steht das so drin:

Code:
int file_handle=FileOpen(OutDirectoryName+"//"+OutFileName,FILE_WRITE|FILE_CSV);
Ohne das jetzt in der Doku nachzuschlagen, meine ich, bei dir fehlt FILE_WRITE

Habe jetzt auch mal den von Dir geposteten Code ausprobiert (in geringfügig abgewandelter Form, s.u.).

Auch bei Deinem Code wird keine Datei im Zielordner angelegt. Habe dann den Wert für den Handle mit Print ausgeben lassen (Codezeile rot markiert), der Wert für den Handle ist -1.

Suche somit immer noch nach einer Lösung.

Code:
//+------------------------------------------------------------------+
//|                                         Schreibe in Datei v2.mq4 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+



int OnInit()
  {
   testfunktion();
   return(INIT_SUCCEEDED);
  }



   void testfunktion()
   {
   int handle=FileOpen("D://TEST/my_data.csv" ,FILE_WRITE|FILE_CSV);
   Print("Der Wert des Handle ist: " + handle);
   }
Mit Zitat antworten
  #13 (permalink)  
Alt 12.08.20
AVT AVT ist offline
Premium Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 434
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von LQK Beitrag anzeigen
Wenn eine Datei angelegt wurde ist der handle 1, wenn eine Datei nicht angelegt wurde, ist der handle -1? Dann wundert es mich aber, dass handle vom Typ int ist und nicht bool.
Wenn das als int festgelegt ist, dann ist das einfach so - so einfach ist das.

Eine Datei wird angelegt, wenn sie nicht vorhanden ist UND man was reinschreiben will; wenn man nur was rauslesen will, ist es nicht notwendig, eine nicht vorhandene Datei anzulegen.
Also bevor Du was lesen willst, muß erst mal was zum Lesen da sein.

Die Bemerkung der Hilfe zu FileOpen sagt genau, wo solch eine Datei liegen kann/darf.
AVT
Mit Zitat antworten
  #14 (permalink)  
Alt 13.08.20
Mitglied
 
Registriert seit: Feb 2016
Beiträge: 207
RetepM befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von LQK Beitrag anzeigen
Ich tue all das gerade und habe dafür speziell diese Code-Beispiele ausgewählt weil diese, im Gegensatz den meisten anderen Funden, wenig mit zusätzlichen Features überfrachtet sind, die ich im Moment gerade nicht brauche und die nur vom Wesentlichen ablenken.
Richtig, wenn man denn weiß, was das Wesentliche ist :-)
Mit Zitat antworten
  #15 (permalink)  
Alt 13.08.20
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 158
Max2018 befindet sich auf einem aufstrebenden Ast
Standard

... im Tester wird die Datei im "Tester" Ordner abgelegt Vielleicht liegts daran
Mit Zitat antworten
  #16 (permalink)  
Alt 13.08.20
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 158
Max2018 befindet sich auf einem aufstrebenden Ast
Standard

Ansonsten.... nutze ich den Code

Code:
void InDatei()
  {
 
   double SPREAD=Bid-Ask;
    string QQ;
int Mag;
 string symbol=Symbol();
 string TextDatei;
 TextDatei=StringConcatenate("SPREAD","-",symbol,".","txt");
 if(TimeCurrent() == Time[0])
 int T=Day();
 int M=Month();
 int J=Year();
     QQ=StringConcatenate(T,M,J);    //zuerst als String verketten
  Mag=(StrToInteger(QQ));     //und später wieder als Zahl umwandeln
{  
   int handle;  
   handle = FileOpen(TextDatei,FILE_READ|FILE_WRITE|FILE_TXT,"/t"); // Datei wird unter \MQL4\Files abgelegt
   FileSeek(handle, 0, SEEK_END);       
   FileWrite(handle,TimeToString(Time[0]),symbol,"SPREAD: ",NormalizeDouble(SPREAD,1));   /*nach “handle,” kommt das was in die Datei geschrieben wir mit Komma getrennt */
   FileClose(handle); 
    if(handle<1) 
    { 
     Print("File my_data.dat not found, the last error is ", GetLastError());  
    } 

    //Print(str);

  }
  }
Mit Zitat antworten
  #17 (permalink)  
Alt 13.08.20
LQK LQK ist offline
Mitglied
 
Registriert seit: Nov 2019
Beiträge: 76
LQK befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Max2018 Beitrag anzeigen
Ansonsten.... nutze ich den Code
Besten Dank. Die von Dir gepostete Lösung führt allerdings bereits beim compilieren zu einer Fehlermeldung:

Zitat:
'T' - undeclared identifier Schreibe in Datei Lösung 3 v1.mq4 37 27
Mit Zitat antworten
  #18 (permalink)  
Alt 13.08.20
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 158
Max2018 befindet sich auf einem aufstrebenden Ast
Standard

Jaja stimmt ... dann halt so

Code:
void InDatei()
  {
 
   double SPREAD=Bid-Ask;
 
 string symbol=Symbol();
 string TextDatei;
 TextDatei=StringConcatenate("SPREAD","-",symbol,".","txt");
 if(TimeCurrent() == Time[0])  
{  
   int handle;  
   handle = FileOpen(TextDatei,FILE_READ|FILE_WRITE|FILE_TXT,"/t"); // Datei wird unter \MQL4\Files abgelegt
   FileSeek(handle, 0, SEEK_END);       
   FileWrite(handle,TimeToString(Time[0]),symbol,"SPREAD: ",NormalizeDouble(SPREAD,1));   /*nach “handle,” kommt das was in die Datei geschrieben wir mit Komma getrennt */
   FileClose(handle); 
    if(handle<1) 
    { 
     Print("File my_data.dat not found, the last error is ", GetLastError());  
    } 

    //Print(str);

  }
  }
Mit Zitat antworten
  #19 (permalink)  
Alt 14.08.20
LQK LQK ist offline
Mitglied
 
Registriert seit: Nov 2019
Beiträge: 76
LQK befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Max2018 Beitrag anzeigen
Jaja stimmt ... dann halt so

Beim Compilieren und zur Laufzeit wird jetzt kein Fehler mehr angezeigt.

Allerdings wird auch keine neue txt-Datei erzeugt. Weder ist im angegebenen Ordner /mql4/files die Datei zu finden, noch lässt sich an einem anderen Ort auf dem Computer mit der Suche eine neue erzeugte Text-Datei finden.
Mit Zitat antworten
  #20 (permalink)  
Alt 14.08.20
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 158
Max2018 befindet sich auf einem aufstrebenden Ast
Standard

Wenn Du das im Strategietester laufen lässt wird die Datei im Tester angelegt, also gehe im MT4 auf DATEI>DATEIORDNER ÖFFNEN und dann im Ordner "tester" und dann den Unterordner "files" - und im Live Betrieb unter Ordner "MQL4" und dann in "Files"
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 00:19 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.
-----------------------------------------------------------------------------------------------------------------------------