Блог им. 3Qu |И опять про монетку.

    • 22 января 2020, 02:21
    • |
    • 3Qu
  • Еще
Сижу, изучаю рыночные временные ряды. Уперся вот во что:
Излагаю в очень упрощенном виде.
Имеются 3 монетки — одна честная и две нечестных, с симметричным перекосом, одна в сторону орла, другая в сторону решки. Без разницы, но пусть вероятности будут 0.75 и 0.25.
В основном бросается честная монетка, но время от времени она подменяется одной из нечестных. Выбор одной из нечестных с вероятностью 0.5.
Таким образом, в любой серии вероятность выпадения орла/решки не изменится и останется 0.5.
Вопрос к читателям — возможно ли в каком либо наблюдении или серии наблюдений установить сам факт использования нечестных монеток? И каким образом?
А если бросать только нечестные и выбирать между ними с вероятностью 0.5. Можно это обнаружить? Сам факт, что с монеткой что-то не так?
Что-то мне сдается, что способов нет.
 
PS Когда уже опубликовал пост понял, что решения у этой задачи нет. Распознать подмену монеток невозможно никаким способом. Это свойство широко используется в технике связи. Процесс называется скремблированием. При этом любая произвольная последовательность двоичных символов превращается в последовательность нулей-единиц с вероятностью 0.5.

Блог им. 3Qu |Коммуникации Quik Lua с внешним миром.

    • 14 декабря 2019, 20:42
    • |
    • 3Qu
  • Еще

Мне нравится Lua. Lua хороший компактный язык на котором можно сделать индикаторы, различные вспомогательные программы, помогающие трейдеру и даже несложные торговые системы (ТС, роботы). Пожалуй единственная книга по Lua — Роберту Иерузалимски: Программирование на языке Lua. Ее можно найти в интернете.

Lua имеет также несложный C-API позволяющий связать программы Quik Lua с внешним миром через DLL и получить доступ практически ко всему, в том числе к любым математическим библиотекам обработки данных, что необходимо для сколь-нибудь сложным ТС. Однако, для этого уже необходимо знание не только Lua, но и Lua C-API, языка С/С++, а также умения писать DLL. При этом надо будет решить еще ряд проблем, которые возникнут по ходу пьесы в процессе этой деятельности. Далеко не каждый пользователь Quik и Lua может все это реализовать в обозримое время.
У Quik Lua (QLua) есть еще недостатки — все события терминала в Lua работают в потоке терминала, и получив из них данные надо как можно быстрей завершать функции обработки этих данных и освобождать поток терминала, иначе терминал просто повиснет. Единственная функция QLua работающая в собственном потоке — это main() и вся сколь-нибудь сложная обработка может находиться только в ней.
Кроме того, для Lua крайне мало библиотек, а существующие работают оч не быстро. В принципе, это и не нужно, если можно организовать связь с внешним миром через C-API. Но нам от этого легче не становится.) Короче, для написания хорошей сложной ТС нам надо выйти за пределы QLua и установить связь с внешним миром, и сделать это доступными средствами.
Сейчас наиболее продвинутым языком, включающим в себя массу библиотек обработки данных является Python. По применимости для обработки данных он, пожалуй, занимает первое место в мире, а по распространенности входит в первую пятерку. В числе библиотек — математические, статистические, машинного обучения и пр., и пр. Таких библиотек более тысячи только в Anaconda, большинство из которых устанавливается при ее инсталяции. Вы можете не использовать Anaconda и скачать Python с сайта



( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

Блог им. 3Qu |Применение Машинного Обучения в Торговых Стратегиях

    • 13 декабря 2019, 19:20
    • |
    • 3Qu
  • Еще
В прошлом посте  Мода на Машинное Обучение мы выяснили, что Машинное Обучение (МО) может решить только конкретные задачи, т.к. единственное чем занимается, так это подбором решения под заранее известные ответы, но делает это оч качественно. Посмотрим, где в ТС можно найти такие задачи.
Пусть у нас возникла идея замечательной ТС. Мы накидали на график всяческих индикаторов, ну, и прям видно — вот оно, счастье. Начали долго и муторно писать логику входов в сделку и пр. Параметры индикаторов и их сочетания неизвестны, логику еще продумывать надо, количество if зашкаливать начинает — эт только на глаз все хорошо и просто.
Подождите, так нам нужно найти всего лишь некоторый набор математических выражений для описания нашей стратегии, а это как раз задача для МО, и, по идее, МО должно с такой задачей хорошо справиться.
Итак, берем нашу стратегию, пишем несложную логику в общих чертах описывающую нашу стратегию — получаем как-бы упрощенный вариант стратегии. С помощью этой логики (упрощенной стратегии) выделяем интервалы обучения и генерируем обучающие последовательности. Подготавливаем данные — приводим все это к виду понятному МО. Обучаем на этих данных МО, проверяем на независимых данных — получаем готовую стратегию. Естественно, упрощенную логику (стратегию) оставляем как часть стратегии, ограничивающую область применения МО.
Собственно, сэкономили на написании логики стратегии.
Ну, а будет работать такая стратегия или нет — это уже зависит не от МО, а от идеи самой стратегии. Естественно, предполагаем, что как готовить данные, обучать-проверять — это мы хорошо знаем и все правильно делаем.

....все тэги
UPDONW
Новый дизайн