Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 197
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ich habe mir das Video über die Arbeit mit externen Indikatoren angesehen und einen kleinen Code geschrieben, um die Werte der Puffer im Tester zu sehen:
void OnTick()
{
double Buf1=iCustom(NULL,0, "Shved-Supply-and-Demand-e600",0,1);
double Buf2=iCustom(NULL,0, "Shved-Supply-and-Demand-e600",1,1);
double Buf3=iCustom(NULL,0, "Shved-Supply-and-Demand-e600",2,1);
double Buf4=iCustom(NULL,0, "Shved-Supply-and-Demand-e600",3,1);
Comment("Buf1=",Buf1,"\n", "Buf2=",Buf2,"\n","Buf3=",Buf3,"\n","Buf4=",Buf4);
}
Die Zonen erscheinen und verschwinden im Visualisierungsmodus. Aber der Wert der Puffer ist ohnehin immer Null. Gibt es keine Möglichkeit, diese Zonen im Kodex zu formalisieren?
Vielleicht gibt es eine andere Funktion als iCustom, die für solche Indikatoren geeignet wäre? Vielleicht hat jemand Eulen mit solchen Indikatoren geschrieben?
Es gibt keine Möglichkeit, Indikatorpuffer zu verwenden, da sie fraktale Werte speichern.
In den Indikatoreigenschaften fractals_show = true; Sie werden sie auf dem Diagramm sehen
Zonen, grafisches Objekt OBJ_RECTANGLE
Sie können den Wert dieser Zonen mit
ObjectGet
Gibt den Wert einer angegebenen Objekteigenschaft zurück.
doubleObjectGet(
stringobject_name,// Objektname
intindex// Kennung der Eigenschaft
);
Du gehst alle Objekte durch, findest das richtige und findest den Weg.
Ungefähr sieht es so aus
In diesem Thread habe ich eine Vorlage für ein Schleppnetz gepostet, das den an es gesendeten Indikatorwert für seine Berechnungen verwendet. Schlagen Sie es nach, seien Sie nicht faul.
Ich benötige einen korrekten Trailing-Stop für offene Positionen, von denen es letztendlich 1 oder 3 gibt und die durch einen Step-Wert verbunden sind. Vielleicht ist es aber auch einfacher, alle Aufträge mit der Funktion CalculateProfit() zu verfolgen. Nun kann ich nicht herausfinden, wie der Indikatorwert in diesem Auftragsabwicklungsschema mit der Nachverfolgung des Gesamtgewinns der offenen Positionen in Verbindung gebracht werden kann.
Ich benötige genau den richtigen Trailing-Stop für den Gewinn offener Positionen, von denen es letztlich 1 oder 3 gibt und die durch den Step-Wert gebunden sind, d.h. es handelt sich um ein Stop-and-Reverse-System. Vielleicht ist es aber auch einfacher, alle Aufträge mit der Funktion CalculateProfit() zu verfolgen. Nun kann ich nicht herausfinden, wie der Indikatorwert in diesem Auftragsabwicklungsschema mit der Nachverfolgung des Gesamtgewinns der offenen Positionen in Verbindung gebracht werden kann.
Der Indikator, d.h. sein Wert, kann ein anderer Wert sein als z.B. der MAK des gewünschten Balkens. Der Wert des für die Verschiebung des Gesamtstopps der Positionen berechneten Preises kann an das Schleppnetz gesendet werden.
Es ist jedoch nicht klar, welche Art von Schleppnetz Sie auf offenen Positionen haben - was und wann genau es schleppt.
Alle Wanderwege sind hier. Aus der Datei TrailingFuncLib.mq4 nehme ich die Funktion TrailingStairs - STANDARD-STANDARD Trailing. Jeder Auftrag wird unabhängig verfolgt.
Der Indikator, d.h. sein Wert, kann ein anderer Wert sein als z.B. der MAK des gewünschten Balkens. Der Wert des für die Verschiebung des Gesamtstopps der Positionen berechneten Preises kann an das Schleppnetz gesendet werden.
Es ist jedoch nicht klar, welche Art von Schleppnetz Sie auf offenen Positionen haben - was und wann genau es schleppt.
Im Prinzip ja, mir wurde einmal ein Schleppnetz nach Durchschnittspreis angeboten. Alles scheint logisch, aber was bedeutet das - Durchschnittspreis? Ist es (Preis für 1 Auftrag + Step*Point + (Preis für 2 Aufträge + Step*Point) + Preis für 3 Aufträge) / 3? Es handelt sich also um eine Menge von Parametern - Sie müssen die offenen Positionen und den aktuellen Preis jeder Position abrufen. Wie auch immer, dieser Trailing-Stop stört mich weniger als die Tatsache, dass der EA während der Tests an Wert verliert. Was wird beim realen Handel passieren? Es kann eingestellt werden, aber wir wissen nicht, welche Wendung das Währungsdiagramm in einer Woche oder in einem Monat nehmen wird, daher gibt es eine Schwachstelle - wenn 3 Aufträge eröffnet werden und es eine Gegenbewegung auf dem Markt gibt, wird der Expert Advisor aufgrund eines Drawdowns scheitern. Wir sollten also darüber nachdenken, den Drawdown zu begrenzen und die Positionen zu schließen, bevor die Einlage auf Null gesetzt wird. Um es kurz zu machen, es ist Fox, der mich am meisten interessiert)))
Ich kann es selbst nicht herausfinden, und ich habe auch keine spezifischen Informationen gefunden(( Die Idee ist, die Preisgrenzen im Code zu markieren, die nächstgelegenen Zonen, die vom Indikator gebildet werden. Ich habe angefangen, Code zu schreiben, aber ich bin verwirrt und weiß nicht, ob ich es richtig mache oder nicht. Ich weiß nicht, ob ich es richtig oder falsch mache.
int obj_total=ObjectsTotal();
string name;
for(int i=0;i<obj_total;i++)
{
name = ObjectName(i);
if(ObjectType(name)==OBJ_RECTANGLE)
{
pr1=ObjectGet(name,OBJPROP_PRICE1);// верхняя цена зоны
pr2=ObjectGet(name,OBJPROP_PRICE2);// нижняя цена зоны
}
}
Ich habe es herausgefunden - anscheinend hatte das Terminal nicht genug Speicherplatz - ich habe ein paar Diagramme geschlossen und es hat funktioniert.
Vielen Dank - die Berechnungen finden tatsächlich statt.
Und wenn die Variablen nicht vom Typ int, sondern bool sind, was ist dann zu tun?
Es tut mir leid, aber unterscheidet sich dieser Code vom letzten?
Die Unterschiede sind minimal. Eine der Variablen ist logisch.
Die Ausgabe lautet true oder false
Die Unterschiede sind minimal. Eine der Variablen ist logisch.
Die Ausgabe lautet true oder false