Как работать с событиями?
В свойстве ctx.Runtime.LastRecalcReasons содержатся список причин пересчета скрипта. Их может быть несколько.
Пример как получить причину пересчета скрипта (выводится в лог):
var listReasons = ctx.Runtime.LastRecalcReasons.Select(x => x.Name).Distinct().ToList();
var listReasonsSt = string.Join(", ", listReasons);
ctx.Log($"RecalcReasons: " + listReasonsSt, MessageType.Info, true);
Пример как получить событие открытия позиции (выводится в лог):
if (ctx.Runtime.LastRecalcReasons.Any(x => x.Name == EventKind.PositionOpening.ToString()))
{
ctx.Log($"PositionOpening!", MessageType.Info, true);
}
В настройках агента должна быть включена галочка События -> Открытие позиции, тогда скрипт будет пересчитываться при открытии позиции. Все возможные события перечислены в enum EventKind.
Last updated
Was this helpful?