Получение средней цены по заявке
Выставленная заявка может быть удовлетворена несколькими ордерами и по разной цене. Как узнать среднюю себестоимость, зная номер порождающей заявки?
Вот несколько упрощённый пример с использованием AmiSharp:
// Получение средней цены сделки
function GetAveragePrice(TableName,PriceColumnName,SizeColumnName)
{ local result,TableHeight;
result = 0;
TableHeight = StrToNum(amisharp.GetHeight(TableName));
if (TableHeight > 0)
{ for (i = 1 ; i <= TableHeight ; i++)
result += StrToNum(amisharp.GetCellName(TableName,PriceColumnName,i)) * StrToNum(amisharp.GetCellName(TableName,SizeColumnName,i));
result /= SumColumnName(TableName,SizeColumnName);
}
return result;
}
Если сохранять историю сделок робота, то в дополнение к меткам расчетных сигналов, на график можно добавлять метки реальных сделок точно также, как это происходит в терминале:

