Неверное присвоение значений
Борюсь с данной проблемой уже очень долго! Ниже часть кода, которая должная подсчитывать минимальное количество лотов для входа в позицию. Проблема в том, что происходит неверное присвоение значения 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))