STH
STH личный блог
18 августа 2015, 18:21

Котировки на основе случайных чисел с random.org

Приветствую публику смартлаба!

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

Но дело в том, что не все случайные данные так уж случайны.

Чтобы получить истинно случайные котировки (насколько это возможно) я обратился к ресурсу random.org. Как утверждают эти ребята их данные получены из атмосферных колебаний, которые являются абсолютно случайными.

Для наглядности пример с ихнего ресурса.

Котировки на основе случайных чисел с random.org

Далее эти данные были приведены к формату биржевых котировок (как это было сделано описано ниже).

Строим графики в NT7, ниже пример как все получилось (Daily, 60m, 5m, 2Range).

Котировки на основе случайных чисел с random.org



Ну а затем уже можно строить индикаторы на этих котировках, и прогонять стратегии.

 Я прикрепляю к статье ссылки:

Атмосферные колебания: https://yadi.sk/d/1eX15kILiWyio

Готовые котировки для NT7: https://yadi.sk/d/JHQF-CZFiWytM

Стратегия для создания котировок в формате NT7: https://yadi.sk/i/ZTtRvtJeiX2uo

Панорамные скриншоты различных графиков: https://yadi.sk/d/lZeiWqG7iXhmQ

 

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

 

Далее представленны технические подробности.


Как создать инструмент в NT7 со случайными котировками.

Заходим в tools -> instrument Manager

Котировки на основе случайных чисел с random.org

Далее выбираем New

Котировки на основе случайных чисел с random.org

Далее вводим название нового инструмента и ставим галочку в столбце «Exchanges» напротив любой биржи. 

Котировки на основе случайных чисел с random.org

Далее переходим на вкладку Misc. В Symbol map напротив Yahoo (или какой то другой) пишем название нашего нового инструмента.

Котировки на основе случайных чисел с random.org

Жмем «Ок».

Теперь новый инструмент доступен для выбора.

Следующий шаг — это импорт наших котировок в данный инструмент.

Tools->Historical Data Manager -> вкладка Import -> Start Import

Обращаю ваше внимание на то что файл для импорта должен содержать название вашего инструмента. Для данного примера он будет выглядеть так: SMARTLAB.Last.txt


Описание архива со случайными данными.

Данные представляют 100 текстовых файлов, упакованных в RandomOrg.zip.

Размер упакованного архива 24 004 495 байт (~23 Mb).

Размер каждого файла 1 196 032 байт.

Размер распакованного архива примерно 119 603 200 байт (~114 Mb).

Содержимое каждого файла – нули и единицы группами по 8 шт, группы разделены одним пробелом.

Пример: «00011111 10111000 11111111 10111011 00001000 00001010 11100101 10000010»

Таким образом, каждый файл содержит около 1 046 528 случайных нулей и единиц и 149 504 пробелов.

Все файлы содержат около 105 699 328 случайных нулей и единиц.

 

Описание архива со случайными котировками для NinjaTrader 7.

Архив содержит 1 файл с именем RND.Last.txt и содержит тиковую историю пригодную для импорта в NT. Файл упакован в RND.Last.zip.

Размер упакованного архива 110 936 406 байт (~100 Mb)

Размер распакованного архива примерно 2 667 160 487 байт (~2.4 Gb).

 

Первые 25 строк файла:

20120605 170146;100.00;1

20120605 170146;100.01;1

20120605 170146;100.00;7

20120605 170146;100.00;1

20120605 170146;100.00;1

20120605 170146;100.00;1

20120605 170146;100.00;1

20120605 170146;100.00;1

20120605 170146;100.00;1

20120605 170146;100.00;34

20120605 170146;100.00;1

20120605 170146;100.00;1

20120605 170146;100.00;1

20120605 170146;100.00;1

20120605 170146;100.00;1

20120605 170146;100.00;1

20120605 170146;100.00;1

20120605 170146;100.01;1

20120605 170146;100.01;1

20120605 170146;100.01;60

20120605 170146;100.01;23

20120605 170146;100.01;1

20120605 170146;100.01;1

20120605 170146;100.01;1

20120605 170146;100.00;1

 

Описание стратегии, формирующей тиковые котировки для NinjaTrader 7 из архива со случайными данными

Пути к файлам:

Стратегия ищет все файлы по адресу D:\\RandomOrg\\RandomBinData\\*.txt во всех вложенных папках, с любыми именами и расширением *.txt

Из всех найденных файлов извлекаются только нули и единицы.

Результирующий файл со случайными котировками для NT создаётся по адресу D:\\RandomOrg\\RND.Last.txt

 

Как формируется время тика

Берётся фактическое время тиков того инструмента, на котором запускается стратегия.

