Все знают известную гипотезу Коллатца о числовых рядах и метод численных экспериментов Монте-Карло, который применяли в Лос-Аламосе при создании ядерной бомбы США. *)
Я хотел поднять тему проверки алго-стратегий на примере этой задачи и этого подхода. Гипотеза Коллатца, на настоящий момент не доказана и связана с большим массивом цифр и рядов. Её можно либо доказать математически, либо опровергнуть численными методами, например случайно подобрав число, которое покажет что гипотеза не верна.
Очевидно, что одно число случайным образом найти легче, если оно есть, особенно если предположить что их много **). Легче найти одно из многих, чем перебрать абсолютно все что есть.
Теперь к нашим алго-стратегиям. По сути поиск Грааля — это постройка некоей гипотезы (ради хвастовства их называют стратегиями), и затем тестирование её на истории. История же это всего-навсего некий случайный ряд, который уже есть. В будущем ряд будет другим, и столь же случайным как и в прошлом. Можем ли мы перебрать все возможные варианты прошлого и будущего? По-моему непосильная задача.
То есть у нас есть лишь одно прошлое, которое мы можем использовать лишь чтобы опровергнуть нашу гипотезу. Либо чтобы её доказать, мы должны сгенерировать _все_ возможные варианты прошлого и будущего, численно и прогнать нашу стратегию-гипотезу через них.
Ну или математически доказать, что вот именно такая торговля будет бесконечно приносить доход. Тоже выглядит как нонсенс.
Остаётся только верить, что история, на которой не разоряется робот, даст нам прибыль в будущем. Доказать это историей вчистую — «в общем» мы не можем! Только «не опровергнуть».
И вот на этом краешке рациональности и сидят болтая ножками над пропастью убытков и сливов успешные алготрейдеры.
Отдельно наверное стоит подумать, что с научной точки зрения представляет собой процесс подгонки случайным методом параметров стратегии, для того чтобы она не развалилась на истории. Это не простая и не приятная мысль, отложу её до следующего раза.
*) Если вы при этих словах почувствовали неудобство, значит этот кликбейкт-хайп-метод сработал.
**) Вот, например, программка, которая выдаёт «предположительно» числа, которые не складываются за 1 000 000 итераций в 1, то есть возможно нарушают гипотезу (надо проверять «до конца»)
public class ГипотезаКоллатца {
static Random rnd = new Random();
static BigInteger THREE = new BigInteger("3");
static BigInteger genBig() {
return new BigInteger(1000, rnd);
}
static boolean isOdd(BigInteger b) {
return b.testBit(0);
}
static BigInteger iterate(int maxSteps, BigInteger b) {
BigInteger bi = b;
for (int i=0;i<maxSteps&&BigInteger.TWO.compareTo(bi)<1;i++){
if (isOdd(b)) {
bi = bi.divide(BigInteger.TWO);
} else {
bi = bi.multiply(THREE).add(BigInteger.ONE);
}
}
return bi;
}
public static void main(String[] args) {
for (int i=0;i<10;i++){
var b = genBig();
var bi = iterate(1000000, b);
if (bi.compareTo(BigInteger.TWO)>0){
System.out.println(i);
System.out.println("'" + b + "'");
System.out.println("'" + bi + "'");
System.out.println();
} else {
System.out.println(".");
}
}
}
}
и первое же найденное кандидатное число: '9377897214047052446413091867867321397445267849887049287258514180855217329810859699227025543377461888005571102855313298648307974925660684942079487950339751789142749255403203631352114865462610029549753930151308853962071139769859558597477464671896308522755977736482286896117305008600237734179912082570506'
Если число итераций поднять с 1 млн, до 10 млн, то вычисления сильно замедлятся, а 1 млн обсчитывается достаточно быстро. Слава богу не вручную.
Для того, чтобы найти оптимальную или субоптимальную стратегию методом тыка, необходимо, чтобы субоптимальные стратегии образовывали некое толстое множество (например, выпуклую область в пространстве параметров).
Если же оптимальные или субоптимальные стратегии образуют тонкое множество (скажем, меры 0), то метод тыка никогда ничего не даст...
С уважением
Пусть устраивающие нас субоптимальные системы образуют в пространстве параметров гиперповерхность коразмерности 2 (к примеру, кривую в 3-х мерном пространстве).
Как мы будем применять метод Монте-Карло для поиска чего-то субоптимального?
С уважением
P.S. Для завершения вычислений нам потребуется пара гипотез о том, что субоптимальное решение лежит гиперповерхности коразмерности 1. Но тогда можно получить аналитическое решение, так что метод тыка вроде и не нужен…
Найдете?
С уважением
ЗЫ Это как и с рудой. Стоимость процесса обогащения растет по экспоненте по мере увеличения степени чистоты или желания выбрать из руды все до крохи.
вот например https://studfile.net/preview/5389870/page:6/
но я честно говоря монте-карло использую просто как нарицательное имя случайных алгоритмов.
в частности «генетический алгоритм». он просто легче и дешевле.
и ничто не мешает встроить туда несколько вариантов «поискать подальше» и «поискать поближе», а потом варианты «рекомбинировать» и «сравнить».
самое сложное — это когда параметров много (большая размерность), и когда часть размерностей имеют зависимости, уже метазадача оптимизации оптимизатора.
да, мы условно ищем ключи там где светло. но мы в отличие от анекдота, никакие ключи не теряли и не факт что они вообще есть. а если есть, то почему они должны быть только одни? и фонарик-то у нас в руках, а не к полу прибит. мы сначала тут поищем, ошибёмся, разочаруемся, поищем в другом месте. не найдём, ну так что с того. люди смертны.
даже эволюция бывает приходит разными путями к одному и тому же признаку под давлением окружающей среды. хотя есть и уникальные животные, вроде нас опять же.
может это даже религиозный вопрос. или достоевщина.
Практика же гласит, что найти методом тыка точку внутри множества меры 0 нереально (ну, вернее, реально, но с вероятностью 0))))
Все остальные методы требуют вполне жестких аналитических предположений.
С уважением
1.: Любая торговля — это осознаваемый или не осознаваемый прогноз будущего приращения цены.
2. Лучший статистический прогноз будущего приращения цены — некоторая функция от известной прошлой информации. Только не обязательно одна и та же во времени — это раз. А два — вопрос выбора прошлой информации при построении функции прогноза — это тоже задача, которая в общем случае не имеет однозначного решения.
Поэтому «разложив» стратегию в рамках пп. 1 и 2 достаточно просто понять — рабочий это вариант или туфта. Самое сложное — это найти нетуфтовую стратегию, т. е. функцию, дающую нетривиальный статпрогноз будущего приращения цены. Так как это задачка из серии «пойди туда, не знаю куда».
Чтобы стать самым богатым человеком в Мире нужно совершить всего порядка 30 сделок. Ну плюс-минус. Где-то пытались подсчитывать. Я почему-то верю.
Просто «ниразу не ошибиться».
“Всего-то”! ))
Если вы обладаете «истинным алгоритмом»©, по Вашему скромному мнению, то Вы обладаете самым настоящим Граалем.
Который по этой незамысловатой логике позволяет вам взлететь в топ богатейших людей Мира.
И то! Это только при первых 30 сделках.
Дальше я не знаю что Вам даже и делать!
Весь фокус всей этой факаналии вакханалии в том, что НИКТО не знает будущего. «Смысл жизни»®™©
И даже… не должен знать!
40?
50?
Но она априори “конечна”. И даже очень мала.
И как назвал бы Нассим Талеб «Среднестан»®™© против «Крайнестана»®™©. Разброс на самом деле небольшой.
То же самое, если кто не знал. Лист бумаги любого размера. Ну то есть АБСОЛЮТНО ЛЮБОГО РАЗМЕРА!!!… Можно сложить только 8 раз.
Но если создать лист бумаги размером с футбольное поле.
… То 9! :D
И даже не 10.
Сила «геометрических прогрессий».
показываю свой плейлист Астро Алгоритмы
m.youtube.com/playlist?list=PLxHiioiXmEDtG4h5u28eqJz2OyLCnKhuf
Да, коллега!
Пишешь тут всякие банальности.
А потом удивляешься.
Отсюда и столько мало лайков!
Что клейма негде ставить
А что такое гипотеза Коллатца — знаешь?
Про то, какое отношение она имеет к существу вопроса — расскажешь?!
С уважением
Коллеги, на одном из популярных форумов некий пользователь ещё в ноябре прошлого года как раз, когда биткоин формировал исторический максимум, нашёл закономерности гипотезы Коллатца и поведением курса биктоина. Он предположил, что курс следует аналогично модели гипотезы Коллатца и выдвинул свою теорию. Если убрать все бла-бла, то всё это выглядит так.
Вот скрин на момент публикации теории (то есть на максимуме биткоина в ноябре)
Полный график гипотезы Коллатца выглядит так:
Сейчас ситуация на графике курса битка + модель гипотезы Коллатца имеет следующий вид:
(Все графики взяты с его постов).
Как вы думаете это банальное совпадение курса битка и модели гипотезы Коллатца? Или тут даже нет никаких совпадений?
А тем временем биток уже 15 600 долл. Вроде всё идёт по прогнозу .
Если же учитывать весь прогноз данный пользователем, то биток ждёт скам!