Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 61

 
Alexey Burnakov:

У вас нет никакого представления о работе Вашей модели на длительных периодах: нет большого форвард теста и нет walking forward теста. Ваша модель может быть набором заученных шумов, которые вы приняли за сигналы на нескольких удачно подобранных картинках.

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

Больше всего удивляет Ваша уверенность в моей системе. Ну что, посмотрим в конце недели я покажу вам как она отработала... ок?
 
Mihail Marchukajtes:
Больше всего удивляет Ваша уверенность в моей системе. Ну что, посмотрим в конце недели я покажу вам как она отработала... ок?

Не надо. Неделя плюс, неделя минус. Не показатель

 

У меня нет 100% уверенности про вашу систему. Есть констатация факта: вы не знаете как она отработает на более-менее долгом периоде. Здесь тема для того, чтобы делиться опытом. Вот мой опыт говорит, что ваши результаты пока что могут быть как случайностью, так и закономерностью, но случайность с гораздо большим шансом. И я даю вам советы. 

 

Здравствуйте!

Пытаюсь запустить сверточную сеть  из пакета mxnet http://tjo-en.hatenablog.com/entry/2016/03/30/233848 но не совсем, вернее совсем не понятно как ее запускать с "нашими" данными а именно в виде строк, ведь сеть работает в большинстве с картинками и данные принимает в виде многомерного массива с матрицами, кароч если кто то разбирается и знает как ее надо запускать то буду крайне признателен за пример работы этой сети скажем с "ирисами"

{mxnet} R package from MXnet, an intuitive Deep Learning framework including CNN & RNN - Data Scientist TJO in Tokyo
{mxnet} R package from MXnet, an intuitive Deep Learning framework including CNN & RNN - Data Scientist TJO in Tokyo
  • 2016.03.30
  • tjo-en.hatenablog.com
Actually I've known about MXnet for weeks as one of the most popular library / packages in Kaggler, but just recently I heard bug fix has been almost done and some friends say the latest version looks stable, so at last I installed it. Convolutional Neural Network (CNN) I believe almost all readers of this blog already know well about Deep...
 
Mihail Marchukajtes:
Да никак... Нужно следить за количеством ошибок из общего числа, и если ошибки полезли вверх, то перетренировывать сеть. Скажем из 20 сигналов если у вас будет 4 ошибки то это нормально, если ошибок становиться больше то следует перетренировывать сеть. Возникает другой вопрос.. какую модель выбрать чтобы ей можно было доверять в течении 10 сигналов. Ну тут Юрий уже вроде как описал. Выбираем именно ту модель, которая показывает мак4симальный уровень обобщения как бинарной так и тринарной модели и начинаем работать по нет. А для того чтобы качественно увеличить время работы стратегии, нужно увеличить тренируемый интервал, а чтобы его увеличить нужно увеличить количество входных данных. Тоесть 10 входов могут распились 100 сигналов в ноль. 15 входов смогут распилить 225 записей, а это уже 6 недель сигналов, соотвественно и время работы сети вне выборки будет бальше, уже ни неделя, а две... С должным уровнем ошибки. Без ошибок работа не возможна. Хотелась бы, но не возможно, главное снизить влияние этой ошибки на депозит и дело в шляпе :-)

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

Сделайте простой эксперимент: У вас вроде 200 строк в обучающем файле, и дальность прогноза 30%. Значит поделите файл на два - в первом файле будет 150 первых строк, во втором - оставшихся 50 последних строк. Обучите jPredictor на новом файле с 150 строками. потом через "use model" сделайте прогноз для оставшихся 50 строк (придётся вводить данные по одному, займёт некоторое время). Посчитайте количество правильных ответов, там будет совсем не 90%, я думаю будет около 60% в лучшем случае.
Вы до сих пор в профите только благодаря вашему основному индикатору, он видимо и так более-менее прибылен, а благодаря дополнительному фильтру в нейронке вы его просто слегка улучшаете.

 
Alexey Burnakov:

Не надо. Неделя плюс, неделя минус. Не показатель

 

У меня нет 100% уверенности про вашу систему. Есть констатация факта: вы не знаете как она отработает на более-менее долгом периоде. Здесь тема для того, чтобы делиться опытом. Вот мой опыт говорит, что ваши результаты пока что могут быть как случайностью, так и закономерностью, но случайность с гораздо большим шансом. И я даю вам советы. 

То есть вы хотите грааль... Один раз натренировал и сиди стриги купоны всю оставшуюся жизнь? Так что ли? Вы меняя удивляете, вы с какого года на рынке? Если не секрет...... Вы в курсе что рынок меняется постоянно и через какоето время модель просто уплывает, если хотите чтобы модель работала долгие году, тогда переходите на месячный график, в этом случае он в самый раз. А так, на 5 минутках работа в неделю это вполне нормальный результат, дальше идёт перетренировка....Ну а если две недели то вообще класс....
 
Dr.Trader:

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

Сделайте простой эксперимент: У вас вроде 200 строк в обучающем файле, и дальность прогноза 30%. Значит поделите файл на два - в первом файле будет 150 первых строк, во втором - оставшихся 50 последних строк. Обучите jPredictor на новом файле с 150 строками. потом через "use model" сделайте прогноз для оставшихся 50 строк (придётся вводить данные по одному, займёт некоторое время). Посчитайте количество правильных ответов, там будет совсем не 90%, я думаю будет около 60% в лучшем случае.
Вы до сих пор в профите только благодаря вашему основному индикатору, он видимо и так более-менее прибылен, а благодаря дополнительному фильтру в нейронке вы его просто слегка улучшаете.

