Как сделать торгового робота самому

Содержание

Теперь, когда мы разобрались, что такое биржа биткоинов, отложенные ордера и API, пришло время написать своего собственного бота.

Тем, кто попал сюда впервые, и не знает о чем идет речь, советую прочитать предыдущие статьи цикла – вы сможете найти перечень внизу этой статьи.

Итак, что это за бот и как он будет работать

Бот будет выполнять рутинную работу за вас – он будет мониторить состояние биржи, отслеживать текущий курс, создавать ордера на покупку по выгодному курсу, и, после их выполнения, продавать купленную валюту.

Бот будет работать на вашем компьютере, подключаться к бирже под вашей учетной записью, все, что вам потребуется – стабильный интернет, наличие некоторой суммы на балансе биржи, ну и установленный интерпретатор Python (о том, как его установить, я писал в этой статье).

Если сделка на покупку не реализуется в течении какого-то времени (у меня это три минуты) бот отменяет ордер и создает новый, с новым курсом.

Если сделка на покупку прошла, то бот создает ордер на продажу, и держит этот ордер до тех пор, пока он не будет целиком исполнен.

Бот берет среднюю цену по рынку за некоторый период (из-за ограничений exmo, за последние 100 сделок, на других биржах я действовал по другому), и создает ордера на покупку с указанной наценкой – т.е. ниже текущей цены рынка, после чего создает ордера на покупку – опять же с указанной наценкой – получается выше цены рынка. В сумму продаж/покупок закладывается комиссия биржи и, таким образом, нивелируется. Совершая сделки, бот отдает бирже требуемый ею кусок, но прибыль для владельца бота остается неизменной.

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

Бота можно останавливать и запускать в любой момент и с разных компьютеров – он при запуске проверит состояние ордеров, баланса и так далее – нет нужды бояться того, что при перезапуске потеряются ордера, деньги или что-то еще.

Бот неоднократно протестирован в различных режимах – и с локального компьютера, и в качестве серверного процесса, и мультирежиме – торговле одновременно несколькими валютными парами (в текущем примере мультирежима нет, но можно запускать несколько экземпляров бота с разными настройками – они будут работать параллельно).

Сколько зарабатывает:

В рамках подготовки этой статьи (и отладки алгоритма), я играл на сумму 1 доллар 49 центов – и вот какие он сделки совершал (читать снизу вверх):

Если проанализировать доход/расход, то бот принес 3.5 цента за день – при том, что я играл на полтора доллара – это 2.4% со вклада в день.

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

Недостатки бота:

Так как бот учебный, некоторые вещи упрощены и убраны из кода – нет стоп-лоссов и тейк-профитов, курс берется по последним 100 сделкам, которые возвращает эта биржа, и есть вероятность, что бот купит на пике, и потом долго не сможет продать (тут придется либо ждать, либо продать по курсу рынка, выбор за человеком).

Так же в примере используется торговля по одной валютной паре, хотя вполне возможно изменить алгоритм для торговли несколькими парами параллельно.

Так же для упрощения вес не пишется в локальную базу данных, а делается запрос к API. С одной стороны, это хорошо для бота, так как информация всегда приходит актуальная, с другой стороны – плохо, так как эта биржа ограничивает количество API запросов до 180 в минуту. Код, который написан здесь, будет работать без проблем, но если вы запустите параллельно несколько экземпляров бота, с разными валютными парами, например, вполне можете наткнуться на это ограничение.

Алгоритм работы:

Для наглядности составлена блок-схема алгоритма работы – полностью транслировать её в текст я смысла не вижу, поясню основные принципы.

Бот играет на сумму которую вы указали – в данном случае для примера выбрана сумма 10 долларов США. На эту сумму бот старается купить биткойнов по курсу, чуть ниже текущего курса рынка. Если в течении некоторого времени (три минуты в примере) купить не получается, этот ордер на покупку отменяется, и создается новый, чуть ниже текущей цены уже на этот момент времени.

Если же ордер на покупку исполняется, то бот создает отложенный ордер на продажу этой валюты – он старается продать купленную валюту, и получить за это условные 10 долларов + желаемую наценку.

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

