|
Quellcode
|
1
2
3
4
|
double someFunction(double AvgPriceChangeNormalized, double DayFactor, double TicksTenMinutesNormalized)
{
return ((((AvgPriceChangeNormalized)*(0.0868))*((DayFactor)*(TicksTenMinutesNormalized)))*(((AvgPriceChangeNormalized)*(0.0868))*(((((((((TicksTenMinutesNormalized)==0)?(1):((AvgPriceChangeNormalized)/(TicksTenMinutesNormalized)))-((TicksTenMinutesNormalized)+(DayFactor)))==0)?(1):((TicksTenMinutesNormalized)/((((TicksTenMinutesNormalized)==0)?(1):((AvgPriceChangeNormalized)/(TicksTenMinutesNormalized)))-((TicksTenMinutesNormalized)+(DayFactor)))))==0)?(1):(((TicksTenMinutesNormalized)+(-0.865))/((((((TicksTenMinutesNormalized)==0)?(1):((AvgPriceChangeNormalized)/(TicksTenMinutesNormalized)))-((TicksTenMinutesNormalized)+(DayFactor)))==0)?(1):((TicksTenMinutesNormalized)/((((TicksTenMinutesNormalized)==0)?(1):((AvgPriceChangeNormalized)/(TicksTenMinutesNormalized)))-((TicksTenMinutesNormalized)+(DayFactor)))))))*(TicksTenMinutesNormalized))));
}
|
Die gleiche Berechnung (für BAR in meinem Code) ist 4 Mal vorhanden.
Es wurde fast
alles in Klammern gesetzt, sogar die mehrmals vorkommende
1 und die Parameter.
Ich verstehe anhand der Parameternamen nicht, was diese bedeuten (Würde sich das anhand des Methodennamens noch erschließen?)
Auch wenn eher Geschmackssache, würde ich beim
? : Operator (und
if ... else Blöcken allgemein) erst auf den"Normalfall" prüfen und im Sonst-Fall die Ausnahme handhaben (in meinem Code entsprechend angepasst).
Zahlen, die wahrscheinlich irgendeine besondere Bedeutung haben (0,0868 und 0,865), der nicht im Ansatz ersichtlich ist.
Ich kann dein Leiden nachvollziehen.
Wenn ich nicht gerade einen Fehler gemacht haben sollte, dan lässt sich der Code wunderbar vereinfachen:
|
Quellcode
|
1
2
3
4
5
6
7
8
|
double someFunction(double AvgPriceChangeNormalized, double DayFactor, double TicksTenMinutesNormalized)
{
double PRICECHANGE = AvgPriceChangeNormalized * 0.0868;
double BAR = TicksTenMinutesNormalized != 0 ? AvgPriceChangeNormalized/TicksTenMinutesNormalized - TicksTenMinutesNormalized - DayFactor : 1;
double BAZ = BAR != 0 ? TicksTenMinutesNormalized / BAR : 1;
double FOO = BAZ != 0 ? (TicksTenMinutesNormalized - 0.865) / BAZ : 1;
return PRICECHANGE * DayFactor * TicksTenMinutesNormalized * PRICECHANGE * FOO * TicksTenMinutesNormalized;
}
|
(Zur besseren Erkennbarkeit habe ich meine Variablen groß geschrieben. Über ein paar zusätzliche Klammern, gerade bei den Bedingungen, könnte man noch reden.)
Da ich auch nach dem Umschreiben noch nicht weiß, was er macht, konnte ich keine guten Variablennamen finden und deswegen kann ich auch nicht prüfen, ob der Code noch das Gleiche macht.