Доработать торгового бота для Binance на python/django

MQL4 Diğer

İş Gereklilikleri



Пишем торгового бота. Для начала нужна мат. модель. Мат модель - это класс, который на вход принимает цену и другие параметры и решает что делать в произвольный момент времени. То есть по сути это функция make_decision(price), которая возвращает


Алгоритм
1.Купили акцию по цене x (то есть нам на вход это отдали алгоритму первый раз), ставим Stop Loss = 10%, то есть если цена опустится ниже <= 0.9*x - то продаем
(про стоп лоcc - тут почитать можно: https://help.tinkoff.ru/trading-account/order-types/s..)

1а. Так же мы изначально ставим очень большой takeprofit 200% или 2x от первоначальной цены, если вдруг цена будет резко вверх идти и мы выгодно сможем продать

то есть если купили по цене 1$, то вызываем функцию make_decision(price=1, start=True), которая возвращает нам следующее:

#первоначальный стоп лосс = 10%
initial_sl_percent= 10
inital_tp_percent = 200

#высчитываем первоначальный стоп лосс не в процентах, а в пунктах, для этого цену*на стоп_лосс_процент, делим на 100 процентов и вычиываем из первоначальной цены
sl = {'sl': price - price*initial_sl_percent/100}
#высчитыаем тейк профит для этого прибавляем к изначальной цене сумму take profit
tp = {'tp': price+ price*initial_tp_percent/100}

#возвращаем результат
result = {actions:[sl, tp]}

То есть мы вызываем функцию make_decision(price, start=True) и нам должно вернуть наш result

2. Если цена идет на 5% вверх от изначальной, то ставим sl в безубыток по той цене, которой купили
*тут важный момент - проверить что алгоритм корректно работает на случае, если цена пошла вверх, потом снова вверх, например на 100%, потом опустилась вниз, стоп лосс по алгоритму должен быть не в безубыток, а гораздо выше

3.На каждые 10% повышения цены от первоначальной- мы передвигаем sl на 5% вверх,
то есть вводим два параметра:

#повышение цены от изначальной при которой будем передвигать sl
price_up_percent = 10
#передвижение стоп лосса
sl_up_percent = 5

#если цена повысилась на 10%
if price>=(price+price_up_percent*price/100) and тут_посчитать_формулу_вдруг_у_нас_уже_стоит_нужный_нам_стоп_лосс:


3а*стоп лосс может передвигаться только вверх, он не может опускаться ниже предыдущего стоп лосса

4.Нужно написать тесты, покрывающие все случаи

5.Какой-то логгер по сколько купили в итоге и продали и сколько прибыли сделали.

Proje bilgisi

Bütçe
35+ USD
Geliştirici için
31.5 USD
Son teslim tarihi
to 7 gün