Files
QuikPy/Examples/03 - Ticker.py
2021-02-15 11:06:30 +05:00

39 lines
2.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from datetime import datetime
from QuikPy import QuikPy # Работа с Quik из Python через LUA скрипты QuikSharp
if __name__ == '__main__': # Точка входа при запуске этого скрипта
# qpProvider = QuikPy() # Вызываем конструктор QuikPy с подключением к локальному компьютеру с QUIK
qpProvider = QuikPy(Host='192.168.1.7') # Вызываем конструктор QuikPy с подключением к удаленному компьютеру с QUIK
firmId = 'MC0063100000' # Фирма
classCode = 'TQBR' # Класс тикера
secCode = 'GAZP' # Тикер
# firmId = 'SPBFUT' # Фирма
# classCode = 'SPBFUT' # Класс тикера
# secCode = 'SiH1' # Для фьючерсов: <Код тикера><Месяц экспирации: 3-H, 6-M, 9-U, 12-Z><Последняя цифра года>
# Данные тикера и его торговый счет
securityInfo = qpProvider.GetSecurityInfo(classCode, secCode)["data"]
print(f'Информация о тикере {classCode}.{secCode} ({securityInfo["short_name"]}):')
print(f'Валюта: {securityInfo["face_unit"]}')
print(f'Кол-во десятичных знаков: {securityInfo["scale"]}')
print(f'Лот: {securityInfo["lot_size"]}')
print(f'Шаг цены: {securityInfo["min_price_step"]}')
print(f'Торговый счет для тикера класса {classCode}: {qpProvider.GetTradeAccount(classCode)["data"]}')
# Свечки
print(f'5-и минутные свечки {classCode}.{secCode}:')
bars = qpProvider.GetCandlesFromDataSource(classCode, secCode, 5, 0)["data"] # 5 минут, 0 = все свечки
print(bars)
# print(f'Дневные свечки {classCode}.{secCode}:')
# bars = qpProvider.GetCandlesFromDataSource(classCode, secCode, 1440, 0)['data'] # 1440 минут = 1 день, 0 = все свечки
# dtjs = [row['datetime'] for row in bars] # Получаем исходники даты и времени начала свчки (List comprehensions)
# dts = [datetime(dtj['year'], dtj['month'], dtj['day'], dtj['hour'], dtj['min']) for dtj in dtjs] # Получаем дату и время
# print(dts)
# Выход
qpProvider.CloseConnectionAndThread() # Перед выходом закрываем соединение и поток QuikPy из любого экземпляра