> AddGlobalVariable("log", Types.String, @"C:\ADebug\out_"+ DateTime.Now.ToString("yyMMdd_HHmmss") + ".txt");
А что это за синтаксис такой с собакой? В документации такого нет.
Где-то можно о нем прочесть? И где еще его можно применить в мирных целях?
> Action
То же самое.

Выходит, можно какую-то даже локальную подпрограмму соорудить.
Как тогда насчет её параметров и возвращаемого значения? (хотя бы теоретически)
Или это что-то стандартное для .NET (с которым я никогда не работал)?
> RealizedPLAfterCommission()
Хмм... Тонкий намек на то, что документированная RealizedPL не учитывает комиссию?..
> обратитесь к разработчикам
К сожалению, вероятность ответа оттуда обычно стремится к нулю.

---------------------------------------------------
Просмотр дизассемблированной MTS дает следующие реализации ф-ций:
.method public hidebysig newslot virtual instance float64 GetMoney() cil managed
{
IL_0000: ldarg.0
IL_0001: call instance float64 MTS.MTSWorker::get_StartCapital()
IL_0006: ret
} // end of method MTSWorker::GetMoney
.method public hidebysig virtual instance float64 GetMoney() cil managed
{
IL_0000: ldarg.0
IL_0001: call instance float64 MTS.MTSWorker::get_ProfitLossAfterCommission()
IL_0006: ret
} // end of method MTSWorkerTesting::GetMoney
Судя по именам, первое - для реальной торговли (или базовый класс для нее), второе - перекрытый метод для тестирования.
Видно, что в тестировании вместо начального количества денег берется почему-то РЕЗУЛЬТАТ торговли. Даже если каким-то волшебством это есть правильное значение (что сомнительно), то оно появляется только после операции. А на старте (где мне хочется знать объем запускаемых денег) результаты нулевые из-за отсутствия этих самых операций.
---------------------------------
Еще раз о том, чего хочу добиться.
При внутредневной торговле прекратить операции после достижения целевой прибыли (в % по отношению к исходной сумме в начале дня) с учетом накладных расходов. Для этого в тестировании хочу знать начальную сумму. Вроде всё просто, но как-то не вытанцовывается...