Добрый день!
Calc() рассчитывается на исторических данных, еще до прихода первого тика!
Вы не поверите

, и функция
onNewCandle() также вызывается при обработки исторических данных, еще до прихода первого тика. Для обхода действий во время обработки исторических данных разработчиками были введены:
- onHistoryCalculated() - обработчик завершения обработки исторических данных;
- isHistoryCalculated() - функция статуса обработки исторических данных;
qpileПравильно условие будет писать так и таком порядке:
if (tradeEnable && close>enterPriceLong && exitStopCountLong<=enterAfterStopLong)
Поскольку при
tradeEnable равном 0 остальное выражение в
if не будет рассчитываться, что ускорит работу скрипта.