Files
QuikPy/Examples/01 - Connect.py
T

34 lines
2.8 KiB
Python

from QuikPy import QuikPy # Работа с QUIK из Python через LUA скрипты QuikSharp
def PrintCallback(data):
"""Пользовательский обработчик события"""
print(data) # Печатаем полученные данные
if __name__ == '__main__': # Точка входа при запуске этого скрипта
qpProvider = QuikPy() # Вызываем конструктор QuikPy с подключением к локальному компьютеру с QUIK
# qpProvider = QuikPy(Host='<Ваш IP адрес>') # Вызываем конструктор QuikPy с подключением к удаленному компьютеру с QUIK
print(f'Подключено к терминалу QUIK по адресу: {qpProvider.Host}:{qpProvider.RequestsPort},{qpProvider.CallbacksPort}')
# QuikPy - Singleton класс. Будет создан 1 экземпляр класса, на него будут все ссылки
qpProvider2 = QuikPy() # QuikPy - это Singleton класс. При попытке создания нового экземпляра получим ссылку на уже имеющийся экземпляр
# qpProvider2 = QuikPy(Host='<Ваш IP адрес>') # Вызываем конструктор QuikPy с подключением к удаленному компьютеру с QUIK
print(f'Экземпляры класса совпадают: {qpProvider2 is qpProvider}')
# Проверка соединения
print(f'Терминал QUIK подключен к серверу: {qpProvider.IsConnected()["data"] == 1}')
print(f'Отклик QUIK на команду Ping: {qpProvider.Ping()["data"]}') # Проверка работы скрипта QuikSharp. Должен вернуть Pong
# Сервисные функции
print(f'Дата на сервере: {qpProvider.GetInfoParam("TRADEDATE")["data"]}')
print(f'Время на сервере: {qpProvider.GetInfoParam("SERVERTIME")["data"]}')
msg = 'Hello from Python!'
print(f'Отправка сообщения в QUIK: {msg}{qpProvider.MessageInfo(msg)["data"]}') # Проверка работы QUIK. Сообщение в QUIK должно показаться как информационное
# Просмотр изменений параметров
qpProvider.OnParam = PrintCallback # Текущие параметры изменяются постоянно. Будем их смотреть, пока не нажмем Enter в консоли
# Выход
input('Enter - выход')
qpProvider.CloseConnectionAndThread() # Перед выходом закрываем соединение и поток QuikPy из любого экземпляра