Блог им. Desimir

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

    • 18 августа 2015, 18:21
    • |
    • STH
  • Еще

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

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

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

Чтобы получить истинно случайные котировки (насколько это возможно) я обратился к ресурсу 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. Рекомендую держать это окно на виду.

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

 

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

★39
56 комментариев
трудягам почет и уважуха
avatar
Фьючерсы на погоду :) тогда метеорологи — те же околорыночники получаются чтоли?)
avatar
Роботы из воздуха то деньги сделали?
avatar
FrBr, эта тема совсем для другой статьи.
В данной статье я лишь хотел поделится информацией.
Когда то мне понадобилось провести тесты на случайных котировках, и пришлось потрудится чтобы их достать.
В то время я был бы очень рад такой статье :)
avatar
Предсказание рандома невозможно. В этом суть казино.
avatar
AndyI, Все верно, невозможно построить систему с положительным ожиданием на рядах основанных на случайных числах
avatar
Евгений, хихихи.

Случайные ряды, наблюдаемые в природе, на рынке, и в источниках случайности, обладают уймой производных неслучайных характеристик. Таких как матожидание, среднеквадратичное отклонение и другие. А это уже один из путей к созданию прибыльных систем.
avatar
Veter, лол, у любой случайной величины есть такие характеристики, как матожидание и блаблабла. Кто утверждает что возможно построить стратегию с положительным ожиданием на случайных данных просто профан. А тестировать стратегии на генераторе случайных чисел это пустая трата времени.
avatar
Евгений,
— матожидание есть не у любой случайной величины
— кто утверждает что на случайных данных гарантированно можно что то построить — профан
— кто утверждает что на случайных данных гарантированно нельзя что то построить — профан
— тестировать стратегии на генераторе случайных чисел — это хождение по минному полю. Может поможет, может нет.

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

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

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

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

А вот мой пример доказывает, что утверждения типа «на случайных данных никогда нельзя строить предсказания» — ложно. Правда вы могли иметь в виду не конкретно это. Тогда мой пример просто игнорируйте. Но пример с монетой действительно мимо, ибо этот пример ничего не говорит о случайности на рынке.
avatar
Veter,
Не могу пройти мимо вашей дискуссии, мне очень знакомы как ваши аргументы, так и Евгения.
Я проверял свои торговые алгоритмы на случайных котировках, результаты нулевые. Что интересно, очень близкие к таким результатом я получил на американских индексах и валютах.
А вот лучшие результаты на сырьевых рынках.
Я предполагаю, что сырьевые рынки наименее случайны, но строго научно это доказать не могу.
Интересно было бы услышать ваше мнение на этот счет.
avatar
Даниил, результаты, полученные на искусственных случайных котировках могут быть абсолютно не применимы к реальному рынку. И огромное значение имеет стратегия торгов. Одно дело если торгуете просто покупая-продавая, и совсем другое если торгуете например волатильностью (в паре с опционами), занимаетесь маркетмейкерством, арбитражем, и уж совсем другое если вообще принципиально другие фантастические стратегии торгов, основанные например на сочетании котировок с дополнительной информацией о рынке.
avatar
Евгений, и да, причем тут паттерны. я теханализом (в обывательском смысле) не занимаюсь. Меня волнуют те характеристики случайного реального рынка, которые делают его отличным от случайного логнормального блуждания. И это далеко не монетка.
avatar

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

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

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

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

avatar
AndyI, Вы сейчас сказали, масло масленое. Но суть этого топика о вообще другом.
AndyI, при чем тут рандом и казино? У казино не рандом, а вполне явное статистическое преимущество.
avatar
Цель?
avatar
Николай Скриган,
Стояла задача проверить гипотезу о том что рынок случаен.
Именно для этого мне понадобились эти данные, и я вполне допускаю, что они могут понадобится и другим.
avatar
Даниил, это каг бэ давно проверили. Даже Нобелевскую за это выдали лет 30-40 назад :)
avatar
Николай Скриган,
С тех пор многое изменилось.
Я предпочитаю перепроверять все что касается рынка, уж больно много заблуждений и откровенной дезинформации в этой области.
avatar
Даниил, ну и как результат проверки? :)
avatar
Николай Скриган,
Я бы сказал, что не однозначно. Есть и то и другое.
Для себя я отметил, что рынок нужно рассматривать с точки зрения статистики, а не паттернов.
Т.е. в рынке все достаточно размыто, и определить неслучайности можно только накапливая значительную статистику.
Как итог: считаю проделанную работу полезной.
avatar
Рынок скорее похож на правую картинку))
avatar
Вот в этом видео, паренёк (специализирующийся, кстати, на алгоритмической торговле), опираясь на статистику, в числе прочего показывает, что реальный рыночный график всё-таки отличается от рандомного:

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

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

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


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

avatar
не читал но одобряю
avatar
Добавил ссылку в статью на дополнительные примеры
yadi.sk/d/lZeiWqG7iXhmQ
avatar
Вот сколько раз слышу про монетку и 50/50, а кто нить пробовал бросать? я например утверждаю (проверил на практике), что вероятность выпадания орла выше если монетку изначально бросать орлом вверх, и для решки тоже ;)
avatar
Илья,
думаю что эксперимент с монеткой все таки нельзя назвать объективным.
Можно и наловчится подбрасывать, монета может быть со смещенным центром тяжести...
Но вам почет и уважение за практику :)
avatar
Даниил, Все ссылки стали нерабочими(
Есть ли возможность перезалить их, ДАниил?! (достаточно дать логичные названия каждому файлу и залить одним архивом)
avatar
Remarka,
Здравствуйте!
Вот новая ссылка: yadi.sk/d/_8wc4X4xjWffo
avatar

теги блога STH

....все тэги



UPDONW
Новый дизайн