Все, что бот зарабатывает, не тратится – бот играет на указанную сумму, а полученный излишек просто копится на балансе.

Вот блок-схема работы:

Как начать пользоваться:

1. Регистрируйтесь на бирже (если еще этого не сделали):

2. Перейдите в Account-settings-API, нажмите “Generate and save”, и получите ключ и подпись:

3. Установите интерпретатор Python 3.4 и выше (описано в этой статье)

4. Создайте файл с названием exmo.py и скопируйте туда код, указанный ниже

5. В коде, в строках 11 и 13, укажите ключи API, полученные в шаге 2

6. В строке 24 укажите сумму, на которую будет играть бот — CAN_SPEND = 1.45 – сейчас указано 1.45 доллара.

7. На балансе не должно быть currency_1 — например, если играете на паре BTC_USD, то BTC заранее переведите в доллары или в другую валюту, а то продаст в минус.

8. Сохраните и запускайте (F5) – бот начнет работать.

Вы можете его запустить, даже если на бирже сейчас нет денег – бот вас предупредит, и просто ничего не купит. Но, конечно, для успешной работы нужно, что бы деньги были На 11.04.2017 минимальная сумма на балансе должна составлять примерно 1.5 доллара – это примерно равно минимальной сумме сделки на бирже, 0.001 Btc.

Сам код бота:

import urllib, http.client import time import json # эти модули нужны для генерации подписи API import hmac, hashlib # ключи API, которые предоставила exmo API_KEY = ‘YOUR API KEY’ # обратите внимание, что добавлена ‘b’ перед строкой API_SECRET = b’YOUR API SECRET’ # Тонкая настройка CURRENCY_1 = ‘BTC’ CURRENCY_2 = ‘USD’ CURRENCY_1_MIN_QUANTITY = 0.001 # минимальная сумма ставки — берется из https://api.exmo.com/v1/pair_settings/ ORDER_LIFE_TIME = 3 # через сколько минут отменять неисполненный ордер на покупку CURRENCY_1 STOCK_FEE = 0.002 # Комиссия, которую берет биржа (0.002 = 0.2%) AVG_PRICE_PERIOD = 15 # За какой период брать среднюю цену (мин) CAN_SPEND = 5 # Сколько тратить CURRENCY_2 каждый раз при покупке CURRENCY_1 PROFIT_MARKUP = 0.001 # Какой навар нужен с каждой сделки? (0.001 = 0.1%) DEBUG = True # True — выводить отладочную информацию, False — писать как можно меньше STOCK_TIME_OFFSET = 0 # Если расходится время биржи с текущим # базовые настройки API_URL = ‘api.exmo.com’ API_VERSION = ‘v1’ # Свой класс исключений class ScriptError(Exception): pass class ScriptQuitCondition(Exception): pass CURRENT_PAIR = CURRENCY_1 + ‘_’ + CURRENCY_2 # все обращения к API проходят через эту функцию def call_api(api_method, http_method=»POST», **kwargs): # Составляем словарь для отправки на биржу # пока что в нём payload = ‘nonce’: int(round(time.time()*1000))> # Если в ф-цию переданы параметры в формате ключ:значение if kwargs: # добавляем каждый параметр в словарь payload # Получится payload.update(kwargs) # Переводим словарь payload в строку, в формат для отправки через GET/POST и т.п. payload = urllib.parse.urlencode(payload) # Из строки payload получаем «подпись», хешируем с помощью секретного ключа API # sing — получаемый ключ, который будет отправлен на биржу для проверки H = hmac.new(key=API_SECRET, digestmod=hashlib.sha512) H.update(payload.encode(‘utf-8’)) sign = H.hexdigest() # Формируем заголовки request для отправки запроса на биржу.

