Читать онлайн "Предсказываем тренды. С Rattle и R в мир моделей классификации"

Автор Фоменко Александр

  • Стандартные настройки
  • Aa
    РАЗМЕР ШРИФТА
  • РЕЖИМ
<p>Предсказываем тренды</p> <p>С Rattle и R в мир моделей классификации</p> <empty-line/><p>Александр Фоменко</p>

© Александр Фоменко, 2019

ISBN 978-5-4496-6305-4

Создано в интеллектуальной издательской системе Ridero

<p>Предисловие</p> <p><strong>О чем?</strong></p>

При построении торговых систем вообще, и с использованием терминала МТ4/5 в частности, приходится решать целый комплекс взаимосвязанных задач.

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

Для кого?

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

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

Данная книга является руководством по использованию пакета Rattle (Простое обучение аналитическим инструментам R), который оформлен в виде GUI – графического пользовательского интерфейса, позволяющего значительно упростить использование могучих средств R и необходимых для поставленной задачи пакетов.

Почему Rattle?

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

Rattle объединяет множество пакетов R, которые важны для построения торговых систем, но часто не легки для использования новичком. Понимание R не требуется, чтобы начать с Rattle. Но результатом работы с Rattle будет код на R, который может быть использован при построении реальной торговой системы. И на этом этапе потребуется знание R.

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

Пакет Rattle (Уильямс, 2009) является бесплатным программным обеспечением с открытым исходным кодом, созданным в рамках статистического пакета программного обеспечения R (R Рабочая группа Разработки, 2011). Как бесплатное программное обеспечение исходный код Rattle и R доступен всем без ограничения. Исходный код Rattle написан на С и всем разрешено, и действительно поощряется, рассмотрение исходного кода для обучения, его понимания, проверки и расширения.

<p>Организация материала</p>

Книга состоит из следующих частей.

Часть 1. Введение в предсказательное моделирование изложено в главах 1—11. В этой части книги сжато, но достаточно подробно на описательном уровне рассматриваются основные понятия предсказательного моделирования. Необходимость этой части проистекает из того, что авторы Rattle не объясняют смысл и взаимодействие различных частей своей системы. Изучение первой части позволит осмысленно подобрать в Rattle инструменты для решения конкретно Вашей задачи.

Часть 2. Краткое описание Rattle изложено в главе 12. Эта часть полезна как на этапе первоначального знакомства с Rattle, так и на этапе постоянного использования в качестве краткого справочника.

Часть 3. Полное описание Ratlle 13—29. Эта часть книги представляет собой перевод руководства по Rattle. К авторскому руководству добавлены примеры для рынка Форекс, а также приведены переводы синтаксиса команд R, которые использует Rattle.

Текст книги содержит большое количество программного кода на языке R и MQL4 торгового терминала МТ4 разработки MetaQuotes Software Corp. Это программный код по праву можно считать еще одной частью книги. При желании изложенный в книге код, а также необходимые для него данные, читатель может использовать для повторения, подражания или модификации. Программный код и данные доступны читателю на ЯндексДиск по ссылке https://yadi.sk/d/_pRbllwlHpxnMQ.

<p>Текущее состояние</p>

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

Примеры, включенные в эту книгу, используют версию 3.1.1 R и версию 3.0.2 r169 Rattle. Rattle – развивающийся пакет и, хотя понятия остаются, Подробности меняются. Поэтому не следует удивляться, если скриншоты, приведенные в этой книге, будут отличаться от Ваших скриншотов.

<p>Часть 1. Введение в предсказательное моделирование</p>

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

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

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

<p>1. Введение</p>
<p>1.1. Анализ, прогноз, предсказание</p>

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

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

Прогноз. Значение слова «прогноз» буем понимать так, как это понимается в R под словом «forecast» – для прогноза следующего значения используется предыдущее значение, полученное в результате предыдущего шага прогноза. Пакет forecast является примером такого понимания значения слова «прогноз».

Предсказание. Значение слова «предсказание» будем понимать в смысле универсальной функции predict — предсказание будущего на любое число шагов вперед с использованием имеющихся данных.

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

