Алгоритм субботняшний
0) Посетить мой сайт
https://osaengine.ru/ ))
1) Зайти на
chatgpt.com/
2) Написать вопрос

3) Получить ответ
-- Настройки
SEC_CODE = "SBER" -- Код инструмента
CLASS_CODE = "TQBR" -- Код класса инструмента
SHORT_MA_PERIOD = 10 -- Период короткой скользящей средней
LONG_MA_PERIOD = 50 -- Период длинной скользящей средней
QTY = 1 -- Количество лотов
-- Переменные
short_ma = {}
long_ma = {}
prices = {}
position = 0 -- Текущая позиция: 0 - нет позиции, 1 - лонг, -1 - шорт
-- Функция для расчета скользящей средней
function calculate_ma(prices, period)
local sum = 0
for i = #prices-period+1, #prices do
sum = sum + prices[i]
end
return sum / period
end
-- Функция для обработки новых тиков
function OnAllTrade(alltrade)
if alltrade.sec_code == SEC_CODE and alltrade.class_code == CLASS_CODE then
table.insert(prices, alltrade.price)
if #prices >= LONG_MA_PERIOD then
table. <a name="cut"></a> insert(short_ma, calculate_ma(prices, SHORT_MA_PERIOD))
table.insert(long_ma, calculate_ma(prices, LONG_MA_PERIOD))
if #short_ma > LONG_MA_PERIOD then
table.remove(short_ma, 1)
table.remove(long_ma, 1)
end
local short_ma_last = short_ma[#short_ma]
local long_ma_last = long_ma[#long_ma]
-- Логика торговли
if short_ma_last > long_ma_last and position <= 0 then
if position == -1 then
sendOrder("B", QTY * 2) -- Закрываем шорт и открываем лонг
else
sendOrder("B", QTY) -- Открываем лонг
end
position = 1
elseif short_ma_last < long_ma_last and position >= 0 then
if position == 1 then
sendOrder("S", QTY * 2) -- Закрываем лонг и открываем шорт
else
sendOrder("S", QTY) -- Открываем шорт
end
position = -1
end
end
end
end
-- Функция для отправки ордеров
function sendOrder(action, qty)
local price = getParamEx(CLASS_CODE, SEC_CODE, "LAST").param_value
local trans_id = os.time()
local transaction = {
["TRANS_ID"] = tostring(trans_id),
["CLASSCODE"] = CLASS_CODE,
["SECCODE"] = SEC_CODE,
["ACTION"] = "NEW_ORDER",
["TYPE"] = "M",
["OPERATION"] = action,
["QUANTITY"] = tostring(qty),
["PRICE"] = tostring(price)
}
sendTransaction(transaction)
end
function OnStop()
-- Очистка данных и завершение работы
prices = {}
short_ma = {}
long_ma = {}
position = 0
message("Script stopped")
end
message("Trend robot started")
Какие DLL? Какие Access? О чем вы, ребята!? ))
Мой сайт
https://osaengine.ru/ )
Надо просто запрограммировать кнопку бабло
Во первых там есть ошибки в параметрах некоторых функций
Во вторых это процентов 30-40% от необходимого кода.