Случайное блуждание : - страница 141

 

А вообще если предположить что честная монетка и существует, то как её проверить,  во 1-х если сравнивать хар-ки с её мат.моделью, то для 100% достоверности требуется бесконечная выборка, это уже практически невозможно.

Если ограничиваться достоверностью насколько-то ниже 100%, то наверное найдутся такие процессы, которые "похожи". Но тогда второй вопрос - о точности измерений и т.п.

Т.е. вопрос в сфере применения и требуемой для этого достоверности. А реально её как бы нет, примерно так же как нет границы у множества целых чисел)

 
Maxim Dmitrievsky:

вы мне про предположения, я вам про реальность. Дайте мне хоть один ряд, порожденный честной монеткой, если вы верите в сказки для школьников или фантазии мыслителей 19-го века.

Античные философы верили в Богов Олимпа и плоскую землю, давайте же тоже сделаем такое предположение


Доброе время суток! Что-то близко к белому шуму вот:

Гарантированно, что ставки справедливы, потому что номер уже известен до того, как вы сделаете ставку.

Формула

  1. Server Seed + Client Seed (->byte[4]) + Номер ставки (->byte[4])
  2. Двойной хэш SHA2 512 результат
  3. Продолжать принимать группы из байт и преобразовывать в целое до тех пор, пока значение меньше 16 миллионов не будет найдено. Если у вас кончились байты, всё начнётся с начала.
  4. Найти значение модуля из 1 миллиона
  5. Модуль является результатом ставки!

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

Текущий хэш номер сервера e3f18da63d457837868f869c921c30da4cacec2cfe85387eb83e5059fa53605d

static bool VerifyBetResult(string serverSeed, int clientSeed, int betNumber, long betResult, string serverSeedHash = null) { Func<string, byte[]> strtobytes = s => Enumerable .Range(0, s.Length / 2) .Select(x => byte.Parse(s.Substring(x * 2, 2), NumberStyles.HexNumber)) .ToArray(); byte[] server = strtobytes(serverSeed); byte[] client = BitConverter.GetBytes(clientSeed).Reverse().ToArray(); byte[] num = BitConverter.GetBytes(betNumber).Reverse().ToArray(); byte[] serverhash = serverSeedHash == null ? null : strtobytes(serverSeedHash); byte[] data = server.Concat(client).Concat(num).ToArray(); using (SHA512 sha512 = new SHA512Managed()) { if (serverhash != null) using (SHA256 sha256 = new SHA256Managed()) if (!sha256.ComputeHash(server).SequenceEqual(serverhash)) throw new Exception("Server seed hash does not match server seed"); byte[] hash = sha512.ComputeHash(sha512.ComputeHash(data)); while (true) { for (int x = 0; x <= 61; x += 3) { long result = (hash[x] << 16) | (hash[x + 1] << 8) | hash[x + 2]; if (result < 16000000) return result % 1000000 == betResult; } hash = sha512.ComputeHash(hash); } } }


Это из ресурса 999dice!!!

Ещё можно хеш номер сервера менять после каждых 100 итераций к примеру ... :) Я пытался спрогнозировать этот псевдошум - к сожалению безрезультатно. Как только меняется хеш номер, то все прогнозы ломаются ... :) До момента смены хеша нейросеть может через определённое время начать прогнозировать результат с достоверностью не более 55-60% (иногда 70% может достичь, но это уже везение и повторить результат не всегда удаётся).


Вот она почти честная монетка!!! :):):)

 
Aleksey Mavrin:

А вообще если предположить что честная монетка и существует, то как её проверить,  во 1-х если сравнивать хар-ки с её мат.моделью, то для 100% достоверности требуется бесконечная выборка, это уже практически невозможно.

Если ограничиваться достоверностью насколько-то ниже 100%, то наверное найдутся такие процессы, которые "похожи". Но тогда второй вопрос - о точности измерений и т.п.

Т.е. вопрос в сфере применения и требуемой для этого достоверности. А реально её как бы нет, примерно так же как нет границы у множества целых чисел)

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

 
RomFil:

Доброе время суток! Что-то близко к белому шуму вот:

Гарантированно, что ставки справедливы, потому что номер уже известен до того, как вы сделаете ставку.

Формула

  1. Server Seed + Client Seed (->byte[4]) + Номер ставки (->byte[4])
  2. Двойной хэш SHA2 512 результат
  3. Продолжать принимать группы из байт и преобразовывать в целое до тех пор, пока значение меньше 16 миллионов не будет найдено. Если у вас кончились байты, всё начнётся с начала.
  4. Найти значение модуля из 1 миллиона
  5. Модуль является результатом ставки!

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

Текущий хэш номер сервера e3f18da63d457837868f869c921c30da4cacec2cfe85387eb83e5059fa53605d