# Передается публичный ключ API и подпись, полученная с помощью hmac headers = «Content-type»: «application/x-www-form-urlencoded», «Key»:API_KEY, «Sign»:sign> # Создаем подключение к бирже, если в течении 60 сек не удалось подключиться, обрыв соединения conn = http.client.HTTPSConnection(API_URL, timeout=60) # После установления связи, запрашиваем переданный адрес # В заголовке запроса уходят headers, в теле — payload conn.request(http_method, «/»+API_VERSION + «/» + api_method, payload, headers) # Получаем ответ с биржи и читаем его в переменную response response = conn.getresponse().read() # Закрываем подключение conn.close() try: # Полученный ответ переводим в строку UTF, и пытаемся преобразовать из текста в объект Python obj = json.loads(response.decode(‘utf-8’)) # Смотрим, есть ли в полученном объекте ключ «error» if ‘error’ in obj and obj[‘error’]: # Если есть, выдать ошибку, код дальше выполняться не будет raise ScriptError(obj[‘error’]) # Вернуть полученный объект как результат работы ф-ции return obj except ValueError: # Если не удалось перевести полученный ответ (вернулся не JSON) raise ScriptError(‘Ошибка анализа возвращаемых данных, получена строка’, response) # Реализация алгоритма def main_flow(): try: # Получаем список активных ордеров try: opened_orders = call_api(‘user_open_orders’)[CURRENCY_1 + ‘_’ + CURRENCY_2] except KeyError: if DEBUG: print(‘Открытых ордеров нет’) opened_orders = [] sell_orders = [] # Есть ли неисполненные ордера на продажу CURRENCY_1? for order in opened_orders: if order[‘type’] == ‘sell’: # Есть неисполненные ордера на продажу CURRENCY_1, выход raise ScriptQuitCondition(‘Выход, ждем пока не исполнятся/закроются все ордера на продажу (один ордер может быть разбит биржей на несколько и исполняться частями)’) else: # Запоминаем ордера на покупку CURRENCY_1 sell_orders.append(order) # Проверяем, есть ли открытые ордера на покупку CURRENCY_1 if sell_orders: # открытые ордера есть for order in sell_orders: # Проверяем, есть ли частично исполненные if DEBUG: print(‘Проверяем, что происходит с отложенным ордером’, order[‘order_id’]) try: order_history = call_api(‘order_trades’, order_id=order[‘order_id’]) # по ордеру уже есть частичное выполнение, выход raise ScriptQuitCondition(‘Выход, продолжаем надеяться докупить валюту по тому курсу, по которому уже купили часть’) except ScriptError as e: if ‘Error 50304’ in str(e): if DEBUG: print(‘Частично исполненных ордеров нет’) time_passed = time.time() + STOCK_TIME_OFFSET*60*60 — int(order[‘created’]) if time_passed > ORDER_LIFE_TIME * 60: # Ордер уже давно висит, никому не нужен, отменяем call_api(‘order_cancel’, order_id=order[‘order_id’]) raise ScriptQuitCondition(‘Отменяем ордер -за ‘ + str(ORDER_LIFE_TIME) + ‘ минут не удалось купить ‘+ str(CURRENCY_1)) else: raise ScriptQuitCondition(‘Выход, продолжаем надеяться купить валюту по указанному ранее курсу, со времени создания ордера прошло %s секунд’ % str(time_passed)) else: raise ScriptQuitCondition(str(e)) else: # Открытых ордеров нет balances = call_api(‘user_info’)[‘balances’] if float(balances[CURRENCY_1]) >= CURRENCY_1_MIN_QUANTITY: # Есть ли в наличии CURRENCY_1, которую можно продать?

«»» Высчитываем курс для продажи. Нам надо продать всю валюту, которую купили, на сумму, за которую купили + немного навара и минус комиссия биржи При этом важный момент, что валюты у нас меньше, чем купили — бирже ушла комиссия 0.00134345 1.5045 «»» wanna_get = CAN_SPEND + CAN_SPEND * (STOCK_FEE+PROFIT_MARKUP) # сколько хотим получить за наше кол-во print(‘sell’, balances[CURRENCY_1], wanna_get, (wanna_get/float(balances[CURRENCY_1]))) new_order = call_api( ‘order_create’, pair=CURRENT_PAIR, quantity = balances[CURRENCY_1], price=wanna_get/float(balances[CURRENCY_1]), type=’sell’ ) print(new_order) if DEBUG: print(‘Создан ордер на продажу’, CURRENCY_1, new_order[‘order_id’]) else: # CURRENCY_1 нет, надо докупить # Достаточно ли денег на балансе в валюте CURRENCY_2 (Баланс >= CAN_SPEND) if float(balances[CURRENCY_2]) >= CAN_SPEND: # Узнать среднюю цену за AVG_PRICE_PERIOD, по которой продают CURRENCY_1 «»» Exmo не предоставляет такого метода в API, но предоставляет другие, к которым можно попробовать привязаться.

