NormalizeDouble funktioniert nicht. - Seite 2

 
Carl Schreiber:
Das ist kein Gegensatz. Meine Formel benötigt v, das Volumen, das vorab berechnet werden muss, zB. auf Basis von Kapital, Risiko etc. Meine Formel ersetzt nur das NormalizeDouble(..),  das zu Fehlern führen würde, wenn die Schrittweite der Losgröße nicht 0,01 wäre sondern zB. 0,5.

Ah, das heist ohne jetz ne Brokerdiskussion zu machen das deine Version Bei Broker A der zb 0,2 oder 0,5 Schritte hat genauso funtioniert wie bei Brober B der 0.01 zulässt

und meine Version nur bei Brober B funktionieren würde?

Dem nach wäre ja von meiner Version ausgegangen die Brokerwahl ein Stück noch entscheidender.


So hab jetzt noch mal paar korrekturen vorgenommen, jetz handelt er ohne zu meckern


/*
Beispiel von https://www.scalp-trading.com/pips-lots-und-positionsgroessen/
Kurswährung (JPY)
Kontostand : 3000€
Kurswährung des zu handelnden Paares : JPY
Eigene Kontowährung : EUR
Kontowährung / Kurswährung des gehandelten Paares = EUR/JPY Wechselkurs = 141,20
Stop Loss in Prozent = 0,02
Stop Loss in Pips = 35
Kontraktgröße = 100.000 (1 Lot)Anwendung der Formel:(( Kontostand x  SL in Prozent / Stop-Loss in Pips ))
/
(( Kontraktgröße / ( Kontowährung / Kurswährung des gehandelten Paares ) * 0,01)Hinweis : Weil es sich um dem JPY handelt, wird nicht mit 0,0001 sondern mit 0,01 multipliziertMaximale Positionsgröße / Sprachliche Formel     =
((3000 € * 2% ) / 35 Pips SL) / ((100.000 /  141,20 ) * 0,01)=  0,24 Lot

*/
   double KontraktSize= SymbolInfoDouble(_Symbol,SYMBOL_TRADE_CONTRACT_SIZE);
   double PipValue = SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE)*point/(SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE));
   if(KontraktSize>0)
      CalcLot = NormalizeDouble(((FreiesKapital  * InpRisiko) / StopLoss) / ((KontraktSize /  SymbolInfoDouble(_Symbol,SYMBOL_BID) * SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE))),2);

Allerdings hab ich den Eindruck das er bei anderen Paaren dann nicht mit meiner Kontwährung rechnet wie im Beispiel sein soll. oder liege ich da falsch? und Wohin jetzt mit den PipValue?

und wie berechne ich den Wert "Kontowährung/Kurswährung des gehandelten Paares" Kurwährung is mir ja klar aber Kontowährung ? steh grad mega auf den Schlauch
 

Hier ist noch ein schönes Beispiel für die troubles with the doubles. Da x^y NIE null werden kann, es sei denn y würde zu -Unendlich, sieht man hier den kleinst möglichen, positiven Wert einer 'Double' im Debugger:



Von hier: https://www.mql5.com/ru/forum/363680/page20#comment_21483982

Wenn das anders dargestellt wird oder werden kann, ist das Kosmetik, bzw extra Aufwand.
Новая версия платформы MetaTrader 5 build 2815: Доступ к стакану цен из Python, улучшения в отладчике и профилировщике
Новая версия платформы MetaTrader 5 build 2815: Доступ к стакану цен из Python, улучшения в отладчике и профилировщике
  • 2021.03.24
  • www.mql5.com
В пятницу 26 февраля 2021 года будет выпущена обновленная версия платформы MetaTrader 5...
 
Carl Schreiber:

Hier ist noch ein schönes Beispiel für die troubles with the doubles. Da x^y NIE null werden kann, es sei denn y würde zu -Unendlich, sieht man hier den kleinst möglichen, positiven Wert einer 'Double' im Debugger:



Von hier: https://www.mql5.com/ru/forum/363680/page20#comment_21483982

Wenn das anders dargestellt wird oder werden kann, ist das Kosmetik, bzw extra Aufwand.

Gibts ne möglichkeit das Risiko und Money Management zu vereinfachen zb wie bei "CTrade" blos mit Money?

Weis nur nicht unter was ich das suchen soll außer Klassen, theoretisch sollte sowas doch schon als Klasse geben auf die man dann zugreift bzw abfragt.

Diesbezüglich entsprechende Lektüre wäre Hilfreich.... klar kann ich das auch im Wizard generieren, aber das bringt mir rein garnichts denn ich will das ja verstehen was da passiert und wie.

 
Aleksi-Trader:

Gibts ne möglichkeit das Risiko und Money Management zu vereinfachen zb wie bei "CTrade" blos mit Money?

Weis nur nicht unter was ich das suchen soll außer Klassen, theoretisch sollte sowas doch schon als Klasse geben auf die man dann zugreift bzw abfragt.

Diesbezüglich entsprechende Lektüre wäre Hilfreich.... klar kann ich das auch im Wizard generieren, aber das bringt mir rein garnichts denn ich will das ja verstehen was da passiert und wie.

