Lepsze komentarze na wykresie

Nie trzeba długo programować w MQLu, aby zacząć narzekać na domyślny mechanizm nanoszenia komentarzy na wykres. W przypadku większej ilości danych, które chcemy wyświetlić na wykresie eleganckim posunięciem będzie stworzenie sobie do tego celu funkcji pomocniczych.

Poniżej prezentuję przykładowe dwie funkcję, których sam używam w projektach:

string writeBuffer="";

void write(string text1="",string text2="") {

 if(text2!="") {
  writeBuffer=StringConcatenate(writeBuffer,text1,": ",text2,"\n");
 } else {
  writeBuffer=StringConcatenate(writeBuffer,text1,"\n");
 }

}

void writeOut() {
 Comment(writeBuffer);
 writeBuffer="";
}

Teraz krótko: jak tego używać i co dzięki temu zyskujemy. Użycie jest bardzo proste i elastyczne, prześledźmy je na kodzie poniżej:

extern int sl=80; // przykładowy parametr EA

int start() {

 write(); // dodajemy pustą linię
 write("Test wyświetlania komentarzy"); // dodajemy prosty tekst
 write("Stop loss",sl); // dodajemy linię z wyświetlaniem zmiennej

 f(); 

 writeOut();
}

void f() {
 write("Funkcja f()");
}

// oczywiście na końcu doklejamy kod z pierwszego listingu
// zawierający definicję zmiennej i funkcji

Rozwiązanie z wykorzystaniem funkcji write i writeOut jest dobre, ponieważ:

  • Taki kod wygląda znacznie ładniej…
  • …i zajmuje o wiele mniej niż doklejanie kolejnych wartości do zmiennej
  • Odpadają nam problemy związane z koniecznością pamiętania o zasięgach zmiennych, a także problemy z wyświetlaniem komentarzy z wywołanych funkcji
  • Znacznie upraszcza drukowanie zmiennych (nie trzeba się bawić w ręczne doklejanie np znaku „:”)

Tylko nie zapomnijcie dać writeOut() na końcu funkcji start ;)

Autor: Łukasz Tomaszkiewicz

Podziel się ze znajomymi:

Prześlij nam swoje uwagi

[contact-form-7 404 "Not Found"]
  • Facebook