Вы просто не умеете готовить данные :-) Дальности прогноза у меня вообще нет, я ничего не прогнозирую. 30% это доверительный интервал, Интервал на котором вполне можно доверять модели, а то и все 50%. Тоесть если три недели обучали, то неделю проработать должен. Я уже более года работая с предиктором Юрия, и многие вещи понял, также как те как готовить данные, что он может(предиктор) а чего он просто не может. Вы можете сами прислать мне файл с Вашими данными, я натренирую модель, а вы посмотрите как она отработает в будущем. если хотите конечно...

И если соберётесь, то сделаем следующее. Отступите неделю назад.. (эта неделя будет проверочной, вне выборки) Сохраните данные из расчёта 10 входов= 100 записей, чтоб долго не тренировать. Я натренирую модель, Вы примените её к своей ТС, предварительно описав принцип её построения и покажете результат за последную неделю, там и посмотрим.... Как Вам?  

 
Mihail Marchukajtes:

Тоесть если три недели обучали, то неделю проработать должен.

А я-то думаю ну где же подвох? Ну не было еще на форуме человека, который бы действительно зарабатывал поделками Решетова. А вот же он! Подвох конечно )
 
Комбинатор:
А я-то думаю ну где же подвох? Ну не было еще на форуме человека, который бы действительно зарабатывал поделками Решетова. А вот же он! Подвох конечно )
Это уж кто как.... Мне его поделка эта вполне понравилась, есть в ней рациональное зерно, Ну а кто не может применить это достойно, так тому ничего не поможет. Нет ну ты дай мне систему которая работате на минутках год без единой ошибки, тогда я поверю, а так.... фигня это всё. Меня такие чудики удивляют, так же как те которые спрашивают, ну что, до куда цена пойдёт, или сколько пунктов заработает этот сигнал??? Ну вы наивные. Рынок это такая вестч что будущее знать не возможно...... Но вы всё это понять не можете....
 
Mihail Marchukajtes:

Ну вот текущий пример который работает на картинке сейчас у меня сделан из вот этого файла

Осталось только разобраться, как Вы вычисляете, что после сигнала будет 100 пунктов профита?

Например, можно взять n свечек в будущем и померять их тени. Если у какой нибудь свечи разница между тенью и текущей ценой в направлении сигнала не меньше 100 пипок, то ставим единицу. Если ни для одной из свеч условие не сработало, то результат - 0.

Второй вариант: делаем советник со стоплоссом и тейком отстоящими на 100 пунктов от текущей свечи и открываем сделки по сигналам и запоминаем паттерн. После того, как поза закроется, смотрим. Если закрытие с профитом, то помечаем такой паттерн в выборке единичкой, если с убытком, то нулём.

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

Сейчас пытаюсь приспособить jPrediction, чтобы не надо было из него вынимать код и компилировать в MQL. Советник будет скидывать по сигналу паттерн в файл, а приблуда на Java - тернарный классификатор, будет считывать такие файлы  и если она подтвердит сигнал, то выдаст свой алерт с рекомендацией и звуковым сигналом. ИМХО так будет проще?

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

 
Yury Reshetov:

Осталось только разобраться, как Вы вычисляете, что после сигнала будет 100 пунктов профита?

Например, можно взять n свечек в будущем и померять их тени. Если у какой нибудь свечи разница между тенью и текущей ценой в направлении сигнала не меньше 100 пипок, то ставим единицу. Если ни для одной из свеч условие не сработало, то результат - 0.

Второй вариант: делаем советник со стоплоссом и тейком отстоящими на 100 пунктов от текущей свечи и открываем сделки по сигналам и запоминаем паттерн. После того, как поза закроется, смотрим. Если закрытие с профитом, то помечаем такой паттерн в выборке единичкой, если с убытком, то нулём.

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

Сейчас пытаюсь приспособить jPrediction, чтобы не надо было из него вынимать код и компилировать в MQL. Советник будет скидывать по сигналу паттерн в файл, а приблуда на Java - тернарный классификатор, будет считывать такие файлы  и если она подтвердит сигнал, то выдаст свой алерт с рекомендацией и звуковым сигналом. ИМХО так будет проще?

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

Всё гораздо проще. Я вычисляю разницу между клосом текущего сигнала и клосом предыдущего сигнала, если эта разница положительна с учётом напраления сигнала и положительность разници более 100 пипсов, то предыдущему сигналу ставлю единичку, если меньше то ноль. Сохраняю всё я с помощью Лодыря, ну того который писали под нейрошел. Он прекрасно сохраняет любые данные любых индикаторов в ксв файл, так что как то так..... По поводу выгрузки модели, Дело в том что я не использу советники никакие, торгую руками, а модели вставляю в индикатор, поэтому любые советники просто не к чему. Проще всего если наряду с бинарной моделью сохранялясь и Тернарная модель. Например для бинарной префикс _2 к названию файла, для тернарной _3 и этого будет достаточно..... ИМХО. всё гениальное просто, не нужно усложнять.

Вот советник который сохраняет данные любых индикаторов, посмотри в функции для 5 минут, там у меня мои индикаторы. Правда это всё для МТ4, работаю только на нём... пока.... 

Файлы:
Причина обращения: