Вам запрещена работа по данному инструменту., Данное сообщение появляется после перемещения заявки.
Пользователь
Сообщений: Регистрация: 30.01.2015
01.05.2020 14:10:16
Цитата
Александр написал: Добрый день. Столкнулся с багом. Суть и последовательность действий, приводящих к багу. 1. Ставлю лимитную заявку на фьючерс SRM0 на продажу, выше рыночной цены. Всё прекрасно. 2. Ставлю через lua скрипт аналогичную лимитную заявку. 3. Двигаю эту заявку по цене, неважно вверх или в низ, можно даже со старой ценой. Заявка двигается нормально. 4. После этого блокируется возможность выставления заявок по текущему инструменту на продажу (так как изначально выставлял заявку на продажу, см. п.1). 5. В Quik возможность выставления заявок тоже блокируется даже вручную, до окончания текущего дня. Так с любым инструментом (пробовал SRM0, GZM0, RIM0, SiM0). Записал всё на видео. Исходные коды тоже прилагаю. Помогите пожалуйста, так как сижу уже 2 дня и не могу побороть эту напасть. Раньше всё работало, на этих же исходниках. Перестало работать после обновления утром 23 апреля.
Заранее спасибо за помощь!!!
такое сообщение вы получите, если неправильно указали торговый Счет либо указали "пусто". Т е пытаетесь выставить торговую операцию не от своего счета.
Помогите разобраться с ошибкой голосового движка luacom
написал: и еще что у вас в 31 строке library.lua ?
Вот полная функция function speak_only (text) w32.CoInitialize() local vObj = luacom.CreateObject("Sapi.SpVoice") vObj:Speak (text) w32.CoUninitialize() end --speak_only
строка 31 содержит оператор vObj:Speak (text)
А каким образом остальной код может влиять на абсолютно независимую от остального кода функцию? тут все переменные локальны. Текст всегда передается строковой переменной из одной и той же другой функции, в которой физически не может быть не строковой переменной. И главная проблема в том. что бОльшую часть времени все работает.
В общем на данный момент пока вопрос закрыл с помощью оператора pcall, если будут снова проблемы, опишу ситуацию.
Благодарю всех, кто откликнулся на помощь!
напишите строку 31 так: if text~=nil and string.len(text)>0 then vObj:Speak (text) end ------------------------------- и будет Вам счастье.
какой смысл замены lua5.1 на lua5.3
Пользователь
Сообщений: Регистрация: 30.01.2015
28.04.2020 07:28:22
т е Lua 5.1 и Lua 5.3 многопоточность не мешает, а Luajit - мешает? Верно?
Добрый день, Просьба пояснить почему в качестве новой версии в QUIK выбрана lua5.3 мое тестирование показывает, что версия 5.3 работает так же медленно как и 5.1 ------------------ а вот luajit, которая основана на Lua5.1 работает в 2 раза быстрее при исполнении скриптов и позволяет исполнять очень быстро и просто вставки на СИ увеличивая скорость исполнения до 50 раз. ---------------------------- кроме того версия LuaVela на основе luajit решает проблему ограничения памяти 2Гб. -------------------- Так в чем же тайный смысл замены 5.1 на 5.3? Спасибо
Проблема вычисления выражений с дробными числами, message(''..1.100-1.099) -----> 0.0010000000000001
Пользователь
Сообщений: Регистрация: 30.01.2015
26.04.2020 11:32:18
Цитата
Игорь написал: Ничего умнее не придумал для округления до 4 знаков: math.floor(num * 10000+ 0.5) / 10000
Только жалко время на расчеты тратится..
так будет быстрее: 0.0001*math.floor(num * 10000+ 0.5)
Помогите разобраться с ошибкой голосового движка luacom
Пользователь
Сообщений: Регистрация: 30.01.2015
26.04.2020 10:45:29
и еще что у вас в 31 строке library.lua ?
Помогите разобраться с ошибкой голосового движка luacom
написал: оператор 386 выдает сообщение об ошибке, если она есть
так ведь ситуация в том. что бОльшинство раз все работает нормально, а потом что-то происходит, и начинает выдаваться ошибку. Возможно память не очищается и забивается. посмотрим что будет с добавленной командой CoUninitialize() и использованием pcall
сказать что-то конкретнее без текста скрипта сложно. могу предположить что какие-то данные в какой-то момент отсутствуют У вас скорее всего это не проверяется и возникает ошибка например сравнение с nil в итоге происходит вылет скрипта (по такой ошибке бывает пропуск операторов) и в итоге кирдык еще хуже если попадаете в память вне области массивов короче надо ставить контрольные точки и искать что и где можете выложить код, попробую что-то сказать конкретнее
Проблема вычисления выражений с дробными числами, message(''..1.100-1.099) -----> 0.0010000000000001
Пользователь
Сообщений: Регистрация: 30.01.2015
25.04.2020 17:41:11
Цитата
Игорь написал: Ничего умнее не придумал для округления до 4 знаков: math.floor(num * 10000+ 0.5) / 10000
Только жалко время на расчеты тратится..
с какой целью Вы это делаете? В исходном варианте у Вас погрешность 0.0000000000000001 а в вашем - погрешность 0.00005 т е в 10000000000 раз больше. Оно Вам надо? ---------------------- Вам "шашечки" или ехать?
Помогите разобраться с ошибкой голосового движка luacom
Пользователь
Сообщений: Регистрация: 30.01.2015
25.04.2020 17:20:33
Цитата
Sergey Denegin написал: В макросе использую произнесение голосом разных событий.
Функция чтения голосом выглядит вот так:
text = "тест"
w32.CoInitialize()
local vObj = luacom.CreateObject("Sapi.SpVoice")vObj:Speak (text)
Как правило все работает без проблем. Но иногда, почему-то данная функция выдает ошибку ...\Program\QuikRobots\автостоп\. .\автостоп\library.lua:31: COM exception:(..\src\library\tLuaCOM.cpp,386):
Самое неприятное, что весь скрипт после этого останавливается, и это напрягает. Как правило, если потом перезапустить скрипт, ошибка уже повторяется. пока терминал не перезагрузишь или даже компьютер.
Может кто-то знает как решить проблему? 1) либо устранить ошибку совсем 2 ) либо научиться определять, что эта ошибка есть, и как-то не давать скрипту останавливаться
это ошибка в вашей library.lua строка 31 на всякий случай, вот исходник tLuaCOM.cpp
оператор 386 выдает сообщение об ошибке, если она есть
Проблема вычисления выражений с дробными числами, message(''..1.100-1.099) -----> 0.0010000000000001
Пользователь
Сообщений: Регистрация: 30.01.2015
24.04.2020 19:48:17
чтобы было точно надо исчислять в двоично-десятичном формате.
Проблема вычисления выражений с дробными числами, message(''..1.100-1.099) -----> 0.0010000000000001
комп исчисляет в двоичной чел - в десятичной из десятичной в двоичную и обратно не всегда можно точно. вот и получаем приближенно. -----------------------
проблема с w32.dll на quik 8.5
Пользователь
Сообщений: Регистрация: 30.01.2015
23.04.2020 06:39:19
Цитата
Sergey Denegin написал: Здравствуйте. Для работы одного из луа скриптов (автологин) использую внешнюю dll - w32.dll Раньше все работало С переходом на 64х разрядную версию старая dll перестала работать, но на сайте разработчика появилась версия для 64х битной винды. Заменил ею старую версию, но все равно на квике 8.5 выдает ошибку:
error loading module 'w32' from file 'M:\Sergey\Program\QuikFinam-bid\w32.dll': Не найдена указанная процедура.
Взял самый примитивные луа скрипт с одной строкой:
local w32 = require("w32")
Уже на ней выдает ошибку.
История повторяется на двух компьютерах с 6х разрядной виндой
Может кто-то знает в чем дело?
ошибка: Не найдена указанная процедура. обычно указывает что требуемая в вашем приложении функция отсутствует на вашем компе эта функция обнаруживается с помощью dependency
Индикатор работает, но выдает ошибку, Просьба поправить код, чтобы не было ошибок
Пользователь
Сообщений: Регистрация: 30.01.2015
15.04.2020 09:33:17
local TecPos=FuncPops(Emit,MyAccount) -- далее у нас открылась длинная позиция, пишем позицию и бар (bar) в переменную Tpos Tpos={TecPos,bar} и вот теперь что бы из неё выйти мы делаем проверку if Tpos[1] > 0 then --если тек позиция больше нуля то... вот если это условие выполнено, то у нас открыта длинная позиция и теперь переменная Tpos[2] - содержит бар этой позиции
Индикатор работает, но выдает ошибку, Просьба поправить код, чтобы не было ошибок
написал: У вас выводится V(index), а оно есть. -----------------
Да, это я усвоил)) Нужно выполнять проверку на отсутствие значений.
отвечаю на ваш вопрос в письме. Если надо лишь последнее значение бара открытия позиции, то проще присвоить номер бара переменной и сравнивать это значение с текущим номером бара
Индикатор работает, но выдает ошибку, Просьба поправить код, чтобы не было ошибок
Пользователь
Сообщений: Регистрация: 30.01.2015
12.04.2020 16:06:06
Цитата
Денис Лихачев написал: function OnCalculate(index) local VolUp = nil local VolDn = nil if V(index)>V(index-1) then VolUp=V(index); else VolDn=V(index); end return VolUp,VolDn; end
У вас выводится V(index), а оно есть. -----------------
Получить в индикаторе значение цены ещё до OnCalculate()
Пользователь
Сообщений: Регистрация: 30.01.2015
12.04.2020 16:00:01
можно так: ---------------- function oncalculate(indx) if bar1 then -- основное тело else bar1 = C(1) end --------------
Удаление элемента из массива, который прошёл проверку
Пользователь
Сообщений: Регистрация: 30.01.2015
12.04.2020 15:49:46
... table.remove(sec_code,k) ...
Удаление элемента из массива, который прошёл проверку
Пользователь
Сообщений: Регистрация: 30.01.2015
12.04.2020 15:49:05
примерно так: ... for k,bumaga in ipairs(sec_code) do LowDnya = getParamEx (class_code, bumaga, "LOW").param_value Last = getParamEx (class_code, bumaga, "LAST").param_value Raznica = math.abs(LowDnya - Last) if Raznica > 1 then message(tostring(bumaga .. " " .. Raznica )) table.remove((sec_code,k) sleep(3000) end end
требуется скрипт, Нужно написать скрипт за вознаграждения. Посоветуйте специалиста
Тут лучшая готовность - работать с теми, кто не первый год замужем, там народ адекватный в основном и запросы у них адекватные, как в плане временные затраты vs бюджет, так и в плане самой постановки вопроса.
Цитата
написал: отсюда вывод, что не все понимают природу отрытых динамических систем
А можно и еще проще подойти. Пусть наш программист, хорошо понимающий в бирже, делает стабильные (учетная ставка + 10)% годовых за вычетом костов. Это уже как бы отметает вариант "ваще не шарит", да? Поскольку учетную ставку надо на депозите оставлять (иначе этот трейдинг вырождается просто в постепенное прожирание депозита), чистыми "на прожор" он получает 10% годовых. Ок, посчитаем, сколько ему надо держать на бирже, чтобы вынимать в месяц хотя бы зеленую штучку. Подсчет конкретных циферок оставляется в качестве упражнения заинтересованному читателю. Также ему оставляется решить, очень ли здорово торчать у компа с десяти до девятнадцати (а то и двадцати трех пятидесяти) пять дней в неделю за плюс-минус озвученный прайс, когда можно либо а) торчать восемь часов в день за куда более интересный прайс, либо б) вообще не торчать и заниматься тем, что интересно (например, написанием не совсем тривиального кода) в удобном для себя графике.
Часто в головах начинающих наблюдается путаница в понимании кто и что знает Знать что и как на бирже - это одно А уметь написать по тех заданию скрипт для квика - это совершенно другое Чтобы написать скрипт не надо ничего знать о бирже надо изучить луа и квик. Как правило "гениальный" алгоритм торговли придумывает начинающий Очень часто "гениальность" алгоритма обратно пропорциональна знаниям очередного "гения" торговли.
требуется скрипт, Нужно написать скрипт за вознаграждения. Посоветуйте специалиста
Пользователь
Сообщений: Регистрация: 30.01.2015
21.02.2020 11:54:18
Знаю по форуму давно Появился он в первый раз в результате скандала. Я за него заступился, о чем потом пожалел. Скандал был связан с тем, что один его заказчик заказав скрипт на луа получил зашифрованный вариант. Стал возмущаться, что он просил текст а ему код. ну и так далее... Полагаю что чел либо сам писать умеет либо ему кто-то пишет. Об уровне его разработок ничего сказать не могу, не знаю. --------------------------------------- В защиту писателей замечу, что у потенциальных заказчиков часто очень низкий уровень понимания задачи и отсюда расплывчатое т з типа - хочу все быстро и дешево. Но дешевых роботов не бывает, а прибыльных в интернете вы тем более не купите. Но это уже другая история.
экспорт данных из скриптов
Пользователь
Сообщений: Регистрация: 30.01.2015
13.11.2019 21:33:37
Добрый день, Собрал новую версию своей библиотеки для QLUA экспорта данных (числа, строки , элементы таблицы) из скриптов. Отличается от известных тем, что экспорт осуществляется через ссылки . Пока вариант для 32 бит. Если есть желающие и умеющие тестить , стучитесь.
GetInfoParam("SERVERTIME"), не всегда срабатывает
Пользователь
Сообщений: Регистрация: 30.01.2015
13.11.2019 21:23:36
для информации из своего опыта. 1) синхронизируйте комп с сервером точного времени (атомными часами) в итоге время сервера биржи будет совпадать с временем компа и как правило с сервером брокера с погрешностью не более 100 мс (можно получить и 10) 2) сверните окна в квике, которые не используете . Открытые графические окна могут сильно тормозить 3) по возможности закройте все приложения особенно браузер ( я для браузера и прочего использую второй комп) Успехов
Получение данных из Доски опционов
Пользователь
Сообщений: Регистрация: 30.01.2015
06.11.2019 17:10:38
если пишите на СИ, то через DDE и API C для LUA
Торгуемые классы
Пользователь
Сообщений: Регистрация: 30.01.2015
06.11.2019 17:07:12
Из своего опыта. Определял по нулевым параметрам. делал давно, поэтому конкретный параметр уже не помню, а в свалке искать лень.
При получении цены с графика иногда приходит ноль.
это ВООБЩЕ не система реального времени. даже приблизительно. не путайте людей.
я вас не путаю, Полагаю Вы просто не понимаете чем отличается система обработки данных реального времени от ОС РВ. А это две большие разницы. ----------------- Поясняю кратко: система обработки данных реального времени - это аппаратно-программный комплекс , который должен обработать поступивший квант данных до прихода следующего. в противном случае происходит как минимум накопление необработанных данных и потеря актуальности результатов. -------------------- Про ОС РВ вы полагаю знаете, поэтому пояснять нет смысла. =============== торговый робот - это система обработки данных в реальном времени т е для прогноза на тик надо успеть обработать результат сделки до поступления следующего иначе результат будет не актуальным Примером таких систем являются HFT роботы.
на картинке есть наклонные линии они вычисляются по экстремумам и строятся на графике. можно вычислить и построить любые наклонные линии
Торговый робот forex, Поделитесь опытом
Пользователь
Сообщений: Регистрация: 30.01.2015
18.10.2019 07:38:13
На форексе игроков всегда имеет торговый робот брокера, так как форекс - это внебиржевой рынок
Теханализ фьючерса на ртс имеет ли смысл, это же усредненные данные по многим инструментам?
Пользователь
Сообщений: Регистрация: 30.01.2015
18.10.2019 07:34:39
На самом деле если вы не используете гадание по кофейной гуще или подбрасывание монеты для совершение сделок, то вы используете технический анализ. --------------------------- Просто большинство игроков этого не понимают, так как для них тех- анализ ограничивается чтением популярных книжек про то, как стать ... -------------------- В итоге - если Вы не знаете что такое тех анализ и зачем его применяют, то смысла нет, но вы от него не избавитесь.. ================= Чтобы было понятнее Пример тех анализа: Вы берете цену последней сделки и предыдущей и делаете ПРОГНОЗ изменения цен в следующий момент вычисляя разницу цен. Ваш мозг это делаете всегда, когда Вы смотрите на график и пытаетесь угадать движение рынка. --------------------------
Обращение к данным таблицы из индюка, Что-то наподобие БД через AllocTable
написал: Весело. Я правильно понимаю, что фактически в индикаторах можно использовать только данные , ?
Нет, категорически не верно, можно и другие данные, зависит от того что Вам нужно. Если Вам нужно получить данные в индикаторе из другого скрипта, то почему бы не воспользоваться обменом через файлы? Один сприпт пишет в файл, другой читает.
Эммм, несколько странно слышать это от Вас, как от разработчика. Разумеется, у меня большая часть подобного "обмена" реализована. Не не через файлы, а через mysql. Но это же костыль... Некошерно такое делать. Согласитесь, что намного быстрее и удобнее обращаться к таблицам внутри памяти квика (не важно "стандартные" или созданные юзером) через getcell или getitem, чем вешать индикатор ожидая обращения к файлу или запроса от БД? Интересно, в чем проблема в реализации? Много обработчиков писать?
проблема в том, что надо синхронизировать потоки. так как написание скриптов игрушка сугубо для клиентов брокеров, то разработчикам нет смысла с этим заморачиваться. Если очень надо -пишите сами. Я именно так и делал. В итоге у вас не будет дублирование одной и той же информации в различных скриптах и ускорится работа скриптов так как не надо будет много раз вызывать одни и те же колбеки.
Несколько вопросов по оптимизации производительности
Пользователь
Сообщений: Регистрация: 30.01.2015
18.10.2019 07:12:52
Рекомендую отключить опцию "Исходя из настроек открытых пользователем таблиц" навсегда и настроить квик вручную так как нет надобности каждый день перестраивать все заново. ------------------ В итоге будете точно знать что у вас приходит.
Линии тренда
Пользователь
Сообщений: Регистрация: 30.01.2015
17.10.2019 07:51:48
Примеры рисования в QUIK на луа. Мне этого достаточно, а Вам?
При получении цены с графика иногда приходит ноль.
Пользователь
Сообщений: Регистрация: 30.01.2015
17.10.2019 07:41:47
скорее всего причина - ошибка в алгоритме получения это же система реального времени с асинхронным приходом данных. Вы это учитываете?
Индикатор с линиями заданной длины, Индикатор с линиями заданной длины
Пользователь
Сообщений: Регистрация: 30.01.2015
17.10.2019 07:16:54
если надо чтобы правый конец линии был прижат, то на каждой новой свече надо добавить справа и удалить слева одын значения.
Индикатор с линиями заданной длины, Индикатор с линиями заданной длины
Пользователь
Сообщений: Регистрация: 30.01.2015
17.10.2019 07:15:09
это сделать просто надо задать условие границ и при выходе за них выводить значение NIL
callback OnParam(args) and getParamEx2(args), Тип данных параметра (param_type) отсутствует в описании QLUA.chm
Пользователь
Сообщений: Регистрация: 30.01.2015
22.09.2019 13:04:45
просто false означает, что все остальное -ложь. и 0 и 1 и 2 и 3 Какая разница что там записано 0 или 99999 если это false.
Исключение незавершенных свеч
Пользователь
Сообщений: Регистрация: 30.01.2015
22.09.2019 12:58:11
Цитата
eSKon2 написал: Добрый день. Подскажите как в индикаторе проверить что свеча незавершенная. Иначе получается, что значения сохраняемые через замыкания, постоянно обновляются во время изменения последней свечи, как результат весь индикатор считается правильно только при перерисовке с нуля, динамически он уже нормально не работает.
очень просто, если время свечи текущего отсчета равно времени предыдущего, то свеча не завершена. еще есть флаг закрытой свечи (см док на QLUA)
s_mike@rambler.ru написал: Как показывает практика, ODBC и DDE вряд ли получится заставить работать стабильно и надежно.
За ODBC не знаю, а DDE вполне себе надежно работает, если аккуратно серверную часть сделать. Другое дело, что чуть какая предобработка нужна и все равно придется подпиливать костылики на луа, и тут появляется фактор "ой, я DDE стартанул, а скрипт забыл запустить", так что в итоге все верно сказано, луа как луа или луа как интерфейс к сям-плюсам - единственный удобный вариант.
стартуйте DDE в скрипте LUA внешним скриптом например на AutoiT
danich написал: На форме ' Вывод по ODBC ' есть флаги ' Чистить таблицу ', ' Формальные имена ' и кнопки ' Н ачать ' и ' Прекратить '. Как в lua-скрипте пров ерить значения флагов и состояние кнопок ?
написать внешний скрипт c hook
OnOrder, снятие заявки
Пользователь
Сообщений: Регистрация: 30.01.2015
22.09.2019 12:37:33
и главное зачем скрипту знать, что сняли по заявке пользователя или другого бота? ------------------------------ какой любопытный скрипт вы написали.
OnOrder, снятие заявки
Пользователь
Сообщений: Регистрация: 30.01.2015
22.09.2019 12:35:17
Цитата
Старатель написал: Скрипт отправляет транзакцию на снятие заявки. Допустим, OnOrder получен раньше или OnTransReply вообще не пришел. Есть возможность установить инициатора снятия: сам скрипт, пользователь (вручную) или, может, другой бот?
если скрипт отправил заявку, то он знает это если заявку сняли но он не отправлял то тоже знает. кому надо устанавливать инициатора?
Вопрос по скрипту индикатора Bollinger Bands
Пользователь
Сообщений: Регистрация: 30.01.2015
29.06.2019 19:12:03
поясню откуда что берется. Данная формула берется из следующей гипотезы. Полагаем что цена отклоняется от оценки среднего значения случайным образом по гауссовскому закону плотности вероятности отклонения тогда с вероятностью 0.95 имеем 1.96*ср.квадр ----------------- Но это гипотеза не верна (доказано в прошлом веке) так как закон распределения цены не нормальный следовательно центр тяжести нельзя считать как среднее следовательно закон двух сигма не работает ------------------ Резюме: алгоритм этого индикатора такой: Берете любой фильтр например скользящее среднее вычитает его из цены сглаживаете фильтром модуль ошибки и прикручиваете к первой линии еще две никакой существенной разницы нет какие формулы вы применяете. так как особого тайного смысла как и ценности в них тоже нет. ====================== Вообще-то зачем городить расчет индикатора когда он есть в КВИКЕ поставьте метку и читайте значения в своем скрипте Зачем изобретать дырку от бублика.
Локальность переменной
Пользователь
Сообщений: Регистрация: 30.01.2015
29.06.2019 18:57:01
Вы же не сказали сколько "быстро" и сколько у Вас сейчас. Если серьезно, то все познается в сравнении. возьмите время пинга да сервера брокера прибавьте время реакции сервера на ваше послание добавьте время проверки ваших лимитов прибавьте время кванта ваших задач на компе. добавьте время вычисления вашего скрипта луа Получите примерно от 0.2 сек до 10 сек и более то что Вы пытаетесь сделать даст Вам примерно 0.01 сек. Вам это надо?
Локальность переменной
Пользователь
Сообщений: Регистрация: 30.01.2015
27.06.2019 18:28:05
добавлю строка row=getItem("orders",i) означает присвоить переменной row, которая определена в локальной таблице скрипта, значение функции getltem которая определена в локальной таблицы библиотеки QLUA которая определена в глобальной таблице VMLua Ну как быстрый вызов получается?
Ema lua
Пользователь
Сообщений: Регистрация: 30.01.2015
15.06.2019 18:53:05
Цитата
Sergey написал: Здравствуйте, подскажите пожалуйста код функции EMA, или подробный алгоритм, в нэте туча подобных алгоритмов EMA (t) = EMA (t-1) + 2 *(P(t) – EMA (t-1))
EM=Price(t)×k+EMA(y×(−k)
хоть они и разные и во всех их не могу одного понять! EMA (t) = EMA (t-1) + 2 *(P(t) – EMA (t-1))
EM=Price(t)×k+ EMA(y×(−k)
откуда мне знать чему будет равен EMA (t-1) и тд, если я его только хочу вычислить, просто для меня это звучит так, подходит ко мне человек с потерей памяти и спрашивает меня, сколько ему лет, а я ему говорю, ЛЕТ=(Лет-1) + 1 О_о так он же не знает сколько ему было лет, и сколько есть.
Кратко примерно так: это простейший фильтр EMA - это сигнал на его выходе P - это сигнал на его входе В начальный момент вы его включаете. Как телевизор EMA(t-1) - это то что было на его выходе до включения (как телевизор) - ничего т е ноль ноль был и в момент t-миллион ----------------- В программах любых фильтров делается блок инициализации, в котором вы должны задать начальные значения всех переменных В простейшем случае они равны нулю Но лучше задавать их равными сигналу в начальный момент это уменьшает переходной процесс в фильтре примерно так подробнее читайте в учебниках по теории цифровой фильтрации сигналов
биржа штрафует за ошибочные транзакции. хочу уточнить - если я вижу такое сообщение, значит моя транзакция не долетела до биржи и отбита сервером брокера?
никто вас не штрафует. либо нет денег либо нет заявки и она уже исполнена иногда такое сообщение появляется при снятии заявок хотя заявка успешно снимается.
Индикатор фрактал
Пользователь
Сообщений: Регистрация: 30.01.2015
11.06.2019 17:43:25
выкиньте этот код и напишите новый. индикатор фрактал имеет очень простой алгоритм примерно так: если максимум текущей свечи меньше максимума предыдущей то ищем вершину в прошлом аналогично для минимума Подумайте над этим
Отладчик, статистика для теста робота и непонятный висяк, C++ интеграция
Пользователь
Сообщений: Регистрация: 30.01.2015
11.06.2019 17:40:01
Вы в одну кучу свалили множество самостоятельных задачи и пытаетесь их разом решить. их надо решать последовательно и независимо друг от друга. Тогда решите за обозримое будущее и с меньшими потерями. ========== QLUA -это лишь библиотека для VM Lua ---------------------- В своем посте вы обозначили следующие задачи: 1) Изучение языка луа 2) изучение API С для lua 3) оболочка API C для C++ 4) изучение функций библиотеки QLua 5) методы исследования рынков 6) методы построения систем реального времени обработки сигналов ------------ Подумайте над этим
2-x кратный расчет индикатора
Пользователь
Сообщений: Регистрация: 30.01.2015
02.06.2019 08:25:53
исправил так: ... function onCalculate(m) if countX==0 and Size()>m then return end countX=m; ... end