Форум сайта python.su
Всем привет, пишу робота на биржу, но не могу разобраться, есть такой код в котором идут отклонения от главной цены. И вопрос вот в чем, можно как нибудь не от главной цены, а к примеру от 5 ордера “ его цены”, узнать рядом стоящие ордера
LONG_entry = 223 #главная цена GRID_SIZE = 0.5 MULTIPLIER = 1.5 множитель # Инициализация предыдущего GRID previous_GRID = 0 # Вывод заголовка print("{:<15} {:<25} {:<20}".format("Номер ордера", "Отклонение ордера, %", "Цена ордера")) # Цикл от 0 до 10 for i in range(11): # Расчет цены для ордера на продажу GRID = previous_GRID price = round(LONG_entry * (1 - GRID / 100), 5) print("{:<15} {:<25} {:<20}".format(i, GRID, price)) # Обновление предыдущего GRID для следующей итерации previous_GRID = GRID * MULTIPLIER + GRID_SIZE.
Отредактировано nemogy688@gmail.com (Ноя. 26, 2023 06:11:22)
Офлайн
так ты в цыкле у себя заполни список словарями - а поом уже по етому списку бери и начинай с любой позиции
И вынеси расчет цены в функцию
Офлайн
ZerGТоже думал об этом, а рассчитать по формуле это сложно выходит очень
так ты в цыкле у себя заполни список словарями - а поом уже по етому списку бери и начинай с любой позицииИ вынеси расчет цены в функцию
Отредактировано nemogy688@gmail.com (Ноя. 26, 2023 10:42:09)
Офлайн
from icecream import ic def gen_orders(cost: int, count: int) -> list: result: list = [] GRID = 0 GRID_SIZE = 0.5 MULTIPLIER = 1.5 # множитель for i in range(count): # Расчет цены для ордера на продажу price = round(cost * (1 - GRID / 100), 5) result.append({"grid": GRID, "price": price}) # Обновление предыдущего GRID для следующей итерации GRID = GRID * MULTIPLIER + GRID_SIZE return result res = gen_orders(223, 5) ic(res) cost_from_price = res[4]["price"] ic(cost_from_price) res2 = gen_orders(cost_from_price, 5) ic(res2)
ic| res: [{'grid': 0, 'price': 223.0}, {'grid': 0.5, 'price': 221.885}, {'grid': 1.25, 'price': 220.2125}, {'grid': 2.375, 'price': 217.70375}, {'grid': 4.0625, 'price': 213.94062}] ic| cost_from_price: 213.94062 ic| res2: [{'grid': 0, 'price': 213.94062}, {'grid': 0.5, 'price': 212.87092}, {'grid': 1.25, 'price': 211.26636}, {'grid': 2.375, 'price': 208.85953}, {'grid': 4.0625, 'price': 205.24928}]
Офлайн
ZerGСпасибо, тоже так делал, буду пробовать дальше
Офлайн
ZerGА как думаешь реально там формулу подобрать что ли) ?
Офлайн
nemogy688@gmail.comКакую формулу? У вас в коде и так уже формула
Офлайн