По умолчанию подключение к локальному компьютеру с Квиком. Оформительские правки
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
from QuikPy import QuikPy # Работа с Quik из Python через LUA скрипты QuikSharp
|
from QuikPy import QuikPy # Работа с QUIK из Python через LUA скрипты QuikSharp
|
||||||
|
|
||||||
|
|
||||||
def PrintCallback(data):
|
def PrintCallback(data):
|
||||||
@@ -6,24 +6,24 @@ def PrintCallback(data):
|
|||||||
print(data) # Печатаем полученные данные
|
print(data) # Печатаем полученные данные
|
||||||
|
|
||||||
if __name__ == '__main__': # Точка входа при запуске этого скрипта
|
if __name__ == '__main__': # Точка входа при запуске этого скрипта
|
||||||
# qpProvider = QuikPy() # Вызываем конструктор QuikPy с подключением к локальному компьютеру с QUIK
|
qpProvider = QuikPy() # Вызываем конструктор QuikPy с подключением к локальному компьютеру с QUIK
|
||||||
qpProvider = QuikPy(Host='192.168.1.7') # Вызываем конструктор QuikPy с подключением к удаленному компьютеру с QUIK
|
# qpProvider = QuikPy(Host='<Ваш IP адрес>') # Вызываем конструктор QuikPy с подключением к удаленному компьютеру с QUIK
|
||||||
print(f'Подключено к терминалу QUIK по адресу: {qpProvider.Host}:{qpProvider.RequestsPort},{qpProvider.CallbacksPort}')
|
print(f'Подключено к терминалу QUIK по адресу: {qpProvider.Host}:{qpProvider.RequestsPort},{qpProvider.CallbacksPort}')
|
||||||
|
|
||||||
# QuikPy - Singleton класс. Будет создан 1 экземпляр класса, на него будут все ссылки
|
# QuikPy - Singleton класс. Будет создан 1 экземпляр класса, на него будут все ссылки
|
||||||
# qpProvider2 = QuikPy()
|
# qpProvider2 = QuikPy()
|
||||||
qpProvider2 = QuikPy(Host='192.168.1.7') # QuikPy - это Singleton класс. При попытке создания нового экземпляра получим ссылку на уже имеющийся экземпляр
|
qpProvider2 = QuikPy() # QuikPy - это Singleton класс. При попытке создания нового экземпляра получим ссылку на уже имеющийся экземпляр
|
||||||
print(f'Экземпляры класса совпадают: {qpProvider2 == qpProvider}')
|
print(f'Экземпляры класса совпадают: {qpProvider2 == qpProvider}')
|
||||||
|
|
||||||
# Проверка соединения
|
# Проверка соединения
|
||||||
print(f'Терминал QUIK подключен к серверу: {qpProvider.IsConnected()["data"] == 1}')
|
print(f'Терминал QUIK подключен к серверу: {qpProvider.IsConnected()["data"] == 1}')
|
||||||
print(f'Отклик QUIK на команду Ping: {qpProvider.Ping()["data"]}')
|
print(f'Отклик QUIK на команду Ping: {qpProvider.Ping()["data"]}') # Проверка работы скрипта QuikSharp. Должен вернуть Pong
|
||||||
|
|
||||||
# Сервисные функции
|
# Сервисные функции
|
||||||
print(f'Дата на сервере: {qpProvider.GetInfoParam("TRADEDATE")["data"]}')
|
print(f'Дата на сервере: {qpProvider.GetInfoParam("TRADEDATE")["data"]}')
|
||||||
print(f'Время на сервере: {qpProvider.GetInfoParam("SERVERTIME")["data"]}')
|
print(f'Время на сервере: {qpProvider.GetInfoParam("SERVERTIME")["data"]}')
|
||||||
msg = 'Hello from Python!'
|
msg = 'Hello from Python!'
|
||||||
print(f'Отправка сообщения в QUIK: {msg}{qpProvider.MessageInfo(msg)["data"]}')
|
print(f'Отправка сообщения в QUIK: {msg}{qpProvider.MessageInfo(msg)["data"]}') # Проверка работы QUIK. Сообщение должно показаться как информационное в QUIK
|
||||||
|
|
||||||
# Просмотр изменений параметров
|
# Просмотр изменений параметров
|
||||||
qpProvider.OnParam = PrintCallback # Текущие параметры изменяются постоянно. Будем их смотреть, пока не нажмем Enter в консоли
|
qpProvider.OnParam = PrintCallback # Текущие параметры изменяются постоянно. Будем их смотреть, пока не нажмем Enter в консоли
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
from QuikPy import QuikPy # Работа с Quik из Python через LUA скрипты QuikSharp
|
from QuikPy import QuikPy # Работа с QUIK из Python через LUA скрипты QuikSharp
|
||||||
|
|
||||||
|
|
||||||
def GetAllAccounts():
|
def GetAllAccounts():
|
||||||
"""Получение всех торговых счетов"""
|
"""Получение всех торговых счетов"""
|
||||||
futuresFirmId = 'SPBFUT' # Фирма для фьючерсов. Измените, если требуется на фирму, которую для фьючерсов поставил ваш брокер
|
futuresFirmId = 'SPBFUT' # Фирма для фьючерсов. Измените, если требуется, на фирму, которую для фьючерсов поставил ваш брокер
|
||||||
|
|
||||||
classCodes = qpProvider.GetClassesList()['data'] # Список классов
|
classCodes = qpProvider.GetClassesList()['data'] # Список классов
|
||||||
classCodesList = classCodes[:-1].split(',') # Удаляем последнюю запятую, разбиваем значения по запятой
|
classCodesList = classCodes[:-1].split(',') # Удаляем последнюю запятую, разбиваем значения по запятой
|
||||||
@@ -118,7 +118,7 @@ def GetAccount(ClientCode='', FirmId='SPBFUT', TradeAccountId='SPBFUT00PST', Lim
|
|||||||
|
|
||||||
if __name__ == '__main__': # Точка входа при запуске этого скрипта
|
if __name__ == '__main__': # Точка входа при запуске этого скрипта
|
||||||
qpProvider = QuikPy() # Вызываем конструктор QuikPy с подключением к локальному компьютеру с QUIK
|
qpProvider = QuikPy() # Вызываем конструктор QuikPy с подключением к локальному компьютеру с QUIK
|
||||||
# qpProvider = QuikPy(Host='192.168.1.7') # Вызываем конструктор QuikPy с подключением к удаленному компьютеру с QUIK
|
# qpProvider = QuikPy(Host='<Ваш IP адрес>') # Вызываем конструктор QuikPy с подключением к удаленному компьютеру с QUIK
|
||||||
|
|
||||||
GetAllAccounts() # Получаем все счета. По ним можно будет сформировать список счетов для торговли
|
GetAllAccounts() # Получаем все счета. По ним можно будет сформировать список счетов для торговли
|
||||||
print()
|
print()
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
from QuikPy import QuikPy # Работа с Quik из Python через LUA скрипты QuikSharp
|
from QuikPy import QuikPy # Работа с QUIK из Python через LUA скрипты QuikSharp
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__': # Точка входа при запуске этого скрипта
|
if __name__ == '__main__': # Точка входа при запуске этого скрипта
|
||||||
# qpProvider = QuikPy() # Вызываем конструктор QuikPy с подключением к локальному компьютеру с QUIK
|
qpProvider = QuikPy() # Вызываем конструктор QuikPy с подключением к локальному компьютеру с QUIK
|
||||||
qpProvider = QuikPy(Host='192.168.1.7') # Вызываем конструктор QuikPy с подключением к удаленному компьютеру с QUIK
|
# qpProvider = QuikPy(Host='<Ваш IP адрес>') # Вызываем конструктор QuikPy с подключением к удаленному компьютеру с QUIK
|
||||||
|
|
||||||
firmId = 'MC0063100000' # Фирма
|
firmId = 'MC0063100000' # Фирма
|
||||||
classCode = 'TQBR' # Класс тикера
|
classCode = 'TQBR' # Класс тикера
|
||||||
@@ -11,7 +11,7 @@ if __name__ == '__main__': # Точка входа при запуске это
|
|||||||
|
|
||||||
# firmId = 'SPBFUT' # Фирма
|
# firmId = 'SPBFUT' # Фирма
|
||||||
# classCode = 'SPBFUT' # Класс тикера
|
# classCode = 'SPBFUT' # Класс тикера
|
||||||
# secCode = 'SiH1' # Для фьючерсов: <Код тикера><Месяц экспирации: 3-H, 6-M, 9-U, 12-Z><Последняя цифра года>
|
# secCode = 'SiH2' # Для фьючерсов: <Код тикера><Месяц экспирации: 3-H, 6-M, 9-U, 12-Z><Последняя цифра года>
|
||||||
|
|
||||||
# Данные тикера и его торговый счет
|
# Данные тикера и его торговый счет
|
||||||
securityInfo = qpProvider.GetSecurityInfo(classCode, secCode)["data"]
|
securityInfo = qpProvider.GetSecurityInfo(classCode, secCode)["data"]
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
from time import time
|
from time import time
|
||||||
import os.path
|
import os.path
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
from QuikPy import QuikPy # Работа с Quik из Python через LUA скрипты QuikSharp
|
from QuikPy import QuikPy # Работа с QUIK из Python через LUA скрипты QuikSharp
|
||||||
|
|
||||||
|
|
||||||
def SaveCandlesToFile(classCode='TQBR', secCodes=('SBER',), timeFrame='D', compression=1):
|
def SaveCandlesToFile(classCode='TQBR', secCodes=('SBER',), timeFrame='D', compression=1):
|
||||||
@@ -48,7 +48,7 @@ def SaveCandlesToFile(classCode='TQBR', secCodes=('SBER',), timeFrame='D', compr
|
|||||||
if __name__ == '__main__': # Точка входа при запуске этого скрипта
|
if __name__ == '__main__': # Точка входа при запуске этого скрипта
|
||||||
startTime = time() # Время начала запуска скрипта
|
startTime = time() # Время начала запуска скрипта
|
||||||
qpProvider = QuikPy() # Вызываем конструктор QuikPy с подключением к локальному компьютеру с QUIK
|
qpProvider = QuikPy() # Вызываем конструктор QuikPy с подключением к локальному компьютеру с QUIK
|
||||||
# qpProvider = QuikPy(Host='192.168.1.7') # Вызываем конструктор QuikPy с подключением к удаленному компьютеру с QUIK
|
# qpProvider = QuikPy(Host='<Ваш IP адрес>') # Вызываем конструктор QuikPy с подключением к удаленному компьютеру с QUIK
|
||||||
|
|
||||||
timeFrame = 'M' # Временной интервал: 'M'-Минуты, 'D'-дни, 'W'-недели, 'MN'-месяцы
|
timeFrame = 'M' # Временной интервал: 'M'-Минуты, 'D'-дни, 'W'-недели, 'MN'-месяцы
|
||||||
compression1 = 5 # Кол-во минут для минутного графика. Для остальных = 1
|
compression1 = 5 # Кол-во минут для минутного графика. Для остальных = 1
|
||||||
@@ -64,7 +64,7 @@ if __name__ == '__main__': # Точка входа при запуске это
|
|||||||
SaveCandlesToFile(classCode, secCodes, timeFrame, compression2) # Получаем 15-и минутные бары
|
SaveCandlesToFile(classCode, secCodes, timeFrame, compression2) # Получаем 15-и минутные бары
|
||||||
|
|
||||||
classCode = 'SPBFUT' # Фьючерсы РТС
|
classCode = 'SPBFUT' # Фьючерсы РТС
|
||||||
secCodes = ('SiZ1', 'RIZ1') # Формат фьючерса: <Тикер><Месяц экспирации><Последняя цифра года> Месяц экспирации: 3-H, 6-M, 9-U, 12-Z
|
secCodes = ('SiH2', 'RIH2') # Формат фьючерса: <Тикер><Месяц экспирации><Последняя цифра года> Месяц экспирации: 3-H, 6-M, 9-U, 12-Z
|
||||||
SaveCandlesToFile(classCode, secCodes) # По умолчанию получаем дневные бары
|
SaveCandlesToFile(classCode, secCodes) # По умолчанию получаем дневные бары
|
||||||
SaveCandlesToFile(classCode, secCodes, timeFrame, compression1) # Получаем 5-и минутные бары
|
SaveCandlesToFile(classCode, secCodes, timeFrame, compression1) # Получаем 5-и минутные бары
|
||||||
SaveCandlesToFile(classCode, secCodes, timeFrame, compression2) # Получаем 15-и минутные бары
|
SaveCandlesToFile(classCode, secCodes, timeFrame, compression2) # Получаем 15-и минутные бары
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import time # Подписка на события по времени
|
import time # Подписка на события по времени
|
||||||
from QuikPy import QuikPy # Работа с Quik из Python через LUA скрипты QuikSharp
|
from QuikPy import QuikPy # Работа с QUIKиз Python через LUA скрипты QuikSharp
|
||||||
|
|
||||||
|
|
||||||
def PrintCallback(data):
|
def PrintCallback(data):
|
||||||
@@ -11,8 +11,8 @@ def PrintCallback(data):
|
|||||||
print(data['data']) # Печатаем полученные данные
|
print(data['data']) # Печатаем полученные данные
|
||||||
|
|
||||||
if __name__ == '__main__': # Точка входа при запуске этого скрипта
|
if __name__ == '__main__': # Точка входа при запуске этого скрипта
|
||||||
# qpProvider = QuikPy() # Вызываем конструктор QuikPy с подключением к локальному компьютеру с QUIK
|
qpProvider = QuikPy() # Вызываем конструктор QuikPy с подключением к локальному компьютеру с QUIK
|
||||||
qpProvider = QuikPy(Host='192.168.1.7') # Вызываем конструктор QuikPy с подключением к удаленному компьютеру с QUIK
|
# qpProvider = QuikPy(Host='<Ваш IP адрес>') # Вызываем конструктор QuikPy с подключением к удаленному компьютеру с QUIK
|
||||||
|
|
||||||
firmId = 'MC0063100000' # Фирма
|
firmId = 'MC0063100000' # Фирма
|
||||||
classCode = 'TQBR' # Класс тикера
|
classCode = 'TQBR' # Класс тикера
|
||||||
@@ -20,7 +20,7 @@ if __name__ == '__main__': # Точка входа при запуске это
|
|||||||
|
|
||||||
# firmId = 'SPBFUT' # Фирма
|
# firmId = 'SPBFUT' # Фирма
|
||||||
# classCode = 'SPBFUT' # Класс тикера
|
# classCode = 'SPBFUT' # Класс тикера
|
||||||
# secCode = 'SiH1' # Для фьючерсов: <Код тикера><Месяц экспирации: 3-H, 6-M, 9-U, 12-Z><Последняя цифра года>
|
# secCode = 'SiH2' # Для фьючерсов: <Код тикера><Месяц экспирации: 3-H, 6-M, 9-U, 12-Z><Последняя цифра года>
|
||||||
|
|
||||||
# Стакан
|
# Стакан
|
||||||
print(f'Текущий стакан {classCode}.{secCode}: {qpProvider.GetQuoteLevel2(classCode, secCode)}')
|
print(f'Текущий стакан {classCode}.{secCode}: {qpProvider.GetQuoteLevel2(classCode, secCode)}')
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from QuikPy import QuikPy # Работа с Quik из Python через LUA скрипты QuikSharp
|
from QuikPy import QuikPy # Работа с QUIK из Python через LUA скрипты QuikSharp
|
||||||
|
|
||||||
|
|
||||||
def OnTransReply(data):
|
def OnTransReply(data):
|
||||||
@@ -34,8 +34,8 @@ def OnDepoLimitDelete(data):
|
|||||||
print(data['data']) # Печатаем полученные данные
|
print(data['data']) # Печатаем полученные данные
|
||||||
|
|
||||||
if __name__ == '__main__': # Точка входа при запуске этого скрипта
|
if __name__ == '__main__': # Точка входа при запуске этого скрипта
|
||||||
# qpProvider = QuikPy() # Вызываем конструктор QuikPy с подключением к локальному компьютеру с QUIK
|
qpProvider = QuikPy() # Вызываем конструктор QuikPy с подключением к локальному компьютеру с QUIK
|
||||||
qpProvider = QuikPy(Host='192.168.1.7') # Вызываем конструктор QuikPy с подключением к удаленному компьютеру с QUIK
|
# qpProvider = QuikPy(Host='<Ваш IP адрес>') # Вызываем конструктор QuikPy с подключением к удаленному компьютеру с QUIK
|
||||||
qpProvider.OnTransReply = OnTransReply # Ответ на транзакцию пользователя. Если транзакция выполняется из QUIK, то не вызывается
|
qpProvider.OnTransReply = OnTransReply # Ответ на транзакцию пользователя. Если транзакция выполняется из QUIK, то не вызывается
|
||||||
qpProvider.OnOrder = OnOrder # Получение новой / изменение существующей заявки
|
qpProvider.OnOrder = OnOrder # Получение новой / изменение существующей заявки
|
||||||
qpProvider.OnTrade = OnTrade # Получение новой / изменение существующей сделки
|
qpProvider.OnTrade = OnTrade # Получение новой / изменение существующей сделки
|
||||||
@@ -44,7 +44,7 @@ if __name__ == '__main__': # Точка входа при запуске это
|
|||||||
qpProvider.OnDepoLimitDelete = OnDepoLimitDelete # Удаление позиции по инструментам
|
qpProvider.OnDepoLimitDelete = OnDepoLimitDelete # Удаление позиции по инструментам
|
||||||
|
|
||||||
classCode = 'SPBFUT' # Код площадки
|
classCode = 'SPBFUT' # Код площадки
|
||||||
secCode = 'SiM1' # Код тикера
|
secCode = 'SiH2' # Код тикера
|
||||||
TransId = 12345 # Номер транзакции
|
TransId = 12345 # Номер транзакции
|
||||||
price = 77000 # Цена входа/выхода
|
price = 77000 # Цена входа/выхода
|
||||||
quantity = 1 # Кол-во в лотах
|
quantity = 1 # Кол-во в лотах
|
||||||
|
|||||||
Reference in New Issue
Block a user