В честь пятницы небольшая "игрулька" со смыслом.
Подкинул мне тут товарищь Pikachu интересную идейку, а работают ли вообще всякие трендовые, уровни и прочее инструменты теханализа. Решили замутить генератор рандомных графиков.
И на удивление графики очень похожи на живые графики с биржи!!!!
Играйтесь, размечайте, выкладывайте ваши мысли на этот счет. Я честно говоря такого не ожидал. Повод задуматься над теорией хаоса
Нету никакого смысла в их рисовании…
Разница с реальным активом есть. Небольшая но заметная.
Весь теханализ (свечи, волны, паттерны), на мой взгляд, малопригоден для торговли.
Во-вторых, генератор случайных чисел на самом деле таковым не является. Почитайте на досуге, как эвм генерирует «сч».
В третьих, Вы при построении графика и генерации чисел задаете некие параметры, исходя из опыта работы на бирже, то есть уже вносите элемент предопределенности.
Выводы сами сделайте.
2) параметры тут с биржей не связаны почти, просто количество точек и максимальный размер шага.
1) Выбросе малых приращений. Их значительно больше, чем в гауссовском процессе
2) автокорелляции. Данные реального актива кластеризованы, данные гсч нет
3) выбросы больших приращений («толстые хвосты»)
Вывод из этого один: то, что процесс похож на гауссовский, не значит, что он гауссовский
И на тему отличий графиков, если пообновлять генерилку то по сути можно найти разные типы графиков и рост с коррекциями, и просто флет, и разворот в низах и т.д.
1. фибо
2. разволновка 5-АВС
3. ложный пробой и за ним ниспадающий клин
4. внутри волн трех- и пятиволновые импульсы
Это никакой не гсч.
Алгоритм генерации в студию!
На 92% уверен, что алгоритм не повторит график.
pastebin.com/s6EbJZb4
Ибо величина движения при заданном $spread=1
$amount = mt_rand(1, $spread);
будет постоянна.
Следовательно, тренд рисуется исключительно за счет выбора «случайного» направления.
$direction = mt_rand(0,1);
Из чего можно заключить, что ГСЧ с явной тенденцией трендить в канале)))
То есть, ГСЧ очень своеобразно выбирает между 0 и 1, когда рисует тренд при помощи отклонения на 1 )))
Дайте, пожалуйста, ссылку на php-код, который выводит на график массив $result[], чтоб я мог повторить нечто подобное.
Выгрузите данные этой функции в CSV и постройте график в экселе.
Ссылку которая выводит график я уже привел в топике )
ГСЧ стандартный mt_rand (при rand похожий результат).
Ха-ха))
Видать шутка ГСЧ кроется в равномерном законе распределения.
С одной стороны — это главное и справедливое требование к ГСЧ, но только при пределах от минус до плюс бесконечность.
А при использовании генерации в диапазоне мы получим уже явную зависимость от предыдущих значений)))
А при диапазоне от 0 до 1 распределение выстраивается исключительно по оси времени и выдает все несовершенство генератора с его микро- и макротенденциями.
Для начала предлагаю изменить код глубины на:
$direction = mt_rand(0,2);
// Величина движения
$amount = mt_rand(1, $spread);
if ($direction == 0){ $amount = $amount*(-1); }
if ($direction == 2){ $amount = 0; }
Так как рынок движется неравномерно и иногда стоит на месте. К тому же, это немного разбавит последовательную тенденцию.
На тему ГСЧ, я писал, что пробовал юзать random.org, результат такой же.
Есть предложение еще — функцию боковика осуществить спредом, а генерацию направления — чет/нечет:
// Рост или падение ежели делится на 2 без остатка, то 0, в противном случае =1
$direction = mt_rand(0,100000)%2;
// Величина движения
$amount = mt_rand(0, 1);
if ($direction == 0){
$amount = $amount*(-1);
}
при генерации в диапазоне 0-1 при установленном в ГСЧ распределении на некой выборке средняя стата будет 1/2
При генерации от 1 до 100 будет 1/100 для каждого числа, что при объединении этих чисел в две равноколичественных группы по 50 даст те же 1/2
Соответственно — «масштабирование»
А теперь, ежели взять чет/нечет, то при идеальном распределении будет тот же результат, что и в первых двух случаях, но распределение вовсе не идеально и ГСЧ не отслеживает распределение по свойствам чисел. Поэтому можно надеяться хоть на какую-то случайность)))
«боковик через спред» — отсутствие движения цены, но не через нулевое направление, как я советовал в первом случае, а через присвоение значений $amount от 0 до 1, как в моем коде здесь
То есть, вместо $amount = mt_rand(1, $spread); ставим $amount = mt_rand(0, 1);
Хотя, введение нулевого напрвления, как я писал ранее, может сделать генерацию МЕНЕЕ подверженной тенденциям трендить.
Поэтому стоит сделать вот так:
$direction = mt_rand(0,2);
// Величина движения
$amount = mt_rand(0, 1);
if ($direction == 0){ $amount = $amount*(-1); }
if ($direction == 2){ $amount = 0; }
Если и мои напечатанные 0,1 не станут похожи на сигнал «белый шум», то это будет доказательством того, что хаос — идеальная гармония и ее можно прогнозировать при помощи моего метода)))
Я бы с радостию, но у меня его нет готового, а строить — нет времени.
Выше в комментах я излагал идеи. Вы не пробовали сделать генератор?
Поэтому любые попытки построить «случайные» последовательности обречены на обнаружение алгоритма, причем, довольно навязчивого.
Результат должен измениться заметно
На random.org ничего нового не изобрели.
Вот здесь исследование качества ГСЧ, сформированного по методу Фибоначчи и по методу срединных квадратов
www.intuit.ru/studies/courses/623/479/lecture/21088
Судя по пятиволновым картинкам, в пхп используется метод Фибо, к тому же, он более быстрый, по идее.
Обратите внимание, как пошла привязка к горизонтальным уровням)))
Попробуйте второй вариант, что я выше описал только что.
smart-lab.ru/blog/378514.php#comment6809926
Зависит от того, с какой ноги он встанет
0011100101010101101000101010100100101011
0101010001010101001010101001010101110101
0001011010100011010101010001011010101010
1011001100110000011010011010101010100110
1001110001011000101101001010100101011001
0101101010000110101011110100100110101001
0010101010101010000011010110010111010110
1010101110101101010101010101010100010111
0000101101001010100101010010100001011010
1011010010110101010101010101010001011011
0110110110101011011110101010101010110110
1010101000010011001001010101010101010101
0101011110101010000010110101010101010001
0101110100010101010100000111011010000110
1011000010101011010110100001010110101011
0101110100101011010010101101000011110101
0101000101101100111001010010110000111010
1001101101000111011000101110100011011000
1110101010010101100010110100101101001010
1011010101010101101011000010011010101010
1010101010111000111000110001110010101010
1101000101011010101000101101100001111000
1011010010110100101101010101100010110100
0011010101001110011100011011101000110110
0010110100010110101010100101010101110100