Elite-Indikatoren :) - Seite 157

 

Es wird funktionieren

Sie könnten etwas wie if (previousNumberOfBars != Bars) oder if (volume[0]==1) verwenden, aber die Verwendung des Volumens ist empfindlich (lässt viel mehr Raum für Fehler, und fast sicher, dass bei der ersten Ausführung nicht alle notwendigen Bars berechnet werden, da das Volumen bereits > 1 sein wird)

Ich würde auf jeden Fall empfehlen, die ersten beiden Zeilen der Schleife zu invertieren, so dass sie etwa wie folgt aussehen:

if(lastbar != Time[0])

{

for(int i=limit; i>=0; i--)

{[/php]You need to check that condition only once

regards

mladen

Snowski:
Quick coding question:

If I want an indicator to start its calculation on the open of a new bar, how can I code this?

I now have this - just an example, but I doubt it's correct:

[php]

datetime lastbar;

double buffer_a[];

double buffer_b[];

//+------------------------------------------------------------------+

//| Custom indicator iteration function |

//+------------------------------------------------------------------+

int start()

{

int bars_counted = IndicatorCounted();

if(bars_counted < 0)

{

return(1);

}

bars_counted--;

int limit = Bars - bars_counted;

if(limit>BarsToLoad && BarsToLoad>0)

{

limit = BarsToLoad;

}

for(int i=limit; i>=0; i--)

{

if(lastbar != Time[0])

{

buffer_a = iMA(Symbol(), 0, FastEMA, 0, MODE_EMA, PRICE_CLOSE, i);

buffer_b = iMA(Symbol(), 0, FastEMA, 0, MODE_EMA, PRICE_CLOSE, i+1);

//LONG ARROW

if(buffer_a > buffer_b)

{

ExtMapBuffer1 = Open - distance;

}

//SHORT ARROW

if(buffer_a < buffer_b)

{

ExtMapBuffer2 = Open + distance;

}

lastbar = Time[0];

}

}

//----

return(0);

}

//+------------------------------------------------------------------+
 

Ja, natürlich, wechseln Sie die Schleifen... viel besser.

Welche Methode ist Ihrer Meinung nach am genauesten, die if(previousNumberOfBars != Bars) oderif(lastbar != Time[0]) Option?

Ich persönlich sehe auf den ersten Blick keinen offensichtlichen Unterschied, aber vielleicht liege ich ja falsch. Ich stimme zu, dass die Volume-Option nicht gut für den Indikator ist, aber im EA könnte sie funktionieren.

Vielen Dank mladen, eine große Hilfe für meine eher dürftigen Indie-Coding-Kenntnisse...

Prost!

San.

 
chris1010:
Mladen oder Mr. Tools, wäre es möglich, eine Pop-up- und E-Mail-Benachrichtigung zu diesem Indikator hinzuzufügen, bitte? Ich habe den Eindruck, dass, wenn alle Linien im Indikatorfenster gleichzeitig am oberen oder unteren Rand des Indikatorfensters sind, ein guter Kauf- oder Verkaufspunkt identifiziert wird. Ich danke Ihnen für jede Hilfe. Chris

Hier gehen Sie Chris, da der Markt jetzt geschlossen nicht in der Lage, den Alarm live zu testen, sondern bekam Alarm auf 1-Minuten-Chart auftauchen, so hoffentlich sollte es in Ordnung sein, Alarm sollte gehen, wenn wso und wro sind beide auf Benutzer auswählbaren kaufen oder verkaufen Ebenen. Und ich stimme mit Ihnen überein, dass dieser Indikator, wenn beide Linien entweder am Maximum oder am Minimum sind, gute Kauf- und Verkaufsgelegenheiten zu bieten scheint.

Dateien:
 

Herr Tools. Ich danke Ihnen. Es ist toll, dass mir großartige Programmierer helfen.

 

San

Ehrlich gesagt, weiß ich nicht, welchen ich empfehlen soll.

Bars ist eine Art interne Metatrader-Variable des aktuellen Charts und Time[0] ist ein Element einer Array-Struktur, die jeden einzelnen Balken beschreibt, den es in seiner Historie für den aktuellen Chart gibt. Meine Vermutung ist, dass zuerst Bars aktualisiert wird, um die neue Array-Größe widerzuspiegeln, und dass dann die neu hinzugefügte Struktur des Arrays mit Daten (Zeit, "Volumen" und Preise) aktualisiert wird. Aber wenn sie es in einer "sequenziellen Weise" tun (nicht zulassen, dass andere Threads ausgeführt werden, bis die Code-Ausführung beendet ist - und ich bin fast 100% sicher, dass es die Art und Weise ist, wie es getan wird - soweit ich herausgefunden habe, gibt es immer einen separaten Thread, der Daten herunterlädt und all die Dinge verwaltet, über die wir sprechen, und wir alle haben eine "Pause" in der Ausführung bemerkt, wenn wir ein neues Diagramm öffnen und mehr Daten heruntergeladen und zu Arrays und Variablen und Diagrammen hinzugefügt werden, die wir dann vom Metatrader-Code verwenden), dann werden beide Variablen für einen Benutzer gleichzeitig sichtbar sein ... Die Zugriffszeit sollte die gleiche sein ... Also: alles das Gleiche

Grüße

mladen

Snowski:
Ja, natürlich, schalte die Schleifen um...viel besser.

Welche Methode ist deiner Meinung nach genauer, die if(previousNumberOfBars != Bars) oderif(lastbar != Time[0]) Option...?

Ich persönlich sehe auf den ersten Blick keinen offensichtlichen Unterschied, aber ich kann mich irren. Ich stimme zu, dass die Volume-Option nicht gut für den Indikator ist, aber im EA könnte sie gut funktionieren.

Vielen Dank mladen, eine große Hilfe für meine eher dürftigen Indie-Coding-Kenntnisse...

Danke,

San.
 
mladen:

Fudo, alles ist in Ordnung. Es gab nur einige Dinge, die unverzüglich erledigt werden mussten, und mein Beitrag bei TSD hat darunter ein wenig gelitten. Jetzt ist es gelöst, so dass meine Zeit weniger geteilt sein wird.

Wünsche allen ein schönes Wochenende

Grüße

mladen

Hallo mladen,

es freut mich zu hören, dass alles in Ordnung ist

wenn du die Möglichkeit hast, habe ich 2 Indikatoren gepostet, einen MA des RSX und die Triangular MA abands.

Kann man die Triangular MA abands auch auf den MA des RSX anwenden?

Vielen Dank!

Fudo

Fudomyo:

mladen,

wäre es möglich, den MA des RSX (oder sogar einen einfachen RSX, wenn der MA des RSX nicht möglich ist) mit Triangular MA abands zu kombinieren?

Danke
 

Danke mladen, ausgezeichnete Erklärung, habe es nie so gesehen (Threads in MT4)...wieder etwas gelernt.

Ich bleibe bei der aktuellen Einstellung (Time[0]).

Danke, San.

 

...

Fudo

Hier geht's

Habe einige Änderungen vorgenommen (eigentlich ein neuer Indikator, aber es ist das, was ich als Idee abgeleitet) Prüfen Sie, ob das ist, was Sie im Sinn hatten.

Die erste Änderung ist, dass ich die Farbblöcke entfernt habe und die Farbe der RSX-Linie hinzugefügt habe, so dass sie jetzt anzeigt, wann sie über oder unter der Signallinie liegt (die Farbänderung ist also nicht die Steigung des RSX, sondern sein Verhältnis zur Signallinie). Zweitens ist es jetzt ein Single-File-Indikator (keine Notwendigkeit für externe Rsx-Indikatoren)

Worauf wird es angewendet: Sie können wählen - wenn Sie TmaApplyToto 0 einstellen, wird es auf RSX angewendet, sonst wird es auf die Signalleitung (MA von RSX) angewendet
Mit freundlichen Grüßen

mladen

Fudomyo:
Hallo mladen,

Es freut mich zu hören, dass alles in Ordnung ist.

wenn Sie die Möglichkeit haben, habe ich 2 Indikatoren gepostet, einen MA des RSX und den Triangular MA abands.

Kann der Triangular MA abands auf den MA des RSX angewendet werden?

Vielen Dank!

Fudo
 

Interpolieren hinzufügen

hi mladen

mtf gleitenderDurchschnitt

mtf stohaktisch

interpolieren addieren

danke

Dateien:
 

casaliss,

Diese (und ein paar weitere ) finden Sie in diesem Thread: https: //www.mql5.com/en/forum/178741

Sie haben es nicht als Option, aber diese Indikatoren sind in der Tat die Anwendung der linearen Interpolation

Mit freundlichen Grüßen

mladen

casaliss:
Hallo mladen

mtf gleitenderDurchschnitt

mtf stohaktisch

interpolieren hinzufügen

danke
Grund der Beschwerde: