Избранное трейдера Anest

Примите участие в хакатоне «Финам Trade API» — соревновании по созданию торговых систем на основе открытого API «Финама». Призовой фонд конкурса — 450 000 рублей.
К участию приглашаются все, кто заинтересован в разработке финтех-продуктов — алготрейдеры, практикующие разработчики и студенты профильных ВУЗов.
В конкурсе представлено две категории: «Алгоритмические торговые системы (торговые роботы)» и «Неторговые разработки на основе Trade API».
В рамках каждой категории участникам предстоит создать ПО для компьютера или мобильного устройства, способное выполнять торговые и неторговые функции.
В каждой категории по две номинации: «Лучший пример самописного ПО для ПК» и «Лучший пример самописного ПО для мобильных устройств».
Приз за победу в номинациях — 100 000 рублей. Также предусмотрено вознаграждение за самое оригинальное использование Trade API — 50 000 рублей.
Заявки и решения принимаются с 10 апреля по 10 мая 2023 года.
Ниже представлен код двух способов построения дивергенции. Один с помощью функции корреляции, другой с помощью функции пивот.
ta.correlation() — Коэффициент корреляции. Описывает степень, на которую две серии стремятся отклониться от своих ta.sma значений.

7 — передаем значение встроенной функции ta.rsi в переменную rsi
8 — задаем коэффициент корреляции, на который будет реагировать индикатор
9 - задаем расчетный период корреляции
11 — переносим значение встроенной функции корреляции ta.correlation в переменную correlation
14 — задаем цвет направления корреляции, изначально бесцветный
15 — с помощью тернарного оператора задаем два условия дивергенции типа Strong. Первое условие медвежьей дивергенции, цвет будет красный, второе — бычьей и цвет зеленый. В случае не выполнения обоих условий цвет будет серый.
В этой статье расскажу как с помощью функции timestamp, а также переменной time и time_close можно задать диапазон времени от какой-либо заданной даты до текущей даты и как задать диапазон времени между двумя заданными датами.
time — встроенная переменная, содержащая время текущего бара в UNIX формате. Это количество миллисекунд, прошедших с полуночи (00:00:00 UTC) 1 января 1970 года.
time_close — время закрытия текущего бара в UNIX формате. Это количество миллисекунд, прошедших с полуночи (00:00:00 UTC) 1 января 1970 года. На графиках, основанных на цене, значение этой переменной равно na.
timestamp() - встроенная функция, возвращает UNIX-время для указанной даты и времени.

В этой части кода задаем точки времени point of time через timestamp(), указав год, месяц, день, час и минуты для каждой из них.


//=== Регистрация реализованных в dll функций, чтобы они стали "видимы" для Lua ================================//
static struct luaL_reg ls_lib[] = {
{ "TestFunc", forLua_TestFunc }, // из скрипта Lua эту функцию можно будет вызывать так: QluaCSharpConnector.TestFunc(); здесь можно указать любое другое название
{ NULL, NULL }
};
//=== Регистрация названия библиотеки, видимого в скрипте Lua ==================================================//
//extern "C" LUALIB_API int luaopen_connector(lua_State *L) {
// luaL_openlibs(L, "connector", ls_lib, 0);
// return 0;
//}
extern "C" LUALIB_API int luaopen_connector(lua_State *L) {
lua_newtable(L);
luaL_setfuncs(L, ls_lib, 0);
lua_pushvalue(L, -1);
lua_setglobal(L, "connector");
return 0;
}
