Ответы пользователя по тегу Математика
  • Проверка гипотезы на случайных (или неизвестного источника) числовых данных в виде ряда. Вопрос организации?

    @rPman
    Вы странно задали вопрос. зачем вам знание о том что последовательность не случайна? Собирайте данные, стройте распределение, считайте его параметры.. все по терверу, это будут качественные оценки ваших данных.

    Вы хотите проверить, верная ли у вас стратегия?
    Самое простое - написать простейшее приложение, которое по котировкам (или даже по свечкам, совет используйте наихудший вариант цент min/max и не забывайте про комиссию брокера/биржи) будет эмулировать работу биржи.

    Затем реализуйте ваши стратегии и тестируйте их с помощью этого приложения и истории данных с биржи. Само собой у вашей стратегии будут параметры, подбирайте их, автоматически (алгоритмов многомерной оптимизации тьма либо тупым перебором)
    Когда то давно игрался с этим, в некоторых случаях даже успешно, вот пример результатов аналитики по двум параметрам, значения выше 100 - профит, нижнияя диаграмма - количество сделок, чем больше тем лучше

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

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

    p.s. почему объем сделок должен быть мал? потому что рынок реагирует на ваши сделки и тем сильнее, чем они больше.
    Ответ написан
    1 комментарий
  • Как по 2-мерной матрице вычислить представляющую ее функцию f(x,y)?

    @rPman
    В универсальном случае, как ни странно, на текущий момент такой функцией являются нейронные сети, на хабре была статья про исследователей, эксперементирующих с восстановлением видео с использованием мизерной функции (нейронной сети, причем там получались считанные килобайты на все видео).
    https://habr.com/post/372337/

    Но задача получения получения этой функции обычно решают алгоритмами обучения, когда есть много данных (в вашем случае это пикселы, необычный вариант на вход координаты на выход цвет) и это жутко требовательно по вычислениям (пока нет в открытом доступе железок для этого, гугл например для себя выпустил), используют видеокарты, а точнее кластеры из них.

    Это не единственный способ, есть более тупо в лоб, перебор самой функции (буквально собирается функция перебором операторов, водных переменных и констант и сравнивается исходный и вычисленный массив данных, константы подбираются с использованием алгоритмов оптимизации), точно помню видел платные пакеты для этого, по ресурсам это еще более затратный процесс но решение по уму получается понятнее, без избыточности, которая присуща нейронным сетям.
    Ответ написан
    Комментировать
  • Как вычислить бонус большой покупки?

    @rPman
    Алгоритм примитивный, вы должны разбить ваш объем сделки на части, равные последовательно лимитам смены цены, т.е. вычислить для каждого лимита итоговый объем меняемой валюты, на каждом шаге из общего объема вычитаете этот лимит, до тех пор пока она не закончится. Затем складываете сумму полученной валюты, и делите на ваш первоначальный объем (ну или наоборот, зависит от того, какая из ваших валют - валюта котировки).
    Ответ написан
    Комментировать
  • Оптимизировать алгоритм поиска кратчайшего пути

    @rPman
    Я не знаю, пробовали ли вы этот вариант, основанный на утверждениях:
    1. полностью вся карта игрового мира изменяется не сильно
    2. обычно карту можно попытаться поделить на зоны или в тупом варианте ячейки (или точнее варианты перемещения между ними), которые так же меняются очень редко и не сильно
    Простейший пример: пусть зоны — просто квадратные ячейки внутри простой сетки, размер ячейки сравним со средним размером препятствия на карте.
    Более сложный пример: многоугольная область поделена на зоны по границам больших препятствий, и перпендикулярно пересекающие типичные пути движения юнитов (грубо говоря магистрали их движения), такую статистику в процессе игры собрать не сложно, сложнее выбрать размер зоны, как враиант — фиксировать количество таких зон от среднего количества юнитов в игре…
    Тогда из соседних ячеек пути перемещения обычно либо в обход через соседние ячейки либо через соединяющую грань между этими двумя.
    Размеры ячеек должны быть подобраны таковыми, чтобы вмещать некоторое (не сильно большое) количество препятствий… десятки или сотни.

    Заранее просчитываем (и постепенно обновляем по мере изменения мира, это не обязательно делать в реальном времени, хотя тогда будут возможны забавные артефакты в движениях) возможные пути перемещения между такими зонами (каждая грань — список пересекаемых зон возможными путями), а в момент, когда необходим точный путь, просчитываем его только в пределах этих ячеек, добавив в алгоритм поиск точки на грани между ячейками, ближайшей к пути (та еще задачка).

    Весь путь считать не актуально, достаточно рассчитывать в пределах 1-2 ячеек вперед (по уже известным вам алгоритмам) и получать ответ, есть ли вообще возможность попасть к цели. Добавить к алгоритму пересчет пути в зависимости от игровых объектов актуальных для расчета коллизий (тут проблема — возможны ли заторы).

    Такие ячейки — это аналог памяти юнитов о том, как можно было бы примерно пройти в соответствующую зону.
    Добавит даже больше реализма, например поведение при заторах, юнит как бы еще не видит что путь впереди закрыт, но послушно топает, пока не попадет в ячейку с этим затором… тогда возникнет событие что путь достигнуть нельзя… так как меду ячейками вариантов перемещения всегда несколько, это создает не один путь перемещения по ячейкам несколько, соответственно временно помечаем что путь закрыт и выбираем следующий.
    Ответ написан
    Комментировать
  • Градиентная заливка триангуляции, готовые библиотеки на JavaScript?

    @rPman Автор вопроса
    Нашел пока это
    gist.github.com/bebraw/507756

    Код заливки трехугольника градиентой по цветам на вершинах
    Ответ написан
    Комментировать