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

 
alsu:
schreiben Sie auf, was Sie erhalten und welche Meldungen Sie im Protokoll ausgeben



Ich habe gezeigt, wo es in gehen sollte, aber es ging nicht in, was Fraktale überprüfen sollte. ich auch im Archiv Code und Ausgabe in der Test-txt-Datei (ich änderte es, fügte meine, aber das Problem bleibt). ich nur ehrlich nicht einmal wissen, welche Variablen zu überwachen (und es gibt ein Bild der Lage

)

Dateien:
ik.zip  4 kb
 

Ich habe die Funktion GetLot (in der Datei) von einem anderen EA übernommen. In meinem alten EA gibt es an sich keinen Fehler, aber in meinem EA erzeugt er

'(' - Funktionsdefinition unerwartet C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (106, 15)
'Free' - Variable nicht definiert C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (112, 28)
'Risk' - Variable nicht definiert C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (112, 33)
'Free' - Variable nicht definiert C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (115, 17)

Wo liegt das Problem?

Dateien:
 
Warum lieben Sie alle Archivare so sehr? Haben Sie 100500 Codezeilen in Ihrem Quellcode?!
 

griha:

Ich habe die Funktion GetLot (in der Datei) von einem anderen EA übernommen. In meinem alten EA gibt es an sich keinen Fehler, aber in meinem EA erzeugt er

'(' - Funktionsdefinition unerwartet C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (106, 15)
'Free' - Variable nicht definiert C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (112, 28)
'Risk' - Variable nicht definiert C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (112, 33)
'Free' - Variable nicht definiert C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (115, 17)

Wo liegt das Problem?

Es gibt eine zusätzliche geschweifte Klammer im Code der Startfunktion vor dem ersten If, weshalb es zu Fehlern kommt. Um das Lesen der Klammern zu erleichtern, sollten Sie immer versuchen, beide zuerst zu setzen und dann alles, was Sie brauchen, in die Klammern zu schreiben. Noch besser ist es, sie in eine neue Zeile mit einem Versatz zu setzen, damit die einzelnen Blöcke nicht vermischt werden (zum Beispiel wie in dem Code auf der vorherigen Seite)

P.S.:

Ich denke, die Losberechnung erfolgt nach dieser Formel

 double Lot     =MathFloor(Free*Risk/100/One_Lot/Step)*Step;    // откидываем лишние знаки после запятой, оставляем 2 знака
funktioniert nicht korrekt für 0,1 Lot mit einem Schritt mehr als 0,01, vielleicht habe ich etwas übersehen, aber dann wird das Lot immer gleich 0 ( MathFloor (900*2/100/1324/0,02=0,67975831) = 0, also 0*Step=0)...
 

Ich kann nicht herausfinden, wie ich so etwas wie OrderProfitPips( ) für eine ausgewählte Order berechnen kann, wenn das Paar beliebig ist. D.h. Gewinn in Pips, nicht in Kontowährung.

Ich brauche genau Pips - um die Effektivität des Mehrwährungshandels bei verschiedenen Paaren zu analysieren. Ich benötige vierstellige Pips (oder zweckmäßigerweise zweistellige, wenn das Paar in Yen ist). Nehmen wir an, die Kontowährung ist USD und die Kontraktgröße beträgt 100 000 Einheiten.

Wenn das Paar EURUSD ist, ist alles ganz einfach:

pips = OrderProfit( ) / ( OrderLots( ) * 10. );


Bei einem Paar wie AUDCHF ist es etwas komplizierter. Wäre das Konto ein Frankenkonto, wäre die Formel genau dieselbe. Aber das Konto ist ein Franken-Konto, d.h. OrderProfit() gibt in Dollar zurück. Mein Gewinn sollte also in Franken umgerechnet werden:

pips = USDCHF * OrderProfit( ) / ( OrderLots( ) * 10. );

Oder?

 
Mathemat:

Ich kann nicht herausfinden, wie man so etwas wie OrderProfitPips( ) für den ausgewählten Auftrag berechnen kann, wenn das Paar willkürlich ist. D.h. Gewinn in Pips, nicht in Kontowährung.

Ich brauche genau Pips - um die Effektivität des Mehrwährungshandels bei verschiedenen Paaren zu analysieren. Ich benötige vierstellige Pips (oder zweckmäßigerweise zweistellige, wenn das Paar in Yen ist). Nehmen wir an, die Kontowährung ist USD und die Kontraktgröße beträgt 100 000 Einheiten.

Wenn das Währungspaar EURUSD ist, ist alles ganz einfach:

pips = OrderProfit( ) / ( OrderLots( ) * 10. );