Соответственно, для успешной работы стратегии требуется тиковая история с количеством тиков не менее количества случайных нулей и единиц в папке D:\\RandomOrg\\RandomBinData\\

 

Как формируется цена тика:

Берётся стартовая цена (задаётся в параметрах, по умолчанию StartPrice = 100) и на каждом тике к этой цене прибавляется приращение со случайным знаком (зависящим от данных полученных от Random.org)

Затем эта сумма округляется в соответствии с параметром My_Tick_Size (для котировок — аналога нефти, это 0.01) и получается случайная цена на данном тике.

 

Как формируется приращение.

Согласно проведенным расчётам, 1 тик CL в среднем меняет цену на 0.2 тика (так как есть много тиков, имеющих одну и ту же цену). Условно назовём это коэффициентом трендовости. Он задаётся в параметрах стратегии (Trend_K).

При Trend_K = 1, например, средняя дневная волатильность котировок, сформированных на основе CL, будет составлять около 1000 тиков.

Если для каждого тика использовать одинаковое приращение, то сформируются котировки с более-менее постоянной волатильностью.

Поэтому, приращение вычисляется как случайное число (используется ГСЧ C#) между 0 и Trend_K умноженное на 2.

Как формируется объём тика

Примерно 90% тиков CL имеют объём 1 контракт. Остальные – больше )).

