• Как рассчитать экспоненциальное скользящее среднее с учётом различных по длине временных интервалов?

    ajdivot,
    учитывать различных по длине временных интервалов.
    Вы понимаете что такое оконная функция?

    давайте для простоты скажем вот наши данные [100,110,107,120,105] пусть это стоимость чего нибудь. Мы говорим применим скользящую среднюю с окном в 2. Что это значит это значит мы смотрим от каждой точки мы берем 2 последние (включая текущую) и тупо считаем среднюю и так двигаемся (скользим) вправо. Имеем для 100 у нас нету двух точек, для 110 мы имеем (100 + 110) / 2 = 105 и.тд скользим вправо.

    Для экспонентного средней скользящей принцип тот же самый просто каждый раз значения что ближе будут иметь больше веса. Вот для простой средней какие у нас веса при расчете были w_i = 1. Для простой при подсчете мы могли записать (1 * 100 + 1 * 110) / 2. Для экспонентной средней скользящей вместо единиц будут посчитаны веса. Cначала alpha как у вас потом w_i, как я указал. То есть для нашего игрушечного примера будет (w_1 * 100 + w_2*110) / 2.

    Теперь вы утверждаете про разный размер ваших временных интервалах, в рамках вопроса EMA это невозможно потому что окно у него всего одного размера.

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

    Цена = a * EMA(окно=15 дней) + b * EMA(окно=30 дней) + c * EMA(окно 3 месяца) + ...  константа
    Ну это вопрос не отдельный EMA а про моделирование где мы можем иметь свободы столько сколько требуется. Одно EMA имеет ОДИН размер.

    Вот если мы возьмем и загуглим из мира финансов нам скажет для инвестиций на короткие дистанции трейдеры используют 8 и 20 дней EMA. Это не одна переменная EMA и за 8 и за 20 дней а две переменные EMA. одна будет 8 дней EMA а вторая 20 дней EMA.
    Написано
  • Какова вероятность появления последовательности?

    Prudya, Смотри, будь внимательным, можно считать есть у нас последовательность размера n и вероятность содержания в этой последовательности подпоследовательности размера m. А есть например ты объявляешь переменную количество бросков, игр, попыток (что там у тебя) что бы ПЕРВЫЙ раз увидеть повторяющееся последовательность размером m. И вероятность в такой переменной будет. Вероятность например 3 попыток что бы ПЕРВЫЙ раз увидеть два ОРЛА или ДВЕ РЕШКИ. И еще формулы будут разнится для четного количества попыток или для нечетного. Я вчера после того как не смог ответить на твой вопрос (что меня задело) да еще рекурсивный подход у меня не давал ответов, нашел научную работу на эту тему на английском, так что изучаю. Вообще вопрос хороший ты задал, тема имеет множество полезных применений.
    Написано
  • Какова вероятность появления последовательности?

    Prudya, Ну тогда при чем здесь нахождение вероятностей для орлов или решек подряд. У тебя дискретная случайная переменная, найди для нее ожидаемую величину и все. Если она отрицательна мы на длинной дистанции будем в убытках, если положительная в плюсе, если 0 то что называется fair game.
    p - вероятность успеха стратегии
    x1 - полученные деньги при выигрыше
    x2 - затраты на стратегию
    E(X) = x1 * p + x2 * (1 - p) - где x2 (отрицательное число)
    Написано
  • Какова вероятность появления последовательности?

    Alexandroppolus, Спасибо буду разбираться, по поводу двух непересекающихся наборов тут все очевидно.

    Но вот по поводу остального что то до меня так и не доходит. (Но это уже мои проблемы буду разбираться). Вы уже достаточно объяснили.
    Для n=4 и m=3, мы имеем 6 удовлетворяющих условию последовательностей (1,1,1,1),(1,1,1,0),(1,0,0,0) ну и 3 если начнем с 0. итого 6. Ну и соответственно 10 плохих.

    Используя фабиначчи я то получил такие цифры (правильно будет сказать подогнал). Но совсем пока не понял и не думаю что я делаю правильно. Ну да ладно спасибо буду разбираться что я упускаю.
    Написано
  • Какова вероятность появления последовательности?

    Alexandroppolus, Да, все так это не простая проблема, которые мы решали когда учились, посчитать совпадающие дни рождения у группы людей, для покера вероятность определенной руки подсчитать и тому подобные стандартные задачи. Для m=2 все так то есть вероятность успеха 1 - 2^(n-1). Тут все очевидно одна последовательность начнется с Решки другая с Орла, дальше всегда чередование. А вот для m больше двух какую то функцию найти совсем не получается. И через разницу m и n тоже ничего не выходит. Пока не пойму как выразить количество не успехов через Фибоначчи. но буду решать задачу. Интересный случай, да и освежить комбинаторику не мешает, можно посмотреть еще в сторону random walk, может там насчет повторений что то имеется хотя по моему нет. Так скоро с алгоритмами машинного обучения разучимся вот такие задачки решать, что нежелательно.
    Написано
  • Какова вероятность появления последовательности?

    Alexandroppolus, У меня проблема следующая.
    1- Орел
    0 - Решка
    Возьмем пример n = 4, m =2, И так количество последовательностей 2^n это очевидно., то есть всего у нас возможно 16 последовательностей каждая с одинаковой вероятностью. Например нам выпала последовательность (1,1,1,1) если мы ее посчитаем за ОДИН успех то есть она содержит в себе повторение орлов длинной два то моя формула 2 * comb(m,n) / 2^n. Должна работать (она и работает на каком нибудь n=3 и m =2 ).Но по идее чем длиннее последовательность тем больше шансов встретить повторение.А делитель (количество последовательностей растет значительно быстрее).Вот тут я туплю и что то упускаю. Если мы считаем что такая последовательность содержит в себе 4 успеха, то у меня получается Количество успехов превышает размер пространства выборки, как следствие вероятность получается больше единицы что полный абсурд.

    А вообще комбинаторика жестока, несколько лет отсутствия практики именно по комбинаторике и надо же сижу и туплю над абсолютно несложной задачей.
    Написано
  • Какова вероятность появления последовательности?

    А задачка то получается не простая, я с утра не проснувшись как следует (думал элементарная), быстренько решил 2 * comb(n,m) / 2^n. Даже ответ написал, уже удалил, Подставил побольше числа (держа m постоянной) а она не растет а падает, а должно быть наоборот. Нужно думать как решать, задача должна иметь аналитичское решение.
    Написано
  • Как корректно добавить данные в вложенный список в список?

    tonik76,
    a = [1,2,3]
    b = a
    Здесь создается один объект и две ссылки на него и например если вы скажите b.append(4) то у вас и в b и в a будет [1,2,3,4]. Потому что объект у вас один [1,2,3] a и b это ссылки на этот объект.
    что бы создать два разных случая используется либо deepcopy() для глубокого копирования вместе со структурой. либо вы можете например для моего примера использовать
    a = [1,2,3]
    b = list(a)
    или 
    b = a.copy()
    в обоих случаях , будет создано два объекта и a и b это указатели на разные объекты.
    В случаях когда изменяется вложенный список то нужно использовать deepcopy. 
    например 
    a = [1,[1,2]]
    b = copy(a))
    a[1].append(4)
    Все прплыли вложенный лист изменится и в a и в b. D В таком случае нужно использовать только deepcopy. В ответе на вопрос я deepcopy не использовал потому что в контесксте проблемы это необязательно,
    Вы можете например использовать
    a1.append(list(a)) И все равно получите то что вы хотели. Случай где deepcopy обязателен я вам привел пойграйтесь с приведенными примерами и начнете понимать лучше.
    Написано
  • Как корректно добавить данные в вложенный список в список?

    потому что вы перед вкладыванием его каждый раз создаете [] вот таким способом, по этому с листом s и a таких проблем не происходит.
    Написано
  • Выбрать строку из БД по значениям связанной таблицы?

    GeKskill, Окей, мы не понимаем друг друга да и все. ну например
    select *
    from table
    where option=4670 AND option=5492 ;
    Нам должна вернуться пустая таблица, не будет выбран не один ряд потому что это выражение всегда FALSE. Видимо мы говорим о разных вещах и не понимаем друг друга. так что проехали.
    Написано
  • Выбрать строку из БД по значениям связанной таблицы?

    GeKskill, как может быть в одной таблице в одном и том же столбце значение поля быть 4670 и 5492? Как значение отдельно взятой ячейки может быть 4670 и 5492?
    Написано
  • Выбрать строку из БД по значениям связанной таблицы?

    Как выбрать строку в таблице rule, где option=4670 AND option=5492 ?
    Такое логическое выражение всегда False. Может быть все таки option=4670 OR option=5492?
    Написано
  • Как записать hashsum в файл?

    ENigma371, приведите кусок кода где вы именно записываете в файл.
    Написано
  • Как записать hashsum в файл?

    Не очень понятно в чем у вас проблема, судя по вашей записи вы записываете строковое представление объекта
    raw_code_hash А нужно записывать raw_code_hash.hexdigest() на нем не нужно вызывать не str не repr он и так возвращает строку. В чем проблема то?
    with open('myfile.txt','a') as f:
        f.write(raw_code_hash.hexdigest())
    В чем собственно вопрос то.
    Написано
  • Проблема с типом данных пишет unsupported operand type(s) for /: 'int' and 'str' ( Почему программа не может подсчитать сумму с процентом )?

    У вас DaysCar пустая строка, TotalCost, Prc пустые строки, так что код абсолютно не рабочий.
    Написано
  • Как транспонировать таблицу в пандасе так, чтобы даты стали группирующей колонкой над всем, кроме времени?

    LakeForest, Ну отлично что получилось, переформатирование это самая сложная тема в пандас и увы по документации просто учится тяжело. Но без нее никуда, pivot, pivot_table, melt, stack, unstack и все это в комплексе то есть, применяешь эти методы по цепочке, это самое сложное.
    Написано
  • Как транспонировать таблицу в пандасе так, чтобы даты стали группирующей колонкой над всем, кроме времени?

    LakeForest, Значит если у вас больше колонок больше в values нужно вставлять, вы предоставили таблицу попросили можно ли переформатировать подобным образом, если запустить код он работает и полностью выполняет условие задачи.
    Написано
  • Как транспонировать таблицу в пандасе так, чтобы даты стали группирующей колонкой над всем, кроме времени?

    Не совсем понятно что вы все таки хотите сделать, вот вы говорите groupby по дате, в вашей таблице две даты то есть он создаст две группы и на этих группах вы можете запускать аггрегирующие функции. То есть если вы группируете по дате ваш датафрем будет иметь два строки потому что группы две. Если смотреть на желаемый результат то нужно смотреть в сторону reshaping dataframe в документации потому что вы просто переформатируете датафрейм на тех же данных. group by это про аггрегируещее функции а не про перформатирование фрейма. Непонятно что хотите по этому не могу ответить.
    Написано