Startseite Technischer Indikator Beitrag

Kontoinformationen: Indikatoren für MetaTrader 4 verstehen

Anhang
11015.zip (5.3 KB, Herunterladen 0 mal)

Indikatoren können wichtige Kontoinformationen direkt auf dein Chart bringen. Dazu gehören Gewinn, Kontostand, Eigenkapital, freier Margin, Margin und Margin-Level %.

  1. Indikator 1: Account Info Vertical 4.01 zeigt die Kontoinformationen in vertikaler Reihenfolge an.
  2. Indikator 2: Account Info Horizontal 4.01 zeigt die Kontoinformationen in horizontaler Reihenfolge an.
  • Kontoinformationen ausblenden: Klicke irgendwo auf den Text der Kontoinformationen.
  • Kontoinformationen anzeigen: Klicke auf den Text 'Account Info'.
  • Nur Gewinn anzeigen: Wähle 'true' im Eingabewert aus.

Die horizontale und vertikale Achse sorgt automatisch für gleichmäßigen Abstand zwischen den Kontoinformationen, sodass es zu keinen Überlappungen der Schriftarten kommt – siehe Empfehlungen unten.

Die Antwort auf das Ausblenden/Anzeigen hängt von den eingehenden Ticks oder der Aktualisierung des Charts ab. In Märkten mit wenigen Ticks oder geschlossenen Märkten kann es so aussehen, als ob der Ausblenden/Anzeigen-Klick nicht funktioniert, während auf einen Tick oder eine Chartaktualisierung gewartet wird. Ein Auto-Refresh-Timer-Indikator ist im Download enthalten. Es ist nur notwendig, den Auto-Refresh-Timer an einem Chart anzuhängen, da er alle Instanzen der vertikalen und horizontalen Kontoinformationen über alle Charts hinweg aktualisiert.

Eine Erhöhung der Auto-Refresh-Häufigkeit hat nur minimale Auswirkungen auf die CPU-Auslastung bei aktueller Hardware. Ein Programm wie Core Temp (kostenlos) von http://www.alcpu.com/CoreTemp/ kann eingerichtet werden, um die CPU-Auslastung, CPU-Temperatur und den verwendeten RAM-Prozentsatz in der Taskleiste anzuzeigen und kann dazu verwendet werden, die Auswirkungen des Programms auf die CPU-Auslastung zu überwachen.

Kontoinformationen: Klicken zum Ausblenden

Kontoinformationen: Klicken zum Anzeigen

Kontoinformationen: Klicken zum Ausblenden

Kontoinformationen: Klicken zum Anzeigen

Empfehlungen

Horizontale und vertikale Achsen sorgen für gleichen Abstand zwischen den Kontoinformationen.

Die folgenden Anforderungen müssen erfüllt sein:
  1. Der Abstand zwischen aufeinander folgenden Kontoinformationen muss gleich sein.
  2. Eine Vergrößerung oder Verkleinerung der Schriftgröße darf nicht zu Überlappungen führen.

Gleicher Abstand auf der vertikalen Achse zwischen den Kontoinformationen *

* Um unnötige Wiederholungen zu vermeiden, bezieht sich jede Erwähnung von 'gleichem Abstand' auf 'gleichen Abstand zwischen den Kontoinformationen'.

Für Kontoinformationen in vertikaler Reihenfolge hängt der gleichmäßige Abstand auf der vertikalen Achse von einer OBJPROP_YDISTANCE-Formel ab.

Der gleichmäßige Abstand auf der vertikalen Achse wird durch Einbeziehung der folgenden Punkte in die Formel aufrechterhalten:
  1. Die nachfolgenden OBJPROP_YDISTANCE-Formeln für die Kopfzeilen sorgen für vertikalen Abstand, indem sie die Schriftgröße entsprechend den aufeinander folgenden, zugewiesenen Zahlen multiplizieren.
  2. Überlappungen der Schrift auf der vertikalen Achse werden vermieden, da jeder gleichmäßige Abstand proportional zur Änderung der Schriftgröße zunimmt oder abnimmt.
  3. Der vertikale Achsenverschiebung von OBJPROP_YDISTANCE wird durch die Einbeziehung des entsprechenden Eingabewertes aufrechterhalten.

