Работа завершена
Техническое задание
Скрипт сбора данных с торгов, значений индикаторов и сохраняющий их в отдельных файлах.
Разработать скрипт, который будет считывать и писать в файлы формата cvs выбранного таймфрейма:
1. Значения всех параметров с торгов по бумаге на графике по столбцам:
- год;
- месяц;
- день;
- часы;
- минуты;
- секунды;
- день недели (пн.-1, вт.-2, ср.-3, чт.-4, пт.-5, сб.-6, вс.-7);
- квартал (декабрь-февраль=1, март-май=2, июнь-август=3, сентябрь-ноябрь=4);
- цена открытия;
- максимальная цена бара;
- минимальная цена бара;
- цена закрытия;
- объем сделок на баре;
- количество сделок;
2. Значения индикаторов по столбцам, считанные с графика уже после построения (не в момент торгов, т.е. фактические значения). Считываются индикаторы, прикрепленные к графику, их параметры и значения. Значения индикаторов записываются в отдельных столбцах (см. пример файла).
Если на графике есть индикатор zigzag, то помимо значений индикатора, указывать в отдельном столбце:
- buy при переходе из линии вниз в линию вверх (оконечные значения – не значения в момент торговли).
- sell при переходе из линии вверх в линию вниз (оконечные значения – не значения в момент торговли).
Если на графике есть индикатор super-signals-channel, то помимо значений индикатора, указывать в отдельном столбце:
- buy при стрелке вверх (оконечные значения – не значения в момент торговли).
- sell при стрелке вниз (оконечные значения – не значения в момент торговли).
Робот должен считывать с графика все значения индикаторов (с параметрами, заданными пользователем на графике) для текущего тайм фрейма на истории (начиная с выбранной даты), что загружена в Терминал.
Обязательна поддержка индикаторов:
Функция |
Возвращает значение индикатора |
Accelerator Oscillator |
|
Accumulation/Distribution |
|
Average Directional Index |
|
Alligator |
|
Awesome Oscillator |
|
Average True Range |
|
Bears Power |
|
Bollinger Bands® |
|
Bulls Power |
|
Commodity Channel Index |
|
Пользовательский индикатор |
|
DeMarker |
|
Envelopes |
|
Force Index |
|
Fractals |
|
Gator Oscillator |
|
Ichimoku Kinko Hyo |
|
Market Facilitation Index by Bill Williams |
|
Momentum |
|
Money Flow Index |
|
Moving Average |
|
Moving Average of Oscillator (MACD histogram) |
|
Moving Averages Convergence-Divergence |
|
On Balance Volume |
|
Parabolic Stop And Reverse System |
|
Relative Strength Index |
|
Relative Vigor Index |
|
Standard Deviation |
|
Stochastic Oscillator |
|
Williams' Percent Range |
|
zigzag |
ZigZag |
super-signals-channel |
super-signals-channel |
3. Значения всех параметров торгов по заданной бумаге (если задана).
Данные должны считываться того же таймфрейма, что и по основной бумаге.
- цена открытия;
- максимальная цена бара;
- минимальная цена бара;
- цена закрытия;
- объем сделок на баре;
- количество сделок.
Как должно работать:
1. 1. Выбирается ценная бумага.
2. 2. Строятся график бумаги с выбранным таймфреймом (задает пользователь).
3. 3. Привязываются индикаторы к бумаге (параметры задает пользователь).
4. 4. Выставляются параметры скрипта. В параметрах у скрипта:
- дата, начиная с которой, начинать выгрузку данных (или конкретная дата или ALL – на всей истории);
- писать значения параметров торгов только с текущего таймфрейма или всех (если выбирается текущий таймфрейм, то все значения текущего таймфрейма пишутся только с графика в файл cvs на лист заданной бумаги (пример:RTS H1), а если все значения, то пишутся данные со всех таймфреймов на разные листы (листы: RTS M1, RTS M5, RTS M15, RTS M30, RTS H1,…) ).
- дополнительная бумага у которой считать значения (NULL – если не задана и название бумаги, если задана);
- сохранять данные в файлы cvs (по дням, месяцам, кварталам, годам, за всю историю). Соответственно, в зависимости от выбора, как только закончился период, данные пишутся в новый файл cvs (название файла должно соответствовать выбранной бумаге и с датами начала записи и конца и если задана доп. Бумага, то в конце приписывается вторая бумага, например: RTSI 2015.05.01-2019.06.01 GAZR);
- разделитель разрядов (точка или запятая);
- папка куда сохранять cvs данные.
5. 5. Запускается робот.
6. 6. Робот считывает бумагу, текущий таймфрейм, список индикаторов, все данные бумаги, торгов, индикаторов и записывает их в файлы CVS.
1. 7. По окончании записи выдает сигнал о завершении (звуком и заметным текстом на графике: ВЫГРУЗКА ЗАВЕРШЕНА). В случае возникновения ошибок, нужно возвращать номер ошибки.
Предоставляется разработчиком:
1) Скрипт записи данных в файлы cvs в откомпилированном виде.
2) Исходный код скрипта записи данных в файлы cvs для компиляции без ошибок (комментарии к функциям обязательны).
3) Пример записанного файла cvs.
ПРИМЕР ИТОГОВОГО ФАЙЛА .csv во вложении.