Побудова графіка спреду у терміналі QUIK
У деяких торгових стратегіях використовуються ціни кількох активів. Скажімо, можна торгувати ф'ючерсом MX, дивлячись на ціни ф'ючерсів MX, SR GZ і виконуючи над ними деякі арифметичні перетворення. Наприклад, побудувати графік виду Spread := price(MX) - 5 * price(SR) - 5 * price(GZ) - 50000 за поточними котируваннями і будувати торгові ідеї на його основі.
Кому цікава візуалізація подібних спредів у терміналі QUIK 7-ї версії за допомогою lua-скриптів, ласкаво просимо під кат. Вважатимемо, що у нас є графік основного інструменту (MXH7) та графіки двох додаткових інструментів (SRH7, GZH7). Ці графіки вже побудовані в терміналі, встановлений однаковий таймфрейм (скажімо, 1 хвилина) і ним ідентифікатори MXH7_1min, SRH7_1min, GZH7_1min.
Створимо в папці установки терміналу підпапку LuaIndicators і помістимо туди скрипт SpreadIndicator.lua, наведений наприкінці посту (виділіть код, скопіюйте в блокнот і збережіть у файл із вказаним ім'ям). Додамо на графік MXH7 індикатор "SpreadIndicator" і задаємо йому параметри:
- tag1 - мітка графіка, звідки береться ціна додаткового інструменту 1 (у нашому випадку SRH7_1min);
- tag2 - мітка графіка, звідки береться ціна додаткового інструменту 2 (у нашому випадку GZH7_1min);
- коефіцієнти k, k1, k2, a, якими обчислюється спред spread.
Графік спреду оновлюватиметься під час оновлення графіка основного інструменту.
Код нескладно модифікувати для іншої кількості інструментів і формули для розрахунку спреду (див. функцію getSpread). Це гарна вправа для підвищення рівня володіння навичками програмування на lua.