Der folgende Code für account_info_vertical veranschaulicht die Lösung.

input int Up_Down=10; // Oben <-> Unten 
..........
int OnInit()
 { 
   ..........
   {
    Up_Down_ML=Up_Down+Font_Size*10;
    Up_Down_M =Up_Down+Font_Size*8;
    Up_Down_FM=Up_Down+Font_Size*6;
    Up_Down_E =Up_Down+Font_Size*4;
    Up_Down_B =Up_Down+Font_Size*2;
    Up_Down_P =Up_Down;
   }
   ..........
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],..........)
 {
  ..........
  // Balance Header YDISTANCE
  ObjectSet("Acc_B_v",OBJPROP_YDISTANCE,Up_Down_B);
  ...........
  // Gewinn Header YDISTANCE
  ObjectSet("Acc_P_v",OBJPROP_YDISTANCE,Up_Down_P);
  ...........


Gleicher Abstand auf der horizontalen Achse zwischen den Kontoinformationen

Für Kontoinformationen in horizontaler Reihenfolge hängt der gleichmäßige Abstand auf der horizontalen Achse von einer OBJPROP_XDISTANCE-Formel ab.

Die OBJPROP_YDISTANCE-Formel für den gleichmäßigen Abstand auf der vertikalen Achse ist relativ einfach, da alle Elemente der aufeinander folgenden Kopfzeilenformeln, der entsprechenden OBJPROP_YDISTANCE-Eingabewert und die geraden Sequenzmultiplikatoren sowie die Schriftgröße konstant bleiben.

Die aufeinander folgenden OBJPROP_XDISTANCE-Formeln für den horizontalen Abstand müssen jedoch eine Echtzeit-Aktualisierung ermöglichen, die sich aus den Längen der vorhergehenden Kontoinformationen ergibt, die sich je nach Änderungen in Margin, Gewinn oder Verlust, Kontostand usw. erhöhen oder verringern.

Der gleichmäßige Abstand auf der horizontalen Achse wird durch die Einbeziehung der folgenden Punkte in die Formel aufrechterhalten:

  1. Die aufeinander folgenden OBJPROP_XDISTANCE-Formeln sorgen für horizontale Gleichheit, indem sie die Gesamtlänge aller Zeichen in den vorhergehenden Kopfzeilen zählen und mit einem geeigneten Multiplikator für die Schriftgröße multiplizieren.
  2. Überlappungen der Schrift auf der horizontalen Achse werden vermieden, da jeder gleichmäßige Abstand proportional zur Änderung der Schriftgröße zunimmt oder abnimmt.
  3. Der horizontale Achsenverschiebung von OBJPROP_XDISTANCE wird durch die Einbeziehung des entsprechenden Eingabewertes aufrechterhalten.
Der folgende Code für account_info_horizontal veranschaulicht die Lösung.
input int Left_Right_P=15; // Links <-> Rechts 

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],.........)
 {
  double Spacer_Mult=Font_Size*Spacing*0.1;
  ..........
  ..........
  // Gewinn Header Zeichenlänge
  int StLenP=StringLen(Acc_P_Header+Acc_Curr+Acc_gap_P+Acc_P_hs);
  ..........
  // Balance Header Zeichenlänge
  int StLenB = StringLen(Acc_B_Header+Acc_B_hs);
  ..........
 
  ..........
  // Equity Header XDISTANCE
  ObjectSet("Acc_E_h",OBJPROP_XDISTANCE,(StLenP+StLenB)*Spacer_Mult+Left_Right_P);
  ..........
  // Balance Header XDISTANCE
  ObjectSet("Acc_B_h",OBJPROP_XDISTANCE,StLenP*Spacer_Mult+Left_Right_P);
  ..........
  // Gewinn Header XDISTANCE
  ObjectSet("Acc_P_h",OBJPROP_XDISTANCE,Left_Right_P);
  

Verwandte Beiträge

Kommentar (0)