Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Необходимо на графике вывести горизонтально или вертикально (слева/спарва/сверху/снизу, должно задаваться через параметр) последние 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("ырпвоап");

Сам являюсь экспертом по разработке под эту платформу, но работы физически больше чем я могу выполнить, поэтому часть самых простых решил отдать на сторону. В случае чего, могу подсказать чего да как. Если есть уточняющие вопросы - задавайте, отвечу.

Оптимальным кандидатом будет какой-нибудь студент который хочет попробовать пописать торговых роботов (автоматизация торговли на биржах)

7 лет назад
SibVic
Россия
18 лет в сервисе
Был
7 лет назад
  • Похожие заказы
  • Требуетьсяразработать онлайн ПО для транспортной компании. Диспечирование - внесение информации о грузе - календарь на котором должно отмечаться какие грузы разгружаються и какие загружаються на каждый день  Полнофункциональная Бугалтерия - печать и отправка счет-фактур - подсчет оплаты водителям по окончанию рейса - внесение оплат ...

    Закрыт
    7 лет назад
  • привет! Нужно сделать еще две проги 1. Автоматическое добавление по списку сайтов на хостинг (но у них нет апи, какой то эммулятор или типа этого) сейчас заносятся в ручную http://prntscr.com/f3r8s7 2. Автоматическое добавление списка сайтов в яндекс вебмастер, ...

    Закрыт
    7 лет назад
  • Исходные данные: 1.Файл 1 "Обработка для РК" (Произвольное название, формат "xls" или "xlxs" или "csv") - Столбец "Запросы" - Столбец "Статус Мало показов" - другие столбцы 2.Файл 2 "Экспорт РК" (Произвольное название, формат "xls" или "xlxs" или "csv") - Столбец "Фраза ...

    Закрыт
    7 лет назад
  • Добрый день! Нужна утилита преобразующая файлы счет фактуры и торг-12 из формата xls в xml для последующей загрузки в диадок, структура торг-12 и счет фактуры (формат xls) создаваемая в моей программе постоянная, прилагаю пример файлов. ...

    Закрыт
    7 лет назад
  • Отличное знание Exel  Есть готовые работы  Быстрое понимание сути проекта.  Задача не сложная для тех кто знает программу и формулы в ней.  Нужно сделать, грубо говоря лист для расчета стеклянных дверей, вводим определенные данные, напр. размер стекла и выбираем ...

    Закрыт
    7 лет назад
  • Необходимо написать программный продукт (программу) при помощи которой пользователь мог достичь следующих целей: - выставление ордеров на выбранной бирже по нужной паре (в ручном режиме) - снятие ордеров - контроль ордеров - получить сводку (анализ) по торговым парам и ...

    Закрыт
    7 лет назад
  • $100

    Статический анализатор ошибок c++. Нам нужно уметь распознавать всего 15 на наш выбор ошибок.де-то, допустим, кодер ; пропустил, где-то { не закрыл, где-то = не стоит и т.д.   Я прикрепил примерно как должна выглядеть программа   Должно на ...

    Закрыт
    7 лет назад