Die ctrade klasse funktioniert auch nur bei calc mode forex und bei Risiko was über tickvalue gerechnet wird, sonst musst du es dir selber schreiben


https://www.mql5.com/de/docs/constants/environment_state/marketinfoconstants

Dokumentation zu MQL5: Konstanten, Enumerationen und Strukturen / Medium Zustand / Information über das Symbol
Dokumentation zu MQL5: Konstanten, Enumerationen und Strukturen / Medium Zustand / Information über das Symbol
  • www.mql5.com
Information über das Symbol - Medium Zustand - Konstanten, Enumerationen und Strukturen - Nachschlagewerk MQL5 - Nachschlagewerk über die Sprache des algothitmischen/automatischen Handels für MetaTrader 5
 
Aleksi-Trader:

Gibts ne möglichkeit das Risiko und Money Management zu vereinfachen zb wie bei "CTrade" blos mit Money?

Weis nur nicht unter was ich das suchen soll außer Klassen, theoretisch sollte sowas doch schon als Klasse geben auf die man dann zugreift bzw abfragt.

Diesbezüglich entsprechende Lektüre wäre Hilfreich.... klar kann ich das auch im Wizard generieren, aber das bringt mir rein garnichts denn ich will das ja verstehen was da passiert und wie.

Wenn man auf englisch stellt und dann nach "lot management" sucht unter der CodeBase findet man dann das:  https://www.mql5.com/en/code/19870

Aber es gäbe noch mehr dort.

Lot calculator - risk management tool
Lot calculator - risk management tool
  • www.mql5.com
This tool allows you to calculate the correct lot size of the next trade by following some simple money management rules.
 

Ich machs mir einfach, ich nehm da einfach die tickvalue, die ändert sich zwar aber nicht ao dramatisch, die änderung ignoriere ich


  if(   SymbolInfoInteger(_Symbol,SYMBOL_TRADE_CALC_MODE) == SYMBOL_CALC_MODE_FOREX
               || SymbolInfoInteger(_Symbol,SYMBOL_TRADE_CALC_MODE) == SYMBOL_CALC_MODE_FOREX_NO_LEVERAGE)
              {
               lots = Geldrisiko / (stoploss * SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE));
               Print(Geldrisiko," ",stoploss, " ", _sym.TickValue()," ", lots );
              }

Wobei ich den sl in Points nehme

 
Carl Schreiber:
Wenn man auf englisch stellt und dann nach "lot management" sucht unter der CodeBase findet man dann das:  https://www.mql5.com/en/code/19870

Aber es gäbe noch mehr dort.

Das sieht gut aus, danke dir. Muss ich nur noch alles durchgehen um es zu verstehen.

 
amando:

Ich machs mir einfach, ich nehm da einfach die tickvalue, die ändert sich zwar aber nicht ao dramatisch, die änderung ignoriere ich


Wobei ich den sl in Points nehme

Da komme ich immer wieder nicht klar damit, Pip, Point... Pip ist für mich verwirrung.. Jeder hat ne andere definition.

Eine Angabe in Punkten ist mir da schon viel lieber da ich das so vom MT kenne.

oder wie rechnet man Point in Pip um? wäre auch mal interessant zu wissen für die zukunft. Welche Formel Wird dafür angewendet?

Meines erachtens ist doch Pip nur eine kleinere Einheit als Point das bedeutet dem nach das es dafür ein umrechnungsfaktor geben muss.

 
Aleksi-Trader:

Da komme ich immer wieder nicht klar damit, Pip, Point... Pip ist für mich verwirrung.. Jeder hat ne andere definition.

Eine Angabe in Punkten ist mir da schon viel lieber da ich das so vom MT kenne.

oder wie rechnet man Point in Pip um? wäre auch mal interessant zu wissen für die zukunft. Welche Formel Wird dafür angewendet?

Meines erachtens ist doch Pip nur eine kleinere Einheit als Point das bedeutet dem nach das es dafür ein umrechnungsfaktor geben muss.

Point bezieht sich auf die letzte kommastelle, also bei 1.##### auf die 5 kommastelle, wenn du 1.#### wäre es die 4te,

bei point nimmst du alle stellen


früher gabs bei forex broker mit 4, bzw bei jpy paaren mit 2 kommastellen, da ist die 4 oder 2te das pip,

point ist immer die letzte kommastelle, egal wieviele stellen dein broker bietet

das bezieht sich auch auf die pointvalue, das ist die änderung der letzten stelle um 1 bei einem lot

 
amando:

Point bezieht sich auf die letzte kommastelle, also bei 1.##### auf die 5 kommastelle, wenn du 1.#### wäre es die 4te,

bei point nimmst du alle stellen


früher gabs bei forex broker mit 4, bzw bei jpy paaren mit 2 kommastellen, da ist die 4 oder 2te das pip,

point ist immer die letzte kommastelle, egal wieviele stellen dein broker bietet

das bezieht sich auch auf die pointvalue, das ist die änderung der letzten stelle um 1 bei einem lot

Das wäre ja dann folglich wenn ich jetzt nicht falsch liege dann beim Broker mit 5 Stellen dann  10000pips = 1 Punkt?