Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 5 > Programmierung MQL5 > Codeschnipsel

Codeschnipsel Codeschnipsel für MQL5.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4973
Beiträge: 43266
Benutzer: 7.220
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: JosephTK
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 13 Stunden
- JosephTK
vor 2 Tagen
- Hopfen&Mal...
vor 3 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 448
Gesamt: 449
Team: 0
Team:  
Benutzer:  murkel
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 29.03.17
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 313
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard Textdateien schreiben

Nachdem sehr oft nach Hilfe beim Dateischreiben gefragt wird, post ich hier ein Beispiel,
das als EA programmiert ist und Tickdaten in eine Excel csv-Datei schreibt.
Code:
//+------------------------------------------------------------------+
//|                                               FileWriteTicks.mq5 |
//|                                Copyright © 2017 Ing. Otto Pauser |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2017 Ing. Otto Pauser"
#property version   "1.00"
#property description "Dieser EA schreibt die Tickdaten in eine Datei"
#property description "und läuft sowohl im MT5 als auch im MT4!"
#property description "Der Symbolname wir automatisch dem Dateinamen vorgestellt."
#property description "Dateipfad und Datei werden angelegt, falls nicht vorhanden"
#property description "Eine eventuell bestehende Datei wird überschrieben"
#property description "Press <ESC> to stop recording tickdata"

input string fPath = "Tickdata";    // File Path
input string fName = "Ticks.csv";   // File Name
input bool   fComm = false;         // Write to CommonFiles

string   fn = fPath+"\\"+_Symbol+"_"+fName;     // full filename
int      fh,                                    // file handle
         ff = FILE_WRITE|FILE_ANSI|FILE_TXT;    // file flags
         
int OnInit()
{
   if(fComm)                        // CommonFiles selected ?
      ff=ff|FILE_COMMON;            // merge the common flag to fileflags
      
   fh=FileOpen(fn,ff);              // try to open
   
   if(fh==INVALID_HANDLE)           // check the handle
      {
         Alert("*ERROR* creating "+fn);
         return(INIT_FAILED);
      }
      
   FileWriteString(fh,"Date;Time;Ask;Bid;Spread\n");  // write a header

   Comment("Recording tickdata to file: "+fn);        // information

   return(INIT_SUCCEEDED);
}

void OnDeinit(const int reason)
{
   Comment("");               // clear information
   if(fh!=INVALID_HANDLE)     // file open ?
      FileClose(fh);          // close the file
}

void OnTick()
{
   MqlTick  last_tick;        // for tickvalues
   int      last_spread;      // for the spread
   string   stOut;            // string to write
   string   delim = ";";      // excel delimiter
   
   if(!SymbolInfoTick(Symbol(),last_tick)) return;             // try to get tickinfo
   
   last_spread=(int)SymbolInfoInteger(_Symbol,SYMBOL_SPREAD);  // get spreadinfo
   
   stOut=TimeToString   (last_tick.time,TIME_DATE)   +delim+   // combine the line out
         TimeToString   (last_tick.time,TIME_SECONDS)+delim+
         DoubleToXlsStr (last_tick.ask)              +delim+
         DoubleToXlsStr (last_tick.bid)              +delim+
         IntegerToString(last_spread)+"\n" ;                   // don't forget \n for new line
         
   FileWriteString(fh,stOut);                                  // write the line to file
}

string DoubleToXlsStr(double val)               // translate double to excelstring
{
   string result = DoubleToString (val,_Digits);
   StringReplace(result, ".", ",");             // excel needs a comma not a dot
   return(result);
}

void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam)
{
   if(id==CHARTEVENT_KEYDOWN)                   // key pressed ?
      if(lparam==27)                            // <ESC> ?
         ExpertRemove();                        // remove executes OnDeinit first, then removes itself
}
Angehängte Dateien
Dateityp: mq5 FileWriteTicks.mq5 (6,6 KB, 1x aufgerufen)
Thema geschlossen

Lesezeichen

Stichworte
codeschnipsel, codeschnipsel mql5, datei schreiben, programmierung, programmierung metatrader, textdatei, textdatei schreiben, write

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 +1. Es ist jetzt 11:04 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.
-----------------------------------------------------------------------------------------------------------------------------