[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 600

 
evillive: Einfacher geht's nicht, oder?

Ich denke, das ist es. Ich sagte doch, ich bin ein Dummkopf, ich bin ein Dummkopf... Der Gewinn in der oberen Zeile wird in Pips angezeigt, nur in 3-stelliger Form:


Soweit ich verstanden habe, ist PipProfit = USDprofit/lot/Point für EURUSD. Bei Paaren mit umgekehrtem Kurs müssen wir die Differenz zwischen dem Eröffnungskurs und dem aktuellen Kurs nehmen und mit Digits multiplizieren: Pips = OrderOpenPrice()-Bid*Digits_coefficient; wobei
Digits_coefficient = MathPow(10,Digits);

Sie müssen die Differenz nicht übernehmen, dafür gibt es die Funktion OrderProfit().

Lassen Sie es uns noch einmal durchgehen, damit es sich in Ihrem Gehirn festsetzt. Lassen Sie uns also GBPJPY kaufen.

1. orderProfit() ist gleich -15,27 USD = -1228,32 JPY (für die Umrechnung in Yen mit dem USDJPY-Kurs multiplizieren).

2. Dividieren des Gewinns durch das Los, gleich 0,1.

3. Wir teilen das Ergebnis durch den Preis von 1 Pip von 1 Lot, gleich 0,01 JPY * 100000 = 1000 JPY. Wir erhalten -12,28 Punkte, d.h. wie es notwendig ist.

Hierbei handelt es sich um einen subtilen Fehler, da die Zahlen nicht zum selben Zeitpunkt erhoben werden, sondern der Yen stark ansteigt.

Formel für XXXYYY:

pips = ( USDYYY oder 1/YYYUSD ) * OrderProfit() / ( OrderLots( ) * Point ).

Hier ist Point der Punktpreis von 1 Lot in der Währung YYYY, gleich 100000 * MathPow( 10, - Digits ).

 

Guten Tag.

Was könnten die Gründe sein, warum der EA nicht optimiert ist?

Es gibt einen optimierten Parameter, die Indikatoren sind Standard.

Der Test läuft normal.

 
DOCTORS:

Können Sie mir einen Tipp geben?

Das Skript schließt überlappende Aufträge ab... Aber es gibt einen Haken - aus irgendeinem Grund werden Aufträge mit unterschiedlichen Losgrößen nicht geschlossen...

Können Sie uns sagen, wo das Problem liegt?


Ersetzen Sie zunächst die Richtung der Prüfung durch

for(int i=1; i<=OrdersTotal(); i++) // Schleife der Bestellung

unter

for(int i=OrdersTotal() - 1; i>=0; i--) // Auftragsschleife


überall

 
sting-igor:

Warum funktionieren einige EAs zuerst gut im Tester und eröffnen dann keinen einzigen Handel? Ich erinnere mich nicht an die Namen der EAs, aber ich hatte drei von ihnen, vielleicht mache ich etwas falsch? mt4

Wenn Ihr EA falsch geschrieben ist, kann er eine Division durch Null durchführen und dann nicht mehr funktionieren. Suchen Sie im Protokoll nach dem ZeroDevide-Fehler...
 
ilunga:

Ersetzen Sie für den Anfang die Kontrollrichtung durch

for(int i=1; i<=OrdersTotal(); i++) // Auftragsschleife

unter

for(int i=OrdersTotal() - 1; i>=0; i++) // Auftragsschleife


überall


Zurückgezogen, da das Drehbuch extrem fehlerhaft war... Es gibt viel zu tun... Ich wollte, dass sich die Trades auf Null überschneiden... aber es hat sich einfach überschnitten... Vielen Dank für Ihre Hilfe... ...wenn ich die Nullüberschneidung mache, werde ich sie für Fragen veröffentlichen.
 

Mathematik, wenn Sie nur die Anzahl der Pips in Gewinn/Verlust benötigen, können Sie es auf eine noch einfachere Weise tun, ich war gerade schlief gestern, als ich schrieb )))

Sie scheinen universelle Formeln zu sein, die für alle Währungspaare geeignet sind:

double tickvalue = MarketInfo(OrderSymbol(),MODE_POINT); //если нужно значение тика для инструмента в окне которого установлен эксперт, то просто используем Point в дальнейшем

Pips = (OrderOpenPrice()-Ask)/tickvalue; // order short

Pips = (Bid - OrderOpenPrice())/tickvalue; // order long

.

 

Meine Herren, bitte helfen Sie.

Ich brauche eine Funktion, die prüft, ob der Preis das Handgelenk während der letzten X Bars berührt hat?

Bitte treten Sie mich nicht zu hart, denn ich bin ein kompletter Dummkopf.

 

Wie kann man den Awesome-Indikator nur für 1H umschreiben? Angenommen, ich hänge Awesome an 4H an, möchte ich, dass der Indikator Daten anzeigt, die sich auf 1H und nicht auf 4H beziehen.

//
IndicatorShortName("AO");
SetIndexLabel(1,NULL);
SetIndexLabel(2,NULL);

ExtBuffer0[i]=iMA(NULL,0,5,0,MODE_SMA,PRICE_MEDIAN,i)-iMA(NULL,0,34,0,MODE_SMA,PRICE_MEDIAN,i);

Ich ändere NULL in PeriodH1, aber das hilft nicht.

 
flintz:

Wie kann man den Awesome-Indikator nur für 1H umschreiben? Angenommen, ich hänge Awesome an 4H an, so möchte ich, dass der Indikator Daten anzeigt, die sich auf 1H und nicht auf 4H beziehen.

//---- Name für das Datenfenster und die Bezeichnung des Unterfensters des Indikators
IndikatorKurzname("AO");
SetIndexLabel(1,NULL);
SetIndexLabel(2,NULL);

ExtBuffer0[i]=iMA(NULL,0,5,0,MODE_SMA,PRICE_MEDIAN,i)-iMA(NULL,0,34,0,MODE_SMA,PRICE_MEDIAN,i);

Ich ändere NULL in PeriodH1, aber das hilft nicht.

Wechsel von NULL zu "0" (der Parameter neben NULL).
 
Vielen Dank !!!