From c38ea0e153353bf4865748c0bb391db69e7ad1e9 Mon Sep 17 00:00:00 2001 From: denis Date: Thu, 9 Feb 2023 20:45:51 +0300 Subject: [PATCH] =?UTF-8?q?QUIKPy=20=D0=B7=D0=B2=D1=83=D0=BA=D0=BE=D0=B2?= =?UTF-8?q?=D0=BE=D0=B5=20=D0=BE=D0=BF=D0=BE=D0=B2=D0=B5=D1=89=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BF=D1=80=D0=B8=20=D0=BF=D0=BE=D1=81=D1=82?= =?UTF-8?q?=D1=83=D0=BF=D0=BB=D0=B5=D0=BD=D0=B8=D0=B8=20=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D1=8B=D1=85=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/QuikPy.iml | 8 +++ .../inspectionProfiles/profiles_settings.xml | 6 ++ .idea/modules.xml | 8 +++ Examples/05 - Stream.py | 65 +++++++++++------- Sounds/alert_sound.wav | Bin 0 -> 47774 bytes poetry.lock | 18 +++++ pyproject.toml | 15 ++++ 7 files changed, 96 insertions(+), 24 deletions(-) create mode 100644 .idea/QuikPy.iml create mode 100644 .idea/inspectionProfiles/profiles_settings.xml create mode 100644 .idea/modules.xml create mode 100644 Sounds/alert_sound.wav create mode 100644 poetry.lock create mode 100644 pyproject.toml diff --git a/.idea/QuikPy.iml b/.idea/QuikPy.iml new file mode 100644 index 0000000..b53adb4 --- /dev/null +++ b/.idea/QuikPy.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..2fe431f --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Examples/05 - Stream.py b/Examples/05 - Stream.py index 38fba04..7475bce 100644 --- a/Examples/05 - Stream.py +++ b/Examples/05 - Stream.py @@ -1,7 +1,15 @@ from datetime import datetime +import os import time # Подписка на события по времени from QuikPy import QuikPy # Работа с QUIK из Python через LUA скрипты QuikSharp +from pydub import AudioSegment +from pydub.playback import play + +sound_audio = None + +play_audio_alert = False + def PrintCallback(data): """Пользовательский обработчик событий: @@ -9,6 +17,8 @@ def PrintCallback(data): - Получение обезличенной сделки - Получение новой свечки """ + if play_audio_alert: + play(sound_audio) # звуковое оповещение о новых данных print(f'{datetime.now().strftime("%d.%m.%Y %H:%M:%S")} - {data["data"]}') # Печатаем полученные данные def ChangedConnection(data): @@ -19,14 +29,21 @@ def ChangedConnection(data): print(f'{datetime.now().strftime("%d.%m.%Y %H:%M:%S")} - {data}') # Печатаем полученные данные if __name__ == '__main__': # Точка входа при запуске этого скрипта - qpProvider = QuikPy() # Вызываем конструктор QuikPy с подключением к локальному компьютеру с QUIK + # qpProvider = QuikPy() # Вызываем конструктор QuikPy с подключением к локальному компьютеру с QUIK # qpProvider = QuikPy(Host='<Ваш IP адрес>') # Вызываем конструктор QuikPy с подключением к удаленному компьютеру с QUIK + host = os.getenv("QUIK_HOST_0") + qpProvider = QuikPy(Host=host) # Вызываем конструктор QuikPy с подключением к удаленному компьютеру с QUIK - # classCode = 'TQBR' # Класс тикера - # secCode = 'GAZP' # Тикер + play_audio_alert = True - classCode = 'SPBFUT' # Класс тикера - secCode = 'SiH2' # Для фьючерсов: <Код тикера><Месяц экспирации: 3-H, 6-M, 9-U, 12-Z><Последняя цифра года> + if play_audio_alert: + sound_audio = AudioSegment.from_file('../Sounds/alert_sound.wav') + + classCode = 'TQBR' # Класс тикера + secCode = 'GAZP' # Тикер + + # classCode = 'SPBFUT' # Класс тикера + # secCode = 'SiH2' # Для фьючерсов: <Код тикера><Месяц экспирации: 3-H, 6-M, 9-U, 12-Z><Последняя цифра года> # Запрос текущего стакана. Чтобы получать, в QUIK открыть Таблицу Котировки, указать тикер # print(f'Текущий стакан {classCode}.{secCode}:', qpProvider.GetQuoteLevel2(classCode, secCode)['data']) @@ -42,32 +59,32 @@ if __name__ == '__main__': # Точка входа при запуске это # print('Статус подписки:', qpProvider.IsSubscribedLevel2Quotes(classCode, secCode)['data']) # qpProvider.OnQuote = qpProvider.DefaultHandler # Возвращаем обработчик по умолчанию - # Обезличенные сделки. Чтобы получать, в QUIK открыть Таблицу обезличенных сделок, указать тикер - # qpProvider.OnAllTrade = PrintCallback # Обработчик получения обезличенной сделки - # sleepSec = 1 # Кол-во секунд получения обезличенных сделок - # print('Секунд обезличенных сделок:', sleepSec) - # time.sleep(sleepSec) # Ждем кол-во секунд получения обезличенных сделок - # qpProvider.OnAllTrade = qpProvider.DefaultHandler # Возвращаем обработчик по умолчанию + """ Обезличенные сделки. Чтобы получать, в QUIK открыть Таблицу обезличенных сделок, указать тикер """ + qpProvider.OnAllTrade = PrintCallback # Обработчик получения обезличенной сделки + sleepSec = 180 # Кол-во секунд получения обезличенных сделок + print('Секунд обезличенных сделок:', sleepSec) + time.sleep(sleepSec) # Ждем кол-во секунд получения обезличенных сделок + qpProvider.OnAllTrade = qpProvider.DefaultHandler # Возвращаем обработчик по умолчанию # Просмотр изменений состояния соединения терминала QUIK с сервером брокера qpProvider.OnConnected = ChangedConnection # Нажимаем кнопку "Установить соединение" в QUIK qpProvider.OnDisconnected = ChangedConnection # Нажимаем кнопку "Разорвать соединение" в QUIK - # Подписка на новые свечки. При первой подписке получим все свечки с начала прошлой сессии - # TODO В QUIK 9.2.13.15 перестала работать повторная подписка на минутные бары. Остальные работают + """ Подписка на новые свечки. При первой подписке получим все свечки с начала прошлой сессии """ + # TODO В QUIK 9.2.13.15 перестала работать повторная подписка на минутные бары. Остальные работают # # Перед повторной подпиской нужно перезапустить скрипт QuikSharp.lua Подписка станет первой, все заработает - qpProvider.OnNewCandle = PrintCallback # Обработчик получения новой свечки - for interval in (60,): # (1, 60, 1440) = Минутки, часовки, дневки - print(f'Подписка на интервал {interval}:', qpProvider.SubscribeToCandles(classCode, secCode, interval)['data']) - print(f'Статус подписки на интервал {interval}:', qpProvider.IsSubscribed(classCode, secCode, interval)['data']) - input('Enter - отмена\n') - for interval in (60,): # (1, 60, 1440) = Минутки, часовки, дневки - print(f'Отмена подписки на интервал {interval}', qpProvider.UnsubscribeFromCandles(classCode, secCode, interval)['data']) - print(f'Статус подписки на интервал {interval}:', qpProvider.IsSubscribed(classCode, secCode, interval)['data']) - qpProvider.OnNewCandle = qpProvider.DefaultHandler # Возвращаем обработчик по умолчанию + # qpProvider.OnNewCandle = PrintCallback # Обработчик получения новой свечки + # for interval in (60,): # (1, 60, 1440) = Минутки, часовки, дневки + # print(f'Подписка на интервал {interval}:', qpProvider.SubscribeToCandles(classCode, secCode, interval)['data']) + # print(f'Статус подписки на интервал {interval}:', qpProvider.IsSubscribed(classCode, secCode, interval)['data']) + # input('Enter - отмена\n') + # for interval in (60,): # (1, 60, 1440) = Минутки, часовки, дневки + # print(f'Отмена подписки на интервал {interval}', qpProvider.UnsubscribeFromCandles(classCode, secCode, interval)['data']) + # print(f'Статус подписки на интервал {interval}:', qpProvider.IsSubscribed(classCode, secCode, interval)['data']) + # qpProvider.OnNewCandle = qpProvider.DefaultHandler # Возвращаем обработчик по умолчанию - qpProvider.OnConnected = qpProvider.DefaultHandler # Возвращаем обработчик по умолчанию - qpProvider.OnDisconnected = qpProvider.DefaultHandler # Возвращаем обработчик по умолчанию + # qpProvider.OnConnected = qpProvider.DefaultHandler # Возвращаем обработчик по умолчанию + # qpProvider.OnDisconnected = qpProvider.DefaultHandler # Возвращаем обработчик по умолчанию # Выход qpProvider.CloseConnectionAndThread() # Перед выходом закрываем соединение и поток QuikPy из любого экземпляра diff --git a/Sounds/alert_sound.wav b/Sounds/alert_sound.wav new file mode 100644 index 0000000000000000000000000000000000000000..0384695ab3f9f3dac1d4d3270073378b26f0a666 GIT binary patch literal 47774 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�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
TetyjSKC^wM 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"] +readme = "README.md" + +[tool.poetry.dependencies] +python = "^3.10" +pydub = "^0.25.1" + + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api"