<p>1.2. Процесс предсказател ... </div> </div> <div class="reader_data-bottom"> <div class="shop_list"> <button class="shop_list-btn">купить бумажную книгу</button> <ul class="shop_list-box"> <li> <a href=""> <span>Ozon.ru</span> <span>745 руб</span> </a> </li> <li> <a href=""> <span>Читай-город</span> <span>1200 руб</span> </a> </li> <li> <a href=""> <span>Читай-город</span> <span>1200 руб</span> </a> </li> <li> <a href=""> <span>Читай-город</span> <span>1200 руб</span> </a> </li> <li> <a href=""> <span>Читай-город</span> <span>1200 руб</span> </a> </li> </ul> </div> <div class="book_pagination"> <ul class="pagination_list"> <li class="active_item"><a href="/books/1163809-predskazyvaem-trendy-s-rattle-i-r-v-mir-modeley-klassifikacii/toread">1</a></li> <li ><a href="/books/1163809-predskazyvaem-trendy-s-rattle-i-r-v-mir-modeley-klassifikacii/toread/page-2">2</a></li> <li ><a href="/books/1163809-predskazyvaem-trendy-s-rattle-i-r-v-mir-modeley-klassifikacii/toread/page-3">3</a></li> <li ><a href="/books/1163809-predskazyvaem-trendy-s-rattle-i-r-v-mir-modeley-klassifikacii/toread/page-4">4</a></li> <li ><a href="/books/1163809-predskazyvaem-trendy-s-rattle-i-r-v-mir-modeley-klassifikacii/toread/page-5">5</a></li> <li ><a href="/books/1163809-predskazyvaem-trendy-s-rattle-i-r-v-mir-modeley-klassifikacii/toread/page-6">6</a></li> <li class="elipsis_item"><a href="#">...</a></li> <li ><a href="/books/1163809-predskazyvaem-trendy-s-rattle-i-r-v-mir-modeley-klassifikacii/toread/page-19">19</a></li> <li class="arrow_pag-nav"><a href="/books/1163809-predskazyvaem-trendy-s-rattle-i-r-v-mir-modeley-klassifikacii/toread/page-2"><i class="fas fa-chevron-right"></i></a></li> </ul> </div> <div class="download_book"> <button type="button" onclick="document.location='/books/1163809-predskazyvaem-trendy-s-rattle-i-r-v-mir-modeley-klassifikacii/download/fb2'" class="download_book-btn">скачать</button> </div> </div> <nav aria-label="breadcrumb"> <ol class="breadcrumb"> <li class="breadcrumb-item"> <a href="/">Главная</a> </li> <li class="breadcrumb-item"> <a href="/books">Книги</a> </li> <li class="breadcrumb-item"> <a href="/books/1163809-predskazyvaem-trendy-s-rattle-i-r-v-mir-modeley-klassifikacii">Предсказываем тренды. С Rattle и R в мир моделей классификации</a> </li> <li class="breadcrumb-item active" aria-current="page">Страница 1</li> </ol> </nav> </div> </div> </div></main> <footer> <div class="footer-box"> <div class="container-fluid"> <div class="footer-content"> <div>0.2633 </div> <div class="copy">© Все права защищены, Midnet ltd</div> <div class="footer_main-content"> Администрация сайта оперативно блокирует доступ к незаконным и экстремистским материалам при получении уведомления в течение 48 часов. Согласно <a href="/about">правилам сайта</a>, пользователям запрещено размещать произведения, нарушающие авторские права. Портал <a href="/">КнигоГид</a> не инициирует размещение, не определяет получателя, не утверждает и не проверяет все загружаемые произведения из-за отсутствия технической возможности. Если вы обнаружили незаконные материалы или нарушение авторских прав, то просим вас <a href="/feedback">прислать жалобу</a>. </div> <div class="about"> <a href="/about" class="about_service-link">о сервисе</a> </div> </div> <div class="footer-mobile"> <div class="support"> <div class="support-list"> <ul> <li><a href="">подписка</a></li> <li><a href="mailto:abuse@knigogid.ru?subject=Нарушение авторских прав">жалоба</a></li> </ul> <ul> <li><a href="/about">правила сайта</a></li> <li><a href="/sitemap.xml">карта сайта</a></li> <li><a href="/contacts">контакты</a></li> </ul> </div> <div class="full_version-link"> <a href="№">полная версия сайта</a> </div> </div> <div class="footer-mobile_title"> <div>© Все права защищены, Midnet ltd</div> <div>Администрация сайта оперативно блокирует доступ к незаконным и экстремистским материалам при получении уведомления в течение 48 часов. </div> </div> </div> </div> </div> <!-- Yandex.Metrika counter --> <script type="text/javascript"> (function( d, w, c ){ (w[c] = w[c] || []).push( function(){ try{ w.yaCounter46297773 = new Ya.Metrika( { id: 46297773, clickmap: true, trackLinks: true, accurateTrackBounce: true, webvisor: true, trackHash: true } ); if( userID ){ w.yaCounter46297773.setUserID( userID + ((unregID) ? '_unreg' + unregID : '') ); } else{ if( unregID ){ w.yaCounter46297773.setUserID( 'unreg' + unregID ); } } } catch( e ){ console.log( 'yandex error' ); } } ); var n = d.getElementsByTagName( "script" )[0], s = d.createElement( "script" ), f = function(){ n.parentNode.insertBefore( s, n ); }; s.type = "text/javascript"; s.async = true; s.src = "https://mc.yandex.ru/metrika/watch.js"; if( w.opera == "[object Opera]" ){ d.addEventListener( "DOMContentLoaded", f, false ); } else{ f(); } })( document, window, "yandex_metrika_callbacks" ); </script> <noscript> <div><img src="https://mc.yandex.ru/watch/46297773" style="position:absolute; left:-9999px;" alt="" /></div> </noscript> <!-- /Yandex.Metrika counter --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-108188778-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){ dataLayer.push( arguments ); } gtag( 'js', new Date() ); gtag( 'config', 'UA-108188778-1' ); </script> </footer> </div><!-- .wrapper --> <div class="modals_ajax"> </div> <!-- модалка для логина --> <div class="modal fade login_modal" id="login_Modal" tabindex="-1" role="dialog" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered" role="document"> <div class="modal-content"> <div class="modal-body"> <div class="login_modal-header"> <button type="button" class="close_modal" data-dismiss="modal" aria-label="Close"> <i class="fas fa-times"></i> </button> <h5 class="login_modal-title">Вход или регистрация</h5> </div> <div class="login_modal-main"> <div class="social-webs"> <div class="soc-item fb"><a href="https://www.facebook.com/dialog/oauth?client_id=196018881343118&redirect_uri=https://knigogid.ru/socialmedia/login/fb&scope=email,public_profile&response_type=code"> <i class="fab fa-facebook-f"></i>facebook</a></div> <div class="soc-item vk"><a href="http://oauth.vk.com/authorize?client_id=6766625&redirect_uri=https://knigogid.ru/socialmedia/login/vk&response_type=code&scope=email"> <i class="fab fa-vk"></i> vkontakte</a></div> </div> <div class="or">или</div> <form action="" method="" id="form_authorization"> <div class="login-form"> <input type="text" onkeyup="$('#form_authorization .errors').html('') ;$('#form_authorization .password_hiden, #form_authorization .password_hiden2').hide();$('#form_authorization .check_login_registration').show();$('#form_authorization .check_login_registration2').hide();" name="email" class="email_hiden" placeholder="Почта" /> <input type="password" class="noshow password_hiden" name="password" placeholder="Пароль" /> <input type="password" class="noshow password_hiden2" name="password2" placeholder="Повтор пароля" /> <div class="errors"></div> <input type="hidden" name="redirect" value="/books/1163809-predskazyvaem-trendy-s-rattle-i-r-v-mir-modeley-klassifikacii/toread"> <input type="button" onclick="ajax_check_login_registration()" class="header-login_btn check_login_registration" value="вход или регистрация" /> <input type="button" onclick="ajax_login()" class="header-login_btn check_login_registration2" style="display: none" value="вход" /> <div class="another_pc"><input type="checkbox" name="another_pc" id="another_pc" value="1" /> <label for="another_pc">Чужой компьютер</label></div> <div class="forget_pass-link"> <a href="#" onclick="$('.modal').modal('hide');" data-toggle="modal" data-target="#restore-pass_modal">Забыли пароль?</a> </div> </div> <script type="text/javascript"> $(function() { $('body').on("keypress", function (e) { if($('.login_modal').css('display') == 'block') { if(e.which == 10 || e.which == 13) { if($('.check_login_registration').css('display') != 'none') ajax_check_login_registration() ; if($('.check_login_registration2').css('display') != 'none') ajax_login() ; } } }); }); </script> </form> </div> </div> </div> </div> </div> <!-- Восстановление пароля --> <div class="modal fade restore-pass_modal" id="restore-pass_modal" tabindex="-1" role="dialog" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered" role="document"> <div class="modal-content"> <div class="modal-body"> <form action="" method="" id="form_remind"> <div class="login_modal-header"> <button type="button" class="close_modal" data-dismiss="modal" aria-label="Close"> <i class="fas fa-times"></i> </button> <h5 class="login_modal-title">Восстановление пароля</h5> </div> <div class="login_modal-main"> <div class="restore_pass-title">Введите адрес электронной почты, указанный при регистрации </div> <div class="restore_input-box"> <input type="text" name="email" placeholder="Почта"> <button type="button" onclick="ajax_remind();" class="restore_pass-btn">сбросить пароль</button> </div> <div class="errors"></div> <a href="/feedback" class="restore_pass-help">Нужна помощь?</a> </div> </form> </div> </div> </div> </div> <!-- Модальное окно уведомлений --> <div class="modal fade send-note_modal" id="send-note_modal" tabindex="-1" role="dialog" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered" role="document"> <div class="modal-content"> <div class="modal-body"> <div class="login_modal-header"> <button type="button" class="close_modal" data-dismiss="modal" aria-label="Close"> <i class="fas fa-times"></i> </button> </div> <div class="login_modal-main"> <div class="send-note_content"> Мы выслали вам ссылку </div> <div class="send-note_icon"> <i class="fas fa-check"></i> </div> <div class="send-note_title">Проверьте почту</div> </div> </div> </div> </div> </div> </body> </html>