Написать индикатор для FXCM TradeStation (lua/JavaScript)
291 UAHНеобходимо на графике вывести горизонтально или вертикально (слева/спарва/сверху/снизу, должно задаваться через параметр) последние N (задается через параметр) изменений цены в пунктах (то есть текущая-предыдущая/минимальное изменение (так называемый "пункт")). То есть вывод будет +5 -7 -1 +2 и т.д.
====
Есть платформа для торговли на Forex - FXCM TradeStation. В ней на графики можно накладывать индикаторы технического анализа (к примеру - скользящая средняя, регрессия и т.д.). Эти индикаторы можно писать самому на языке Lua или JavaScript (но примеры привожу на Lua).
Если вкратце о структуре скрипка на Lua под эту платформу (чтобы примерно понимать, сколько работы там): есть несколько обязательных функций которые надо написать, это:
1) function Init() - выполняется один раз при старте платформы, в этой функции по сути составляется описание индикатора:
indicator:name("Figurelli Series indicator");
indicator:description("Figurelli Series indicator"); -- как называется,
indicator:requiredSource(core.Bar); -- тип принимаемых данных (один потом core.Tick или core.Bar, то есть несколько потомков со значениями за определенный промежуток времени (значения на начало и конец периода, минимум и максимум в течении этого промежутка времени)
indicator:type(core.Oscillator); -- тип выдаваемых значений (core.Indicator, то есть диапазон значений совпадает с источником, core.Oscillator, то есть у него свой диапазон выдаваемых значений)
indicator.parameters:addInteger("series", "series", "series", 36);
indicator.parameters:addColor("clr", "Color", "Color", core.rgb(0, 0, 255)); -- парамиетры которые пользователь может задавать
2) function Prepare() -- функция вызывается когда пользователь накладывает индикатор на график. Тут мы должны инициализировать все что нам нужно для работы. Тут у нас имеются
source = instance.source; --источник данных на основе которого мы должны считать. Зависит от того что мы указали в indicator:type.
series=instance.parameters.series; --указанные пользователем параметры
local name = profile:id() .. "(" .. source:name() .. ", " .. instance.parameters.series .. ")";
instance:name(name); --указываем имя для легенды на графике
FS = instance:addStream("FS", core.Bar, name .. ".FS", "FS", instance.parameters.clr, first); -- создаем выходные потоки (результат того что мы посчитаем
3) function Update(period, mode) --эта функция при старте вызывается для каждого значения которое нам надо посчитать (по индексу period). То есть period будет 0, 1... и до source:size() - 1. Потом он также будет вызываться при каждом изменении source
FS[period]=457348957;--и мы должны произвести какие-нибудь манипуляции и записать результат.
Также в prepare мы можем сказать что сами себя будем отрисовывать (добавить строчку instance.ownerDrawn(true);)
Тогда будет вызываться опциональная функция
4) function Draw(stage, context)
В ней через context можно создавать ручки, кисти, шрифты (аналог GDI объектов), и рисовать примитивы (линии, текст, квадраты и прочее).
Вся документация для разработки есть (на английском), примеров тоже куча (гуглите fxcodebase). Зачастую можно найти похожий каркас и подправить внутрянку (но наверное в этом случае проще с нуля). Дебаггера для платформы толкового нет (проще дебажить трейсами: core.host:trace("ырпвоап");
Сам являюсь экспертом по разработке под эту платформу, но работы физически больше чем я могу выполнить, поэтому часть самых простых решил отдать на сторону. В случае чего, могу подсказать чего да как. Если есть уточняющие вопросы - задавайте, отвечу.
Оптимальным кандидатом будет какой-нибудь студент который хочет попробовать пописать торговых роботов (автоматизация торговли на биржах)
Актуальні фриланс-проєкти в категорії Javascript
Додавання нового функціоналу до існуючого проекту (ReactJS)Добрий день! Шукаємо розробника ReactJS, щоб допомогти нам додати новий функціонал до існуючої платформи. Потрібно сверстати нові сторінки, і підключити до API. З дизайном нових сторінок, можна ознайомитися за посиланням ТУТ API готовий. Деталі роботи з API вже обговоримо з… Javascript, Веб-програмування ∙ 9 ставок |
Написати розширення для Google Chrome
849 UAH
Потрібен розширення для Google Chrome (фейковий прогноз наступного числа або кольору для казино) Потрібно, щоб запам'ятовувалися останні введені цифри і при натисканні кнопки видається випадкове число Також потрібно, щоб запам'ятовувався введений колір і при натисканні кнопки… Javascript, Веб-програмування ∙ 4 ставки |
Виправити лендінг для Google Ads, очистити скомпрометовані посиланняПотрібен спеціаліст, щоб очистити скомпрометовані посилання з сайту https://armadom.com.ua/ (лендінг робився на вебфлоу) Підтримка гугла пише:очистити скомпрометовані посилання, додані нижче: cdnmetric[.]com/ Пишіть, хто вже стикався з таким і знає, як виправити, щоб… Javascript, Веб-програмування |
Laravel + VueJS + InertiaJS ``` Ларавель + В'юДжеС + ІнерціяДжеСGood day, the project is written, it is working and ready to launch. Except for one nuance. SSR(Server Side Rendering) works very slowly, when launching a bot to check the load - the site crashes after 3-4 minutes. If you restart SSR during the check, it works but very slowly.… Javascript, PHP ∙ 2 ставки |
Розробка програмного забезпечення для створення Open Book в мережі Solana
4200 UAH
Під час створення взаємозамінних токенів (SPL token) в мережі Солана необхідно автоматизувати процес створення Open Book для токену та прискорити його за рахунок підвищення комісій за транзакцію. Функції програмного забезпечення: - Створювати Open Book - Встановлювати ліміт… Java, Javascript |