Добрый день. Имеется код на TensorFlow (Keras) для обучения нейронки для предсказания движения курса и собственно, его предсказание. Код взят в открытом источнике и ещё не полностью доработан. Также возникают некоторые трудности, может кто нибудь подскажет, как их можно решить, вот сам код
# Импортирование необходимых библиотек import os.path import pandas as pd import numpy as np import tensorflow as tf from binance.client import Client
# Получение доступа к API биржи бинанс api_key = 'Ключ' api_secret = 'Секрет' client = Client(api_key, api_secret)
# Сбор данных о криптовалютах и их изменении цен за определенный период времени if os.path.exists("data.csv"): bars = pd.read_csv("data.csv") else: data_file = open("data.csv", "w+") data_file.close() df = pd.DataFrame(client.get_historical_klines("BTCUSDT", Client.KLINE_INTERVAL_5MINUTE, "90 days ago UTC")) df.to_csv("data.csv", index=False) bars = pd.read_csv("data.csv")
#bars = client.get_historical_klines("BTCUSDT", Client.KLINE_INTERVAL_5MINUTE, "180 days ago UTC")
# Подготовка данных для обучения нейросети data = pd.DataFrame(bars, columns=['timestamp', 'open', 'high', 'low', 'close', 'volume', 'close_time', 'quote_asset_volume', 'number_of_trades', 'taker_buy_base_asset_volume', 'taker_buy_quote_asset_volume', 'ignore']) data.drop(columns=['close_time', 'quote_asset_volume', 'number_of_trades', 'taker_buy_base_asset_volume', 'taker_buy_quote_asset_volume', 'ignore'], inplace=True) data['timestamp'] = pd.to_datetime(data['timestamp'], unit='ms') data.set_index('timestamp', inplace=True) data = data.astype(float)
# Создание модели нейросети model = tf.keras.Sequential([ tf.keras.layers.Dense(128, activation='relu', input_shape=(5,)), tf.keras.layers.BatchNormalization(), tf.keras.layers.Dense(64, activation='relu'), tf.keras.layers.Dense(32, activation='relu'), tf.keras.layers.Dense(1) ])
# Обучение модели на подготовленных данных model.fit(data.iloc[:-100], data['close'].iloc[:-100], batch_size=15, epochs=400, validation_split=0.2)
# Проверка качества работы нейросети на тестовых данных model.evaluate(data.iloc[-100:], data['close'].iloc[-100:])
# Использование нейросети для принятия решений о покупке или продаже криптовалют на бирже бинанс prediction = model.predict(data.iloc[-1:].values) if prediction > data['close'].iloc[-1]: print('Купить') else: print('Продать')
Проблема заключается в процессе обучения, во первых, если выдёргивать данные из файла (Если я всё правильно написал), то процесс обучения заходит в тупик и loss улетает, поэтому выдаётся nan, почему так происходит я не понимаю, пробовал разные методы и параметры оптимизации и разные функции потерь. Есть мысль что как то неправильно берутся данные из файла, так как если расскоментить bars = client.get_historical_klines("BTCUSDT", Client.KLINE_INTERVAL_5MINUTE, "180 days ago UTC") То процесс обучения начинает хоть как то идти. Во вторых параметр метрики, в частности точность тут не подходит, я так понимаю, надо написать свой метод для определения точности. Активационную функцию выбрал для всех слоев relu, так как при при других опять же процесс обучения просто упадёт. Пробовал с разным кол-вом нейронов, выход один и тот же, максимум чего удалось добиться это loss = 1000 (Чего немного дофига) Нижнюю часть, в частности проверка качества работы и использование нейронки можно пока выбросить. Есть у кого идеи по размеру батчей, возможно мало эпох или ещё чего то не хватает. С переобучением не сталкивался, так что dropout и нормализацию батчей не использовал.
Вчера перепробовал разные оптимизаторы и функции потерь, разный объём данных для обучения, разные размеры батчей и разделения на тест и валидацию, почти ничего не смогло уменьшить потерю ниже 1000
Переписал немного код, сделал нейронку рекуррентной, так как она лучше справляется с предсказанием, но есть баг с размерностью предсказанных и правильных значений, если кто то сможет исправить, буду благодарен
from keras import Sequential from keras.layers import LSTM, Dense import sys import pandas as pd import tensorflow as tf from binance.client import Client
# Получение доступа к API биржи бинанс api_key = 'ключ' api_secret = 'секрет' client = Client(api_key, api_secret)
# Сбор данных о криптовалютах и их изменении цен за определенный период времени """if os.path.exists("data.csv"): bars = pd.read_csv("data.csv") else: data_file = open("data.csv", "w+") data_file.close() df = pd.DataFrame(client.get_historical_klines("BTCUSDT", Client.KLINE_INTERVAL_5MINUTE, "90 days ago UTC")) df.to_csv("data.csv", index=False) bars = pd.read_csv("data.csv")"""
bars = client.get_historical_klines("BTCUSDT", Client.KLINE_INTERVAL_5MINUTE, "30 days ago UTC")
# Подготовка данных для обучения нейросети data = pd.DataFrame(bars, columns=['timestamp', 'open', 'high', 'low', 'close', 'volume', 'close_time', 'quote_asset_volume', 'number_of_trades', 'taker_buy_base_asset_volume', 'taker_buy_quote_asset_volume', 'ignore']) data['timestamp'] = pd.to_datetime(data['timestamp'], unit='ms') data.set_index('timestamp', inplace=True) data = data.astype(float) / 255
>>385611 (OP) >для обучения нейронки для предсказания движения курса и собственно, его предсказание Ты соснёшь. По цене нельзя предсказать что с ней будет. НИКАК!!! СОВСЕМ!!! Нужен хотябы биржевой стакан. P.S.Учил нейросетку по сотням картинок с графиками результат такой себе
>>389874 Какие картинки, ты код мой смотрел? Он выдёргивает всю инфу о каждой свече и на основе 15 свеч делает примерный прогноз, плюс я переделал сетку под рекуррентную, она для предсказания идёт лучше, если хочешь, могу кинуть код, сам пообучаешь с разными данными и потестишь.
>>391576 >Можно, см анализ временных рядов Посмотрел. The Echo Forecast [LuxAlgo] слил мои 10$ во время тестов. Фигня всё это уровня квадрата ганна и прочей ереси
>>391035 >могу кинуть код, сам пообучаешь с разными данными и потестишь. Я лет пять назад это всё пробовал. И меня на это вдохновила статья где пробовали торговать используя нейронные сети. И статье этой уже тогда было несколько лет. Угадай пришёл ли кто-то из тех кто этим баловался к успеху?
>>385611 (OP) оптимизатор замени с sgd на adam/adamw, он круче learning_rate ставь намного ниже. например 0.001 модель говно, переделывай) ошибка (loss) не ебу что это за mape, но обычно используют mse, bce и другие batch_size ставь 32-64-128-256 и больше, насколько видеокарта выдерживает epochs многовато, обычно обучают не больше 10
>>394121 И оно не должно выдавать какой то запредельный доход уровня илона, такие нейронки скальпят неплохо, если сам скальпить не умеешь и лень сидеть смотреть котировки, где побольше можешь выцепить процентов, то лучше запустить этот код и пусть он работает за тебя, собирая по несколько процентов за пару часов
Вот обновлённый код, сделал нейронку комбинированной, наполовину свёрточной, наполовину рекуррентной, Работает в разы лучше, однако есть смещение в право, то есть нейронка обучилась говну, вообще в теории это должно быть исправлено самой сеткой, так как LSTM, который я использовал для прошлой модели, уже использует автокоррекцию, посмотрим на что способна эта версия, для анализа теперь использую TensorBoard. По советам выше сейчас поставлю батч сайз побольше а эпох поменьше (правда в теории это должно только ухудшить качество обучения. Для предсказания я беру по 10 свечей по 5 минут, много по идее не должно быть, до этого брал по 15.
Также прикладываю скрины с графиками, второй скрин это позапрошлая модель, первый скрин это последняя обученная модель. На первом пике смещения не видно, но если брать часовой промежуток по oX, то там видно что она на пунктов 5, не меньше съезжает, если кто то знает причину и как это исправить, милости прошу в тред. Кстати в конце, если всё будет работать, могу скинуть все файлы, так как там есть ещё пара скриптов для теста нейронки на небольшом промежутке и файл для тестовой "Торговли", чтобы можно было видеть, зарабатывает хоть она, или страдает фигнёй.
# Импортирование необходимых библиотек import datetime from keras_self_attention import SeqSelfAttention from sklearn.preprocessing import StandardScaler import keras import numpy as np from keras.layers import LSTM, Dense, MaxPooling1D, Conv1D import pandas as pd import tensorflow as tf from binance.client import Client
# Получение доступа к API биржи бинанс api_key = 'ключ' api_secret = 'секрет' client = Client(api_key, api_secret)
bars = client.get_historical_klines("BTCUSDT", Client.KLINE_INTERVAL_5MINUTE, "1080 days ago UTC")
# Подготовка данных для обучения нейросети data = pd.DataFrame(bars, columns=['timestamp', 'open', 'high', 'low', 'close', 'volume', 'close_time', 'quote_asset_volume', 'number_of_trades', 'taker_buy_base_asset_volume', 'taker_buy_quote_asset_volume', 'ignore'])
# Компиляция модели model.compile(optimizer=MyOpt, loss='mse', metrics='accuracy')
# Обучение модели на подготовленных данных model.fit(train_data, train_labels, batch_size=25, epochs=150, validation_split=0.3, callbacks=[tensorboard_callback])
>>393416 Посмотрел я этот The Echo Forecast, непонятно чё написано и нахер надо, какой то сайт для рубки бабла не больше, хочешь рабочую нейросеть, иди читать мануалы, я вот сижу и разгребаю тонну документаций по разным библиотекам а также потихоньку разбираюсь в формулах, которые применяются в процессе создания нейросети, и, как видишь, понемногу получается всё лучше.
>>385611 (OP) Занимался такой хуйней, долго ковырял но к чему-то путному не пришел. Дам подсказку, о чем понял с опытом. Попытка предсказать движения курса лишь по свечкам обречена на провал, нейронка должна быть охуенно могучая, с вниманием и большим количеством параметров чтоб хоть что-то из этого понимать. Гораздо правильнее дать ей инструмент в виде всяческих показаний индикаторов, чтобы она не отвелкалась на бесполезные ложные корреляции
>>395555 Модель не весит нифига пока что, так как нейронов и слоёв очень мало, последняя версия на 3мб получилась, и там уже не просто гадание о прошлых значениях а какие то попытки предсказать нормально. Сейчас буду вертеть параметры и обучать пытаться, и чем меньше эпох и больше батч сайз тем тупее и прямолинейнее модель получается, так что сейчас чуть подкрутил их, посмотрим что выйдет
Кидаю последний рабочий код для обучения, можете попробовать параметры подкрутить и пообучать
# Импортирование необходимых библиотек import datetime from sklearn.preprocessing import StandardScaler import numpy as np from keras.layers import Dense, MaxPooling1D, Conv1D, LSTM, Dropout import pandas as pd import tensorflow as tf import keras.backend as K import tensorflow_probability as tfp
from binance.client import Client
# Получение доступа к API биржи бинанс api_key = 'ключ' api_secret = 'секрет' client = Client(api_key, api_secret)
bars = client.get_historical_klines("BTCUSDT", Client.KLINE_INTERVAL_5MINUTE, "720 days ago UTC")
# Подготовка данных для обучения нейросети data = pd.DataFrame(bars, columns=['timestamp', 'open', 'high', 'low', 'close', 'volume', 'close_time', 'quote_asset_volume', 'number_of_trades', 'taker_buy_base_asset_volume', 'taker_buy_quote_asset_volume', 'ignore'])
# Создание модели нейросети inputs = tf.keras.Input(shape=(25, 11)) x = Conv1D(filters=300, kernel_size=6, activation='relu')(inputs) x = Dropout(0.3)(x) x = MaxPooling1D(pool_size=4)(x) x = Dropout(0.3)(x) x = tf.keras.layers.Attention()([x, x]) x = Dropout(0.3)(x) x = LSTM(128, activation='tanh')(x) x = Dropout(0.3)(x) x = tf.keras.layers.Attention()([x, x]) x = Dropout(0.3)(x) x = Dense(64, activation='relu')(x) x = Dropout(0.3)(x) outputs = Dense(3, activation='linear')(x)
model = tf.keras.Model(inputs=inputs, outputs=outputs)
# Компиляция модели model.compile(optimizer='adam', loss='mse', metrics=[autocorrelation_metric])
# Обучение модели на подготовленных данных model.fit(train_data, train_labels, batch_size=64, epochs=150, validation_split=0.3, callbacks=[tensorboard_callback])
>>395570 Я брал AC, ADX, CG, Bollinger Bands, CCI, DX, MOM, OBV, RSI. Генерил для тренировочного датасета через npm либу "trading-signals". Учти что генерится очень долго, возможно придется выкинуть часть или взять пеку помощнее. В индикаторы надо прокидывать значения, я брал таким образом: находил на traidingview готовые стратегии по нужному индикатору и менял параметры, пока не получится наилучший график прибыли, на условном биткоине.
>>395570 >Хорошо, можешь поделиться подробнее о индикаторах, какие брать, в след версию тогда добавлю их тоже Я не он но единственное что работает довольно часто это пробой плотностей либо отскок от плотностей
>>395634 Пробои и отскоки я и глазками вижу, занимался таким, для этого нейронка не нужна, сама соль в том что случаются они достаточно редко и не в таких обьёмных парах как btcusdt, так что тут мимо наверно, но приму к сведенью
>>405465 Херовые результаты с этими данными, сейчас переписываю полностью входные и выходные данные а также переписываю скрипт для проверки профита, как всё заработает, закину
Кароч переписал почти половину данных, использовал разные библиотеки для получения индикаторов торговли, также сделал чтобы выводило только 4 варианта, сильно вырастет/вырастет/упадёт/сильно упадёт. Осталось только чтобы это всё заработало, так как я что то упустил и loss и метрика просто nan на всех эпохах, нужно смотреть чё там творится
>>421258 >я ещё в детстве помню обучал торговые системы на метатрейдере и тогда ещё понял что это туфта >потом помню как нейросети появились видел обьявления таких ищущих спонсора >в общем анон просто забей >поверь ты сэкономишь много усилий и может быть денег Зачем что-то объяснять клоуну, который не понимает базовых вещей: рынок создан для спекуляций, экономики как в учебниках в живой природе не существует.
>>385611 (OP) >Нейросетевой заработок Объясняю более простую схему: создаешь нейротяночку, используя наличный объем технологий, заводишь онлифанс с тематикой соответствующей твоим интерсам (как бы это кринжево не звучало), привлекаешь чертей и ищешь с кого сосать инсайды. Социал инжиниринг называется. А пытаться анализировать скачки которые зависят от рендомных спекулятивных флуктуаций - это шиза.
перечитал свой пост и понял я забыл что прога называлась метасток, метатрейдер это какая-то анрилейтед фигня
в общем там реально обучение подбором коэффициентов, прямо как нейросети, без дураков, проблема как всегда что это обучение к прошлому и вдобавок легко скатиться в переобучение, но как бы то ни было нет никакой гарантии что коэффициенты будут работать в будущем
вообще если уж развлекаться то имо перспективнее всего пытаться оптимизировать не точку входа а сколько допустимо потерять перед выходом то есть изучить волатильность рынка и выходить после какого-то среднего отклонения в ненужную сторону
но опять же - это не заработок, с совсем практической точки зрения имеет смысл покупка в долгосрок... ага а потом твое добро замороженное пылится в евроклире, лол
>>421952 По твоей логике любой вид деятельности это спекуляция, продолжать не буду с тобой беседу, ты просто недалёкого ума, либо просто трясёшься так как сам сделать не можешь, выбирай
>>422029 У меня есть бумаги в долгосрок, хочу просто с хомяков собирать кусочки на автомате пока они пытаются спекулей обыграть
Кстати интересно наблюдать за клоунами, которые говорят что это 147% нерабочая херня, когда нейросети могут высчитывать паттерны незаметные человеческому глазу, что повышает вероятность правильности результатов, чего только стоит тот реддит для ботов, где капчу решить только нейронки могут
>>421952 >Зачем что-то объяснять клоуну, который не понимает базовых вещей: рынок создан для спекуляций, экономики как в учебниках в живой природе не существует.
>>424347 >хочу просто с хомяков собирать кусочки на автомате пока они пытаются спекулей обыграть >Кстати интересно наблюдать за клоунами, которые говорят что это 147% нерабочая херня Ебало своё в тред оформи, когда ты пишешь одновременно, что делаешь очередную кухню и тут же пишешь что ты лудоман верящий в СТРАТЕГИЮ. Ебать ты дебич.
>высчитывать паттерны незаметные человеческому глазу Которые ты считаешь статичными, а они меняются от любой спекуляции.
>>424338 >По твоей логике любой вид деятельности это спекуляция Это твой тупорылый обобщам, а не мой. Я такое говорил? Покажи где я такое сказал. Я лишь сказал, что биржи в принципе являются местом для заработка спекулянтов, которые используют инсайды, что абсолютно ебет любые попытки в экономику. Точно так же, как если бы ты имел хоть базовое экономическое образование, а не дрочил под партой в аудитории, ты бы знал, что и по сей день никакая рыночная/эконоическая теория не применима фактически к российской экономики, из-за активных спекуляций крупнейших участников, которые просто в рот ебут все твои схемы. И все это прекрасно знают, и работа АНАЛитиков по большей части не давать реальные прогнозы, а красиво ссать в уши. Даже ты, уебище лживое: >>424347 тут признаешься, что делаешь программу, чтобы ссать в уши, и тут же говоришь что этого не делаешь. Ну кто ты после этого, мразотина, а?
ОбновОЧКА Написал Ген алгоритм, переделал систему, на выход теперь идут 4 нейрона, то есть выход это вектор типа 0 0 0 1, 0 0 1 0, 0 1 0 0 и 1 0 0 0. Означают что цена упадёт больше чем на процент, упадёт меньше чем на процент, поднимется меньше чем на процент и поднимется больше чем на процент. Арендовал сервер для прогонки Ген алгоритма, обошлось в небольшую копеечку, но дело сделано, получил наиболее приспособленную особь. Пока долблюсь с окончательной проверкой и тестом с профитом, но на первых парах выдавала 60-75% точных предсказаний, это не учитывая что просто повышение цены вместо повышения больше чем на 1% можно тоже считать верным прогнозом, в ближайшее время займусь скриптом для торговли, пока что на тестовом балансе, который предоставляет сам бинанс, выкладываю ген алгоритм для тех, у кого супер мощная пека, можете поиграться, поставить больше побольше популяцию или кол-во популяций
# Импортирование необходимых библиотек import random from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler import numpy as np from keras.layers import Dense, LSTM, Dropout import pandas as pd import tensorflow as tf from binance.client import Client
# Получение доступа к API биржи Binance api_key = 'ключ' api_secret = 'секрет' client = Client(api_key, api_secret)
bars = client.get_historical_klines("BTCUSDT", Client.KLINE_INTERVAL_5MINUTE, "1 days ago UTC")
# Подготовка данных для обучения нейросети data = pd.DataFrame(bars, columns=['timestamp', 'open', 'high', 'low', 'close', 'volume', 'close_time', 'quote_asset_volume', 'number_of_trades', 'taker_buy_base_asset_volume', 'taker_buy_quote_asset_volume', 'ignore']) data['timestamp'] = pd.to_datetime(data['timestamp'], unit='ms') data.set_index('timestamp', inplace=True)
# Проверяем и преобразуем столбцы с числовыми значениями numeric_columns = ['open', 'high', 'low', 'close'] for column in numeric_columns: data[column] = pd.to_numeric(data[column], errors='coerce')
if price_change_percentage > 1: train_label = [1, 0, 0, 0] # Цена поднялась на 1% или более elif price_change_percentage < -1: train_label = [0, 0, 0, 1] # Цена упала на 1% или более elif price_change_percentage > 0: train_label = [0, 1, 0, 0] # Цена поднялась на менее чем 1% else: train_label = [0, 0, 1, 0] # Цена упала на менее чем 1%
train_labels.append(train_label)
train_labels = np.array(train_labels)
# Стандартизируем данные scaler = StandardScaler() scaled_data = scaler.fit_transform(data)
train_data_blocks = [] for i in range(len(data) - block_size): train_data_block = scaled_data[i:i + block_size] train_data_blocks.append(train_data_block)
# Создание начальной популяции def generate_population(population_size): population = [] for _ in range(population_size): individual = generate_individual() population.append(individual) return population
# Оценка приспособленности популяции def evaluate_population(population): fitness_scores = [] for individual in population: model = create_model_from_individual(individual) # Компиляция и обучение модели на тренировочных данных batch_size = individual[-1]['batch_size'] epochs = individual[-1]['epochs'] validation_split = individual[-1].get('validation_split', 0.3)
# Создание модели на основе индивидуума def create_model_from_individual(individual): inputs = tf.keras.Input(shape=(20, 22))
if isinstance(individual[0], tf.keras.layers.Dense): x = tf.keras.layers.Flatten()(inputs) # Преобразование в одномерный формат x = tf.keras.layers.Dense(units=20 * 22)(x) # Преобразование размерности x = tf.keras.layers.Reshape((20, 22))(x) # Изменение размерности перед LSTM else: x = inputs
for i, layer in enumerate(individual[:-1]): x = layer(x)
x = tf.keras.layers.Flatten()(x) # Преобразование в одномерный формат
outputs = tf.keras.layers.Dense(units=4, activation='softmax')(x) model = tf.keras.Model(inputs=inputs, outputs=outputs)
return model
# Оценка модели (приспособленность индивидуума) def evaluate_model(model, validation_split): # Разделение данных на обучающую и валидационную выборки train_data_1, val_data, train_labels_1, val_labels = train_test_split(train_data, train_labels, test_size=validation_split, random_state=random.randint(1, 100))
# Разница между точностью и потерями diff_accuracy = 1 - (train_loss + val_loss) / 2
if diff_accuracy < 0: return 0.01 else: return diff_accuracy
# Выбор родителей для скрещивания def select_parents(population, fitness_scores): parents = [] total_fitness = sum(fitness_scores) probabilities = [score / total_fitness for score in fitness_scores]
for _ in range(len(population) // 2): parent1_idx = roulette_wheel_selection(probabilities)
# Поиск второго родителя с ненулевой вероятностью parent2_idx = None while parent2_idx is None or parent2_idx == parent1_idx: parent2_idx = roulette_wheel_selection(probabilities)
def set_lstm_return_sequences(individual): lstm_indices = [i for i, layer in enumerate(individual) if isinstance(layer, LSTM)] if len(lstm_indices) <= 0: return individual
for i, layer_index in enumerate(lstm_indices): if i == len(lstm_indices) - 1: individual[layer_index].return_sequences = False else: individual[layer_index].return_sequences = True
batch_size_mutated = False # Флаг для отслеживания применения мутации к batch_size epochs_mutated = False # Флаг для отслеживания применения мутации к epochs val_mutated = False # Флаг для отслеживания применения мутации к validation_split
for i, layer in enumerate(mutated_individual): if isinstance(layer, dict): # Проверяем, является ли элемент словарем if random.random() < mutation_rate: if 'batch_size' in layer and not batch_size_mutated and not any(isinstance(l, dict) and 'batch_size' in l for l in mutated_individual): # Проверяем флаг и наличие словарей с batch_size new_batch_size = layer['batch_size'] + random.randint(-64, 64) new_batch_size = max(64, min(1024, new_batch_size)) layer['batch_size'] = new_batch_size batch_size_mutated = True # Устанавливаем флаг
elif 'epochs' in layer and not epochs_mutated and not any(isinstance(l, dict) and 'epochs' in l for l in mutated_individual): # Проверяем флаг и наличие словарей с epochs new_epochs = layer['epochs'] + random.randint(-4, 4) new_epochs = max(16, min(64, new_epochs)) layer['epochs'] = new_epochs epochs_mutated = True # Устанавливаем флаг
elif 'validation_split' in layer and not val_mutated and not any(isinstance(l, dict) and 'validation_split' in l for l in mutated_individual): # Проверяем флаг и наличие словарей с validation_split new_val_split = layer['validation_split'] + random.uniform(-0.1, 0.1) new_val_split = max(0.1, min(0.7, new_val_split)) layer['validation_split'] = new_val_split val_mutated = True # Устанавливаем флаг
for i, layer in enumerate(mutated_individual): if random.random() < mutation_rate: if random.random() < 0.5: new_layer = generate_random_layer()
if i < len(mutated_individual) - 1 and not isinstance(mutated_individual[i + 1], Dropout): mutated_individual.insert(i + 1, new_layer) elif len(mutated_individual) > 1: if isinstance(layer, Dropout): mutated_individual.pop(i) elif i < len(mutated_individual) - 1 and isinstance(mutated_individual[i + 1], Dropout): mutated_individual.pop(i + 1) if len(mutated_individual) > 0 and isinstance(mutated_individual[-1], Dropout): mutated_individual.pop(i - 1) else: mutated_individual.pop(i)
for i, layer in enumerate(mutated_individual): if isinstance(layer, Dense): units = random.randint(32, 256) activation = random.choice(['relu', 'sigmoid', 'tanh']) mutated_layer = Dense(units=units, activation=activation) elif isinstance(layer, LSTM): units = random.randint(32, 256) activation = random.choice(['tanh', 'sigmoid', 'relu']) return_sequences = layer.return_sequences mutated_layer = LSTM(units=units, activation=activation, return_sequences=return_sequences) elif isinstance(layer, Dropout): rate = random.uniform(0.1, 0.5) mutated_layer= Dropout(rate=rate) else: mutated_layer = layer
# Генетический алгоритм def genetic_algorithm(population_size, num_generations, mutation_rate): population = [generate_individual() for _ in range(population_size)] best_fitness_scores = [] i = 0;
for generation in range(num_generations): fitness_scores = evaluate_population(population) best_individual = get_best_individual(population, fitness_scores) best_fitness_scores.append(max(fitness_scores))
Кому непонятно выкладываю код для ознакомления, может кому то он поможет в своём проекте, если вы хотите повторить один в один и нужно именно файлом, могу выгрузить файл в облако.
>>426645 >Которые ты считаешь статичными, а они меняются от любой спекуляции.
Мой молодой дружок, если бы ты немного учил матчасть то знал, что паттерны как раз и создаются спекуляциями, а не меняются от них, в общем подучи экономику хотя бы чуть чуть прежде чем срать сюда, от тебя тухлятиной старой пахнет
>>430857 Средняя точность предсказания 77%, сейчас проверяю на тестнет binance. Один минус, тут нет стоп лоссов, в коде их прописал, но возвращает ошибку, так что тестирую пока без них, думаю дня два подержать и отправить на реальное поле смотреть что получится
>>427732 Дополнение к тому что написал: Тоже сделал нейронку с эволюцией, но взял больше индикаторов и взял их по разным временным промежуткам, так же взял больше данных, но точность все равно говно (55%) Я не понимаю что не так, был бы рад обсудить код, обменяться идеями, если у тебя или анонов есть время/желание - пишите @howmanyeyes
Пока страдал хернёй, решил обучить её на 5 годах, вышло пикрил, хз нормально или нет, сейчас полностью переделываю код для торговли со всеми стоп лоссами и обьёмами покупок/продаж, так как был просто треш код с костылями (он и сейчас таким получится, но чуть более читаемый хоть будет)
>>438667 Реклама чего? что я код пишу уже пол месяца? или может я деньги требую за это? нет, я просто делюсь инфой, которую сам копаю, кто то мб поможет, кто то просто возьмёт потестить, реф ссыль на бинанс я не оставляю, мне не надо. Уже любая доброта в этом мире считается наёбкой и рекламой, этот мир прогнил
>>442714 Слишком хорошие цифры у тебя получились. Либо ты где то ошибся в обучении (например в нормализации/стандартизации данных) и в боевом режиме соснеш, либо ты гений.
>>443110 Вот я надеюсь что не соснул в стандартизации) Прошлые цифры были реальней, но я тут просто эпох 50 поставил + ещё dropout слоёв нету, ген алгоритм выдал модель с двумя LSTM слоями, сколько в них нейронов я хз. Возможно она переобучилась и сейчас на тестах даст мне пизды, так что ждём
>>443758 Согласен, но тут ещё вопрос в колве вливаемых денег, так как чем больше вольёшь, тем больше она сможет отбивать и обьём торгов будет большой, там и глядишь комиссия меньше будет если обьём за месяц набьёшь
Итак, вкидываю проект !ВНИМАНИЕ!НЕ!РЕКЛАМА! https://github.com/FreeTile/Binance !ВНИМАНИЕ! Код на данный момент говнище, куча костылей, информации выводится дохера, даже та, которая не нужна, плюс проект не обновлён, код старый пока что, сам допиливаю. Зато тут есть полностью расписанный readme, правда на английском, писал сам проверял дохера времени, но там всё интуитивно понятно. По поводу торгов, комиссия да, пока сжирает много, но тут ещё факт в том что закинул минималку, из за чего она спотыкается буквально обо всё (в ограничения баланса) + из за этого не работает откуп после нескольких продаж и наоборот, пришлось закомментить эти строки. Позавчера шла норм, почти 10% сделала, сегодня такой пиздец на бирже, шо даже я не могу хоть примерно предсказать чё будет дальше, иногда цена просто в коридор встаёт и ни туда ни сюда, благо нейронка тут умнее и просто предсказывает повышение, ничего не покупая, так как баланс не позволяет) Стоп лоссы ставит нормально, правда иногда всё равно идёт такое пробитие, что не успевает его выставить, тут я думаю try/except применить, чтобы не умирала в таких случаях. В общем работаю как могу, кому интересно код наверно в воскресенье обновлю, можете глянуть, может захотите оптимизировать (не дай боже, вы там глаза нахуй сломаете)
>>443771 Базу глаголишь, суть программ для торговли в получении пассивного дохода. Даже 0.01% в день уже больше чем ебучие вклады в банке по 7% годовых)
>>444267 Файл не обновлён, я его немного переписал, но суть этого куска также есть. Если нейронка несколько раз покупает и некст предикт будет на снижение, то она на этих хаях продаёт весь обьём что купила до этого. И наоборот с продажей, на лоях докупает всё что продала
>>444267 А, не, это вообще про другое, это ещё вообще со старого кода функция, нужна была для тестовой сети, в принципе делает то же самое, что я написал ответом выше, только для тестового баланса где 10000 USDT и 1 BTC
>>444098 Торгует то да, но вот раньше прибыль была, сейчас я немного код перекопал и сеть заново обучил, и получается пока трешатина какая то, идёт в минус. Сегодня докопаю его и сделаю пуш в репоз, следите там за апдейтом
Сраное говно на pycharm мне всю голову проморочила, какие то постоянно ветки ебашила, то пуш нормально не отправит, в итоге слил свои ключи, пришлось пересоздавать, гитигнор ей вообще поебать, какого хера тут две ветки если по факту только одна удалённая, нахуй мне вторая локальная падаль а. Кароч запушил релевантные скрипты, потестите мб
>>443840 Спасибо большое! К сожалению оказывается что либо я тупоголовый, либо не умею читать, можешь пожалуйста помочь с использованием? Согласно Readme запустил LoadData, получил файлы "train_data.npy" и "train_labels.npy", запустил Average_shadows, новых файлов не появилось, старые не изменились. Запустил Genetic_Algorithm, появился файл "best_individual.npy", другие не менялись, НО выскочила ошибка:
Traceback (most recent call last): Файл "C:\Users\SSD500GB\Desktop\bot_dvach_2\Genetic_Algorithm.py", строка 361, из <module> np.save('best_individual.npy', best_individual) Файл "<__array_function__ internals>", строка 200, из save Файл "C:\Users\SSD500GB\AppData\Local\Programs\Python\Python310\Lib\site-packages\numpy\lib\npyio.py", строка 521, из save arr = np.asanyarray(arr) builtins.ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (2,) + inhomogeneous part.
Как ее решить и что она вообще значит, я так и не понял. Далее пробовал запускать TrainBestModel, но каждый раз она выдает одни и те же цифры (хотя несколько раз менял конфиг, уменьшая/увеличивая кол-во данных, поколений и нейронок в поколении) Ощущение будто TrainBestModel каждый раз сама подгружает данные, и на них уже тренируется.
Так и не смог получить новую версию модели. Я что то делаю не так? Может просто есть ошибки в коде? Или я не в том порядке запускаю все? Опирался на инструкцию из ReadMe, свой конфиг прикрепляю ниже. Если тебе проще связаться и лично ответить на мои вопросы, то я только рад: @howmanyeyes
>>445500 Ключ и секрет без кавычек указываются, всё в readme без кавычек, убери их и ещё раз все файлы прогони, вообще удивительно что у тебя ошибки на load data не было, и да, как уже написали, не палите свои ключи, мы на двачах
Ключи поменял, файл Trading работает (правда уже на 1% в минус ушел), стала вылетать новая ошибка:
Traceback (most recent call last): Файл "C:\Users\SSD500GB\AppData\Roaming\Python\Python310\site-packages\tensorflow\python\eager\polymorphic_function\autograph_util.py", строка 41, из autograph_handler return api.converted_call( Файл "C:\Users\SSD500GB\AppData\Roaming\Python\Python310\site-packages\tensorflow\python\autograph\impl\api.py", строка 439, из converted_call result = converted_f(effective_args, kwargs) Файл "C:\Users\SSD500GB\AppData\Local\Temp\__autograph_generated_fileh6i3j33c.py", строка 15, из tf__train_function retval_ = ag__.converted_call(ag__.ld(step_function), (ag__.ld(self), ag__.ld(iterator)), None, fscope) Файл "C:\Users\SSD500GB\AppData\Roaming\Python\Python310\site-packages\tensorflow\python\autograph\impl\api.py", строка 377, из converted_call return _call_unconverted(f, args, kwargs, options) Файл "C:\Users\SSD500GB\AppData\Roaming\Python\Python310\site-packages\tensorflow\python\autograph\impl\api.py", строка 460, из _call_unconverted return f(args) Файл "C:\Users\SSD500GB\AppData\Roaming\Python\Python310\site-packages\keras\src\engine\training.py", строка 1322, из step_function outputs = model.distribute_strategy.run(run_step, args=(data,)) Файл "C:\Users\SSD500GB\AppData\Roaming\Python\Python310\site-packages\tensorflow\python\distribute\distribute_lib.py", строка 1673, из run return self._extended.call_for_each_replica(fn, args=args, kwargs=kwargs) Файл "C:\Users\SSD500GB\AppData\Roaming\Python\Python310\site-packages\tensorflow\python\distribute\distribute_lib.py", строка 3250, из call_for_each_replica return self._call_for_each_replica(fn, args, kwargs) Файл "C:\Users\SSD500GB\AppData\Roaming\Python\Python310\site-packages\tensorflow\python\distribute\distribute_lib.py", строка 4048, из _call_for_each_replica return fn(args, kwargs) Файл "C:\Users\SSD500GB\AppData\Roaming\Python\Python310\site-packages\tensorflow\python\autograph\impl\api.py", строка 690, из wrapper return converted_call(f, args, kwargs, options=options) Файл "C:\Users\SSD500GB\AppData\Roaming\Python\Python310\site-packages\tensorflow\python\autograph\impl\api.py", строка 377, из converted_call return _call_unconverted(f, args, kwargs, options) Файл "C:\Users\SSD500GB\AppData\Roaming\Python\Python310\site-packages\tensorflow\python\autograph\impl\api.py", строка 459, из _call_unconverted return f(args, kwargs) Файл "C:\Users\SSD500GB\AppData\Roaming\Python\Python310\site-packages\keras\src\engine\training.py", строка 1303, из run_step outputs = model.train_step(data) Файл "C:\Users\SSD500GB\AppData\Roaming\Python\Python310\site-packages\keras\src\engine\training.py", строка 1080, из train_step y_pred = self(x, training=True) Файл "C:\Users\SSD500GB\AppData\Roaming\Python\Python310\site-packages\keras\src\utils\traceback_utils.py", строка 70, из error_handler raise e.with_traceback(filtered_tb) from None Файл "C:\Users\SSD500GB\AppData\Roaming\Python\Python310\site-packages\keras\src\engine\input_spec.py", строка 298, из assert_input_compatibility raise ValueError( builtins.ValueError: Input 0 of layer "model" is incompatible with the layer: expected shape=(None, 20, 22), found shape=(None, 30, 22)
During handling of the above exception, another exception occurred:
Traceback (most recent call last): Файл "C:\Users\SSD500GB\Desktop\bot_dvach_3\Genetic_Algorithm.py", строка 358, из <module> best_individual = genetic_algorithm(population_size, num_generations, mutation_rate) Файл "C:\Users\SSD500GB\Desktop\bot_dvach_3\Genetic_Algorithm.py", строка 338, из <module> fitness_scores = evaluate_population(population) Файл "C:\Users\SSD500GB\Desktop\bot_dvach_3\Genetic_Algorithm.py", строка 107, из <module> model.fit(train_data, train_labels, batch_size=batch_size, epochs=epochs, validation_split=validation_split) Файл "C:\Users\SSD500GB\AppData\Roaming\Python\Python310\site-packages\keras\src\utils\traceback_utils.py", строка 70, из error_handler raise e.with_traceback(filtered_tb) from None Файл "C:\Users\SSD500GB\AppData\Local\Temp\__autograph_generated_fileh6i3j33c.py", строка 15, из tf__train_function retval_ = ag__.converted_call(ag__.ld(step_function), (ag__.ld(self), ag__.ld(iterator)), None, fscope) builtins.ValueError: in user code:
File "C:\Users\SSD500GB\AppData\Roaming\Python\Python310\site-packages\keras\src\engine\training.py", line 1338, in train_function return step_function(self, iterator) File "C:\Users\SSD500GB\AppData\Roaming\Python\Python310\site-packages\keras\src\engine\training.py", line 1322, in step_function outputs = model.distribute_strategy.run(run_step, args=(data,)) File "C:\Users\SSD500GB\AppData\Roaming\Python\Python310\site-packages\keras\src\engine\training.py", line 1303, in run_step * outputs = model.train_step(data) File "C:\Users\SSD500GB\AppData\Roaming\Python\Python310\site-packages\keras\src\engine\training.py", line 1080, in train_step y_pred = self(x, training=True) File "C:\Users\SSD500GB\AppData\Roaming\Python\Python310\site-packages\keras\src\utils\traceback_utils.py", line 70, in error_handler raise e.with_traceback(filtered_tb) from None File "C:\Users\SSD500GB\AppData\Roaming\Python\Python310\site-packages\keras\src\engine\input_spec.py", line 298, in assert_input_compatibility raise ValueError(
ValueError: Input 0 of layer "model" is incompatible with the layer: expected shape=(None, 20, 22), found shape=(None, 30, 22)
>>445685 Trading пока не запускай, там надо ещё переработать немного, а то он говняк начинает делать, просто туда сюда гоняет валюту) По поводу ошибки в GA, тут у тебя ожидается вектор размерностью 20 22, а подаётся 30 22, не менял block size в config.txt? Если менял, то поставь пока назад 20
Господи ебать гит заработал как надо без ебательства с ветками, наконец, выгрузил новый GA файл, также чуть подправил Trading и TrainBestModel. Также кстати там было закомментировано само обучение то, только проверка была) Сейчас всё исправил. TrainBestmodel.py теперь и обучает и проверяет на данных как работает
В общем обновОЧКА, на 5 минутках просто по центу идёт вниз из за одного фактора, за 5 минут цена изменяется в среднем на 0,03%, из за этого на 5 минутах в ДАННЫЙ МОМЕНТ торговать невыгодно. Несколько дней назад когда волатиьность выше была, шло в плюс, сейчас говняк, даже предсказывает плохо чисто из за того что цена не колебается почти. Есть сейчас идея перескочить на 10-15 минут или выше. Кто хочет сразу пробуйте ставить свечи побольше, чтобы смотреть уже на такой выхлоп. На данный момент 5мин предикт непрофитен
>>445904 Объясни пожалуйста, зачем нужен файл Genetic_Algorithm, если он в итоге выплевывает "best_individual.npy", который больше НИГДЕ не используется? По контексту догадываюсь что Genetic_Algorithm должен выплевывать "best_individual.pkl", но как бы я ни старался, этого не происходит. (Пробовал в тупую разрешение файла менять, заставлять сохранять в нужном формате, ждать конца работы программы, прерывать ее выполнение насильно). В любом случае файла либо нет, либо (после смены разрешения) он неюзабелен. Что я делаю не так? Помогите пожалуйста.
>>448354 Бля, я что ли расширения наебнул или что, он должен выплёвывать файл с расширением которое принимает trainbestmodel. Глянь что в trainbestmodel вначале загружается, pkl или npy, я чуть позже сам проверю всё ещё раз, с последним коммитом вроде всё работало
>>448354 Переписал немного ген алгоритм, добавил пикл и сохраняю в pkl, там всё через него должно было работать, видимо я с того момента как нейронку обучил хер забил, сейчас попробуй, если что отпиши
>>449036 Вот теперь все работает, спасибо тебе анон. Только несколько вопросов появилось. Зачем еще раз (в TrainBestModel) тренировать модель, если ее до этого уже натренировали? Последняя модель на гите торгует на каком интервале и какая у нее точность? И надо ли тебе логирование, которое скинул выше?
>>449036 Тестирую сейчас торговлю, и либо с кодом проблема, либо я чего то не понимаю. Нейронка работает по следующему алгоритму: 1) Определить пойдет ли цена вверх (допустим идет) 2) Обменять USDT на BTC 3) Создать стоп-лосс 4) Подождать 15 минут 5) Закрыть все ордеры 6) Начать шаг 1
Если я правильно читаю код и интерпретирую историю ордеров, то выходит что нейронка не фиксирует прибыль и надеется на то что предсказания будут меняться (т.е. ввер-вниз-вверх-...)
Если это так и задумано, то укажи что торговать следует от 100$, если нет, то пиздец, надо переделывать переделкой сейчас занимаюсь
>>449567 В Ген алгоритме фиксированные 10 (вроде) эпох, по которым вычисляется наиболее приспособленная модель для тренировки, так что там сохраняется не натренированная модель, а файл с конфигурацией модели, то есть сколько слоёв, какие слои, сколько в них нейронов, размер батча и так далее, а в trainbestmodel ты уже выгружаешь эту лучшую модель и тренируешь её не на 10 эпохах а на 20+, то есть чтобы обучилась лучше, но тут опять же нужно следить на переобучением. В принципе можно сделать так чтобы это всё происходило в ген алгоритме, но тогда при отключении света или просто краше, чем бы он не был вызван, у тебя сохранится последняя плохо обученная модель. Можно сделать так чтобы каждая модель в ген алгоритме проходила 20+ эпох, тогда он будет работать лучше и в любом случае сохранит последнюю модель обученную, но тогда время работы возрастёт многократно, могу создать отдельную ветку на гитхабе где будет реализован только ген алгоритм сразу с большим кол-вом эпох и сохранением лучшей модели, а не её конфигурации
>>449734 Она должна фиксировать прибыль если след свеча по предсказаниям пойдёт в обратную сторону. То есть допустим верх-верх шло, она два раза закупилась, если следующее предсказание вниз, то она продаёт всё что купила до этого, и наоборот. Стоп лоссы ставит для случая если ошиблась с предиктом. Да, там нужно немного доработать стоп лосс, чтобы он выставлялся на весь обьём, что до этого скупила/продала нейронка, тогда всё будет работать лучше, и да, чем больше залито, тем лучше в теории будет торговля, но это не точно, модель всё таки не идеальная, на повышение предсказания идут хуже чем на понижение, плюс надо поиграться с временем свечей и понять при каком наименьшем промежутке волатильности достаточно + нейронка достаточно точна для получения ощутимой прибыли. В общем тут ещё есть над чем работать, самое главное что оно уже выполняет главные действия без лютых затупов.
>>449567 Продолжение ответа На гите сейчас лежит код для 15 минутных свеч, модель соответственно для этого же промежутка вроде БЛять нет, я еблан сори, ну там они не очень различались, закоммитил модель для 15 минут) Сразу говорю что предсказывает херово, пока разбираюсь с trading.py, у кого есть ресурсы можете методом проб и ошибок найти наиболее волатильные промежутки свеч и ебануть для них ген алгоритм
>>449567 Логирование на данный мне не нужно, но можешь вкинуть, кому то может понадобится, я сам просто вывожу в текстовики инфу которая мне нужна позарез, остальные цифры это уже для тонкой подгонки нужны будут в будущем
>>450051 ОП, ты молоток. Нынче еще в моде предсказания проводить исходя из гипотезы, что прогноз это трехмерная поверхность в времени, например цена-объем-количество сделок.
>>450203 Да, думаю что есть, биток просто беру за его обьём, однако можешь попробовать на альтах, если если они хотя бы год существуют, а то мало данных для обучения будет, модель можно использовать наверно ту же что и для пары BTCUSDT
>>450256 Спасибо, ну я чисто делаю что могу и выкладываю для тех, кому интересно, может поможет кому то. На счёт гипотезы, я про такую не слышал, но звучит интересно, можешь кинуть ссылку на какой нибудь источник об этом? Может смогу что нибудь придумать чтобы усовершенствовать код
>>450698 Тут не совсем правильные испытания. Учитывай контекст рынка - битов в тренде роста\падения или там боковик. На росте даже заведомо проигрышная стратегия может показывать профит
>>450698 Учитывая что в коде есть много косяков, это удивительно что он не уходит потихоньку вниз, у меня есть идея разработать интерфейс чтобы высчитывать наиболее пригодные к торговле пары посредством среднего между волатильностью и кол-вом данных для обучения, и затем брать модель и обучать её по быстрому на этом альте, после чего отправлять, и допустим делать все эти телодвижения в 00 00 GMT0, но это я сделаю чуть попозже, одновременно просто два проекта разрабатываю, пока этот на опенсурс выложил, копаюсь в другом, в ближайшее время возьмусь за допил
>>450745 Кстати верно, если модель хорошо предсказывает падения и биток пойдёт вниз, то это не значит что модель верная, нужно брать больше выборку с большим кол-вом пар. У меня допустим модель шла в минус когда у битка боковик был
Потестил скрипт для трейдинга. Открывает ордер, но крашится от пикрил ошибки. При перезагрузке открывает ордер снова. Я перезапустил раз 5, в итоге вручную все пришлось закрывать. По хорошему бы где-то текущее состояние сохранять. Надо еще продумать хендлеры на случай смерти скрипта, а то потери могут быть большими в случае чего.
>>452358 Ош>>452358 Проблема в кол-ве при отправки ордера, в теории всё должно работать, если ты не альткойны выбрал, для них нужно немного скрипт переработать. Если запускаешь прям из коробки со своим апишником, то должно канать всё
>>452919 Она и сейчас есть, даже если удается запустить. NOTIONAL либо ошибка с суммой ордера вылетает и скрипт крашится. Максимум у меня получилось (спасибо рандому) трейдить 5 часов без краша. Тестить невозможно, как пофиксить не понимаю, пробовал менять сумму трейдов на фиксу в 10.1$, тогда чаще вылетает ошибка мин. ордера, что еще делать не понимаю.
Наконец получилось добавить РАБОТУЮЩИЕ take profit ордеры. К сожалению лишь в в виде лимитного ордера, но не суть важно. Теперь нейронка должна засиять!
>>453218 Вроде как, если я не ошибаюсь, эта ошибка завязана на размере ордера. Возможно вы пытаетесь запускать скрипт с большим количеством денег на спот акке. Я для теста пока 100 баксов закинул чего видимо мало и у меня постоянно это вылетает.
>>453499 Ты ОП? Если там важный фикс, то лучше же просто в гит закинуть, даже если не оп можно пул реквест сделать. Алсо, попробую сам понять в чем проблема и фиксануть и закинуть реквест. Я не питонист, но постараюсь.
>>453374 Я хотел изначально запилить take profit ордеры, но потом забил, так как в таком случае она может обрезать большую часть прибыли, решил оставить только стоп лоссы, но опять же, посмотри на практике, может реально в них смысл есть
Если есть какие то доработки интересные, просто пульте в отдельную ветку, у меня пока никаких хот фиксов нету, чисто подрючить цифры туда сюда не хот фикс, сегодня-завтра буду насиловать стоп лоссы чтобы они не крашили систему и чтобы учитывались для дальнейшей торговли
>>453496 >>453499 Эта ошибка у меня была вначале разработки, когда неправильное кол-во отправлялось, так как мы только вначале основного скрипта вытаскиваем цену битка, то при отправке заявки она может упасть и вместо заявки на 10 баксов, мы отправим заявку на 9.9, от чего бинанс вернёт ошибку, а также поставил чтобы цена была на 10.1 баксов, а сравнивалась с балансом 10.15 так как тоже корреляция валюты много решает Всё это по хорошему фиксится просто запрашиванием цены при таких важных операциях, допустим чекаем баланс, если больше 10, то запрашиваем цену койна и высчитываем кол-во на 10 баксов и сразу же отправляем. Кароче сейчас буду чистить код, вносить поправки, как закончу вкину в гит
>>453778 А у тебя ipynb для нейронки есть или ты в таком формате сразу нейронку пилил? Я хочу ее попробовать улучшить. Если нет то тогда могу запилить и закинуть в репу с комментариями если разбирусь
>>453578 Я не оп, фикс, как оказалось, работает по случайности. В гите не разбираюсь, позже может займусь еблей с ним.
Вообще общее впечатление от нейронки странное: вроде и предсказывает верно (чисто за 5 дней наблюдений и тестирования), а баланс все равно уменьшается. Мое предположение в комиссиях: они дохуя высокие. Чтобы нейронка заработала хоть что то она должна покрыть комсу 2 раза (допустим цена идет вверх, тогда на покупку и на последущую продажу), получается 0.075%*2 (0.075 тк кому в BNB плачу), т.е. 0.15%, я ставил тейк профит на 0.2%, чтобы работать хотя бы не в минус, 0.2% от цены битка это ~60$ что для 15-ти минутных свечей примерно дохуя. Остается два варианта: переобучать для часовых свечей либо же перелопачивать код для фьючерсов. Оп, если у тебя есть силы и тот арендованный сервер, затрень пожалуйста модель на час, буду очень благодарен. Я пока что займусь переработкой под фьючерсы или поищу какие то други способы решения проблемы
>>453948 А я говорил что интрадей крипта это такое себе. И вообще надо бы обучить сетку на каком-нибудь высоковолатильном альткоине. Кстати надо еще рассмотреть варианты с шортами
>>450698 Если кто еще гадает откуда тут десятые процента - ответ прост: комиссии ебаные
>>453948 Ебался с написания поста над фьючерсами, они выебали меня. Перешел на пару BTCTUSD, в душе неебу что за тюсд такой, но должен обозначать доллар, график у него такой же, а комиссия нулевая. Поставил профит ордер на 0.01%, за день должно набегать почти 0.1%, если предсказания будут верны.
Извините что оффтоп, но пиздец я заебался с этим сраным ебучим блять ботом, все соки из меня выпил, всю неделю вместо подготовки к комсе готовлю суп из своих глаз. Тем не менее спасибо ОП'у большое, давно я так не увлекался чем - то, правда, спасибо тебе огромное
Доброе утро, оп на связи. На счёт тренировки и сервера, я пользовался selectel и то, я его юзаю только для ген алгоритма, просто для тренировки уже готовой модели моя 960 видяха нормально идёт. Так что если хотите, то можете или сами или скинуться мне или другому анону, кто хочет прогнать ген алгоритм.
Для торговли по часовому графику вообще не требуется много ресурсов, свечей не так много будет даже за 5 лет, нужно брать больше промежуток, плюс если на альткойне будем работать, там вообще может быть данных только за последние пару лет, смотря когда она выпустилась.
По поводу фьючерсов по факту код тот же самый, немного подправить чтобы он работал с фьючами а не со спотом, ну и изменить разрешения api в самом бинансе, сейчас буду исправлять базу в trading.py
Можете предложить пару, с которой можно попробовать поторговать и промежуток, который хотите потестить, у меня на бинансе залито, могу протестировать, поправить код и посмотреть как работает
>>454351 Ну у тебя хотя бы не рулит вниз, у меня при низкой волатильности комса жрала деньги, либо сейчас сам сгорю и на фьючи перейду, либо буду брать другую пару
Ещё раз повторюсь, сервер арендуйте только для генетического алгоритма, trainbestmodel.py робит даже на самых слабых видюхах, особенно если будете брать свечи от получаса и больше, там данных меньше, модель обучится гораздо быстрее. Если всё таки нужен ген алгоритм, можем устроить сбор, там день удержания сервера стоит 2к деревянных, учитывая что ген алгоритм с часовыми свечами можно прогнать достаточно быстро, выйдет в районе тысячи+-, в общем решайте, в крайнем случае я сам тогда вкину свои деньги, обучу и вкину на гит, но когда у меня появятся свободные средства я хз, может сегодня, а может в сентябре)
>>454563 В чем профит ген алгоритма, для чего он тут вообще? Я имею в виду что мы получаем на выходе после его работы? Наилучший вариант нейронки под конкретную пару?
Переделал код, сделал его более гибким, теперь в config.txt можно указывать первую и вторую монету, с которой будете работать, то есть можете поставить в coin1 BNB или ETH а в coin2 так и оставить USDT, тогда нейросетка будет работать с BNBUSDT или ETHUSDT соответственно, но для каждой пары нужно отдельно прогонять тренировку (пока и ген алгоритм, но как только будет найдена отличная модель, лучше чем нынешняя, она ко всем парам подойдёт) Также теперь можно указывать со свечами какого интервала будет работать это всё, я пока поставил на 1HOUR, модель брал ту же, обучал по новой, пара BTCUSDT, но в файле нужно также прописать время в минутах, чтобы скрипт нормально циклично работал, также прикрепляю скрин config txt
>>454566 По факту да, но на практике можно поставить любую пару, сама суть в том, что он нужен, чтобы найти наилучшую нейросеть для предсказания курса, потому что как ни крути, а временные ряды разные бывают, и единой модели для них не существует. Так что да, в нашем случае ген алгоритм нужен чтобы найти наилучшую модель нейросети для торговли криптовалютой, по факту нужно просто ещё раз прогнать его на selectel, после всех фиксов что я сделал, потом её можно не трогать вообще, а использовать для всех пар одну исходную модель, просто обученную по разному
>>454781 Оно работает и в лонг и в шорт, если надо чтобы работало только в шорт, можно закомментить пару строк и будет сделано. А вообще такое значение скорее всего потому что шортов просто больше чем лонгов на этом промежутке, вот и показывается что предсказывает лучше. На деле скорее всего там усредненное значение и предсказывает оно 70-75 процентов и лонг и шорт
>>454804 Там есть модели, но их надо чуть по другому назвать, я сейчас тут допилю кое что и вкину с уже переименованными моделями в гит, в общем модели есть там.
Ну как там успехи новой модели модели в лайвтрейдинге? Я попытался пофиксить новый код чтоб работало, но чот там много всего оказалось похерено, а я не оче шарю в этом. Жду пока
>>456058 я залил на гит чтобы все могли потрейдить любые пары на любых промежутках, если я в последний раз всё закоммитил норм. В данный момент я почти допилил интерфейс, так что чтобы потестить разные варики даже не надо будет в коде копаться, достаточно будет запустить interface.py. В обще скоро шик будет
>>456125 Спасибо ОП. Пока их коробки не работает, там какие-то проблемы с неймингами и размерностью нейронки и входных данных. Моего опыта в создании нейронки на распознавание рукописных циферок не хватило чтобы это пофиксить. Надо бы поучить питон и tf, помочь с проектом, а то внезапно самих знаний по нейронкам у меня неплохо так, но вот на практике только чужие реализации ковырял и изменял.
>>456144 При клоне не пашет? Хм, а должно, значит где то что то лишнее наковырял, в ближайшее время исправлю. У кого то есть такие же проблемы? Предлагайте ещё чё доделать в нынешнем коде
Блин, парни, очень много дел на данный момент, так что с выкатом обновы с интерфейсом опаздываю чуток. Плюс там проблема что нормально скрипты по нажатию не открываются, по виду даже в фоне не работают, хз пока как фиксить, надо менять метод запуска, мб кто то делал интерфейс через tkinter, как по нажатию кнопки запускать скрипты в отдельной cmd? Заранее спасибо, остальным желаю терпения, пытаюсь сделать как можно скорее и хоть интерфейс не сырой выкатить
>>458769 Взял бы NiceGUI в качестве интерфейса. Там простой конструктор типа Gradio. Ну или тот же Gradio, но он прям ограниченный в чем-то кроме тестирования моделей. По ткинтеру хз
Так, оп на связи, переехал в другую страну, так что в основном работать с этим проектом буду ночью по мск, весь проект и все зависимости утащил с собой, ничего вроде не потерялось, ток гит заново подрубить надо
>>461779 Я бы написал, но есть несколько нюансов, в данный момент пока работаю над корректировками и пользовательским интерфейсом, так что брать сервак пока просто смысла не вижу. Второе но, это то что галку опа поставить не могу, так что заранее всем говорю, ОСТАВЛЮ СВОЙ ТГ НА ГИТХАБЕ, тут оставлять не буду так как ника нельзя подтвердить что он мой. В общем можешь со мной связаться, обсудим, что надо, но когда буду арендовывать сервер, я пока хз
>>462541 Пусть другие отчитаются по тому, есть ли прогнозы или нет, в шорт хорошо предсказывает, так что в шорт сделки хорошо идут, можешь их только потестить
>>463277 Так а больше свечей поставишь смысла не будет, не надо же учитывать для текущей цены цену которая была в 2015, правильно? Пусть ищет зависимости от последних 15 свеч
Сделал интерфейс, скрин его прикрепляю, теперь по функционалу. Здесь вы можете поставить абсолютно любую желаемую пару, можете найти в списке либо вбить вручную (К сожалению из за ограничений библиотеки не смог реализовать чтобы начать набирать и находить в списке). То есть теперь бот поддерживает абсолютно все пары которые есть на бинансе. Вы можете выбрать с каким промежутком свечей работать, сколько их брать для предсказания, насколько большой датасет будете брать для своих целей. Быстрый старт для тех кто только попал в тред. 1) выбираем пару, время свечей, сколько свечей будем использовать для предсказания, за сколько прошедших дней собираем датасет. 2) Загружаем датасет, можем сразу вычислить тени свечей, можем позже, главное не забудьте перед стартом торгов каждый раз высчитывать средние свечи, так как они не добавляются в отдельный файл, а идут в конфиг, то есть для разных пар вы можете случайно заюзать разные тени, ничего страшного конечно не будет, но вы заруините себе стоп лоссы. 3) (ОПЦИОНАЛЬНО) Тут вы можете запустить ген алгоритм если комп позволяет, проставить ему параметры и попытаться создать болванчика для торговли получше. 4) Бля пускай будет 4, не забудьте API ключ и секрет указать, а то торговать не сможете. 5) Выставляете путь для лучшего индивидуума. У вас уже в корне проекта есть папочка individuals, там один чувак для BTCUSDT, ну его можно для всех пар юзать,я так думаю. Выбираете его и запускаете тренировку модели, пока кол-во эпох я оставил неизменяемым, в будущем сделаю две версии интерфейса, продвинутую где можно выбирать чуть ли блять не строчки кода на которых будет работать бот, и обычную, где время свечей допустим пол часа, кол-во 15 и датасет за последний год, так сказать версия упрощённая для лошков. Всё, у нас всё есть, и сейчас я понял что я говноед и забыл воткнуть кнопку для старта торговли, кароче как все параметры проставили, всё натренировали, выбираем в пути для модели путь к вашей модели для торговли вашей парой с вашими промежутками и тд. и прописываем в консоли запуск trading.py. Прошу, не создавайте миллиард моделей для всевозможных пар со всевозможными параметрами, так как в названиях моделей не указано кол-во последних свечей, у вас будут сохраняться разные модели с одним названием и хуй вы потом поймёте сколько свеч она на вход хочет, так что пока юзайте по моему поехавшему мануалу, который я из последних сил пишу, в будущем переделаю чтобы всё работало как часы. Сейчас же можете выставить параметры как хотите для какой то пары, обучить модель и запустить trading.py и смотреть как она справляется, всем удачи, если есть какие то идеи, предлагайте, читаю всё что успеваю
>>385611 (OP) >для предсказания движения курса Какой же вы батенька долбоеб, капец просто. Если вы ещё не поняли, что эти ваши колебания курсов это просто искусственный дроч? Встал дядя Сэм утром, зачесалось у него правое яйцо, деньги на венеролога понадобились, он нажал кнопочку вниз и курс упал. Так вот и происходят эти ваши колебания. Не благодари за тайные знания. Я самодостаточен.
>>463966 Та мне уже так похуй было в это время, потом поправлю
>>463976 Во первых дядя сэм должен владеть кучей активов чтобы так влиять на курс, во вторых даже если он и владеет, то сам курс сильно не опустит а лишь создаст уровень, из за чего хомяки начнут паниковать, так вот открою секрет, эта нейросеть это всё видит и просто предсказывает действия хомяков, зарабатывая на них, энивей она анализирует всё быстрее чем самый умный человек на земле. Но в одном ты прав, если придёт большой дядя сэм, то нейронка не сможет ничё сделать, поэтому я и прописал ей стоп лоссы, вместо того чтобы просто обосрать меня, можешь пойти и почитать что я там написал, может интересно будет, может переделаешь и будешь барином 300кнаносек
>>464334 ебать парень, я просто кинул свой проект на гите за бесплатно, я не требую долларов за какую то подписку или еще что то. Да, я не супер программист и код мой просто треш, но я просто делюсь опытом, который получаю и пытаюсь его донести простыми словами а также помочь людям которые делают что то подобное в этой сфере, если не нравится, то не трясись а просто сьеби и не позорься
>>464361 ну кстати как раз в последнем сообщении я оставил свою телегу) Но только для вопросов в реальном времени, не более, ну или если потом захотим скинуться для сервера, я не призываю идти скидывать мне, если хотите, то обучайте сами, код есть, в телегу мне пишите если вопросы по нейронке будут.
В данный момент кстати файл trading работает неккоректо, фикшу, всё остальное вроде работает, так что можете пока обучать свои модельки, чуть позже запушу обнову для trading.py
>>463952 Пролистал тред - нихуя не понял. Аноны, можете кратко, для залётного объяснить, что это такое и зачем оно нужно?
Это софт для обучения нейросети для торговли криптой? Это софт для торговли криптой, в котором уже есть обученная сеть, с возможностью дообучения под себя?
Если я хочу в это вкатиться, что конкретно нужно сделать. Установить эту лабуду, подключить API Бинанса и торговать? Или я должен сначала что-то "обучить"? Как это сделать, где брать датасет? Может ли эта хуйня в тестовую торговлю, вместо проёбывания реальных шекелей?
>>464849 Пока другие аноны тестят разные конфиги, я допиливаю код чтобы он работал без ошибок и был удобен в конце концов. На реальных тестах плюс минус предсказывает хорошо, но из за багов нормального профита пока нет, так что работаем
>>464900 Я оп, ща всё обьясню. Для начала да, берёшь с гита проект и в принципе готово. Нынешняя версия предназначена для торговли в реальных условиях, но я могу немного подредачить, чтобы можно было переключать между тестовой и нетестовой торговли. Софт представляет из себя несколько скриптов, пара из них нацелена на обучение нейросети для торговли криптой и ещё пара для самой торговли, также есть несколько вспомогательных скриптов. На гите полноценный проект с индивидуумом для создания моделей для разных пар с разным промежутком свечей. Также там есть уже обученная модель для торговли BTCUSDT на промежутке 1час. Если не шаришь в нейросетках и программировании, то я советую просто ждать, пока я допиливаю это всё, так как ты можешь просто запустить чтобы оно работало, но оно может дать тебе по жопе, так что лучше пока не лезть. К сожалению всё так долго происходит так как над ней работает один человек, это я. А так как у меня не так много времени и я не квалифицированный программист, умножай время на 10
>>465289 Учился по всему что нарыл, сначала у GPT спросил про основы, он написал какие библиотеки используются, затем я пошёл читать про сами нейросети, там узнал про их типы, преимущества разных типов, потом узнал как можно сделать то или иное через keras, через GPT узнавал потихоньку как писать код и как он работает.
В общем, без шуток. самый лучший учитель это ГПТ, он простыми словами всё тебе объяснит и поможет написать код, но если он начинает тупить, лучше не добиваться от него чего то большего, а идти в инет копать проблему.
Годных книг, гайдов по тензору нет, да и не нужны они особо, просто покопайся во всевозможной инфе пол дня, просто там набери создание нейросети через тензорфлов, и просто по цепочке смотри и смотри что тебе надо, через пол дня полностью поймёшь как он работает, по крайней мере так получилось у меня
В общем небольшое отступление, из за того что модель плохо предсказывает поднятие цены, о профите речь не идёт, но если она предсказывает падение, то цена упадёт почти в 100%, это всё по моим наблюдениям за работой нейронки, так что есть идея пересесть на фьючи, но тогда придётся переделывать код именно под фьючерсы, чтобы нейросеть по большей части торговала в шорт больше чем в лонг, с одной стороны это будет сложнее, но из за того что не придётся ебаться с личным балансом, так как ты по факту юзаешь баланс бинанса, будет достаточно 15-20 долларов чтобы спокойно торговать, только если она не решит убиться в первые часы торговли. Напишите в общем, интересна ли вам идея пересадки на фьючи, так как это может быть и прибыльней и более надёжно, так как не будет долбёжки с балансом
В общем немного послежу как работает, потом сделаю скрипт для фьючерсов, прогоню ген алгоритм (арендую для этого сервак), натреню модель для 5 лет и пущу гонять фьючерсы. Если кто то хочет скинуться, то пишите только по телеге, указанной на гите, но там много не придётся скидывать, 1 час работы стоит 80 рубасов, часов за 10 можно довольно неплохую модель сделать.
>>465796 Ну, нормального прототипа нет как такового, есть основы, есть куча фич, но всё воедино собрать идеально я пока не очень пытаюсь, стараюсь сделать это всё более гибким, чтобы люди могли делать свои модели и торговать на их основе, как только будет видно что стабильно есть хотя бы пол процента профита неважно за какое время), тогда буду пытаться делать уже человеческую версию для удобного пользования.
Если говорить немного о другом, то изначально кал полный был, в начале июля, в начале августа это уже что то рабочее с чем можно долбиться по мужски
А что собственно сейчас сетка пытается предсказать? Направление следущей свечи? Если да то как-то такое себе. Возможно ли попытаться лижайшие цели допустим спрогнозировать?
>>466710 И ещё вдогонку: можно сделать чтоб оно не пыталось торговать, а просто выводила на экран прогноз на 1минуту, 5 минут, 15, 30, час по моим обученным моделям. P.S. меня похоже в колабе забанили, когда я пытался учить модель((((((((((((((
>>466710 > Возможно ли попытаться лижайшие цели допустим спрогнозировать? Ну тоесть пытаемся спрогнозировать ближайший локальный максимум/минимум у следущих 10-15 свечей. Если отклонение от текущей цены слабое-то флет и не торгуем, а если сильное смещение в какую либо сторону то это явный сигнал. Просто мысли вслух пока обучаю сетку
>>466790 Идея неплохая, но обычно такие сильные отклонения видит даже человек без большого опыта в торговле вроде меня, нейросеть же я пишу чтобы она по факторам, которые человек может не учесть предсказывала даже наименьшие колебания
>>466710 можно но несколько свечей подряд ещё сложнее прогнозировать, так как если ошибётся в одной, посыпятся все, поэтому я и сделал чтобы она по одной свече предсказывала
>>466739 Чтобы оно не торговало а выводило на экран прогнозы, это максимально легко, могу потом как нибудь сделать такое если надо прям сильно
В общем переделал всё под фьючи, торгует нормально, НО, настолько небольшие колебания, что прям пиздец, биток торговать только на пробой можно, и это надо по другому нейросеть писать, так что пока перешёл на альткойны, (биток на 15мин, 30мин и часе изменения от 0.05% до 0.1-0.3%, что нихуя, всё сьедает комса и неверные прогнозы) Перешёл на BLZUSDT, где волатильность нормальная и есть НОРМАЛЬНЫЕ тренды, то есть редко эта монета встаёт в боковик, сейчас обучу для неё модель и запущу, посмотрим как тут себя поведёт
>>385611 (OP) нахуя вы тред назвали так обобщенно, если в треде четкая направленность - заработок ботами на криптоговне? Создавать теперь отдельные треды и ебаться с новыми шапками и описаниями ОП-поста если хочешь заработок иного типа?
>>467899 Ну, в подобных тредах обычно вопрос ответ идёт, а я создал тред о своём проекте, пишу тут рассуждения и выводы, правила не нарушаю, вкладываться никуда не призываю, просто делюсь мыслями, в другом треде по кд писать такую чепуху, которую я тут пишу, меня бы там возненавидели, так что лучше отдельно создать тред, где можно вывалить это всё. А на счёт названия да, обосрался чуток, но могу парировать твои замечания что на пикриле уже видно с чем работаем и в самой шапке описано что делаем
Переобучил на другую пару но тот же индивидум, ещё при обучении показало хуёвые значения, но решил запустить потестить. В общем результат неудивительный, учитывая что нейросеть с двумя слоями. Сегодня арендую сервер и прогоню ген алгоритм с минимальным количеством слоёв равным 15, также возможно добавлю слой внимания вначале, посмотрим как отразится. Пока нормально предсказывает BTCUSDT, но из за малой волатильности получается хуйня, так что пересаживаюсь на альткойны
>>468673 В конце оно переебалось из за ошибки, поэтому последние две строки можно не учитывать, самое главное что при верном предсказании оно теперь в минус не убивается, как было на споте/фьючах BTCUSDT
Слушай, а есть возможность привязать бота, хотяб в качестве аналитики, к mexc? Binance - скам, после того, как придали создателя, там все сливается большому брату
кинул 1500 на сервак, делаю новый ген алгоритм уже улучшенный с большим кол-вом минимальных слоёв, добавляется в 50% слой внимания. Прогоню 20 популяций, 20 часов должно хватить
>>469920 Блин, я бы с удовольствием пошёл туда, но, на обычных бумагах больше упор идёт на новости, нежели на крипте, плюс волатильность меньше намного, ну и туда же идёт тот факт что не 24 на 7 работает, так что пока посижу тут) Может перейду на другую криптобиржу, если у них есть api, пока просто тесты с моим проёбанным балансом, вам торговать на реале не советую, пока только жрёт, если хотите, проверяйте на тестовом балансе. Если не знаете как это сделать, то в строке создания клиента укажите в переменных testnet=true, если не могёте я чуть попозже сделаю отдельную ветвь на гите с тестовой сетью
>>470170 На таких биржах я даже не думал пользоваться ботами, во первых я хз разрешено ли это там, во вторых я там предпочитаю просто инвестором быть, вкладываюсь в сезонные компании в разные времена года и делаю прибыль, вот с русагро и НЛМК за лето 10+% сделал просто положив в июне туда бабло
>>470422 Ты не понял. Это ЕГО доходность полученная советниками на начальную сумму. Тебе никто не запрещает использовать программу, если это не нарушает правила биржи.
>>395560 Чтобы предсказывать движение курса, надо по идее не тех.аналитическую хуиту собирать, а то, от чего он собственно движется, т.е. новостной поток. Свечки и стакан тут вторичны. Но думаю если бы это работало, то уже бы работало. Хотя может у кого-то и работает, просто не палят тему.
>>471095 Крипта меньше завязана на новостях так как сама по себе является валютой используемой во всём мире, поэтому она волатильней любых фиатных валют, новости сильно влияют на акции компаний, отчёты компаний и так далее, для такого тоже можно написать нейросеть, но тут уже никаких моих средств не хватит чтобы обучить её, да и датасет собрать будет та ещё задача, так что ну нахер на данный момент. Есть уже работающие аналоги, но не основанные на нейросети, поэтому я пытаюсь работать с нейросетью
>>471371 А давно ты в этой теме? На волне всех этих нейронок и жизненных перемен меня это все наконец заинтересовало, но программистский базис у меня совершенно в другую сторону. Есть смысл вкуривать?
>>471390 Ну, по факту можешь вкурить, но не обязательно мою тему, просто нейронки могут достаточно много, начиная от всяких чат помощников и ботов для каверов и заканчивая чуть ли не полноценным собеседником, но последнее уже посложнее. В общем тут куча применений может быть, а базу выучить можно дня за два, дальше уже чтобы углубиться это да, книги нужны, выше уже кидали. В общем я не могу тебе точно советовать вкатываться в нейросети, но могу сказать, что они могут довольно много, так что думай сам. Я в этой теме месяца 2-3 и увидел достаточно, чтобы утверждать, что нейросети в наши дни могут довольно много и очень полезны
Слушай, а если сделать лайт версию, ну например для тредингвью, которая бы просто показывала график на опережение, а там график любой биржи подтянуть можно. Ну и теханализ, помимо новостей., тоже нужен. Хотя, то, что вчера творила крипта на новости про выигранный суд, просто взрыв башки, жаль не запрыгнул. Вижу фанатеешь по теме, у тебя все получится 100%!!!!
>>471728 Если сначала почитаешь тред, то увидишь что не получилось, или я плохо пока владею теми временными рядами или это просто очень сложно или вообще невозможно, там нейронка просто пытается наебать меня и сдвигает график вправо, так что примерную цену прогнозировать не получится
>>385611 (OP) А как учитываются внешние факторы? Политика, геополитика, природные явления и прочее, что может влиять на него? Просто курс в вакууме не интересен.
>>473443 Никак, пока пытаюсь онли на внутренней статистике прогнозировать, для новостей нужно отдельную нейросеть писать чтобы основная использовала другую и смотрела где от новостей идёт прирост а где отток, так что это ещё на пол года разроботки.
>>385611 (OP) Как всегда в таких делах, чуть ли не самым важным является то как ты настроил валидацию и бектестинг. Как устроено у тебя? Ты же валидацию с обучением по времени разнёс так чтобы валидировалось у тебя на ряде позже по времени чем обучение, да? Проводил ли ты руками анализ какой-то сам, как у тебя распределение таргета меняется в зависимости от времени и сезонности, что будет давать твоя моделька если ты протестируешь на отрезке ряда где распределение отличается от трейна? Это всё важно на практике
Обновка, кароч проблемы на моей стороне, я каким то боком нихуя не делая сломал свою среду (Я честно без понятия, как так получилось) В итоге обработал всё на коллабе и вышло вот это Я без понятия что это за пиздень и что произошло, но если эта модель реально так хорошо работает на понижение, а это я потещу сегодня, то это прям успех.
(Но мне кажется это всё пиздёж и что то пошло не так, пока обучается другая модель я перепроверю код)
>>477960 Кстати спешу заметить что тут мат обьёбка идёт, так то оно может постоянно говорить что цена будет падать и в 77% будет права, просто потому что свечей падения больше, так что такая модель скорее всего будет пососной, сейчас проверим
>>478145 Как я и отметил, произошёл обьёб, ген алгоритм вывел наилучшую модель для наебалова а именно она постоянно ставит на понижение и из за того что свечей на понижение физически больше раза в 3+, поэтому они и отбирались как и лучше, сейчас тестирую другую модельку а также чуть позже подправлю ген алгоритм чтобы он лучше отбирал модели
Если у кого то есть неплохо работающая модель, можете вкинуть на гит или в личку файлом keras или pkl, так у меня появится больше времени на разработку софта а не выделку модели (чем я сейчас и занят). Пока не найду оптимальную модель со средним кол-вом предсказаний 75%+, обновлять тред буду редко если уж прям что то важное добавлю, а так пока ждём
>>482378 Да ни в чём по факту, там просто без разницы в чём сохранять, может из какого то формата быстрее считываться будет, но лично мне непринципиально, главное чтобы нормально считывалось и в нейросеть загружалось
>>498789 Господи что это за говно? в чем смысла этого оверфита? какой нахуй плюс от этого прогнозирования. Я ебал. Дурачки думают что без базовых знаний ассет менеджмента и инвестирования можно фитнуть кривую модель и это что будет предсказывать. Я смеюсь с вас.
>>500226 >какой нахуй плюс от этого прогнозирования Прикольный опыт например??? Я вот например в отличии от ОПа ни строчки кода не написал, всё сделали ИИ ассистенты и даже модель и параметры помогли подобрать. Самое смешное что это говно неплохо скальпирует
>>500708 К какому месту тут твой высер про инвестирование и AM? Ты тред-то читал, клоун? Тут достаточно базовых знаний о risk ruin, соотношении RR и WR, можно ещё recovery factor смотреть.
>>496529 >>488577 Ты - нагляднейший пример того, почему макаки без высшего образования - зло. У тебя же напрочь отсутствует понимание того, что ты вообще блять делаешь и почему нельзя движение рынков предсказать статистически. Если бы ты знал хотя бы основы матстата, этот тред бы просто не появился. Поэтому мой код абсолютно валидный: >>486613 Более того, я не удивлюсь, если он дает предсказания точнее твоего.
Оп на связи, ну тут как всегда всё скатилось в полную парашу, кому интересно я уже дал ссылку на гит, кто хочет заколлабит. Я в данный момент занят немного другим делом, но в ближайшее время вернусь к модели, возможно тут ещё буду постить крупные обновления, но по видимому, тут только тролли-клоуны собрались, которые думают что всё знают и говорят что люди с вышкой уже всё давно поняли. Ну видимо я особенный что с вышкой с кафедры вышмата нихуя не понял, пруфов не будет так как я хочу ещё больше позлить этих клоунов.
Кому интересно можете писать тут или в телеге, буду отвечать по возможности только на нормальную адекватную критику и предложения.
По существу у меня есть несколько идей как переделать саму нейросеть, и да, для тех кто проскипал весь тред, она анализирует не просто свечи а много других факторов (пока без новостей, так как у меня просто не хватит мощностей чтобы такую нейросеть сделать)
>>504572 Ну а я и не делал потому что ничего пока нового. Вот сейчас переделываю датасет чтобы состоял только из индикаторов, возможно будет лучше. Но тут сразу же возникла проблема с тренировкой, видимо херово датасет обработал, кароч решил немного ковырнуть, теперь проблем на неделю себе сделал
>вышкой с кафедры вышмата нихуя не понял Если верить написанному на твоем гитхабе: >Hi, my name is Mark, I am 20 years old. I like coding and playing video games, more information you can find by pressing button below. Ты 20 летний задрот в игры. А вышка твоя, в силу возраста, это всего 2 курса непонятно какой шараги.
Но клоуны тут, разумеется, все, кто не согласен с ОПом. Кстати, сабж на пике.
>>506085 Кстати да, то что ты нашёл это дзха для другого вуза, в который я сейчас ушёл, так что док-ва взятые со сраной хтмл странички по дз, это как минимум странно, если удобно, давай я залочу этот репоз и оставлю только тот, о котором идёт речь
Ладно, я уже даже не знаю зачем отвечаю этим троллям, я просто создал тред для тех кому интересна тема, без понятия зачем тролли тут распинаются, но раз им нравится, то пусть
>>445904 если он анализирует количество свечей и просто статвероятность это смерть. на рынке боьшую часть времени нет активности и смотреть на свечи в это время бесполезно. нужно смотреть объемы
Делаете русский дубляж любой популярной игры, которая щас на хайпе, с помощью нейронки HeyGen. Но только трейлер! Далее постите по всем парашам (дтф, маилы и пр.). И сыграв на националистическом настроении гоев - просите бабки на фул перевод такой игры (и похуй, что это не реал, гои поведутся). Мол, вот, они скоты и фашысты ушли с нашего рынка, хуесосят нас и пр. И сразу в трейлере припишете (уже озвученном нейронкой HeyGen), что собираете донат на покупку нового железа и пр. (и похуй, что у HeyGen синтез идёт на собственных сервах). Оставляя ссылочку с кошельком на WebMoney. Я клянусь эти ебланы поведутся.
Даю идею работягам, которые пока незнают как заработать на нейронках.
>>506729 Так я вытаскиваю всё что предоставляет бинанс, там и обьёмы есть в том числе, единстенное чего нет это стакана, но его и в теории быть не может, иначе приходилось бы вытаскивать его каждую секунду
>>506731 К сожалению такой возможности нет (Как минимум у бинанса)
>>506745 Да тут дохуя методов заработка (моя нейронка не считается на данный момент, так как недоделана), но я чисто ради опыта клепаю и делюсь результатами.
Нахуй ты такую лицензию на гитхаб поставил ещё и написал описание на английском. Ты Же с русскими общаешься, вот и пиши на русском. P. S. Если нейронка бабки не теряет это уже частично успех. Обычай её скальпингу раз она у тебя предсказывает только одну свечу дальше.
>>385611 (OP) Надеюсь ты еще тут появляешься, ОП. Стало интересно, и я посмотрел в сторону ByBit, там тоже есть API, есть либа для питона, но вот когда получаешь инфу о свечах - параметров меньше чем у бинанса, не могу пока понять, насколько это критично. А нет именно quote_asset_volume number_of_trades 'taker_buy_base_asset_volume taker_buy_quote_asset_volume
Но есть Turnover (Unit of figure: quantity of quota coin)
Я подумал, что может быть еще стоит Open Interest так же добавить в данные для обучения.
Это хуета. Ты пытаешься обучать на старых данных. А рынок не повторяется. Надо обучать на ... хер знает как это назвать... на экономических моделях, на фундаментальных данных, на новостной ленте. Это все немножко сложнее, да?