
-- Настройки
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.



Приветствую читателей!
Практически пол года не писал новых статей и не публиковал новые видео с тематикой своего самого интересного, сложного и успешного изобретения «Робот Сетка».
Во-первых, взялся за доработку большого количества функций данного робота. Стоимость доработки у меня не высокая, на данный момент 1000р./час. Четыре года назад была стоимость 300р./час. Оплата моего труда, как программиста выросла в три раза, при росте цен чуть менее в 2 раза (по моей оценке 82% с 01.01.2020). Однако программирование, всё так же, является маленьким, незначительным хобби, на фоне основного бизнеса в виде небольшого магазинчика товаров для дома и ремонта.
Во-вторых, в упомянутом выше бизнесе, требовалось моё вмешательство. Бизнес вырос за последние годы. Взял нового сотрудника, своего друга, но дело не пошло, оказалось этого не его. Дружеские отношения не изменились – это главное. Месяц назад взял сотрудницу на место друга. Вроде, всё получается. Буду стараться максимально делегировать свои задачи и, тогда, появиться больше времени на программирование.


Вся работа организована через алгоритмы, которые идентифицируются комментариями (Поручение). Возможна работа одновременно с разными алгоритмами. Например, пользователь выставляет заявку с комментарием «1» — выставляется стоп-лосс и тейк-профит на расстоянии 0.5%. Выставляет заявку с комментарием «2» — выставляется стоп-лосс и тейк-профит на расстоянии 1%. Таких алгоритмов может быть бесконечно много. Достаточно один раз настроить и пользоваться готовыми условиями выхода из позиции.
Всем привет, только учусь работать с QUIK и LUA, возникла проблема с выводом баланса.
Вот скрипт:
function main()
Firm_ID = «MC0139600000»
client_code = «4105TE2»
moneyRu = getMoneyEx(Firm_ID, client_code, «EQTV», «SUR»,0)
TradeBalance = moneyRu.currentbal/2
message('Баланс RUB = '..moneyRu.currentbal)
if(FakeBalance>0)
then
message('Баланс RUB = '..moneyRu.currentbal)
else
message('Баланс для покупки = '..TradeBalance)
end
end
Выдает ошибку attempt to index a nil value (global 'moneyRu')
Буду очень благодарен если кто-нибудь подскажет в чем проблема.