Я пристрастился к мысли о возможности сидеть перед фондовым / криптовалютным рынком, видеть, как он движется вверх и вниз, и совершать сделки весь день. Это увлекательно, потому что количество денег, которые можно заработать, безгранично и растет экспоненциально, если вы можете получать стабильную прибыль (если вы зарабатываете хотя бы 1% в день, вы можете получить миллионы долларов). В городе также есть новый рынок, который дает возможность делать это гораздо большему количеству людей, чем когда-либо прежде, спасибо биткойнам.

но….

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

Я начал с импорта данных в файл csv через Python. Для этого я использовал свои ключи api с моей учетной записью ftx. Это было всего 6 столбцов чисел. Я сделал надписи для этих столбцов. «Id», «open», «high», «low», «close», «volume». Мне пришлось отказаться от работы, если я даже хотел вывести из этой информации целевую колонку. Затем я создал столбцы для индикаторов с помощью математики и добавил эти функции, которые я разработал, в функцию «спор». Затем я подумал о цели, которую я мог бы предсказать ... выбор цели очень важен, потому что вы можете найти бесчисленное количество статей о том, насколько ужасны рыночные алгоритмы при прогнозировании фактической цены, поэтому пока я держался подальше от конкретной цены, по которой будет рынок, и решил установить свою цель: если рынок поднимется более чем на 0,0005% в течение следующих 25 минут = 1, если рынок не будет = 0.

После всей этой инженерной мысли я только начал. Затем я нашел базовый уровень, который составлял около 60%, что означает, что если бы я предполагал, что рынок не будет расти каждый раз на 0,0005% в течение следующих 25 минут, я был бы прав на 6 баллов из возможных. 10 раз. Это достойная базовая линия для начала, и она соответствует диапазону, который я хотел убедиться, что я смогу создать модель классификации, которая будет лучше, чем предположения, и принесет достаточно прибыли, чтобы оправдать риск и другие факторы.

Обучить модель было несложно, я прошел и нашел функции, которые я хотел сохранить в модели, с важностью функций. Затем я провел настройку гиперпараметров модели, чтобы найти параметры, настроенные для модели, чтобы они были более точными по оценке проверки, а не по данным обучения. В целом, в зависимости от ежедневного набора данных, я бы набрал от 10% до 30% выше базового уровня по проверке, установленной для диапазона точности от 70% до 83% в целом. Я обязательно проверил утечку, целевой столбец был создан путем просмотра двух других столбцов, которые, как я убедился, были удалены с самого начала, и я чувствовал себя комфортно, зная, что утечки не было, поскольку моя точность проверки никогда не превышала 85%. …

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

Чтобы действительно это проверить, мне пришлось создать полностью функционирующий «автотрейдер». Это был довольно большой подвиг, в котором было много «ошибок», которые мне пришлось преодолеть. Я все же построил один и позволил ему торговать, основываясь только на модели и только на модели…. имея только одну границу, модель должна быть более чем на 65% уверена, что в следующие 25 минут она сделает больше 0,0005%.

Тест был очень познавательным, мы больше не были в «стране физики» (термин, которым учителя физики будут использовать, чтобы оправдать, почему математика не соответствовала эксперименту, если вы не учли такие факторы, как сопротивление воздуха и т. д.), и мы не просто читаем рынок. Машина должна была конкурировать с другими покупателями и продавцами на рынке, за каждую сделку взималась плата, которую модель не учитывала, а также многие другие факторы, которые вступают в игру за пределами моей маленькой безопасной виртуальной среды. Он приносил в основном хорошие сделки или почти даже в течение 24 часов, но другие факторы привели к потере денег в целом.

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

Репозиторий Git Hub для проекта: https://github.com/Str8BallinZer0/Market_trading_random_forsest