Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Генератор свечек форекса
|
|||
|---|---|---|---|
|
#18+
Взяли заказ на написание эмулятора форекса. Написали генератор свечек, но что-то по внешнему виду как-то неестественно выглядят. Подскажите, может, кто сталкивался, как сгенерировать поток цен, более-менее похожий на реальный форекс. Суть задачи такая. Форекс - это торговля валютой. Каждую секунду заключаются сотни и тысячи сделок. Например, пусть за 1 секунду было совершено 15 сделок по ценам: 105, 106, 104, 103, 108, 109, 112, 106, 105, 103, 100, 102, 107, 109, 108 В этом случае: цена открытия свечи = 105 цена закрытия свечи = 108 самая высокая цена за прошедшую секунду = 112 самая низкая цена за прошедшую секунду = 100 Сама свеча будет белая (растущая), потому что цена закрытия выше, чем цена открытия. Вот и получается, что пишем генератор, который генерит последовательность из 4-х цифр: открытие, закрытие, хай и лоу. А будучи составлены вместе получается типичный график форекса. Фигово то, что получившийся генератор генерит какой-то противоестественный график. Заказчик говорит, что на внешний вид не очень похоже на реальный форекс. Мы смогли улучшить картинку за счет того, что принудительно сделали цену открытия последующей свечи равной цене закрытия предыдущей свечи. Но все равно как-то выглядит ненатурально. Может есть идеи, как построить алгоритм, чтобы итоговая картинка получалась более-менее похожей на реальный форекс? Разумеется, это задача не на отрисовку свечей, не на работу с графикой, а на генерацию комплектов чисел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2017, 13:30 |
|
||
|
Генератор свечек форекса
|
|||
|---|---|---|---|
|
#18+
Наверное, заказчик хочет разглядеть там тренды, волны Эллиота и прочие магические артефакты из мира технического анализа. Возьмите цены за последние несколько лет и гоняйте их со случайного места. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2017, 14:01 |
|
||
|
Генератор свечек форекса
|
|||
|---|---|---|---|
|
#18+
фид цен поищите в сети! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2017, 14:03 |
|
||
|
Генератор свечек форекса
|
|||
|---|---|---|---|
|
#18+
LumixМожет есть идеи, как построить алгоритм, чтобы итоговая картинка получалась более-менее похожей на реальный форекс? Разумеется, это задача не на отрисовку свечей, не на работу с графикой, а на генерацию комплектов чисел. Я не разбираюсь в форекс. Но, может, подойдет генератор "первого" порядка: На основании реальных данных построить распределение вероятности изменения цены сделки от предыдущей, потом генерировать новую случайную цену в зависимости от предыдущей с тем же распределением изменения. Провести некоторое (случайное) число таких генераций, а из них получить минимальную, максимальную и пр. цены? Если не устроит, можно использовать генератор второго порядка... По хорошему, нужно придумать правильный критерий "похожести" сгенерированных данных на реальные, а можно попробовать нейросети (генератор и дискриминатор). А сейчас как генератор сделан? Цена закрытия и отрытия должны совпадать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2017, 14:17 |
|
||
|
Генератор свечек форекса
|
|||
|---|---|---|---|
|
#18+
LumixВот и получается, что пишем генератор, который генерит последовательность из 4-х цифр: открытие, закрытие, хай и лоу. А будучи составлены вместе получается типичный график форекса. Фигово то, что получившийся генератор генерит какой-то противоестественный график. Генератор генерирует случайные числа? Тогда вам надо разобраться, какому распределению вероятностей принадлежат реальные потоки цен. Берете нечто реальное и строите график распределения вероятностей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2017, 18:26 |
|
||
|
Генератор свечек форекса
|
|||
|---|---|---|---|
|
#18+
Alexander A. SakНаверное, заказчик хочет разглядеть там тренды, волны Эллиота и прочие магические артефакты из мира технического анализа. Возьмите цены за последние несколько лет и гоняйте их со случайного места. Заказчик за такое денег не даст. Скажет, что мы смухлевали. Он заказывал генератор, а мы ему исторические данные подсовываем. Нехорошо так делать. Неэтично. S.G.Тогда вам надо разобраться, какому распределению вероятностей принадлежат реальные потоки цен. Совет, конечно, хороший. :-) Но в нашей команде такую задачу осилить некому. Это надо в математике шибко шарить. x1ca4064Я не разбираюсь в форекс. У нас тоже никто не разбирается. Мы взяли задачу как программисты. Я думал, что можно просто рандомом генерить цифры. Оказалось, что заказчику это почему-то не подходит. x1ca4064По хорошему, нужно придумать правильный критерий "похожести" сгенерированных данных на реальные, а можно попробовать нейросети (генератор и дискриминатор). Проще отказаться от заказа. Мы программисты, а не финансовые аналитики, не статистики и не математики. x1ca4064А сейчас как генератор сделан? Просто рандомом числа генерятся. open = open ? rand(100, 200) : close; close = rand(100, 200); high = rand (max(open, close), max(200, open, close)); low = rand (min(open, close), min(100, open, close)); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2017, 19:35 |
|
||
|
Генератор свечек форекса
|
|||
|---|---|---|---|
|
#18+
генерите случайный гауссовый шум от -1 до 1 суммируете нарастающим итогом потом режете на кусочки по 100 приращений и на каждом считаете первое-макс-мин-последнее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2017, 19:54 |
|
||
|
Генератор свечек форекса
|
|||
|---|---|---|---|
|
#18+
LumixПроще отказаться от заказа. Мы программисты, а не финансовые аналитики, не статистики и не математики. Отказывайтесь пока не поздно. С таким критерием -- "что-то оно неестественно выглядит" -- можно мозги клевать вечно и программистам и математикам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2017, 20:02 |
|
||
|
Генератор свечек форекса
|
|||
|---|---|---|---|
|
#18+
деятельгенерите случайный гауссовый шум от -1 до 1 суммируете нарастающим итогом потом режете на кусочки по 100 приращений и на каждом считаете первое-макс-мин-последнее Блин, вот бы ваш совет еще на русский перевести, вообще было бы замечательно... Если серьзено. Я не понял, какие конкретно программные операции выполнять, чтобы выполнить ваш совет. Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. В общем, не смог осилить перевод вашего совета на практику. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2017, 20:09 |
|
||
|
Генератор свечек форекса
|
|||
|---|---|---|---|
|
#18+
Lumix, может наведёт на мысль, очень хорошая функция: https://geektimes.ru/post/294963/ гауса можно нагенерить по простому если "Преобразование Бокса — Мюллера" Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. AEngine.flat() здесь можно взять как (1-random()) PS: генерить случайные числа случайно - нельзя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2017, 23:38 |
|
||
|
Генератор свечек форекса
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan), статью посмотрел. Для меня сложновато-то :-( Под ваш алгоритм нашел готовую функцию на хабре Но это лишь генератор случайных чисел. Как его превратить в свечные комплекты [open, high, low, close] я ума не приложу Может я что-то не так понимаю, но по-моему это просто очередной навороченный rand() ... Зачем его самому разрабатывать, если он и так из коробки идет? Math.random(); Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. PS. Для тех, кто не умеет пользоваться яваскриптом, то сообщаю, что достаточно в браузере нажать F12, откроется командная строка, туда просто достаточно скопипастить этот кусок и функция g.next() будет работать генеря новые рандомные значения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2017, 00:16 |
|
||
|
Генератор свечек форекса
|
|||
|---|---|---|---|
|
#18+
LumixS.G.Тогда вам надо разобраться, какому распределению вероятностей принадлежат реальные потоки цен. Смешно. Если бы цены имели четкое математическое обоснование, не были бы нужны всяческие программы теханализа 1.Возьмите минимум и максимум в качестве верхней и нижней границы коридора цен, затем интервал времени (например, день) 2.В заданном с заданным шагом (например каждый час в день) сгенеририруйте случайным распределением точки 3.По полученным точкам сделайте квадратичную или бикубическую интерполяцию 4.Далее по полученной функции в качестве аргументов подаете шаги свечи, получая значение 5. Опять таки, случайным распределением получаете минимум и максимум свечи относительно полученного значения 6. Нормальным распределением получаете цены открытия и закрытия. То есть в основном они где то рядом, но иногда обрыв высокий. Естественно, эти цены не могут превышать минимум и максимум ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2017, 00:49 |
|
||
|
Генератор свечек форекса
|
|||
|---|---|---|---|
|
#18+
Суть форекса можно выразить житейским наблюдением. "Сложно найти чёрную кошку в тёмной комнате. Особенно, когда кошки в комнате нет." Большая часть "проигрывающих" трейдеров на форексе хотят увидеть алгоритм. Сложный, запутанный, но математически верный алгоритм. А его нет, есть random. Как бы Вашу задачу реализовал я. Два random курса: A. небольшие колебания в секунде, полный random; B. большие колебания раз в несколько дней, random с условиями. Два параметра новостей, 0 (плохая новость) и 1 (хорошая новость): C. ожидают новости; D. реальная новость. Логично, что если C == 1, то B скорее статистически играет на плюс и наоборот. Но это не 100% гарантия, скорее, настраиваемая вероятность. Две операции: E. (трейдеры продают); F. (трейдеры покупают). Логично, чем больше новостей, тем операций проводится больше. При этом при высоком курсе, некоторая часть трейдеров в основном продаёт, а при низком, в основном покупает. Чем больше продают -- тем больше вероятность положительной динамики курса в B и A и наоборот. Теперь следите за руками. Абсолютно не важно какие и сколько параметров вы придумаете, лишь бы в них какая то логика была. Важно, чтобы Ваш покупатель увидел эти параметры, мог поиграть с ними в настройках в реальном времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2017, 05:20 |
|
||
|
Генератор свечек форекса
|
|||
|---|---|---|---|
|
#18+
авторЧем больше продают -- тем больше вероятность положительной динамики курса в B и A и наоборот. Чем больше покупают -- тем больше вероятность положительной динамики курса в B и A и наоборот. Ошибся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2017, 05:23 |
|
||
|
Генератор свечек форекса
|
|||
|---|---|---|---|
|
#18+
Lumixkealon(Ruslan), статью посмотрел. Для меня сложновато-то :-( Под ваш алгоритм нашел готовую функцию на хабре Но это лишь генератор случайных чисел. Как его превратить в свечные комплекты [open, high, low, close] я ума не приложу Может я что-то не так понимаю, но по-моему это просто очередной навороченный rand() ... Зачем его самому разрабатывать, если он и так из коробки идет? Math.random(); уже всё изобретено до нас случайный числа никак не случайные генератор случайного числа имеет свои характеристики, это: диапазон (a,b) и функция плотности вероятности у Math.random() : диапазон [0,1), функция распределения f(x) = 1 у нормального распределения большинство измерений физических величин подчиняются гаусову распределению, по этому вам и посоветовали его PS: кроме того, учтите, что Math.random() никак не бесконечный и через какое-о время числа начнут повторяться, если такое случится, то придётся искать другие алгоритмы (например в HEP есть) PS2: "Преобразование Бокса — Мюллера" очень плохое, так как "жрёт" очень много случайных чисел, в современных либах используется интегральный метод вычисления гаусова распределения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2017, 09:18 |
|
||
|
Генератор свечек форекса
|
|||
|---|---|---|---|
|
#18+
Lumix, Попробуйте суперпозицию нескольких функций. Некоторые из которых Не случайные. Например колебательные процессы с сутошным и сезонным Периодом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2017, 10:49 |
|
||
|
Генератор свечек форекса
|
|||
|---|---|---|---|
|
#18+
maytonLumix, Попробуйте суперпозицию нескольких функций. Некоторые из которых Не случайные. Например колебательные процессы с сутошным и сезонным Периодом.в пике это как раз и есть "монстр" из статьи https://geektimes.ru/post/294963/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2017, 10:53 |
|
||
|
Генератор свечек форекса
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)maytonLumix, Попробуйте суперпозицию нескольких функций. Некоторые из которых Не случайные. Например колебательные процессы с сутошным и сезонным Периодом.в пике это как раз и есть "монстр" из статьи https://geektimes.ru/post/294963/ Спасибо. Очень хорошая статья. Но нам это не грозит. Я предлагаю суперпозицию конечного числа шумящих по Гауссу и непрерывных гармонических Функций для того чтобы автор реализовал свою задачу дёшево и сердито. Разрыв производной в точке ( даже если бы он был) не нарушает условий генерации свечек. Нигде нет сведений о том чтобы они должны быть дифференцируемых в точке. Да и сами Оригинальные данные дискретных по своей природе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2017, 12:45 |
|
||
|
Генератор свечек форекса
|
|||
|---|---|---|---|
|
#18+
mayton, видимо не так выразился, эта функция связана с фракталами - её поведение очень похоже на реальные объекты, её можно "оцифровать" в любом интервале и с любой точностью, она не превратится в "гладкую" функцию и эти данные брать для изготовления свечек т.е. нужно две такие функции: цена, объём ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2017, 13:22 |
|
||
|
Генератор свечек форекса
|
|||
|---|---|---|---|
|
#18+
Я тоже думал о фракталах. Но по сути автору надо взять образец реальных данных и создать случайный процесс с похожими характеристиками. По начальные/центральные моменты и прочее. По сути повторить. А фрактал это или колебательный процесс - не суть важно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2017, 19:56 |
|
||
|
Генератор свечек форекса
|
|||
|---|---|---|---|
|
#18+
В общем, не смог осилить перевод вашего совета на практику. а дальше надо порезать этот ряд на кусочки по Х отсчетов и на каждом посчитать первео-макс-мин-последнее - это и будут свечи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2017, 20:18 |
|
||
|
Генератор свечек форекса
|
|||
|---|---|---|---|
|
#18+
пс - вот примеры кода даже есть https://stackoverflow.com/questions/8597731/are-there-known-techniques-to-generate-realistic-looking-fake-stock-data но с такой подготовой конечно лучше отказаться от заказа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2017, 20:21 |
|
||
|
Генератор свечек форекса
|
|||
|---|---|---|---|
|
#18+
В итоге сегодня сдали решение заказчику. Рассказываю, как была решена задача. 1) Взяли реальные свечки М30 по евро-доллару, фунто-доллару и долларо-йене за 5 лет. 2) Распилили на куски по 16 свечек. 3) Каждый кусок перевели с коэффициенты Код: javascript 1. 2. Как строится каждый график 1) перед каждым построением полученный массив шаффлится и рандомом выбираются кусочки для финала Код: javascript 1. 2. 2) строим корректор волатильности скользящей средней с шагом 21 по случайным наборам -50, 100 Код: javascript 1. 2. 3) сшиваем кусочки в общую ленту свечек, корректируя на волатильность Код: javascript 1. 2. 3. 4. 5. 6. 7. Написал заказчику в письме, что это максимум, чем мы можем ему помочь. Если ему не нравится, пусть ищет других исполнителей. Заказчик работу принял. Сказал, что для его целей этого 100% хватит. PROFIT!! PS. Thank you всем, кто оказал посильную помощь советами. Благодаря вашей помощи я понял, что искать математическое решение этой задачи - это прострел ноги самим себе, поэтому лучше решить эту задачу стандартными быдлокодерскими методами, что и было сделано. И заказчик доволен и мы денег заработали на ровном месте. Одним словом, гуд, very good! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2017, 20:39 |
|
||
|
Генератор свечек форекса
|
|||
|---|---|---|---|
|
#18+
Arm79Lumixпропущено... Смешно. Если бы цены имели четкое математическое обоснование, не были бы нужны всяческие программы теханализа Очень смешно. Знание конкретного закона распределения вероятностей для данного случайного процесса, никак не дает возможности определить следующее значение реального процесса. Простой пример: спорт-лото, 6/49. Вероятность выпадания каждого номера известна, распределение вероятности по времени для одного числа - тоже известно. Как определить следующую комбинацию? Никак. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2017, 22:15 |
|
||
|
Генератор свечек форекса
|
|||
|---|---|---|---|
|
#18+
Lumix1) Взяли реальные свечки М30 по евро-доллару, фунто-доллару и долларо-йене за 5 лет. 1) перед каждым построением полученный массив шаффлится и рандомом выбираются кусочки для финала Категорически нельзя ничего шаффлить. Вы уничтожаете автокореляцию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2017, 23:11 |
|
||
|
|

start [/forum/topic.php?fid=16&fpage=17&tid=1340229]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
104ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 188ms |

| 0 / 0 |
