Oh-Ha! Sorry traderdoc, - die Unterscheidung von "Funktion" und "Variablen" ist natürlich "So", wie von Dir beschrieben, richtig. Ebenso die Unterscheidung in der Deklaration. Hier der gesamte CodeSchnipsel, in welchem sicher noch zusätzliche Korrekturen von Nöten sind:
Code:
double LotsOptimized()
{
double lot=Lots;
int orders=HistoryTotal();
int OpenPositions=0;
//--- select lot size
lot=NormalizeDouble(AccountFreeMargin() *MaximumRisk / 100, 2);
//--- calculate number of OpenPositions without a break
if(ProfitFactor>0)
{
for(int i=orders; i>=0; i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true)
{
if(OrderProfit()>0 ) break;
if(OrderProfit()<=0) OpenPositions++;
}
}
if(OpenPositions>0)
// double MathPow(double base,double exponent); // Funktion !,
// in welche "base" und "exponent" einfließen (globale Deklaration)
int base = 2;
int exponent = OpenPositions;
double pow();
// Formel für Zahlenreihe der Verdopplung: a(n) = 2 *2(hoch OpenPositions - 1)
lot = NormalizeDouble(lot *2 *(pow()-1),2);
}
//--- return lot size
if(lot<0.01) lot=0.01;
return(lot);
}
Das "Teil" soll eigentlich nur
prüfen, wieviele Order noch offen sind und (die Anzahl der offenen Order - Minus "1") in der Formel als Exponenten verwenden.
In der Hoffnung, dass wenigstens einige Dinge richtig sind, erwarte ich mit Spannung den nächsten Kommentar.
LG. piptrade