У них есть метод required_total, который позволяет подсчитать курс, но, во-первых, похоже он берет текущую рыночную цену (а мне нужна в динамике), а во-вторых алгоритм расчета скрыт и может измениться в любой момент. Сейчас я вижу два пути — либо смотреть текущие открытые ордера, либо последние совершенные сделки.

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

«»» deals = call_api(‘trades’, pair=CURRENT_PAIR) prices = [] for deal in deals[CURRENT_PAIR]: time_passed = time.time() + STOCK_TIME_OFFSET*60*60 — int(deal[‘date’]) if time_passed AVG_PRICE_PERIOD*60: prices.append(float(deal[‘price’])) try: avg_price = sum(prices)/len(prices) «»» Посчитать, сколько валюты CURRENCY_1 можно купить. На сумму CAN_SPEND за минусом STOCK_FEE, и с учетом PROFIT_MARKUP ( = ниже средней цены рынка, с учетом комиссии и желаемого профита) «»» # купить больше, потому что биржа потом заберет кусок my_need_price = avg_price — avg_price * (STOCK_FEE+PROFIT_MARKUP) my_amount = CAN_SPEND/my_need_price print(‘buy’, my_amount, my_need_price) # Допускается ли покупка такого кол-ва валюты (т.е. не нарушается минимальная сумма сделки) if my_amount >= CURRENCY_1_MIN_QUANTITY: new_order = call_api( ‘order_create’, pair=CURRENT_PAIR, quantity = my_amount, price=my_need_price, type=’buy’ ) print(new_order) if DEBUG: print(‘Создан ордер на покупку’, new_order[‘order_id’]) else: # мы можем купить слишком мало на нашу сумму raise ScriptQuitCondition(‘Выход, не хватает денег на создание ордера’) except ZeroDivisionError: print(‘Не удается вычислить среднюю цену’, prices) else: raise ScriptQuitCondition(‘Выход, не хватает денег’) except ScriptError as e: print(e) except ScriptQuitCondition as e: if DEBUG: print(e) pass except Exception as e: print(«. «,e) while(True): main_flow() time.sleep(1)

Примечания по коду:

Строки 16 и 17 обозначают валютную пару. В данном примере это BTC_USD, но вы можете поменять на любую другую.

Строка 19 — CURRENCY_1_MIN_QUANTITY = 0.001. Это минимальная ставка, которая допускается на бирже. Для разных валют она разная, и, вообще, стоило бы получать её автоматически через API запрос. Но это усложнит код, поэтому я указал её как константу. Тем не менее, если вы планируете торговать другой валютой, вам следует поменять это значение, иначе торговля может затрудниться.

Строка 21 — ORDER_LIFE_TIME = 3. Если ордер на покупку не сыграл, то через сколько минут отменить его и создать новый, с новой ценой, более приближенной к текущим реалиям.

Строка 22 — STOCK_FEE = 0.002. Комиссия биржи за совершенную сделку. Непохоже, что бы она когда-то менялась, но, тем не менее, вы, при необходимости, сможете поменять её здесь если понадобится.

Строка 23 — AVG_PRICE_PERIOD = 90. Бот, в идеале, смотрит сделки за последние 90 минут, что бы узнать среднюю цену, в данной реализации он получает список совершенных сделок, и берет те из них, кто моложе 90 минут. Другой вопрос, что биржа не возвращает больше 100 записей, так что в данном случае число 90 сильно завышено.

Строка 24 — CAN_SPEND = 1.45. Важный параметр – сумма денег, которую вы доверяете боту для игры. В данном случае – 1 доллар 45 центов. Это удобно в том случае, когда бот играет на одну валютную пару, а вы – на другую, ну и еще гарантирует, что бот не проиграет всё, что нажито. В общем, чем больше эта сумма, тем больше денег он может заработать.

