Перейти к публикации
Форум ботоводов

Вот для Binance модифицировать.


Рекомендованные сообщения

смысл в том,чтобы бот выставлял лимитный ордер на покупку по крайней цене в стакане и выставлял ордерна продажу по крайней цене в стакане на парах с большим спредом...Выставить на продажу , я так понимаю, он и так выставит...если задать правильный процент...проблема в покупке....

Изменено пользователем Theankud
Ссылка на сообщение
Поделиться на других сайтах

ЕЩЕ РАЗ СПАСИБО... бот V1- отличный бот...сделал закупку по крайней цене в стакане , ограничил максимальную цену закупки ...вверх не загоняется - цены ему нет..

Ссылка на сообщение
Поделиться на других сайтах
  • 3 months later...

Я как бэктестер )))

Нашел одинаковое условие в 1.0.7 версии:

if macd[-1] > macdsignal[-1] and macdhist[-1] > 0:
# Линия макд выше сигнальной и на гистограмме они выше нуля

Тут или комментарий неправильно написан или условие.

Условие между and всегда одинаковое, когда линия макд больше сигнальной то гистограмма всегда больше 0.

А если коммент написан как задумывалось то должно быть так:

if macd[-1] > macdsignal[-1] and macd[-1] > 0 and macdsignal[-1] > 0:

Ссылка на сообщение
Поделиться на других сайтах
  • 1 month later...

А можно сделать стоп-лосс не только в процентах, но и чтобы была зависимость от времени неисполнения ордера на продажу (когда бот задрал цену на пик)? Например: стоплосс должен срабатывать когда ордер SELL уже четыре часа висит и цена опустилась на 3%

Я так понимаю нужно модифицировать этот кусок кода, так?

if (1 - curr_rate/orders_info[order]['buy_price'])*100 >= all_pairs[orders_info[order]['order_pair']]['stop_loss']:
                        log.debug("{pair} Цена упала до стоплосс (покупали по {b:0.8f}, сейчас {s:0.8f}), пора продавать".format(
                           pair=orders_info[order]['order_pair'],
                           b=orders_info[order]['buy_price'],
                           s=curr_rate
                        ))

 

Изменено пользователем Рома
Ссылка на сообщение
Поделиться на других сайтах
  • 2 weeks later...
18.01.2020 в 22:41, Рома сказал:

А можно сделать стоп-лосс не только в процентах, но и чтобы была зависимость от времени неисполнения ордера на продажу (когда бот задрал цену на пик)? Например: стоплосс должен срабатывать когда ордер SELL уже четыре часа висит и цена опустилась на 3%

Я так понимаю нужно модифицировать этот кусок кода, так?


if (1 - curr_rate/orders_info[order]['buy_price'])*100 >= all_pairs[orders_info[order]['order_pair']]['stop_loss']:
                        log.debug("{pair} Цена упала до стоплосс (покупали по {b:0.8f}, сейчас {s:0.8f}), пора продавать".format(
                           pair=orders_info[order]['order_pair'],
                           b=orders_info[order]['buy_price'],
                           s=curr_rate
                        ))

 

Да, этот, но еще есть события ИЛИ, например

SELL висит уже 5 часов и упал на 2.5%

SELL упал на 3.5% но висит только 1 минуту

 

Что бы сделать так, как вам нужно (срабатывают два условия сразу), подойдет такой код

if ((1 - curr_rate/orders_info[order]['buy_price'])*100 >= all_pairs[orders_info[order]['order_pair']]['stop_loss']) and int(time.time()) - int(orders_info[order]['sell_created']) > 3*60*60 :
                        log.debug("{pair} Цена упала до стоплосс (покупали по {b:0.8f}, сейчас {s:0.8f}), пора продавать".format(
                           pair=orders_info[order]['order_pair'],
                           b=orders_info[order]['buy_price'],
                           s=curr_rate
                        ))

3*60*60 это 3 часа по 60 минут и 60 секунд, лучше конечно вынести это в переменную

 

Ссылка на сообщение
Поделиться на других сайтах
  • 1 month later...
31.01.2020 в 18:54, admin сказал:

Да, этот, но еще есть события ИЛИ, например

SELL висит уже 5 часов и упал на 2.5%

SELL упал на 3.5% но висит только 1 минуту

да действительно можно еще принимать эти события во внимание, но я рассматриваю эту доработку, как защиту от сквизов, те SELL упал на 3.5% но висит только 1 минуту должен продолжать висеть, пусть висит например 12 часов, а только после 12 часов уже сбрасывать по рынку

Ссылка на сообщение
Поделиться на других сайтах
  • 1 month later...

Добрый день!

Подскажите, как можно организовать счетчик покупок по каждой паре . Если торговать по одной паре, это я уже разобрался, а вот как этот счетчик прикрутить к каждой паре отдельно свой, ломаю голову уже 3й день. Ничего не выходит. Навыки программирования есть, но вот с тонкостями этого языка не знаком.

Здесь  я так понимаю находится кортеж

pairs = [
      
   { 'base': 'RUB',
     'quote': 'ETH',
     'offers_amount': 5,      
     'spend_sum': 500,         
     'profit_markup': 0.005, 
     'use_stop_loss': True, 
     'stop_loss': 0,5,      
   },
   { 'base': 'RUB',
     'quote': 'BTC',
     'offers_amount': 5,  
                          
     'spend_sum': 500,    
     'profit_markup': 0.005,
     'use_stop_loss': True,
     'stop_loss': 0,5,      
   }
   ]

и если в пару добавить переменную счетчика, например

 'kol_vo': 0,

то ее нельзя изменить в процессе выполнения кода.

Если ее обозначить в самом коде, и рассчитывать в процессе  выполнения, то она будет глобальной для всех пар то есть единой.Задача такая, если одна пара купилась уже 3 раза, а другая 1 раз то и значения у них должны быть соответственно 3 и 1 Или все таки  при добавлении счетчика после таких строк

 # Если ордер на покупку
                if orders_info[order]['order_type'] == 'buy':
                    # Если ордер уже исполнен
                    if order_status == 'FILLED':

                     kol_vo =+ 1

if order_status == 'FILLED' and orders_info[order]['order_type'] == 'sell':

    kol_vo =- 1

эта переменная будет сохранять свое значение именно для пары по которой идет запрос, или же она будет глобальной и изменяться постоянно, какой бы ордер не сработал?

Изменено пользователем Александр1976
Ссылка на сообщение
Поделиться на других сайтах

Как модифицировать binance_bot , чтобы он не просто покупал-продавал, а делал это с трейлингом? я просто создал 2 файла  binance_tpLong.py  binance_tpShort.py , для запуска их создал 2 батника , в них pause заменил на call runBinance_tpLong ... call runBinance_tpShort соответственно. Таким примитивным образом зациклил лонгтрейлинг и шорттрейлинг.

Чтобы бот работал на маржиналке х5 просто меняем на        res = bot.marginCreateOrder(        соответствующую строку, в API ключе разрешаем маржин и не забываем заменить binance_api.py на тот , где есть слова margin :-)

Еще можно запретить продавать покупать в минус ...

Изменено пользователем Astra
Ссылка на сообщение
Поделиться на других сайтах

еще можно, чтобы на маржиналке бот автоматически делал заем и после продажи занятого гасил кредит , просто добавляем параметр sideEffectType согласно документации

  • MARGIN_BUY for margin trade order;
  • AUTO_REPAY for making auto repayment after order filled.
Ссылка на сообщение
Поделиться на других сайтах
  • 5 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...