Блог им. Desimir
Приветствую публику смартлаба!
Для проверки автоматических систем и вообще для расширения кругозора бывает необходимость в случайных котировках.
Но дело в том, что не все случайные данные так уж случайны.
Чтобы получить истинно случайные котировки (насколько это возможно) я обратился к ресурсу random.org. Как утверждают эти ребята их данные получены из атмосферных колебаний, которые являются абсолютно случайными.
Для наглядности пример с ихнего ресурса.
Далее эти данные были приведены к формату биржевых котировок (как это было сделано описано ниже).
Строим графики в NT7, ниже пример как все получилось (Daily, 60m, 5m, 2Range).
Ну а затем уже можно строить индикаторы на этих котировках, и прогонять стратегии.
Я прикрепляю к статье ссылки:
Атмосферные колебания: 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
Далее выбираем New
Далее вводим название нового инструмента и ставим галочку в столбце «Exchanges» напротив любой биржи.
Далее переходим на вкладку Misc. В Symbol map напротив Yahoo (или какой то другой) пишем название нашего нового инструмента.
Жмем «Ок».
Теперь новый инструмент доступен для выбора.
Следующий шаг — это импорт наших котировок в данный инструмент.
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. Рекомендую держать это окно на виду.
Туда же выводятся сообщения об ошибках (не найдены файлы, мало тиков и т.д.)
Писалось для себя и на скорую руку – камни не бросать, замечания –делать.
В данной статье я лишь хотел поделится информацией.
Когда то мне понадобилось провести тесты на случайных котировках, и пришлось потрудится чтобы их достать.
В то время я был бы очень рад такой статье :)
Случайные ряды, наблюдаемые в природе, на рынке, и в источниках случайности, обладают уймой производных неслучайных характеристик. Таких как матожидание, среднеквадратичное отклонение и другие. А это уже один из путей к созданию прибыльных систем.
— матожидание есть не у любой случайной величины
— кто утверждает что на случайных данных гарантированно можно что то построить — профан
— кто утверждает что на случайных данных гарантированно нельзя что то построить — профан
— тестировать стратегии на генераторе случайных чисел — это хождение по минному полю. Может поможет, может нет.
лол
1. ну мы говорим о временных рядах. И мой пример вы проигнорировали. Могу вам на основе этих бросков подготовить графики, и на них тоже будут все эти каналы, головы и плечит итд. Только в реальности, вероятность реализации этих паттернов, не будет превышать 0.5.
2. «к сожалению не обоснованной в тех аспектах» в смысле не обоснованных? Я вам показал конкретный пример игры с отрицательным матожиданием, которая как раз и основана на случайно величине, или вам формулы нужны? И что не существует стратегии, которая была бы прибыльна при такой игре. Так же и у вас, есть случайный временной ряд, какие патерны вы там находите? Ну тогда вам ваш аналагичный пример, положение молекулы в момент времени t невозможно предсказать, однако кошки рождаются, следовательно существую методы, которые это могут, правда знают о них только трейдеры. Ну в общем я не собираюсь вам что-то доказывать, ради бога.
Вот в этом различие между моим и вашим примером.
Ваш пример показывает что в конкретном случае реализации случайности и при конкретной стратегии торгов на ней — матожидание прибыли с комиссиями отрицательно. Но это пример ничего не говорит о других видах случайности, а самое главное ничего не говорит о других стратегиях торгов.
А вот мой пример доказывает, что утверждения типа «на случайных данных никогда нельзя строить предсказания» — ложно. Правда вы могли иметь в виду не конкретно это. Тогда мой пример просто игнорируйте. Но пример с монетой действительно мимо, ибо этот пример ничего не говорит о случайности на рынке.
Не могу пройти мимо вашей дискуссии, мне очень знакомы как ваши аргументы, так и Евгения.
Я проверял свои торговые алгоритмы на случайных котировках, результаты нулевые. Что интересно, очень близкие к таким результатом я получил на американских индексах и валютах.
А вот лучшие результаты на сырьевых рынках.
Я предполагаю, что сырьевые рынки наименее случайны, но строго научно это доказать не могу.
Интересно было бы услышать ваше мнение на этот счет.
Veter, вот такое сочетание утверждений
«кто утверждает что на случайных данных гарантированно можно что то построить — профан
— кто утверждает что на случайных данных гарантированно нельзя что то построить — профан»
противоречит логике.
Эти два утверждения взаимоисключающие. Либо одно, либо другое могут быть правильными, но они не могут быть правильными одновременно.
Стояла задача проверить гипотезу о том что рынок случаен.
Именно для этого мне понадобились эти данные, и я вполне допускаю, что они могут понадобится и другим.
С тех пор многое изменилось.
Я предпочитаю перепроверять все что касается рынка, уж больно много заблуждений и откровенной дезинформации в этой области.
Я бы сказал, что не однозначно. Есть и то и другое.
Для себя я отметил, что рынок нужно рассматривать с точки зрения статистики, а не паттернов.
Т.е. в рынке все достаточно размыто, и определить неслучайности можно только накапливая значительную статистику.
Как итог: считаю проделанную работу полезной.
youtube.com/watch?v=IKrTcZiOM7U
Спасибо за ссылку. Обязательно гляну.
а как же кукл?
я пока его еще не измерил, ничего сказать не могу
мне приятно читать такие развернутые комментарии (без сарказма). Но в данной статье этот вопрос вообще не поднимался. Думаю он заслуживает отдельной статьи.
В вкратце: вывод был очень похож на тот что вы изложили.
о вы еще не видели как профиль рынка на этих котировках выглядит :)
ссылки будут долго открыты, есть не просят.
Если будут какие то вопросы, обращайся.
Одно не могу сказать- КОГДА. У моей системы нет понятия времени, есть только цена.
Я уже неоднократно для себя уже ответил на этот вопрос, включая проверкой на погоде в Москве.
Больших вам профитов. пока.
yadi.sk/d/lZeiWqG7iXhmQ
думаю что эксперимент с монеткой все таки нельзя назвать объективным.
Можно и наловчится подбрасывать, монета может быть со смещенным центром тяжести...
Но вам почет и уважение за практику :)
Есть ли возможность перезалить их, ДАниил?! (достаточно дать логичные названия каждому файлу и залить одним архивом)
Здравствуйте!
Вот новая ссылка: yadi.sk/d/_8wc4X4xjWffo