static bool VerifyBetResult(string serverSeed, int clientSeed, int betNumber, long betResult, string serverSeedHash = null) { Func<string, byte[]> strtobytes = s => Enumerable .Range(0, s.Length / 2) .Select(x => byte.Parse(s.Substring(x * 2, 2), NumberStyles.HexNumber)) .ToArray(); byte[] server = strtobytes(serverSeed); byte[] client = BitConverter.GetBytes(clientSeed).Reverse().ToArray(); byte[] num = BitConverter.GetBytes(betNumber).Reverse().ToArray(); byte[] serverhash = serverSeedHash == null ? null : strtobytes(serverSeedHash); byte[] data = server.Concat(client).Concat(num).ToArray(); using (SHA512 sha512 = new SHA512Managed()) { if (serverhash != null) using (SHA256 sha256 = new SHA256Managed()) if (!sha256.ComputeHash(server).SequenceEqual(serverhash)) throw new Exception("Server seed hash does not match server seed"); byte[] hash = sha512.ComputeHash(sha512.ComputeHash(data)); while (true) { for (int x = 0; x <= 61; x += 3) { long result = (hash[x] << 16) | (hash[x + 1] << 8) | hash[x + 2]; if (result < 16000000) return result % 1000000 == betResult; } hash = sha512.ComputeHash(hash); } } }


Это из ресурса 999dice!!!

Ещё можно хеш номер сервера менять после каждых 100 итераций к примеру ... :) Я пытался спрогнозировать этот псевдошум - к сожалению безрезультатно. Как только меняется хеш номер, то все прогнозы ломаются ... :) До момента смены хеша нейросеть может через определённое время начать прогнозировать результат с достоверностью не более 55-60% (иногда 70% может достичь, но это уже везение и повторить результат не всегда удаётся).

О, грамотно, спасибо. Нужно какое-то время чтобы разобраться, потом отпишу, после НГ.

 
sibirqk:

Шум, с некоторой ошибкой, конечно прогнозировать можно, хоть  AR, хоть Фурье, хоть Вейвлетами. Речь шла о невозможности прогнозировать траекторию случайного блуждания порожденного честной монеткой. Но, к сожалению шум не торгуют - торгуется накопленная сумма - т.е. цена актива. Возьмите цены закрытия минуток, постройте на них мув достаточно большого периода, например на пол-суток, сдвинте на пол-периода назад, затем отнимите от цены. У вас получится примерно такой же шум, с распределеннием примерно по Гауссу. И если бы был какой-нибудь способ спрогнозировать хотя бы примерно, как будет вести себя мув, на пол-периода вперед - это бы и был бы успешно работающий алгоритм для торгового робота.
Сейчас в тырнете часто мелькают сообщения, что практически на все рынках основную торговую активность генерят роботы. Например на ММВБ на ликвидах, чуть ли не 90% сделок от роботов. На других площадках и сегментах похожая ситуация.   И что характерно в большинстве, описание методов торговли схожее - вход на высоко-ликвидном активе, время в сделке несколько минут, выход. Так как особых вариантов для разумных фантазий относительно принципов их работы, здесь не много, скорее всего как-то моделируется будущая средняя точка и сделки торгуются от нее.
Каким образом это делается, могу только предполагать - например, анализ биг-дата - анализ стакана, фундаментальный анализ, новостной анализ, анализ коррелирующих активов и т.д., все это скорее всего методами МО, Далее на этой основе строится заключение   о вероятности генерации будущих тиков в небольшой временной окрестности, типа того что в ближайшие 8 минут тики будут генерится 40/60, далее строится пучок случайных траекторий с такими характеристиками, находится наиболее вероятная по ней считается будущее значения мува и от него собственно все и торгуется. Но повторюсь это только мои предположения.

Это hft алгоритмы и арбитраж. Там логика простая совсем. Кидаешь лимитку, ее выкупают и ты в плюсе, осталось об кого-то закрыться. Это очень вкратце.
 
Maxim Dmitrievsky:

http://stratum.ac.ru/education/textbooks/modelir/lection29.html

Уже обсуждалось в теме Александра, я тогда не понимал смысла. Теперь понял (на практике).

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

К слову, в Эконометрике не описано такой техники, что приводило меня к непониманию почему АКФ всегда нулевая для приращений и закономерностей, якобы, нет. Эрлангом это исправляется на раз-два и выплывает куча зависимостей.

как отсеять ненужные и оставить нужные события ?мы же можем нужные отсеять

 
Roman Kutemov:

как отсеять ненужные и оставить нужные события ?мы же можем нужные отсеять

экспериментально можно, если нет априорных предположений

""с увеличением К регулярность увличивается". Там нет нужных и ненужных, это просто какой-то непонятный мне закон, типа длинной памяти, которая есть и в движении броуновской частицы, как следствие и в СБ.

 
я файле создал сб, давайте попробуем пофильтровать как то ... 
Файлы:
d2.zip  312 kb
 
Фильтруйте, кажьте результаты. Я уже показал. Интересны другие взгляды на ситуацию.
 
Maxim Dmitrievsky:
Фильтруйте, кажьте результаты. Я уже показал. Интересны другие взгляды на ситуацию.

я пока не знаю, тоже только узнал от тебя.

есть наверное разные варианты

Причина обращения: