Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurck   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 5 > Programmierung MQL5 > Codeschnipsel

Codeschnipsel Codeschnipsel fr MQL5.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3629
Beitrge: 35740
Benutzer: 5.757
Aktive Benutzer: 627
Links: 80
Wir begren unseren neuesten Benutzer: bayusuta
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 7 Stunden
- bayusuta
vor 18 Stunden
- LukasS
vor 2 Tagen
- Piz_Buin
vor 2 Tagen
- ThisIsSef
vor 3 Tagen
- ASZSpeedy

Onlineuser
'Wer ist online' anzeigen Benutzer: 4
Gste: 56
Gesamt: 60
Team: 0
Team:  
Benutzer:  Crashbulle, MA-EA, next user, traderdoc
Freunde anzeigen

Empfehlungen

Werbung

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 23.12.16
Benutzerbild von Kronenchakra
Mitglied
 
Registriert seit: Feb 2016
Ort: 2100 sterreich
Beitrge: 258
Kronenchakra befindet sich auf einem aufstrebenden Ast
Angry Es mu einmal gesagt werden: Die besch...eidenen Kommentare in mql sind zum erbrechen

Hallo Traderfreunde und Progger.

Ich muss mir meinen Frust ber Metaquotes einmal von der Seele schreiben.

Ich hasse die Form der Kommentare wie sie von Metaquotes vorgegeben werden.
Diese Form ist antiquiert und ist fr Bildschirme die nur 80 Zeichen pro Zeile darstellen knnen geeignet. (EGA / VGA) kennt jemand das noch? Die Russen schon!
Auf modernen Bildschirmen lassen sich locker 200 Zeichen darstellen. Da kann man doch den Kommentar rechts rausrcken um den Programmfluss beim Lesen nicht zu stren.

Frage: Ist das hilfreich?
Code:
//+------------------------------------------------------------------+
//|                                              iStochKomposter.mq5 |
//|                                      Copyright  2006, komposter |
//|                                      mailto:komposterius@mail.ru |
//+------------------------------------------------------------------+
//---  
#property copyright "Copyright  2006, komposter"
//---    
//---   
#property version   "1.00"
//---     
#property indicator_chart_window 
//---        
#property indicator_buffers 2
//---     
#property indicator_plots   2
//+----------------------------------------------+
//|        |
//+----------------------------------------------+
//---   1   
#property indicator_type1   DRAW_ARROW
Aber Metaquotes geht nicht mit der Zeit und strt den Programmflu durch diese, grtenteils sinnlosen, Kommentare.

Wenn man sich vom russischen Forum was runterholt (diese Formulierung wurde bewusst gewhlt) ist der Kommentar sowieso sinnlos.
Allerdings hilft Google Translator ein wenig.

Der Metaeditor kann nicht einmal Kyrillische Schriftzeichen darstellen. Der Workaround geht ber den NPP-

Dem Service-Desk irgendwelche Vorschlge zu machen ist sowieso sinnlos, da sitzen irgendwelche dummies die nur antworten: 'Thanks you for suggestion, but we don't have this feature in our list'

Ich komme mir mit diesem Metaeditor oft in die EDV-Steinzeit zurckversetzt vor.
Kein CodeFolding, kein Block ausschneiden und in Datei speichern, und und und. Der NPP(Notepad++) kann da mehr.

Also habe ich beschlossen eine Utility zu erschaffen.
Wird 'KillComment.exe' benamst werden und in Delphi geschrieben sein.

Anfang Februar werde ich dieses Tool verffentlichen.

Ich bin derzeit auf diese Sturkpfe und Prpotenzler extrem angefressen

Noch ein Hinweis: ArrayIsSeries() ist fehlerhaft. verwendet ArrayGetAsSeries(), das liefert korrekte Werte.
__________________
Das Gras wchst nicht schneller wenn man daran zieht
Mit Zitat antworten
  #2 (permalink)  
Alt 23.12.16
Premium Mitglied
 
Registriert seit: Apr 2015
Beitrge: 362
Raul0 befindet sich auf einem aufstrebenden Ast
Standard

Ich weiss nicht was Du von "diesem Bereich" der Programmierung erwartest Herr Kronenchakra.

Ein Turbo Pascal, wirst Du hier nicht finden, ist nur ein Brsenprogramm.
__________________

Du suchst ein Tradertool?
Mit Zitat antworten
  #3 (permalink)  
Alt 23.12.16
Benutzerbild von Kronenchakra
Mitglied
 
Registriert seit: Feb 2016
Ort: 2100 sterreich
Beitrge: 258
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard

Ich will blos einen professionellen Editor und einen kooperativen Sevice-Desk.
Der Metaeditor ist antik, und der Service-Desk stur, und teilweise inkompetent.
Aber egal, ich muss mich halt den Gegebenheiten anpassen
Ausserdem bin ich nicht der Herr Kronenchakra.
__________________
Das Gras wchst nicht schneller wenn man daran zieht
Mit Zitat antworten
  #4 (permalink)  