Строка 25 — PROFIT_MARKUP = 0.001. Это сумма наценки, которую вы хотите получить. В данном случае – это 0.1% от ставки. Чем больше это число, тем больше вы заработаете, но и курс будет раздуваться больше – т.е. вам придется дольше ждать исполнения сделки. Допускается дальнейшее дробление – например, число 0.00111 подходит. Если указать ноль, то бот будет работать вхолостую, обогащая биржу.

Вы при этом, терять и зарабатывать не будете.

В строке 26 указано DEBUG = True. С этим параметром будет очень «разговорчивым», он будет комментировать каждое свое действие. Когда вам это надоест, советую вместо True написать False – тогда бот будет писать только по делу.

Так же не помешало бы в код добавить обработку некоторых исключительных ситуаций, перевести на ООП и так далее – но я не вижу смысла усложнять учебный код. Тот, кто заинтересуется, сможет сделать всё это и сам. Ну, или не делать, а просто пользоваться ботом как он есть

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

Post Views: 9 225

Использование SSH и SFTP с языком PHP В современном мире, где так много сторонних компонентов и программ для создания совместного доступа, важно понимать и использовать протоколы SCP…

Принцип открытости / закрытости (open closed solid) Должен признаться, когда впервые увидел академическое определение принципа открытости/закрытости, его смысл был для меня удивительно ясен. Я отбросил из определения…

Источник: evilinside.ru

Как создать торгового робота своими руками? Robot-Scalper

Торговый робот на python с нуля. Алготрейдинг Торговый робот на python с нуля. Алготрейдинг 3 Торговля через бота на Binance

С чего начать алготрейдинг. Написание роботов с нуля для торговли. Обучение Торговому роботу на python с нуля. Алготрейдинг :

Моя первая мысль о трейдинге появилась на 4 курсе экономического факультета, когда понял, что необходимо иметь пассивный доход. Начинал со вкладов в банке и паевых инвестиционных фондов (ПИФов), затем судьба забросила меня в IT. Я очень увлекся этим, поступил в технический ВУЗ и поставил цель совместить информационные технологии и биржевую торговлю, так как это интересно, перспективно и высокооплачиваемо.

Я расскажу о том, с чего начать освоение алгоритмического трейдинга не имея опыта в торговле и программировании. Точнее это будет серия статей разбитых по этапам с подробным описанием процесса обучения и рекомендациями. Программа обучения подойдет не только новичкам, но и опытным программистам, т.к. она предполагает еще и освоение биржевой торговли. Также, она может быть интересна трейдерам, которые получат необходимые знания в программировании. Каждый этап составлен так, что он не отнимет много времени, возможно совмещение с работой или учебой.

Фондовый рынок — это высокотехнологичная отрасль, которая активно развивается, что делает работу в этой сфере очень привлекательной для IT — специалистов. Мировой валютный рынок, где ежедневный объём торгов оценивается в $5,1 трлн, становится всё менее зависимым от человека. Так, 94 руководителя крупнейших компаний США и Канады по торговым и валютным операциям заявили о намерении перейти на автоматизацию большей части своих операций с иностранной валютой в течение 2018—2020 годов. Развитие автоматизированной торговли на сегодняшний день уже стало необратимым процессом на мировом валютном, фондовом рынке и рынке деривативов.

Пока сложно сказать, что для успешной торговли необходимо обязательно создавать торгового робота, можно торговать и вручную, используя автоматизацию для поиска активов и точек входа, или контроля открытых позиций. Но доля роботов в объеме торгов США в 2005 году перевалившая за 50% говорит об их востребованности среди трейдеров.

Переходим к плану обучения.

В качестве языка программирования для реализации стратегий будет использован Python. Данный язык кроссплатформенный (что для сторонников Linux и macOS является обязательным атрибутом), прост в освоении (по своему опыту изучения Java, могу сказать что Python легче), широко распространен (применяется в Big Data, веб-разработке, автоматизации тестирования, науке, системном администрировании, для прототипирования квантовых моделей в хедж-фондах и «квантовых» трейдерских подразделений в банках и др.)

Этап 1.1. Изучение основ Python для торгового робота

Обучение по приложению от SoloLearn.

