Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 5 > Programmierung MQL5 > Codeschnipsel
Startseite Registrieren Hilfe Community Kalender Heutige Beiträge Suchen

Codeschnipsel Codeschnipsel für MQL5.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4978
Beiträge: 43261
Benutzer: 7.223
Aktive Benutzer: 73
Links: 84
Wir begrüßen unseren neuesten Benutzer: TS_6
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 46 Minuten
- TS_6
vor 2 Tagen
- Mane
vor 2 Wochen
- AlbertZiz
vor 2 Wochen
- michak
vor 2 Wochen
- Amateur

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 327
Gesamt: 328
Team: 0
Team:  
Benutzer:  AM581
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 23.12.16
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 313
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 für Bildschirme die nur 80 Zeichen pro Zeile darstellen können 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 rausrücken um den Programmfluss beim Lesen nicht zu stören.

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 stört den Programmfluß durch diese, größtenteils sinnlosen, Kommentare.

Wenn man sich vom russischen Forum was runterholt (diese Formulierung wurde bewusst gewählt) 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 Vorschläge 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 zurückversetzt 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 veröffentlichen.

Ich bin derzeit auf diese Sturköpfe und Präpotenzler extrem angefressen

Noch ein Hinweis: ArrayIsSeries() ist fehlerhaft. verwendet ArrayGetAsSeries(), das liefert korrekte Werte.
  #2 (permalink)  
Alt 23.12.16
Premium Mitglied
 
Registriert seit: Apr 2015
Beiträge: 422
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 Börsenprogramm.
__________________

Easy Trading Assistant
  #3 (permalink)  
Alt 23.12.16
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 313
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.
  #4 (permalink)  
Alt 23.12.16
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 313
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.
  #5 (permalink)  
Alt 17.03.17
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 313
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard Tool KillComment

Wer auch keine sinnlosen Kommentare wünscht, 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 für 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 vergrößern.

Hinweis: Die Ergebnisdatei überschreibt die Eingabedatei.

Grüße Otto
  #6 (permalink)  
Alt 17.03.17
Mitglied
 
Registriert seit: Jun 2014
Beiträge: 214
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 erwägt.
Wobei auch von den Abzocker-Brokerbuden im MT4 nicht sprechen will.

Carpe Diem,
Hosch
  #7 (permalink)  
Alt 17.03.17
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 313
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 für die Info, ich schau mir das an.
LG Otto
  #8 (permalink)  
Alt 14.04.17
Mitglied
 
Registriert seit: Aug 2014
Beiträge: 47
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 bewährt, außer Du hast ein großprojekt aus Rußland mit gefühlt 200 Dateien. Dann ist das sh*** !!
  #9 (permalink)  
Alt 21.04.17
Mitglied
 
Registriert seit: Apr 2016
Beiträge: 55
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 wäre ja noch was anzufangen und die Sprache auf RU umzustellen bringt auch nichts ....
Thema geschlossen

Lesezeichen

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


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 12:27 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.
-----------------------------------------------------------------------------------------------------------------------------