Alt 23.12.16
Benutzerbild von Kronenchakra
Mitglied
 
Registriert seit: Feb 2016
Ort: 2100 sterreich
Beitrge: 258
Kronenchakra befindet sich auf einem aufstrebenden Ast
Unhappy

Service-Desk war wieder mal kooperativ
Zitat:
Hello.

Thank you for suggestion. We have carefully considered it. Unfortunately, we are forced to reject, please use existing posibilities Ctrl + C.

It doesn't make a sense to add this feature.
und das haben sie mir schon des fteren geschrieben:
Zitat:
Thanks you for suggestion, but we don't have this feature in our list
Ich geb's auf. Ist blos Zeitverschwendung.
__________________
Das Gras wchst nicht schneller wenn man daran zieht
Mit Zitat antworten
  #5 (permalink)  
Alt 17.03.17
Benutzerbild von Kronenchakra
Mitglied
 
Registriert seit: Feb 2016
Ort: 2100 sterreich
Beitrge: 258
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard Tool KillComment

Wer auch keine sinnlosen Kommentare wnscht, dem sei dieses Tool geschenkt.
Die Datei deren Kommentar entfernt werden soll muss in das Verzeichnis MQLx\Files\KillComment gestellt werden (Sandbox Restriktionen von MQ).
Sollte auch fr den MT4 funktionieren.
Code:
//+------------------------------------------------------------------+
//|                                                  KillComment.mq5 |
//|                                Copyright  2017 Ing. Otto Pauser |
//|                       https://www.mql5.com/de/users/kronenchakra |
//+------------------------------------------------------------------+
#property copyright   "Copyright  2017 Ing. Otto Pauser"
#property link        "https://www.mql5.com/de/users/kronenchakra"
#property version     "1.00"
#property description "Dieses Script entfernt alle Kommentare bis auf den Kopfkommentar am Anfang der Datei"
#property script_show_inputs

input string   inp_fPath  = "KillComment";      // Filepath
input string   inp_fName  = "FileName.mq5";     // Filename (IN/OUT)
input int      inp_skip   = 7;                  // Skip number of lines (header)
input bool     inp_right  = true;               // Comment right // this will be deleted
input bool     inp_left   = true;               // //--- Comment at beginning will be deleted
input bool     inp_spacer = false;              // //--- Delete spacer only

string fn = inp_fPath+"\\"+inp_fName;           // filename
int    fh;                                      // filehandle
string lines[];                                 // lines array

int OnStart()                                   // normally it's void, but to use MyAlert() it's int like OnInit()
{
   string line;                                 // single line
   int    count = 0,                            // lines counter
          asize = 500,                          // arraysize of lines array
          pos;                                  // stringposition of "//"
   
   ArrayResize(lines,asize);                    // set initial size of array, no initialization necessary
   
   fh=FileOpen(fn,FILE_READ|FILE_SHARE_READ|FILE_TXT|FILE_ANSI);
   if(fh==INVALID_HANDLE)                       // errorcheck
      return(MyAlert(-1,"*ERROR* "+fn+" not found"));

   while(!FileIsEnding(fh))                     // scan the file
      {
         line=FileReadString(fh);               // read the line
         if(count>inp_skip-1)                   // number of lines skipped
            {
               pos=StringFind(line,"//");       // search the comments
               if(pos>-1)                       // found at pos
                  if(pos==0)                    // comment at the beginning of line
                     {
                        if(inp_left)            // option 'delete left' selected
                           line="";
                     }
                  else                          // comment beside code
                     {
                        if(inp_right)           // option 'delets right' selected
                           line=StringSubstr(line,0,pos);
                     }
            }                                   // StringTrimRight() macht den string unbrauchbar 
         
         lines[count]=line;                     // store the line in array
         count++;                               // increment counter
         if(count>=ArraySize(lines))            // resize the array if necessary
            ArrayResize(lines,ArraySize(lines)+asize);
      }

   FileClose(fh);                               // close the file
   
   if(!FileDelete(fn))                          // delete the file
      return(MyAlert(-1,"*ERROR deleting file "+fn));
                                                // create the file with same name
   fh=FileOpen(fn,FILE_WRITE|FILE_SHARE_WRITE|FILE_TXT|FILE_ANSI);
   if(fh==INVALID_HANDLE)                       // errorcheck
      return(MyAlert(-1,"*ERROR* "+fn+" not found"));

   FileWriteString(fh,lines[0]+"\n");           // write the first line
      
   for(int i=1; i<count; i++)                   // write the lines back to file (skip double blank lines)
      if((lines[i]!="") || (lines[i-1]!=""))
         FileWriteString(fh,lines[i]+"\n");

   FileClose(fh);                               // close the file
   
   PlaySound("ok");                             // make some noise
   return(INIT_SUCCEEDED);                      // return value does not matter in this case
}

//+------------------------------------------------------------------+
//| This Alert() function is very useful also for Indicators and EAs |
//| You can use it inside return() to avoid brackets and more code   |
//+------------------------------------------------------------------+