Первым делом будет полезным установить приложение SoloLearn на смартфон. Оно будет особенно полезно тем, кто ранее не программировал. Приложение обучит самым основам языка. Неоспоримое преимущество, что им можно пользоваться в любое время и в любом месте.

Прохождение курса на Stepik.org «Программирование на Python»

Отлично подойдет для новичков, интерактивен, изложение ведется плавно от простого к сложному, достаточно интересные задачи, можно смотреть комментарии от пользователей, что очень полезно если не знаешь решения. Курс бесплатный.

Совет: Некоторые условия задач описаны очень непонятно, в связи с этим сразу смотрите в комментарии, там найдете разъяснение задачи.

В день рекомендую уделять этому ресурсу 1 час.

Ссылка на курс: https://stepik.org/course/67/syllabus

Решение задач в Pythontutor.ru

Для закрепления знаний полезным будет ресурс Pythontutor. Это интерактивный учебник по Python, с большим количеством примеров и хорошими задачами. Интересная особенность в том, что после решения задачи можно посмотреть варианты решений от разработчиков и других участников.

Ежедневно рекомендую решать хотя бы по одной задаче.

Ссылка на учебник: https://pythontutor.ru/

Книги: Swaroop — «A Byte of Python»(Укус питона)

«Укус питона» это бесплатная книга по Python, отличается минимальным количеством «воды» и большим количеством примеров. Содержит всего 150 страниц, при этом отлично показывает возможности языка.

Алготрейдинг на NYSE,Nasdaq,Amex,ETF — Stocksharp

Совет: При чтении книг по программированию необходимо запускать пример кода у себя в IDE для лучшего усвоения материала.

В день достаточно читать по 5-10 страниц. В качестве IDE рекомендую бесплатный PyCharm Community.

По желанию: Видео курсы по Python на YouTube

Серия видеоуроков средней продолжительностью в 10 минут, состоящая из 21 эпизода поможет заполнить пробелы в полученных ранее знаниях.

Для знающих английский очень хорошо будет просмотеть курс Learn Python — Full Course for Beginners. В общей сложности материал состоит из четырех с половиной часов обучающего видео.

Совет: Если вы еще не знаете английского, то обязательно начинайте его изучать, т.к. подавляющее большинство необходимых материалов по алготрейдингу будут доступны именно на нем. Впрочем, думаю я не открыл здесь Америку, большинство итак это знают, скорее просто хотел напомнить.

В интернете множество методик и материалов для изучения английского, каждый сможет подобрать подходящее для себя, но не откажусь порекомендовать книгу по грамматике Раймонда Мерфи — Essential Grammar in Use. Написана полностью на английском, но предельно простым языком и со множеством иллюстраций.

Материалы курса

8 разделов • 25 лекций • Общая продолжительность 3 ч 31 минРазвернуть все разделы

Введение в курс2 лекции • 8 мин

  • Введение в курсПредпросмотр 03:10
  • Основы прибыльной торговли на биржеПредпросмотр 04:31

Настройка рабочего места4 лекции • 19 мин

  • Что будет в курсе?
  • Установка среды разработки для Python часть 103:18
  • Установка среды разработки для Python часть 203:21
  • Получение исторических данных для ETH (Ethereum)08:18

Создание стратегии для трейдингового бота6 лекции • 1 ч 11 мин

  • Введение и разбор индикаторов 03:40
  • Подготовка данных для анализа, визуализация данных, отрисовка графика ценыСоединяем код получения исторических данных с индикаторами. Запускаем обработку данных. Визуализируем на графике линии канала, изменение цены. 06:43
  • Подготовка сигналов для покупки / продажи, визуализация, анализНа этом уроке мы проведем подготовку отдельных частей кода для создания алгоритма. Проверим на графике точки входа и точки выхода из сделок. Проведем анализ параметров будущего бота. 12:32
  • Создание основного кода стратегии для торгового бота для Ethereum 22:44
  • 2838$ за 3 дня. Анализ работы стратегии. Расчет доходности в процентахПроведем анализ сделок по стратегии. Рассчитаем доход от прибыльных сделок. Переведем полученный доход в годовой процент. Оценим результат. 12:41
  • Визуализация графика доходности. Анализ сделок на графике. Тонкая настройка. 12:13

