Все записи автора Дмитрий (Admin)

Из QLua (Lua) в Excel (CSV)

Автор записи: Дмитрий (Admin)
1 звезда2 звезды3 звезды4 звезды5 звезд (Голосов 3, среднее: 5,00 из 5)
Загрузка...

csvФайл CSV-формата это обычный текстовый файл, с которым Excel и аналогичные программы могут работать как с таблицей. Каждая строка таблицы в этом файле записывается как новая строка со знаком переноса в конце, а значения полей разделены между собой каким-то символом, чаще ";". В самой первой строке такого файла можно (не обязательно) указать названия столбцов, так же через ";".

Ниже приведен пример создания такого файла и записи в него данных о совершенных сделках средствами QLua(Lua):
Смотреть полностью...

Пример реализации функции обратного вызова OnAllTrade внутри DLL

Автор записи: Дмитрий (Admin)
1 звезда2 звезды3 звезды4 звезды5 звезд (Голосов 4, среднее: 5,00 из 5)
Загрузка...

Qlua-csharp-connector-dll
Таким образом можно любую встроенную в QLua функцию заменить функцией в DLL, в результате скрипт QLua может содержать только одну строку подключения библиотеки, а всю обработку можно вынести в DLL, а из нее в C#.

Код QLua(Lua)
Код DLL

Если у Вас появились какие-то вопросы, задайте их в комментариях под статьей !!!

Один из простейших способов отладки DLL (C/C++), работающей с именованной памятью

Автор записи: Дмитрий (Admin)
1 звезда2 звезды3 звезды4 звезды5 звезд (Голосов 3, среднее: 5,00 из 5)
Загрузка...

C_C++ основы
Создайте/откройте текстовый файл для записи отладочной информации (каждый новый вызов данного кода будет перезаписывать содержимое файла):

FILE *f = fopen("C:\\DLL_Log.txt", "w+"); // Создает файл лога

Открывайте потом этот файл для чтения в Notepad++.

Объявите следующую функцию:
Смотреть полностью...

Запуск/завершение процесса (программы) из C/C++

Автор записи: Дмитрий (Admin)
1 звезда2 звезды3 звезды4 звезды5 звезд (Голосов 3, среднее: 3,67 из 5)
Загрузка...

C_C++ основы
В начале, нужно объявить необходимые переменные:

TCHAR szPath[] = TEXT("info.exe"); // Путь к файлу
// Необходимые для запуска процесса структуры
STARTUPINFO si; 
PROCESS_INFORMATION pi;

Такой код запускает процесс (программу):
Смотреть полностью...

Вызов функций QLua(Lua) из DLL, написанной на C/C++

Автор записи: Дмитрий (Admin)
1 звезда2 звезды3 звезды4 звезды5 звезд (Голосов 2, среднее: 5,00 из 5)
Загрузка...

Qlua-csharp-connector-dllДля этого нужна обычная библиотека DLL, подключаемая к QLua, о том, как ее создать можете посмотреть здесь.

Пусть созданная Вами DLL называется "LuaCallback.dll", которая находится в корневом каталоге терминала QUIK.

Следующий пример 10 раз, с периодичностью в 1 секунду выведет сообщение с текстом "Привет из DLL" посредством вызова из DLL функции из Qlua скрипта MyLuaCallback():

Код скрипта QLua
Код DLL

Если у Вас появились какие-то вопросы, задайте их в комментариях под статьей !!!

Получение в QLua(Lua) данных из графиков и индикаторов

Автор записи: Дмитрий (Admin)
1 звезда2 звезды3 звезды4 звезды5 звезд (Голосов 10, среднее: 5,00 из 5)
Загрузка...

QUIK-Qlua-poluchenie-dannyhЧтобы получить доступ к графику(не индикатору) какого-либо инструмента нужно создать источник данных при помощи функции CreateDataSource().
ВАЖНО!!! Для получения новых данных, кроме тех, что уже есть в открытом графике на текущий момент (тем более, если он не открыт), требуется использовать одну из следующих функций: SetUpdateCallback(), или SetEmptyCallback(), о которых будет написано ниже.

Описание функции CreateDataSource()
Смотреть полностью...

Список констант тайм-фреймов графиков

Автор записи: Дмитрий (Admin)
1 звезда2 звезды3 звезды4 звезды5 звезд (Голосов 2, среднее: 5,00 из 5)
Загрузка...

Qlua-основы

INTERVAL_TICK -- (0)       Тиковые данные  
INTERVAL_M1   -- (1)       1 минута  
INTERVAL_M2   -- (2)       2 минуты  
INTERVAL_M3   -- (3)       3 минуты  
INTERVAL_M4   -- (4)       4 минуты 
INTERVAL_M5   -- (5)       5 минут 
INTERVAL_M6   -- (6)       6 минут 
INTERVAL_M10  -- (10)      10 минут 
INTERVAL_M15  -- (15)      15 минут 
INTERVAL_M20  -- (20)      20 минут 
INTERVAL_M30  -- (30)      30 минут 
INTERVAL_H1   -- (60)      1 час 
INTERVAL_H2   -- (120)     2 часа 
INTERVAL_H4   -- (240)     4 часа 
INTERVAL_D1   -- (1440)    1 день 
INTERVAL_W1   -- (10080)   1 неделя 
INTERVAL_MN1  -- (23200)   1 месяц