bool AlertPrintOnly = false;                    // controls the behavior of MyAlert()

int MyAlert(ENUM_INIT_RETCODE aRetVal, string ErrMsg="")
{
   if(AlertPrintOnly)
      {
         Print(ErrMsg);
         PlaySound("Alert");
      }
   else   
      Alert(ErrMsg);                            // Alert() itself plays the sound)
      
   ResetLastError();
   return(aRetVal);
}

/*
for ErrorCheck usually you need at least 6 lines of code

   if(fh==INVALID_HANDLE)
      {
         Alert("*ERROR* "+fn+" not found");
         ResetLastError();                      // possibly unnecessary because we exit the program now 
         return(INIT_FAILED);
      }

with this function you need only 2 lines of code

   if(fh==INVALID_HANDLE)                       // errorcheck
      return(MyAlert(-1,"*ERROR* "+fn+" not found"));

or particularly compact only one line, and the code remains easily readable

   if(fh==INVALID_HANDLE) return(MyAlert(-1,"*ERROR* "+fn+" not found"));
*/
Es ist auch eine nette ErrorRoutine enthalten.
Dieses Script ist auch ein Beispiel zum Textdateien lesen und schreiben.
Auch das handling des Arrays 'lines[]' ist ein Beispiel um ein dynamisches Array effektiv, und nur bei Bedarf, zu vergrern.

Hinweis: Die Ergebnisdatei berschreibt die Eingabedatei.

Gre Otto
__________________
Das Gras wchst nicht schneller wenn man daran zieht
Mit Zitat antworten
  #6 (permalink)  
Alt 17.03.17
Mitglied
 
Registriert seit: Jun 2014
Beitrge: 212
Hosch befindet sich auf einem aufstrebenden Ast
Standard

Sali,

ich weiss nicht, warum du dir das mit dieser ganzen Abzocker-Klitsche Metaquotes antust, und nicht auf professionelle System umsteigst wie NinjaTrader, JForex. Bei NinjaTrader hast du Visual Studio als Umgebung, was ja eine richtige Entwicklungsumgebung darstellt, und nicht diesem Notepad Ersatz von Metaquotes. Sogar Dukascopy mit JForex ist mit Eclipse deutlich besser.
Warum kann man immer noch nicht im Jahre 2017 im Rahmen eines Backtests bei MQ4 oder MQ5 debuggen? Das ist so etwas zeitintensiv, dass mich das zum Umstieg erwgt.
Wobei auch von den Abzocker-Brokerbuden im MT4 nicht sprechen will.

Carpe Diem,
Hosch
Mit Zitat antworten
  #7 (permalink)  
Alt 17.03.17
Benutzerbild von Kronenchakra
Mitglied
 
Registriert seit: Feb 2016
Ort: 2100 sterreich
Beitrge: 258
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Hosch Beitrag anzeigen
Sali,
Bei NinjaTrader hast du Visual Studio als Umgebung, was ja eine richtige Entwicklungsumgebung darstellt, und nicht diesen Notepad Ersatz von Metaquotes. Sogar Dukascopy mit JForex ist mit Eclipse deutlich besser.
Hosch
Danke fr die Info, ich schau mir das an.
LG Otto
__________________
Das Gras wchst nicht schneller wenn man daran zieht
Mit Zitat antworten
  #8 (permalink)  
Alt 14.04.17
Mitglied
 
Registriert seit: Aug 2014
Beitrge: 46
marquez befindet sich auf einem aufstrebenden Ast
Standard

Das "Russen" Problem hatte ich bereits schon im Metaquotes Forum vor ewiger Zeit angesprochen.

So ganz genau wei ich die Antwort nicht mehr, allerdings ging es darum dass man in Windows (!!) was umstellen sollte wegen der inkompatiblen Zeichen.

Hatte es mal ausprobiert, aber danach hatte ich sonst in Windows zu viele Probleme, daher wieder verworfen.

Allerdings mache ich mittlerweile bei diesen Dingern auch nur noch per Copy & Paste !

Hat sich ganz gut bewhrt, auer Du hast ein groprojekt aus Ruland mit gefhlt 200 Dateien. Dann ist das sh*** !!
Mit Zitat antworten
  #9 (permalink)  
Alt 21.04.17
Neues Mitglied
 
Registriert seit: Apr 2016
Beitrge: 26
Andreas2016 befindet sich auf einem aufstrebenden Ast
Standard

Und leider sind das auch wenn man mit Russisch etwas ber bersetzer machen kann unentzifferbare Zeichen. Besonders bedauerlich, wenn ich einen russischen EA ausprobieren will habe und nur solche Zeichen sehe. Mit Kyrillisch wre ja noch was anzufangen und die Sprache auf RU umzustellen bringt auch nichts ....
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
codeschnipsel, codeschnipsel mql5, kommentare, kommentare language-editor, kommentare metaquotes, programmierung, programmierung metatrader


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 Beitrge zu antworten.
Es ist Ihnen nicht erlaubt, Anhnge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beitrge 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 13:29 Uhr.



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