Неверное присвоение значений

Борюсь с данной проблемой уже очень долго! Ниже часть кода, которая должная подсчитывать минимальное количество лотов для входа в позицию. Проблема в том, что происходит неверное присвоение значения min_position в переменную qty_position как при первом присвоении, так и в дальнейшем.

Вот логи:

[2024-09-29T23:31:29.957+03:00]: Финальное значение qty_position: 122
[2024-09-29T23:31:29.957+03:00]: Рассчитанное значение min_position: 1357
[2024-09-29T23:31:29.957+03:00]: Ручной расчет: 1357.4414942716

Код:

// Получаем текущую цену инструмента
entry = 21  // Количество входов в позицию
current_price = float(close)
calculated_min_position = (deposit * leverage) / (current_price * entry)
min_position = math.floor(calculated_min_position)

// Глобальные переменные
var float prev_deposit = na
var int prev_leverage = na
var int qty_position = na  

// Принудительная инициализация qty_position при первом вызове
if na(qty_position)
    qty_position := min_position
    prev_deposit := deposit
    prev_leverage := leverage

// Обновление qty_position 
if deposit != prev_deposit or leverage != prev_leverage
    qty_position := min_position
    prev_deposit := deposit
    prev_leverage := leverage

// Логирование значений для проверки
log.info("Финальное значение qty_position: " + str.tostring(qty_position))
log.info("Рассчитанное значение min_position: " + str.tostring(min_position))
log.info("Ручной расчет: " + str.tostring(deposit * leverage / current_price / entry))

Ответы (0 шт):