Поэтому сначала генерируется случайное число (используется ГСЧ C#) от 0 до 100 и, если оно менее 90, объём тика считаем равным 1 контракту. Иначе (если число 90 и более) формируем второе случайное число (используется ГСЧ C#) от 1 до 100 и это число будет объёмом тика.

 

Запускать только на 1-тиковом графике.

С графика берётся только время тиков.

Требуется около 2.5 лет тиковой истории по CL.

Время работы – около 10 минут. В основном, время требуется NT для формирования тиковых баров.

На полном наборе данных стратегия может работать «через раз», в случае подвисания необходимо перезапустить NТ.

Во время работы стратегия пишет мини-лог в Output Window. Рекомендую держать это окно на виду.

Туда же выводятся сообщения об ошибках (не найдены файлы, мало тиков и т.д.)

 

Писалось для себя и на скорую руку – камни не бросать, замечания –делать.

56 Комментариев
  • Press
    18 августа 2015, 18:42
    трудягам почет и уважуха
  • Андрей Андреев
    18 августа 2015, 18:48
    Фьючерсы на погоду :) тогда метеорологи — те же околорыночники получаются чтоли?)
  • FrBr
    18 августа 2015, 18:55
    Роботы из воздуха то деньги сделали?
  • AndyI
    18 августа 2015, 19:04
    Предсказание рандома невозможно. В этом суть казино.
    • evgen000
      18 августа 2015, 19:26
      AndyI, Все верно, невозможно построить систему с положительным ожиданием на рядах основанных на случайных числах
      • Veter
        18 августа 2015, 19:32
        Евгений, хихихи.

        Случайные ряды, наблюдаемые в природе, на рынке, и в источниках случайности, обладают уймой производных неслучайных характеристик. Таких как матожидание, среднеквадратичное отклонение и другие. А это уже один из путей к созданию прибыльных систем.
        • evgen000
          19 августа 2015, 11:24
          Veter, лол, у любой случайной величины есть такие характеристики, как матожидание и блаблабла. Кто утверждает что возможно построить стратегию с положительным ожиданием на случайных данных просто профан. А тестировать стратегии на генераторе случайных чисел это пустая трата времени.
          • Veter
            19 августа 2015, 14:49
            Евгений,
            — матожидание есть не у любой случайной величины
            — кто утверждает что на случайных данных гарантированно можно что то построить — профан
            — кто утверждает что на случайных данных гарантированно нельзя что то построить — профан
            — тестировать стратегии на генераторе случайных чисел — это хождение по минному полю. Может поможет, может нет.

            лол
            • evgen000
              19 августа 2015, 23:49
              Veter, Вы пытаетесь найти зависимость в случайных данных, подумайте над тем что вы несете… Просто представьте себе игру орел/решка (0.5/0.5), за каждый ход вы платите n сумму денег(комиссия). Есть в этой игре у вас шанс выиграть в долгую? Нет, какую бы стратегию и систему управления капиталом вы не использовали. На истории, этих бросков конечно можно построить стратегию, которая была бы выигрышная. Вот этим вы и занимаетесь
              • Veter
                21 августа 2015, 11:24
                Евгений, вы видимо не физик и не очень понимаете что такое случайность. Ваша иллюстрация — всего лишь иллюстрация идеи, к сожалению не обоснованной в тех аспектах, о которых я говорил. Другой пример — движение молекул воздуха случайно и хаотично. Однако самолеты летают и аэродинамика прекрасно работает. Что говорит о том что случайность вполне может обладать некими характеристиками, которые позволяют что то предсказывать.
                • evgen000
                  21 августа 2015, 17:56
                  Veter,
                  1. ну мы говорим о временных рядах. И мой пример вы проигнорировали. Могу вам на основе этих бросков подготовить графики, и на них тоже будут все эти каналы, головы и плечит итд. Только в реальности, вероятность реализации этих паттернов, не будет превышать 0.5.

                  2. «к сожалению не обоснованной в тех аспектах» в смысле не обоснованных? Я вам показал конкретный пример игры с отрицательным матожиданием, которая как раз и основана на случайно величине, или вам формулы нужны? И что не существует стратегии, которая была бы прибыльна при такой игре. Так же и у вас, есть случайный временной ряд, какие патерны вы там находите? Ну тогда вам ваш аналагичный пример, положение молекулы в момент времени t невозможно предсказать, однако кошки рождаются, следовательно существую методы, которые это могут, правда знают о них только трейдеры. Ну в общем я не собираюсь вам что-то доказывать, ради бога.
                  • Veter
                    21 августа 2015, 19:50
                    Евгений, вы опять не физик. Знаете что такое наука — это когда ни один опыт (ваш пример) не доказывает истинность утверждения. Зато 1 единственный пример может доказать его ложность.

                    Вот в этом различие между моим и вашим примером.

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

                    А вот мой пример доказывает, что утверждения типа «на случайных данных никогда нельзя строить предсказания» — ложно. Правда вы могли иметь в виду не конкретно это. Тогда мой пример просто игнорируйте. Но пример с монетой действительно мимо, ибо этот пример ничего не говорит о случайности на рынке.
                      • Veter
                        22 августа 2015, 09:25
                        Даниил, результаты, полученные на искусственных случайных котировках могут быть абсолютно не применимы к реальному рынку. И огромное значение имеет стратегия торгов. Одно дело если торгуете просто покупая-продавая, и совсем другое если торгуете например волатильностью (в паре с опционами), занимаетесь маркетмейкерством, арбитражем, и уж совсем другое если вообще принципиально другие фантастические стратегии торгов, основанные например на сочетании котировок с дополнительной информацией о рынке.
                  • Veter
                    21 августа 2015, 19:53
                    Евгений, и да, причем тут паттерны. я теханализом (в обывательском смысле) не занимаюсь. Меня волнуют те характеристики случайного реального рынка, которые делают его отличным от случайного логнормального блуждания. И это далеко не монетка.
            • Foudroyant
              16 декабря 2019, 14:07

              Veter, вот такое сочетание утверждений

              «кто утверждает что на случайных данных гарантированно можно что то построить — профан
              — кто утверждает что на случайных данных гарантированно нельзя что то построить — профан»

              противоречит логике. 

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

    • Антон Денисков (Fry)
      18 августа 2015, 19:32
      AndyI, Вы сейчас сказали, масло масленое. Но суть этого топика о вообще другом.
    • Alexrad
      18 августа 2015, 21:17
      AndyI, при чем тут рандом и казино? У казино не рандом, а вполне явное статистическое преимущество.
  • neophyte
    18 августа 2015, 20:19
    Цель?
      • neophyte
        18 августа 2015, 20:57
        Даниил, это каг бэ давно проверили. Даже Нобелевскую за это выдали лет 30-40 назад :)
          • neophyte
            19 августа 2015, 06:33
            Даниил, ну и как результат проверки? :)
  • Макс
    18 августа 2015, 20:24
    Рынок скорее похож на правую картинку))
  • Ну как бы
    18 августа 2015, 20:46
    Вот в этом видео, паренёк (специализирующийся, кстати, на алгоритмической торговле), опираясь на статистику, в числе прочего показывает, что реальный рыночный график всё-таки отличается от рандомного:

    youtube.com/watch?v=IKrTcZiOM7U
  • Андрей Литвинов
    18 августа 2015, 22:25
    наконец-то лучший пост в этом месяце
  • D.D. Trader
    18 августа 2015, 22:57
    график намекает что движения рынка случайны.
    а как же кукл?
  • Fox27
    18 августа 2015, 23:07
    Даниил, вообще-то рынок по данным статистиков только на 60-70% на дневных данных случаен, а в остальное время или трендован(персистентен) или контртрендован(антиперсистентен). Кроме того когда он случен(близок к случайному блужданию) работает так называемый закон арксинуса. Как бы это объяснить простым языком… Допустим мы играем в «орлянку» 50% вероятности выпадания орла 50% выпадания орешки. За то что угадали что выпадет орел или решка получаем 1 рубль за то что не угадали -1 рубль. Посчитаем накопленную сумму. По логике накопленная сумма раз вероятность 50% должна находится около нуля. Ведь то выигрыш, то проигрыш, но это не так — вероятность что накопленная сумма значительно превысит нулевой уровень гораздо выше или ниже(более 10%) чем она останется в районе нуля. Что это означает на практике. Выбирать прибыльную систему на основе случайного блуждания бесполезная затея. Ты можешь даже находить тренды на кривой случайного блуждания, но закономерности в этом никакой нет она(кривая) в будущем уже никогда не повторится…
  • вижу входы по своей системе, либо я сошёл с ума, либо…
      • Даниил, не закрывай пожалуйста ссылки, я обязательно как свободное окно появится оттестирую это. Заранее спасибо.
          • werwrw
            19 августа 2015, 02:05
            Даниил, ВЕЩЬ!!! Но когда я «открыл» свой Грааль, то не мог понять «кто рисует патерн». Пришлось для познания скачивать погоду в Москве с 1996 года и строить график по предсказанию. Выводы шокировали меня. Потом для верности запустил рамдомайзер Микрософта. Поиследовал его, и могу с уверенностью сказать вам что рамдом от Микрософта полностью случаен. Но там есть конечно законы но в целом-случаен (это отдельная песня). Смотря на ваш график я уже вижу свои патерны. Вывод для меня однозначен — я подтвердил уже ещё раз для себя что мои патерны рождены природой(как теоремы Пифагора), а не человеком. Погоду пришлось под себя править из-за того что -25гр нет такой цены (к температуре прибавил 100), плюс делать не дневных OHLC цены для свечек, благо в Москве погода давалась именно по часам. Плюсанул.
            • werwrw
              19 августа 2015, 02:14
              .Агрегатор., знаю. rem. «Дура/недура, а 3 рубля своих в день имею». Чего вам желаю. И заметьте, я не обучаю.

              • werwrw
                19 августа 2015, 02:26
                .Агрегатор., берутся 6 метеостанций в Москве и считывается погода с них. Для меня эти данные были вполне приемлемы для построения дневных графиков на свечах. Жалко что данных было только с 1996 года.

                • werwrw
                  19 августа 2015, 02:38
                  .Агрегатор., дайте мне данные за 150 лет я скажу куда идует погода в ледник или в жару. Дайте мне данные за 150 лет «орел/решка», я скажу на что надо ставить. Дате мне данные вашего давления, я скажу какое оно макс/мин, будет и куда в данный момент стремится и на какой цифре будет разворот.
                  Одно не могу сказать- КОГДА. У моей системы нет понятия времени, есть только цена.


                  • werwrw
                    19 августа 2015, 02:42
                    .Агрегатор., Да черт с ним «как ОНИ там прогнозируют». Для меня важна была цель- КТО РИСУЕТ МНЕ ПАТЕРНЫ в моих данных?.
                    Я уже неоднократно для себя уже ответил на этот вопрос, включая проверкой на погоде в Москве.
                  • werwrw
                    19 августа 2015, 02:44
                    .Агрегатор., ну и ладно. я спорит с вами не буду.
                    Больших вам профитов. пока.
                • werwrw
                  19 августа 2015, 02:40
                  .Агрегатор., для моих дневных данных вполне достаточны данные.
      • p.s. мне можно «тыкать»
  • Светлана Орловская
    19 августа 2015, 02:05
    Приветствую; возможно, Вам также пригодится встроенное в NinjaTrader тестирование по модели Monte-Carlo: ninjatrader.com/support/helpGuides/nt7/running_a_monte_carlo_simulati.htm
  • werwrw
    19 августа 2015, 02:23
    В догонку. предлагаю Вам конвертировать ваши данные в эксель. Там разбить их по времени, потом их-же конвертировать в формат метастока. Так больше прог смогут подцепить ваши данные.

  • Аккаунт Удален
    19 августа 2015, 11:13
    не читал но одобряю
  • Илья
    21 августа 2015, 11:44
    Вот сколько раз слышу про монетку и 50/50, а кто нить пробовал бросать? я например утверждаю (проверил на практике), что вероятность выпадания орла выше если монетку изначально бросать орлом вверх, и для решки тоже ;)
      • Remarka
        04 октября 2015, 08:40
        Даниил, Все ссылки стали нерабочими(
        Есть ли возможность перезалить их, ДАниил?! (достаточно дать логичные названия каждому файлу и залить одним архивом)

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн