Жуткий код. Сам бекэнд разработчик и вдоль и поперек исходил проперженный пых
Я не про то что он делает, а сам код жуток, да и подобные задачи для пыха с js это чуть более чем сомнительная авантюра. За 370 строку у нас вообще бы уволили сразу. Нет реально, не обиды ради... но такое ощущение что ты вообще никогда работал на серьезными проектами на пыхе и js. Это даже не уровень джуна. Js даже дочитывать не стал... 100 обращений к DOM в дебаг режиме это насилие
Сам пишу на Go бота, хотел на питоне но питон в докер запихивать малоприятное удовольствие, а гоха в рантайме не нужна для того что бы скомпиленый бинарь гонять.
Я никому не говорил, что я матерый разработчик. Я переношу логику на машинный язык и вставляю функции и переменные по мере надобности. Дебаг режим я устроил так, чтоб пошагово видеть, какая функция пошла по наклонной. Мне главное, что работает, а красота кода - дело тех, кому платят за это.
Если у вас есть пути решения, предлагайте, давайте приведем код в красивую форму. Причешем переменные, избавимся от лишних операций. Я знаю, что можно лишние функции сократить в 3 раза, но мне лень изучать мануалы. Я действую старыми приемами.
Знаете, в теории вероятности (раздела высшей математики) любую задачу можно решить двумя способами:
1) Подставить значения в формулу и решить ее.
2) Перебрать все вероятные возможности решения задачи и получить тот-же ответ, что получается по п.1.
мне всегда ставили неуд., за то что я действовал по п.2. Зато я его понимал, и он дает представление о работе метода перебора.
Фронт-енд меня меньше всего волнует. Можете переписать в python давайте законнектимся.
Извините, а вкратце можно сказать, как работает бот?
Установка бота:
Скачайте и установить на своем компьютере apache+php, В корневую папку сервера распакуйте содержимое архива. Откройте браузер Chrome, Opera, Firefox или любой, что вы используете. Введите в адресной строке путь к фалу (например
http://127.0.0.1/jbot22/jbot_wex.html или
http://localhost/jbot22/jbot_wex.html). Дальше заполните все поля и нажмите Save Settings. Перегрузите страницу, проверьте, что настройки подгрузились и нажмите RunBot.
Если с сервером возиться нет желания, можете зарегистрироваться на бесплатном хостинге и разместить содержимое архива там. Благо их полным полно в интернете.
Если и этого делать нет желания, можете перейти по ссылке
http://www.funnymay.com/jbot22/jbot_wex.html и работать с ним.
Логика бота:
Заполнив все поля формы, бот, используя ваши API-ключи и с помощью отельного php-скрипта обращается к бирже с определенными запросами.
Всего 5 видов запросов
1 - получение баланса
2 - получение открытых ордеров по выбранной торгуемой паре
3 - получение цен для торговли по выбранной стратегии
4 - работа с ордерами
5 - обновление графика
Остановимся по подробнее на п.3 и 4
Получение цен
При получении цен для торговли бот рассчитывает цены по уровням HIGH-LOW в течение суток (согласно проведенным экспериментам)
для стратеги INNER бот предлагает цены для продажи = HIGH24 для покупки LOW24 - хорошо работает когда акция входит в коридор (например EUR/USD, USD/RUR, EUR/RUR)
для стратеги STEP бот предлагает цены для продажи = HIGH8 для покупки LOW8 - перестроения коридора отрабатывает побыстрее, сделки проходят чаще, по прибыли поменьше
для стратеги SCALPER бот предлагает цены для продажи = HIGH2 для покупки LOW2 - отрабатывает еще быстрее, сделки проходят еще чаще
для стратеги OUTER бот сравнивает HIGH4 и LOW4 с HIGH24 и LOW24 соответственно и определяет рост или падение. Цены выставляет с апроксимацией.
На быке продажу ставит выше HIGH24, покупку по уровню LOW4. На медведях продажу ставит по HIGH4 покупку ниже LOW24 (это все в зависимости что рисует график) - Вот эту то стратегию я и хочу протестировать.
еще одна стратегия (планируется в новой версии) кроме графика подгружает стакан и следит за появлением и движением больших ордеров.
Работа с ордерами
Перво наперво - отменяет старые ордера - с истекшим сроком жизни.
Далее он проверят достаточность баланса для совершения сделок и, когда все условия соблюдены бот отправляет запрос на покупки, а затем на продажи.
Спасибо Jeex за поддержку.