Digits, Ticksize, Normalize Double ?
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo.
In meinen EAs werden SL, Trailing Stop und TP berechnet, in dem einfach die Werte der GV oben mit NormalizeDouble(...*Point,Digits) von Ask/Bid abgezogen, bzw. dazu gerechnet werden, je nach dem ob Buy oder Sell. Aber bei z.B. FX WP mit 3 Stellen nach dem Komma, sind SL und TP irgendwie nur wenige Punkte von den Einstiegskursen entfernt. Eigentlich müsste Normalize Double doch reichen, um SL, Trailing Stop und TP ins richtige Format zu bringen. :confused: Aber anscheinend ist es wohl nötig, die int Werte mit 10 zu multiplizieren, wenn Digits==3 oder ==5? Wer Ahnung vom Multiplizieren und Dividieren von double Werten hat, kann mir vielleicht mit der automatischen Lotsize helfen. ;) :rolleyes: Die Rechenwege müssten eigentlich richtig sein, bloß ob * oder / weiß ich nicht so richtig. Code:
extern string ALSZ="Auto Lotsize?"; Code:
Lots=MathMax(MathMin(Lots,MarketInfo(Symbol(),MODE_MAXLOT)),MarketInfo(Symbol(),MODE_MINLOT)); Code:
if(Percent_of_Balance==true){ |
1. x Prozent von etwas geht am schnellsten mit mal 0.xx
-. 100% sind x 1 (also 100€ x 1 = 100€ = 100% von 100€ oder alles) -. 10% sind x 0.10 (also 100€ x 0.25 = 25€ =25% von 100€ oder 1/4) -. 1% sind x 0.01 (also 100€ x 0.02 = 2€ =2% von 100€) 2. um die erforderliche Margin für einen Kauf zu finden Code:
req_margin=AccountFreeMarginCheck( Symbol(), // für dieses Symbol/Markt 4. Für die OrderSend() und Trailingstops gilt -. kalkulierte Werte sollen immer vor Benutzung mit NormalizeDouble umgewandelt werden Ich gebe z.B. die SL und TP immer als Ganzzahlen ein (bei Forex z.B. 50, bei Index z.B. 1000). Danach wird umgerechnet und zum jeweils erforderlichen Preis dazu/davon gerechnet Code:
SL=NormalizeDouble(SL*_Point,_Digits) // anpassen Code:
double Min_L = MarketInfo(Symbol(),MODE_MINLOT); //Mindest_Lot_Einsatz |
Zitat:
Code:
Lots=MathMax(MathMin(Lots,MarketInfo(Symbol(),MODE_MAXLOT)),MarketInfo(Symbol(),MODE_MINLOT)); |
Zitat:
Code:
// === Benutzereingaben Zitat:
- die Margin darf x % vom Konto nicht überschreiten - das Risiko darf x % vom Konto nicht überschreiten - der Gewinn soll mindestens x % vom Konto sein - kein Trade mehr, wenn x % vom Konto verloren ist Einfach nur die % AccountBalance in Lot umrechnen bringt Dir nix, wenn Du es nicht in Bezug zu irgendwas setzt (außer daß Du sagen kannst, ich hab grade 30,7 Lots aufm Konto). AVT |
Danke, aber das scheint ein mathematisches Problem zu sein. Und ich habs mit Mathe nun echt nicht so am Hut. :rolleyes:
Schaun wir noch mal mit Taschenrechner durch. Ein paar dafür wichtige Deklarationen. Code:
double M_REQ=MarketInfo(Symbol(),MODE_MARGINREQUIRED); // nötige Margin für 1 Lot (100.000 Units) In meinem Fall 0.01, also einfach 1 * 0,01 = (man sehe und staune) 0,01. Code:
double OneL_MinL = 1 * Min_L; Code:
MREQ_MinL = M_REQ * OneL_MinL; Code:
double OnePercAccBal = A_BAL / 100; € 12,75 * 1,25% = € 15,93(75) Code:
double OnePercAccBal_AutoLotPerc = OnePercAccBal * Auto_Lotsize_Perc; 15,93 * 0.01 = 0,1593 L Code:
Lots = OnePercAccBal_AutoLotPerc * Min_L Hilft da NormalizeDouble oder *Point? Oder bin ich hier irgendwie ganz auf dem Holzweg? :confused: |
Zitat:
|
Ich und Mathe. :rolleyes:
Vermutlich hab ich ne Berechnung vergessen. Und zwar Betrag, der in Lot verwendet werden soll / Margin für Mindest-Lot Ergebnis mal Mindest-Lot müsste dann den richtigen Lot-Wert ergeben. Aber wie gesagt, ich und Mathe. :rolleyes: |
Alle Zeitangaben in WEZ +2. Es ist jetzt 01:50 Uhr. |
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum