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

 
Mihail Marchukajtes:

Тут с Вами абсолютно согласен. А данные он пишет несколько значений внутри минуты, это не каждый тик, но всё же. Потом строит из этих данных любой ТФ

Так какой смысл писать несколько раз ОИ внутри минуты, если берете данные с индикатора - меньше ТФ не будет. А так да, я не прав, там выход из цикла же, если удачно записали, но всё равно 0,1 секунда минимум интервал. Вы модель на тиках строите?

Mihail Marchukajtes:

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

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

BufOI[rates_total-1]=SymbolInfoDouble(Symbol(),SYMBOL_SESSION_INTEREST);

В тестере историю корректно отрисовывает в визуализаторе проверяли?

 
Mihail Marchukajtes:

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

Странно. Но может вообще отказаться от индикатора для советника, а сразу в нем делать чтение из файла в структуру и поиск значения уже в структуре массива?

Сбросьте архив ОИ по Si за пару дней - абстрактно сложно так рассуждать.
 
elibrarius:

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

Можно и иначе - учиться на 9/10, а обрезать на оставшейся 1/10 выборки.

 
Aleksey Vyazmikin:

Можно и иначе - учиться на 9/10, а обрезать на оставшейся 1/10 выборки.

Aleksey Vyazmikin:

Так какой смысл писать несколько раз ОИ внутри минуты, если берете данные с индикатора - меньше ТФ не будет. А так да, я не прав, там выход из цикла же, если удачно записали, но всё равно 0,1 секунда минимум интервал. Вы модель на тиках строите?

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

В тестере историю корректно отрисовывает в визуализаторе проверяли?

Да но в случае обрыва связи будет дырка. Отсутствует проверка на полноту истории. А на счёт минуток я полностью согласен.

Архив ОИ

http://fayloobmennik.cloud/7399404

 
Mihail Marchukajtes:

Да но в случае обрыва связи будет дырка. Отсутствует проверка на полноту истории. А на счёт минуток я полностью согласен.

Архив ОИ

http://fayloobmennik.cloud/7399404

Так, а как данные запишутся в файл при обрыве связи?

 
Roman:

У фундаментальных данных много показателей, которые дают цифровые величины.
Даже тут на сайте, в календаре новостей приводится статистика по событиям.
Да, согласен, в речевых заявлениях, цифровые величины отсутствуют.
По этому такие данные наверно надо классифицировать на 0 1.
Главное научить различать, положительная речь, или негативная ))
Но вот, это уже тоже идея, для подумать!  ))

чтобы пользовать фундамент, не хватает некоторых цифр

насколько я помню, я не нашел какие то денежные агрегаты, их несколько

так вот, часть из них не размещают в открытый доступ примерно с 2010 года

 
Mihail Marchukajtes:

Да но в случае обрыва связи будет дырка. Отсутствует проверка на полноту истории. А на счёт минуток я полностью согласен.

Архив ОИ

http://fayloobmennik.cloud/7399404

Согласны, что на момент открытия минутного бара ОИ надо брать за предыдущую запись? К примеру открытие в 10:00 минутки берем за 23:49:55.

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

Что у Вас вообще за третье значение в файле- первое дата, второе ОИ, а третье? Думал дельта, но не получается.

В общем переделал индикатор, как писал выше, читает и показывает именно ОИ, скорость работы значительно выросла- тестируйте.

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

Файлы:
OI_Test.mq5  16 kb
 
Aleksey Vyazmikin:

Так, а как данные запишутся в файл при обрыве связи?

Если обрыв идёт глобально со стороны брокера то никакие, тут уже ничего не поделаешь. Советник по сохранению данных стоит на ВПС сервере и скажу что писались данные без потерь.
 
Aleksey Vyazmikin:

Согласны, что на момент открытия минутного бара ОИ надо брать за предыдущую запись? К примеру открытие в 10:00 минутки берем за 23:49:55.

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