Подключение торгового бота к бирже Binance через API3 лекции • 28 мин

  • Регистрация ключей доступа к бирже Binance 06:56
  • Функции работы с биржей Binance — часть 113:42
  • Функции работы с биржей Binance — часть 207:38

Разработка торгового бота Binance для запуска на сервере2 лекции • 33 мин

  • Подготовка скрипта торгового бота 19:49
  • Запуск торгового робота в связке с биржей Binance 12:43

Управление торговым роботом через чат-бота Telegram4 лекции • 21 мин

  • Создание Telegram чат-бота 02:32
  • Программирование Telegram чат-бота для управление основным ботом 07:12
  • Добавляем управление трейдинг ботом из Telegram чат-бота с помощью команд 08:35
  • Тестируем работу Telegram и торгового бота 02:17

Настройка сервера на Amazon AWS3 лекции • 29 мин

  • Создание сервера на AWS. Настройка Python на Linux AMI 10:50
  • Копирование файлов на сервер. Запуск робота на сервере Amazon 07:13
  • Настройка расписания запуска робота через утилиту crontab 10:51

Заключение1 лекция • 4 мин

  • Заключение курса по разработке роботов для торговли на бирже BinanceПредпросмотр 04:22

Требования

  • Базовые навыки программирования
  • Опыт ручной торговли на бирже (желательно)
  • Базовые навыки работы с ОС Windows

Этап 1.2. Основы биржевого дела

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

Изучение функционала Trader Workstation от Interactive Brokers:

Для этого вам будет необходимо открыть демо-счет.

Терминал TWS имеет отличный демо-режим, на котором доступен 1 000 000 виртуальных долларов и неограничен по времени. Его можно изучить вдоль и поперек. Но для начала необходимо научиться просто ориентироваться в интерфейсе, уметь искать, выбирать, покупать, продавать активы.

