<HELP> for explanation

Блог им. Desimir

Котировки на основе случайных чисел с 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. Рекомендую держать это окно на виду.

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

 

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

 

трудягам почет и уважуха
avatar

Press

Фьючерсы на погоду :) тогда метеорологи — те же околорыночники получаются чтоли?)
Роботы из воздуха то деньги сделали?
avatar

FrBr

FrBr, эта тема совсем для другой статьи.
В данной статье я лишь хотел поделится информацией.
Когда то мне понадобилось провести тесты на случайных котировках, и пришлось потрудится чтобы их достать.
В то время я был бы очень рад такой статье :)
Предсказание рандома невозможно. В этом суть казино.
avatar

AndyI

AndyI, Все верно, невозможно построить систему с положительным ожиданием на рядах основанных на случайных числах
Евгений, хихихи.

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

Veter

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

лол
avatar

Veter

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

Veter

Veter,
1. ну мы говорим о временных рядах. И мой пример вы проигнорировали. Могу вам на основе этих бросков подготовить графики, и на них тоже будут все эти каналы, головы и плечит итд. Только в реальности, вероятность реализации этих паттернов, не будет превышать 0.5.

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

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

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

А вот мой пример доказывает, что утверждения типа «на случайных данных никогда нельзя строить предсказания» — ложно. Правда вы могли иметь в виду не конкретно это. Тогда мой пример просто игнорируйте. Но пример с монетой действительно мимо, ибо этот пример ничего не говорит о случайности на рынке.
avatar

Veter

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

Veter

Евгений, и да, причем тут паттерны. я теханализом (в обывательском смысле) не занимаюсь. Меня волнуют те характеристики случайного реального рынка, которые делают его отличным от случайного логнормального блуждания. И это далеко не монетка.
avatar

Veter

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

Макс

Макс, кстати да, каналы везде прогоядываются
Вот в этом видео, паренёк (специализирующийся, кстати, на алгоритмической торговле), опираясь на статистику, в числе прочего показывает, что реальный рыночный график всё-таки отличается от рандомного:

youtube.com/watch?v=IKrTcZiOM7U
Ну как бы,
Спасибо за ссылку. Обязательно гляну.
наконец-то лучший пост в этом месяце
график намекает что движения рынка случайны.
а как же кукл?
avatar

D.D. Trader

D.D. Trader,
я пока его еще не измерил, ничего сказать не могу
Даниил, вообще-то рынок по данным статистиков только на 60-70% на дневных данных случаен, а в остальное время или трендован(персистентен) или контртрендован(антиперсистентен). Кроме того когда он случен(близок к случайному блужданию) работает так называемый закон арксинуса. Как бы это объяснить простым языком… Допустим мы играем в «орлянку» 50% вероятности выпадания орла 50% выпадания орешки. За то что угадали что выпадет орел или решка получаем 1 рубль за то что не угадали -1 рубль. Посчитаем накопленную сумму. По логике накопленная сумма раз вероятность 50% должна находится около нуля. Ведь то выигрыш, то проигрыш, но это не так — вероятность что накопленная сумма значительно превысит нулевой уровень гораздо выше или ниже(более 10%) чем она останется в районе нуля. Что это означает на практике. Выбирать прибыльную систему на основе случайного блуждания бесполезная затея. Ты можешь даже находить тренды на кривой случайного блуждания, но закономерности в этом никакой нет она(кривая) в будущем уже никогда не повторится…
avatar

Fox27

Fox27,
мне приятно читать такие развернутые комментарии (без сарказма). Но в данной статье этот вопрос вообще не поднимался. Думаю он заслуживает отдельной статьи.
В вкратце: вывод был очень похож на тот что вы изложили.
вижу входы по своей системе, либо я сошёл с ума, либо…
Винету Карабасович Монетка,
о вы еще не видели как профиль рынка на этих котировках выглядит :)
Даниил, не закрывай пожалуйста ссылки, я обязательно как свободное окно появится оттестирую это. Заранее спасибо.
Винету Карабасович Монетка,
ссылки будут долго открыты, есть не просят.
Если будут какие то вопросы, обращайся.
Даниил, ВЕЩЬ!!! Но когда я «открыл» свой Грааль, то не мог понять «кто рисует патерн». Пришлось для познания скачивать погоду в Москве с 1996 года и строить график по предсказанию. Выводы шокировали меня. Потом для верности запустил рамдомайзер Микрософта. Поиследовал его, и могу с уверенностью сказать вам что рамдом от Микрософта полностью случаен. Но там есть конечно законы но в целом-случаен (это отдельная песня). Смотря на ваш график я уже вижу свои патерны. Вывод для меня однозначен — я подтвердил уже ещё раз для себя что мои патерны рождены природой(как теоремы Пифагора), а не человеком. Погоду пришлось под себя править из-за того что -25гр нет такой цены (к температуре прибавил 100), плюс делать не дневных OHLC цены для свечек, благо в Москве погода давалась именно по часам. Плюсанул.
.Агрегатор., знаю. rem. «Дура/недура, а 3 рубля своих в день имею». Чего вам желаю. И заметьте, я не обучаю.

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

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


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

avatar

werwrw

не читал но одобряю
Добавил ссылку в статью на дополнительные примеры
yadi.sk/d/lZeiWqG7iXhmQ
avatar

Даниил

Вот сколько раз слышу про монетку и 50/50, а кто нить пробовал бросать? я например утверждаю (проверил на практике), что вероятность выпадания орла выше если монетку изначально бросать орлом вверх, и для решки тоже ;)
avatar

Илья

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

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Залогиниться

Зарегистрироваться
....все тэги
Регистрация
UP