44 lines
1.4 KiB
Plaintext
44 lines
1.4 KiB
Plaintext
#define UINT64 ulong
|
|
#define INT64 datetime
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| Ñòðóêòóðà ðåçóëüòàòîâ äëÿ ïîçèöèè |
|
|
//+------------------------------------------------------------------+
|
|
struct TesterPositionProfit
|
|
{
|
|
private:
|
|
string LengthToString( const datetime Length ) const
|
|
{
|
|
const int Days = (int)(Length / (24 * 3600));
|
|
|
|
return(((Days) ? (string)Days + "d ": "") + ::TimeToString(Length, TIME_SECONDS));
|
|
}
|
|
|
|
public:
|
|
UINT64 id; // id ïîçèöèè
|
|
double mfe; // MFE
|
|
double mae; // MAE
|
|
double profit; // ïðèáûëü
|
|
INT64 lifetime; // âðåìÿ æèçíè ïîçèöèè â ñåêóíäàõ
|
|
UINT64 reserve[3];
|
|
|
|
#define TOSTRING(A) #A + " = " + (string)(this.A) + "\n"
|
|
#define TOSTRING2(A) #A + " = " + this.LengthToString(A) + "\n"
|
|
|
|
string ToString( void ) const
|
|
{
|
|
return(
|
|
TOSTRING(id) + // id ïîçèöèè
|
|
TOSTRING(mfe) + // MFE
|
|
TOSTRING(mae) + // MAE
|
|
TOSTRING(profit) + // ïðèáûëü
|
|
TOSTRING2(lifetime) // âðåìÿ æèçíè ïîçèöèè â ñåêóíäàõ
|
|
);
|
|
}
|
|
|
|
#undef TOSTRING2
|
|
#undef TOSTRING
|
|
};
|
|
|
|
#undef INT64
|
|
#undef UINT64 |