Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools  
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4009
Beiträge: 38200
Benutzer: 6.322
Aktive Benutzer: 322
Links: 80
Wir begrüßen unseren neuesten Benutzer: Xypa
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 5 Stunden
- Xypa
vor 12 Stunden
- eisbaer
vor 13 Stunden
- EuroFXMast...
vor einem Tag
- Abdelaliii
vor 3 Tagen
- Cavalino

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 55
Gesamt: 55
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor 3 Wochen
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 656
MA-EA befindet sich auf einem aufstrebenden Ast
Standard Lotsize über Margin oder Kontostand berechnen

Hallo.

Ich würde gerne den Lot-Einsatz automatisch anhand der freien Margin oder besser übers Gesamtkapital des Kontos berechnen lassen. Denn wenn er schon viele Orders geöffnet hat, schrumpft ja auch die verfügbare Margin und ich schätze mal, dass dann jede Order ne andere Lotsize hat...

z.B.

Lot = double x.x % der Free Margin

oder

Lot = double x.x % des Kontostands

oder so in der Art.

Dachte mir, man checkt erst mal, wie viel von der Konto-Währung er für ein Lot hinter legen muss. Oder vielleicht die nötige Margin in Punkten ausgeben. Oder einfach durch den Hebel teilen?

Weiß ich nicht so richtig.
Mit Zitat antworten
  #2 (permalink)  
Alt vor 3 Wochen
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 656
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Hallo.


Habs mal so versucht. Davon abgesehn, dass ich eigentlich selber nicht mehr durch sehe, müsste das doch eigentlich funktionieren.

extern string ALSZ="Auto_Lotsize";
extern bool Percent_of_Balance=true;
extern bool Percent_of_Free_Margin=false;

extern string BT1="if both = true";
extern string BT2="Lotsize =";
extern string BT3="Percent_of_Balance";

extern double Auto_Lotsize_Perc=0.72;
extern int Units_of_1_Lot=100000;


Lots=MathMax(MathMin(Lots,MarketInfo(Symbol(),MODE _MAXLOT)),MarketInfo(Symbol(),MODE_MINLOT));

double M_REQ=MarketInfo(Symbol(),MODE_MARGINREQUIRED);//nötige Margin für 1 Lot (100.000)
double A_FM=AccountFreeMargin();//verfügbare Margin
double A_BAL=AccountBalance();//momentaner Kontostand

double Min_L=MarketInfo(Symbol(),MODE_MINLOT);//Mindest_Lot_Einsatz
double Max_L=MarketInfo(Symbol(),MODE_MAXLOT);//Maximaler_Lot_Einsatz

//Einheiten von 1_Lot geteilt durch Mindest_Lot, um später auszurechnen, wie viel Margin für kleinst möglichstes Lot nötig ist.
double U1L_Min_L=NormalizeDouble(Units_of_1_Lot/Min_L*_Point,_Digits);

//Margin_für_1_Lot geteilt durch Ergebnis, um raus zu finden, wie viel Margin für Mindest_Lot benötigt wird.
double M_REQ_Min_L=M_REQ/U1L_Min_L;

//////////////////////////////////////////////////////////////////////////////////////////////////////////////

if(Percent_of_Free_Margin==true&&Percent_of_Balanc e==false){

// Free_Margin / Margin_für_Min_Lot, um rauszufinden, wie viel Min_Lot mit der Free_Margin möglich sind.
double A_FM_M_REQ_Min_L=A_FM/M_REQ_Min_L;

// P_ML = "Possible_Min_Lots" geteilt durch "HP" (Hundred_Percent)
double A_FM_P_ML_HP=A_FM_M_REQ_Min_L/100.0;

Lots=A_FM_P_ML_HP*Auto_Lotsize_Perc;

}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////

if((Percent_of_Balance==true)||(Percent_of_Balance ==true&&Percent_of_Free_Margin==true)){

// Kontostand geteilt durch für Min_Lot nötige Margin, um rauszufinden, wie viel Min_Lot mit Kontostand möglich sind.
double A_BAL_M_REQ_Min_L=A_BAL/M_REQ_Min_L;

// Mit Kontostand_mögliche_Mindest_Lots geteilt durch "HP" (hundred Percent)
double A_BAL_P_ML_HP=A_BAL_M_REQ_Min_L/100.0;

Lots=A_BAL_P_ML_HP*Auto_Lotsize_Perc;

}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////

if(Lots<Min_L)Lots=Min_L;
if(Lots>Max_L)Lots=Max_L;
Mit Zitat antworten
Antwort

Lesezeichen


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +2. Es ist jetzt 02:54 Uhr.



Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2018 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2017 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------