Bei dem Paar AUDCHF ist es ein wenig komplizierter. Wäre das Konto ein Frankenkonto, wäre die Formel genau dieselbe. Aber das Konto ist ein Dollarkonto, d.h. OrderProfit() gibt in Dollar zurück. Mein Gewinn sollte also in Franken umgerechnet werden:

pips = USDCHF * OrderProfit( ) / ( OrderLots( ) * 10. );

Oder?


Haben Sie http://www.fxtrademaker.com/fx_calculation.htm gelesen ? Oder ist es http://thismatter.com/money/forex/leverage-margin-pips.htm?

Soweit ich verstanden habe, ist PipProfit = USDprofit/lot/Point für EURUSD. Für umgekehrt notierte Paare müssen wir die Differenz zwischen Eröffnungs- und aktuellem Kurs nehmen und mit Digits multiplizieren: Pips = OrderOpenPrice()-Bid*Digits_coefficient; wobei
Digits_coefficient = MathPow(10,Digits);


 

Ja, es scheint für beide Links eine Verwendung zu geben. Ich danke Ihnen.

P.S. Ich habe beschlossen, nicht in Pips, sondern in Kontowährung zu zählen. Die Pips der Yen-Crosses sind zu unverhältnismäßig zu den üblichen. Und ich wollte sie zusammenzählen (natürlich auf konventionelle Weise)...

 
Mathemat:

Ja, es scheint für beide Links eine Verwendung zu geben. Ich danke Ihnen.

P.S. Ich habe beschlossen, nicht in Pips zu zählen, sondern in Kontowährung. Zu inkommensurabel sind die Pips-Zahlen von Yen-Crosses mit den üblichen. Und ich wollte sie zusammenzählen (natürlich unter Vorbehalt)...


Kerne sind Kerne, wie können sie unverhältnismäßig sein? Wie unterscheidet sich ein Gewinn von 20 Pips auf EURUSD von einem Gewinn von 20 Pips auf JPY? Sie müssen sich verzählt haben... Aber es ist wirklich einfacher, in der Währung des Kontos zu rechnen.

 
evillive: Pips sind Pips, wie können sie unvergleichbar sein?

Nun, auf Ihrem Link (zweiter) ist alles sichtbar:

Sie kaufen 100.000 Einheiten bei EUR/JPY = 164,09 und verkaufen, wenn EUR/JPY = 164,10 und USD/JPY = 121,35.

Gewinn in JPY-Pips = 164,10 - 164,09 = 0,01 Yen = 1 Pip (Denken Sie an die Yen-Ausnahme: 1 JPY-Pip = 0,01 Yen.)

Gesamtgewinn in JPY-Pips = 1 x 100.000 = 100.000 Pips.
Gesamtgewinn in Yen = 100.000 pips/100= 1.000 Yen.

Da Sie nur die Notierung für USD/JPY = 121,35 haben, müssen Sie den Gewinn in USD durch den Umrechnungskurs der Notierungswährung teilen, um ihn zu erhalten:

Gesamtgewinn in USD = 1.000/121,35 = 8,24 USD.

Wenn Sie nur diese Notierung haben, JPY/USD = 0,00824, die dem obigen Wert entspricht, verwenden Sie die folgende Formel, um Pips in Yen in die Landeswährung umzurechnen:

Gesamtgewinn in USD = 1.000 x 0,00824 = 8,24 USD.

Ein Gewinn von 8,24 USD (entspricht z.B. 0,824 Pips auf 1 EURUSD Lot) entspricht in diesem Beispiel 100 Tausend Yen Pips!

P.S. Ich fühle mich wie ein völliger Neuling...

 
Mathemat:

Nun, Ihr Link (der zweite) zeigt alles:

Ein Gewinn von 8,24 USD (entspricht 0,824 Pips auf 1 EURUSD-Lot) entspricht einhunderttausend Yen-Pips!


Sie lesen es falsch. Bei Paaren mit umgekehrter Notierung nehmen Sie die Differenz zwischen dem Eröffnungskurs und dem aktuellen Kurs und multiplizieren sie mit dem Multiplikator, der sich aus Digits ergibt ( Pips = (Bid -OrderOpenPrice())*Digits_coefficient; ) , was (80,60-80,45=0,15) * MathPow(10,Digits) = 15 Pips ergibt, wobei

Digits_coefficient  = MathPow(10,Digits);

Einfacher geht's nicht, oder?

P.S.: Obwohl nein, es könnte einfacher sein ))))

 Pips = (Bid - OrderOpenPrice())/Point; //ордер лонг
 Pips = (OrderOpenPrice() - Ask)/Point; //ордер шорт

Und dieser Ausdruck gilt für ALLE Währungspaare!