Вот несколько обучающих видеороликов:

  • Горячие Клавиши,
  • Работа с графиками,
  • Индикаторы,
  • Настройка стакана,
  • Как выставлять ордер,
  • Как совершать сделки,
  • Работа с облигациями,
  • Watchlists https://banknout.ru/servisy/birzhevoj-robot-na-python.html» target=»_blank»]banknout.ru[/mask_link]

    Программирование форекс-роботов без знания языка MQL4

    Программирование советников форекс

    Эта статья будет интересна в основном трейдерам, а также форекс-инвесторам для расширения кругозора. Как известно, сколько трейдеров – столько и стратегий. Причем множество интересных стратегий не смогли стать достоянием широкого трейдерского сообщества лишь по той причине, что не были автоматизированы. А не были автоматизированы они в связи с тем, что разработчики стратегии не владели навыками пользования языком программирования – в бум автоматизации многие стратегии становятся известными в виде торговых роботов.

    Конечно, знание языка программирования MQL версий 4 или 5 – это значительный шаг вперед для трейдера. Язык программирования позволяет создать собственный индикатор технического анализа, написать скрипт или торговый советник. А преимущества автоматической торговли общеизвестны – это и отсутствие влияния эмоций, и большее количество свободного времени. В этой статье мы рассмотрим вопросы и различные подходы к программированию торговых роботов:

    • Программирование роботов с помощью языка MQL;
    • Модификация кода существующей механической торговой системы;
    • Программирование советника с помощью специальных программ.

    Создание программных кодов

    курс ленивого инвестора

    Важно! Я веду этот блог уже почти 10 лет. Все это время я регулярно публикую отчеты о результатах публичных инвестиций. Сейчас мой публичный инвестпортфель — более 5 000 000 рублей.

    Со временем этот сайт стал больше базой знаний для читателей, а все актуальные события в портфеле и не только я публикую в открытом телеграм-канале. Подписывайтесь, если хотите быть в курсе того, куда я инвестирую.

    Хорошую базу для познания MQL создает владение языком программирования «С++», но и без этих знаний язык MQL хорошо поддается изучению. Многие рядовые трейдеры, изучающие язык самостоятельно, считают, что для написания несложных скриптов и программ достаточно самостоятельного изучения языка программирования в течение недели.

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

    Программирование роботов, в большинстве случаев, производится в специальном разделе торгового терминала MetaTrader4 – MetaEditor. Это многофункциональный и удобный специализированный редактор, с помощью которого можно самостоятельно создавать любые торговые алгоритмы.

    Создание программных кодов MetaEditor

    Достоинством редактора является то, что созданные алгоритмы могут быть запущены сразу после создания, так как они автоматически появляются в торговой платформе. MetaEditor в МТ4 обладает такими характеристиками, как:

    • удобное редактирование кода программ;
    • генерация программ по шаблону в автоматическом режиме;
    • интеллектуальное управление кодом;
    • встроенная компиляция алгоритмов;
    • удобная отладка программ;
    • наличие профилировщика исходного кода;
    • персональное хранилище кода, встроенное в программу;
    • встроенная помощь по языкам программирования.

    Помимо встроенного редактора МТ4 существует еще множество платформ для программирования советников с использованием языка С++. Например, платформы WealtLab, StockSharp и TSLab обеспечивают реализацию сразу всех этапов создания экспертов, включая их тестирование.

    Платформа StockSharp является библиотекой торговых экспертов, написанных на языке С. Работа на базе этой платформы требует знания языка программирования, изучение которого может занять достаточно длительное время.

    Платформа StockSharp

    Платформа TSLab представляет собой визуальный редактор, собирающий торговый советник из функциональных блоков. Блоки написаны на языке С#, но их код в процессе программирования скрыт от пользователя. Существует и возможность использования языка C# и комбинирования программирования с визуальным редактором. Так можно дописывать отсутствующие в стандартном наборе элементы.

    Платформа TSLab

    Промежуточной по функционалу, между платформами StockSharp и TSLab является платформа WealtLab. Она имеет визуальный редактор, правда, не очень хорошо развитый, и возможность использования языка программирования. Достоинством является отличный тестер стратегий.

     платформа WealtLabМодификация советника

    Более простым способом, но также требующим знания языка программирования, является модификация кода существующего советника под собственную стратегию. Для этого подбирается торговый робот, близкий по функционалу необходимому. При этом необходимо обеспечить соответствие по типу советника и используемым средствам технического анализа. С помощью модификации возможно добиться ускорения работы системы, произвести добавление алгоритмов управления, индикаторов, правил. Модификация так же осуществляется в интегрированном редакторе MetaEditor.

    Программы для создания эксперта

    Одним из способов программирования торгового советника является использование специализированных программ. Функционально они мало отличаются от описанной выше платформы TSLab и друг от друга и разработаны для снижения трудоемкости написания исходного кода. Создание самой торговой системы остается за трейдером.

    Одной из таких программ является Forex EA Generator, реализующая блочную схему построения эксперта. Программа предполагает наличие минимальных знаний проектирования механических торговых систем.

    Программы для создания эксперта

    Программа Gordago Forex Optimizer разработана с функционалом, приближенным к торговой платформе. Помимо создания советника она позволяет тестировать разработку на истории, а так же осуществлять с ее помощью торговлю, в случае наличия доступа к торговым серверам. Работа с программой интуитивно понятна – начало работы начинается с задания условий входа в рынок и выхода из него, задания инструментов анализа рынка. Функционал программы позволяет использовать разработанные эксперты в МТ4.

    Программа Gordago Forex Optimizer

    Полностью в автоматическом режиме эксперты создаются в программе Hlaiman EA Generator. Программа работает с торговой платформой МТ4. Для создания эксперта необходимо добавить на график желаемые инструменты технического анализа и нанести на график стрелки, указывающие места и направления входа в рынок, где осуществил бы вход сам трейдер.

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

     программа Hlaiman EA GeneratorЗаключение

    Этой статьей я хотел рассказать о том, что процесс программирования торгового советника становится все проще и требует минимальных специальных знаний. К тому же он имеет хорошую визуализацию, упрощающую построение эксперта. Такой подход к программированию освобождает трейдера от работы с громоздким кодом и устраняет возможность совершения ошибки в его написании. Но столь значительное упрощение работы не освобождает трейдера от разработки собственно торговой стратегии, являющейся основой программирования советника.

    Всем удачной торговли и профита!

    Источник: smfanton.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
Заработок в интернете или как начать работать дома