Что у Вас вообще за третье значение в файле- первое дата, второе ОИ, а третье? Думал дельта, но не получается.

В общем переделал индикатор, как писал выше, читает и показывает именно ОИ, скорость работы значительно выросла- тестируйте.

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

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

Алексей спасибо за предоставленный индикатор, но у меня вопрос на счёт советника сохраняющего. Можно сделать так чтоб он то же писал поминутно, а не при каждом изменении ОИ внутри минуты?

В обще я не использую нулевой бар в работе. Мало того я произвожу все расчёты через 30 секунд после появления сигнала на первом баре. Следовательно между сигнала в обще не происходит никаких расчётов. Но при сигнале на первом баре через 30 секунд идёт обращение ко всем участвующим в модели индикатора и по идее эти индикаторы должны просчитать всю историю от прошлого обращения (сигнала) до текущего с условием что их нет на чартах. Вот собственно и есть та дыра, которую индюк должен прочитать из файла дабы адекватно получить текущее значение.

Дело в том что я использую котировозависимые данные (это я их сам так назвал :-)) которые чувствительны в пропускам и дырам в истории.

Помоги пожалуйста привести код используемых мною индикаторов и я отблагодарю парой ключевых идей при подготовке обучающих наборов. + у меня есть 37 баксов на сервисе я тебе их отдам без проблем. Но только с условием что будет достигнута полная надёжность получения данных в советник при реальной работе.

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

Есть ещё индикатор кумулятивной дельты, который считается правильно относительно баров. Однако при большой истории этого индикатора, а это 3 месяца на М5 он не успевает посчитаться за один такто поскольку берёт данные из копитика, где как сам понимает получается нееп..ческое количество циклов.

С последним обновлением стала люто пожиратся память при создании обучающего файла поскольку запрос идёт по 14 инструментам за 3-6 месяцев истории. В итоге 8 гигов оперативки просто не хватает. И этот индюк пишет нулевой бар в реале который мне не нужен. Мне достаточно при появлении нулевого бара подгружать только первый.

Ну в общем если интересно чуток подсобить пиши в личку там более конкретно договоримся. Благодарю!!!!

Файлы:
CumDelta.mq5  55 kb
 
Mihail Marchukajtes:

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

Алексей спасибо за предоставленный индикатор, но у меня вопрос на счёт советника сохраняющего. Можно сделать так чтоб он то же писал поминутно, а не при каждом изменении ОИ внутри минуты?

В обще я не использую нулевой бар в работе. Мало того я произвожу все расчёты через 30 секунд после появления сигнала на первом баре. Следовательно между сигнала в обще не происходит никаких расчётов. Но при сигнале на первом баре через 30 секунд идёт обращение ко всем участвующим в модели индикатора и по идее эти индикаторы должны просчитать всю историю от прошлого обращения (сигнала) до текущего с условием что их нет на чартах. Вот собственно и есть та дыра, которую индюк должен прочитать из файла дабы адекватно получить текущее значение.

В том то и дело, воспроизвести идеально обучение и применение не получится, особенно на быстром рынке. Сейчас получается, что задержка до 10 секунд относительно новых данных (если речь об истории), а если писать только на открытии бара, то задержка уже будет 60 секунд и более. Если работать с данными полученными на открытии бара (не делать смещение), то погрешность будет в показателе, т.е. может получиться заглядывание в будущее. В общем тут надо ещё раз подумать над идеологией, сейчас данные более свежие, но всё это теория. Может и достаточно брать данные, записанные при появлении нового бара, и обучаться на них.

Ну и можно сделать скрипт, который просто уберет ненужные строки внутри минуты и размер файла будет в 10 раз меньше.

Mihail Marchukajtes:

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

Попробуйте версию индикатора, что я дал. Если проблема не пропадет, то вероятно она в советнике, а не индикаторах. Покажите код получения данных с индикатора.

Причина обращения: