Запрограммируй сложный Lua-скрипт торгового робота под

Запрограммируй сложный Lua-скрипт торгового робота под Quik в dll файл на основании параметров: -- Упрощенные настройки МАНИ 144 для торговли с депозитом от 20 000 руб. require('MEngineBigLvl') -- Название основного файла робота, который Вы получили после предоставления счёта. Если Вы не переименовывали или он не переименовался автоматически, не трогать. function ME_Init_GParam -- ************************* Технические настройки ************************* GParam.ts_id ='SI_20' -- ID торговой стратегии (строка) GParam.ts_num = 2 -- Уникальный номер торговой стратегии (число от 1 до 100). Используется для вычисления уникального номера транзакции. GParam.ts_config = getScriptPath().."\\SI_20.ini" -- Путь к файлу конфига торговой стратегии GParam.ts_levels = getScriptPath().."\\SILvls_20.ini" -- Ссылка на файл массива уровней GParam.ts_log_m = getScriptPath().."\\logs\\SIm_20.csv" -- Путь к лог файлу сообщений
Дополнительные параметры: codeFlowType: codeWrite codeFlowLang: C++
Создано: 21.02.2025 01:54

Запрограммируй сложный Lua-скрипт торгового робота под Quik в dll файл на основании параметров:

-- Упрощенные настройки МАНИ 144 для торговли с депозитом от 20 000 руб.

require('MEngineBigLvl') -- Название основного файла робота, который Вы получили после предоставления счёта. Если Вы не переименовывали или он не переименовался автоматически, не трогать.

function ME_Init_GParam

-- ************************* Технические настройки *************************

GParam.ts_id ='SI_20'						-- ID торговой стратегии (строка)
GParam.ts_num = 2						-- Уникальный номер торговой стратегии (число от 1 до 100). Используется для вычисления уникального номера транзакции.
GParam.ts_config = getScriptPath().."\\SI_20.ini"		-- Путь к файлу конфига торговой стратегии
GParam.ts_levels = getScriptPath().."\\SILvls_20.ini"		-- Ссылка на файл массива уровней 
GParam.ts_log_m = getScriptPath().."\\logs\\SIm_20.csv"	-- Путь к лог файлу сообщений

Создание Lua-скрипта и его упаковка в DLL на C++ - задача, которая требует специального подхода. Для этой задачи мы можем использовать библиотеку Lua, которая позволяет встроить Lua в приложения на C++. Я предоставлю вам основной шаблон кода на C++ для создания DLL, которая будет загружать ваш Lua-скрипт.

Шаги для создания DLL

  1. Создать проект DLL: Начните с создания нового проекта DLL в вашей среде разработки (например, Visual Studio).

  2. Добавить библиотеку Lua: Убедитесь, что у вас есть библиотека Lua и вы добавили соответствующие заголовочные файлы и файлы библиотеки в ваш проект.

  3. Создать основной файл C++:

Вот шаблон C++ кода, который создает DLL и инициализирует Lua-скрипт:

// LuaTradingRobot.cpp
#include <lua.hpp>
#include <Windows.h>

extern "C" __declspec(dllexport) void RunTradingRobot();

// Функция инициализации Lua и загрузки скрипта
void RunTradingRobot() {
    lua_State* L = luaL_newstate();   // Создаем новое состояние Lua
    luaL_openlibs(L);                 // Открываем стандартные библиотеки Lua

    if (luaL_dofile(L, "path/to/your/script.lua") != LUA_OK) {
        const char* error = lua_tostring(L, -1);
        MessageBoxA(NULL, error, "Lua Error", MB_OK | MB_ICONERROR); // Вывод ошибки, если не удалось загрузить скрипт
        lua_pop(L, 1); // Убираем ошибку из стека
    }

    lua_close(L); // Закрываем состояние Lua
}

BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) {
    switch (fdwReason) {
        case DLL_PROCESS_ATTACH:
            RunTradingRobot(); // Запускаем торгового робота при загрузке DLL
            break;
    }
    return TRUE; // Успешное выполнение
}

Lua-скрипт

Теперь создайте Lua-скрипт, используя ваши параметры:

-- script.lua

require('MEngineBigLvl') -- Название основного файла робота 

function ME_Init_GParam()

    -- ************************* Технические настройки *************************

    GParam.ts_id ='SI_20'                        -- ID торговой стратегии 
    GParam.ts_num = 2                             -- Уникальный номер торговой стратегии 
    GParam.ts_config = getScriptPath().."\\SI_20.ini"      -- Путь к файлу конфига 
    GParam.ts_levels = getScriptPath().."\\SILvls_20.ini"  -- Ссылка на файл массива уровней 
    GParam.ts_log_m = getScriptPath().."\\logs\\SIm_20.csv" -- Путь к лог файлу
end

Сборка DLL

  • Убедитесь, что вы настроили путь к библиотеке Lua и правильно скомпилировали проект.
  • Обратите внимание на path/to/your/script.lua, замените это на реальный путь к вашему Lua-скрипту.

Запуск

Теперь вы можете использовать DLL в вашем основном приложении или в вашем торговом терминале, который поддерживает использование DLL.

Примечания

  • Убедитесь, что у вас установлена библиотека Lua и она правильно слинкована с вашим проектом.
  • Для работы с реальными денежными средствами всегда тестируйте ваш код на демо-счете, прежде чем применять его на реальном.