Доброго времени суток.
Написал коротенький скрипт, который в квике 8.0.5.2 (демка) не работает совсем.
Когда решил проверить где косяк и вставил мессаги по коду, то все заработало.
Опытным путем выяснил, что когда в блоке есть message, то он работает (например функция отправки транзакций). Как только удалил, перестает работать.
Это прикол какой то или я дурак?
Полный код.
Написал коротенький скрипт, который в квике 8.0.5.2 (демка) не работает совсем.
Когда решил проверить где косяк и вставил мессаги по коду, то все заработало.
Опытным путем выяснил, что когда в блоке есть message, то он работает (например функция отправки транзакций). Как только удалил, перестает работать.
Это прикол какой то или я дурак?
Полный код.
Код |
---|
--/*НАСТРАИВАЕМЫЕ ПАРАМЕТРЫ*/ ACCOUNT = 'SPBFUT00419'; -- Идентификатор счета CLASS_CODE = 'SPBFUT'; -- Код класса SEC_CODE = 'SRU9'; -- Код бумаги INTERVAL = INTERVAL_M1; -- Таймфрейм графика --/*РАБОЧИЕ ПЕРЕМЕННЫЕ РОБОТА (менять не нужно)*/ SEC_PRICE_STEP = 0; -- ШАГ ЦЕНЫ ИНСТРУМЕНТА trans_id = os.time(); -- Задает начальный номер ID транзакций trans_Status = nil; -- Статус текущей транзакции из функции OnTransPeply trans_result_msg = ''; -- Сообщение по текущей транзакции из функции OnTransPeply Run = true; -- Флаг поддержания работы бесконечного цикла в main function OnInit() -- Получает доступ к свечам графика DS = CreateDataSource(CLASS_CODE, SEC_CODE, INTERVAL); --message("start"); --sleep(100); -- Подписывается на обновления графика DS:SetEmptyCallback() -- Получает ШАГ ЦЕНЫ ИНСТРУМЕНТА SEC_PRICE_STEP = getParamEx(CLASS_CODE, SEC_CODE, "SEC_PRICE_STEP").param_value; end; function main() -- "Бесконечный" цикл while Run do --message("hello again =/"); --sleep(1000); LOBI = DS:Size(); if DS:O(LOBI-1) < DS:C(LOBI-1) then --message("Trade B"); Trade('B'); elseif DS:C(LOBI-1) > DS:O(LOBI-1) then --message("Trade S"); Trade('S'); end; sleep(10); end; end; function OnStop() Run = false; end; ----------------------------- -- ВСПОМОГАТЕЛЬНЫЕ ФУНКЦИИ -- ----------------------------- function Trade(Type) --Получает ID транзакции trans_id = trans_id + 1; local Price = 0; --message("trans"); --sleep(1000); -- Заполняет структуру для отправки транзакции local Transaction={ ['TRANS_ID'] = tostring(trans_id), ['ACTION'] = 'NEW_ORDER', ['CLASSCODE'] = CLASS_CODE, ['SECCODE'] = SEC_CODE, ['OPERATION'] = Type, -- операция ("B" - buy, или "S" - sell) ['TYPE'] = 'M', -- по рынку (MARKET) ['QUANTITY'] = '1', -- количество ['ACCOUNT'] = ACCOUNT, ['PRICE'] = tostring(Price), ['CLIENT_CODE']= '111' } -- Отправляет транзакцию sendTransaction(Transaction); --message("trans sended"); --sleep(100); end; |