Einzelnen Beitrag anzeigen
  #3 (permalink)  
Alt 22.08.18
sazaron sazaron ist offline
Neues Mitglied
 
Registriert seit: Dec 2017
Beiträge: 3
sazaron befindet sich auf einem aufstrebenden Ast
Standard

danke für die schnelle antwort! Account freemargin benutze ich, weils auch bei 50% freien margin noch ne lot zahl berechnen kann und das mit MODE_MINLOT und MODE_MAXLOT ist nicht das prob.
ich habe den titel etwas schlecht gewählt ich will 100% meines kontos in lots umrechnen egal welche währung. das problem ist, dass die verschiedenen forexpaare verschiedene währungswerte ausgeben d.h. der endwert ist nicht immer EUR sondern was ganz anderes. ich glaube nicht, dass mir hier einer weiter helfen kann ich benutze jetzt eine mischung aus zwei berechnung. wenn die 1. nicht funktioniert dann nehme ich halt die 2.. so bekomme ich keine 100% raus doch besser als nichts. mich fehlt die zeit beim scalpen jedes mal an der lot schraube zu drehen und bei 0.8 trades am tag ist es schon frustrierend, wenn man nen trade verpasst, weil die positions größe nicht passt. ich trade auf elf forexpaare, da ist es mir auch zu viel arbeit, es täglich manuel abzustimmen. Theoretisch könnte ich auch einfach die minlots nehmen doch dann würde ich zeitverlieren , die übersicht verlieren, langsamer positionen schließen und meine statistiken versauen weil ich anstatt 0.8 trades dann z.B. 8-20 trades habe z.B..

hier ist noch die andere berechnung. ka was die genau macht doch es haut mir eine tradebare lotzahl raus, wenn die andere mir nen not enought money error gibt...

double CalculateVolume()
{
double lot_min =MarketInfo(Symbol(),MODE_MINLOT);
double lot_max =MarketInfo(Symbol(),MODE_MAXLOT);
double lot_step=MarketInfo(Symbol(),MODE_LOTSTEP);
double contract=MarketInfo(Symbol(),MODE_LOTSIZE);
Print("contract "+contract);
double vol;
//--- check data
if(lot_min<0 || lot_max<=0.0 || lot_step<=0.0)
{
Print("CalculateVolume: invalid MarketInfo() results [",lot_min,",",lot_max,",",lot_step,"]");
return(0);
}
if(AccountLeverage()<=0)
{
Print("CalculateVolume: invalid AccountLeverage() [",AccountLeverage(),"]");
return(0);
}
//--- basic formula
vol=NormalizeDouble(AccountFreeMargin()*AccountLev erage()/contract,2);
//--- additional calculation
// ...
//--- check min, max and step
vol=NormalizeDouble(vol/lot_step,0)*lot_step;
if(vol<lot_min) vol=lot_min;
if(vol>lot_max) vol=lot_max;
//---
// Print("vol "+vol);
return(vol);
}

Geändert von sazaron (22.08.18 um 13:56 Uhr)