Theankud 0 Опубликовано: 5 сентября 2019 Share Опубликовано: 5 сентября 2019 (изменено) смысл в том,чтобы бот выставлял лимитный ордер на покупку по крайней цене в стакане и выставлял ордерна продажу по крайней цене в стакане на парах с большим спредом...Выставить на продажу , я так понимаю, он и так выставит...если задать правильный процент...проблема в покупке.... Изменено 5 сентября 2019 пользователем Theankud Цитата Ссылка на сообщение Поделиться на других сайтах
admin 67 Опубликовано: 5 сентября 2019 Share Опубликовано: 5 сентября 2019 Самое простое - avg_price = prices[0] Цитата Ссылка на сообщение Поделиться на других сайтах
Theankud 0 Опубликовано: 5 сентября 2019 Share Опубликовано: 5 сентября 2019 спасибо Цитата Ссылка на сообщение Поделиться на других сайтах
Theankud 0 Опубликовано: 11 сентября 2019 Share Опубликовано: 11 сентября 2019 ЕЩЕ РАЗ СПАСИБО... бот V1- отличный бот...сделал закупку по крайней цене в стакане , ограничил максимальную цену закупки ...вверх не загоняется - цены ему нет.. Цитата Ссылка на сообщение Поделиться на других сайтах
Theankud 0 Опубликовано: 11 сентября 2019 Share Опубликовано: 11 сентября 2019 ЕЩЕ БЫ ТРЭЙЛИНГ СТОП ЕМУ, КОГДА ЦЕНА ПАДАЕТ И РАЗМОРОЗКА КОГДА ПОДНИМАЕТСЯ...... Цитата Ссылка на сообщение Поделиться на других сайтах
Andrei22 11 Опубликовано: 11 декабря 2019 Share Опубликовано: 11 декабря 2019 Я как бэктестер ))) Нашел одинаковое условие в 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: Цитата Ссылка на сообщение Поделиться на других сайтах
Рома 0 Опубликовано: 18 января 2020 Share Опубликовано: 18 января 2020 (изменено) А можно сделать стоп-лосс не только в процентах, но и чтобы была зависимость от времени неисполнения ордера на продажу (когда бот задрал цену на пик)? Например: стоплосс должен срабатывать когда ордер 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 )) Изменено 18 января 2020 пользователем Рома Цитата Ссылка на сообщение Поделиться на других сайтах
admin 67 Опубликовано: 31 января 2020 Share Опубликовано: 31 января 2020 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 секунд, лучше конечно вынести это в переменную Цитата Ссылка на сообщение Поделиться на других сайтах
Рома 0 Опубликовано: 15 марта 2020 Share Опубликовано: 15 марта 2020 Спасибо большое! Цитата Ссылка на сообщение Поделиться на других сайтах
Рома 0 Опубликовано: 15 марта 2020 Share Опубликовано: 15 марта 2020 31.01.2020 в 18:54, admin сказал: Да, этот, но еще есть события ИЛИ, например SELL висит уже 5 часов и упал на 2.5% SELL упал на 3.5% но висит только 1 минуту да действительно можно еще принимать эти события во внимание, но я рассматриваю эту доработку, как защиту от сквизов, те SELL упал на 3.5% но висит только 1 минуту должен продолжать висеть, пусть висит например 12 часов, а только после 12 часов уже сбрасывать по рынку Цитата Ссылка на сообщение Поделиться на других сайтах
Александр1976 0 Опубликовано: 17 апреля 2020 Share Опубликовано: 17 апреля 2020 (изменено) Добрый день! Подскажите, как можно организовать счетчик покупок по каждой паре . Если торговать по одной паре, это я уже разобрался, а вот как этот счетчик прикрутить к каждой паре отдельно свой, ломаю голову уже 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 эта переменная будет сохранять свое значение именно для пары по которой идет запрос, или же она будет глобальной и изменяться постоянно, какой бы ордер не сработал? Изменено 17 апреля 2020 пользователем Александр1976 Цитата Ссылка на сообщение Поделиться на других сайтах
Astra 3 Опубликовано: 18 апреля 2020 Share Опубликовано: 18 апреля 2020 (изменено) Как модифицировать 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 :-) Еще можно запретить продавать покупать в минус ... Изменено 18 апреля 2020 пользователем Astra Цитата Ссылка на сообщение Поделиться на других сайтах
Astra 3 Опубликовано: 19 апреля 2020 Share Опубликовано: 19 апреля 2020 еще можно, чтобы на маржиналке бот автоматически делал заем и после продажи занятого гасил кредит , просто добавляем параметр sideEffectType согласно документации MARGIN_BUY for margin trade order; AUTO_REPAY for making auto repayment after order filled. Цитата Ссылка на сообщение Поделиться на других сайтах
Рома 0 Опубликовано: 1 октября 2020 Share Опубликовано: 1 октября 2020 Как модифицировать бот, чтобы после продажи бот не сразу создавал ордер на покупку, а с задержкой, например, 120 секунд? Цитата Ссылка на сообщение Поделиться на других сайтах
flashback 0 Опубликовано: 17 ноября 2020 Share Опубликовано: 17 ноября 2020 Можете попробовать написать time.sleep(120), задержка в секундах. Ну и import time вверху конечно) Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.