BlaZed (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 След.
Проверка на nil
 
Цитата
Евгений написал:

Еще ньанс: Данная ошибка выскочила всего 1 раз за год бесперебойной работы скрипта..  
Сразу бы это сказали...
Цитата
Евгений написал:
Хотелось бы узнать причину или как побороть данную ошибку, чтобы срипт не вылетал с ошибкой.
Вероятно при первой проверке getFuturesLimit вернул таблицу, а при второй у брокера что-нибудь глюкнуло, и getFuturesLimit вернул nil
Надо было закинуть результат getFuturesLimit в переменную и ее уже проверять
Проверка на nil
 
Покажите чему равно
Код
type(getFuturesLimit(FIRM, ACCOUNT, 0, "SUR"))
Как получить цены "BID" и "OFFER" чтобы они выводились как в стакане?
 
Цитата
nikolz написал:
если надо с каким-то дробным хвостиком то надо делать так:
Код
   local  bid =  150.123456 ;
 local  step =  0.1 ; price = bid -  bid % step;   print ( "price="  .. price)   -- десятые доли 
 local  step =  0.01 ; price = bid -  bid % step;   print ( "price="  .. price)   --сотые доли 

  
результат:
Код
   > D:/lua53/lua53.exe  - e  "io.stdout:setvbuf 'no'"   "example.lua"  
price =  150.1 
price =  150.12 
 > Exit code:  0 

  
а как же округление?
Код
function Normalize(num,step)
  local a=(num+step*0.5)-(num+step*0.5)%step
  return math.tointeger(a) or a
end

local bid=150.123456
local step=0.0001
local res=Normalize(bid,step)
print("res="..res)
результат
Код
res=150.1235
ордер - Book-or-Cancel, Book-or-Cancel
 
Цитата
Anton Belonogov написал:
Юрий, добрый день.

Если Вас интересует такая возможность, мы можем зарегистрировать пожелание на соответствующую доработку.
Уточните, пожалуйста, регистрируем такое пожелание?
Я хоть и не Юрий, но тоже прошу зарегистрировать пожелание реализации BOOK_OR_CANCEL для фиксированного формата

Еще бы за адекватное время реализовали.
Доработка нужная, экономия на комиссии как-никак
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
nikolz написал:
Цитата
Glukator написал:
 
Цитата
nikolz  написал:
Хвалюсь.
------------------------------
Сегодня мой робот на сбере показал такую картинку с начала года.
 

Т е c 3.01.2024 профит   2.44%, из них 1.72 - лонг и 0.72 -шорт.
Стратегия "купил и держи" дала бы  1%.  
 Чем тут хвалиться? Этой уродливой картинкой, по которой единственное, что можно понять, - что она опасна для глаз смотрящего?
У меня цыгане на соседней улице живут, так вот от их шмоток в глазах меньше рябит.
Это Ваша проблема. Сочувствую.
Но ведь Glukator прав
Думаете, что хоть один человек на форуме кроме вас может понять что на ней изображено?

Мы видим просто кучу рябящих в глазах линий, циферки какие-то и снизу надпись сбербанк )))

Просто представьте, что не вы ее создали и изначально не знаете что на ней изображено, не реально же разобраться в ней.
Смена типа заявки во время отправки
 
Посмотрите в сторону отправки Book_or_cancel заявок, похоже на то что вы ищите
Реализовано правда пока что только через универсальный формат транзакций
Разрыв соединения в фоновом режиме, Разрыв соединения в фоновом режиме
 
А может интернет нестабильно работает?
Помогите в написании скрипта, Помощь в написании скрипта
 
Цитата
nikolz написал:
как определил, что задача простая?
А разве надо определять? Тут иной подход
Обзываешь задачу простой и она сразу стоить меньше будет, ну простая же )
Отключение смс кода при каждом входе
 
Цитата
Mark1010 написал:
Можно ли его переадресовать на почту либо вовсе отключить?
Настройки двухфакторной авторизации зависит от брокера.
Поройтесь в настройках личного кабинета или задайте этот вопрос непосредственно брокеру

Цитата
Mark1010 написал:
Подскажите какие есть возможные варианты решения проблемы?
Когда у меня возник такой вопрос, то я решил не отключать двухфакторную авторизацию (все же это дополнительная защита денег), а автоматизировать прием и ввод смс.
Подробности тут https://quik2dde.ru/viewtopic.php?id=341
Странная работа скрипта, Работает только если запущен после старта работы биржи
 
Или сделайте еще проще, добавьте в начало коллбека строчку
Код
function OnAllTrade(alltrade)
message("OnAllTrade сработал")
// дальше идет ваш код колбека
...
...
...
end
и тогда у вас возникнет уже правильный вопрос, почему коллбек срабатывает, а ваш скрипт его не может нормально отработать
Странная работа скрипта, Работает только если запущен после старта работы биржи
 
Цитата
Mikhail_04 написал:
Конкретно, колбэк onAllTrades никак не отрабатывает, если скрипт запущен до запуска торгов
Да пофигу коллбекам когда скрипт был запушен, событие есть, коллбек сработал.
Цитата
Mikhail_04 написал:
Как такое может быть?
Что-то у вас в коде не то, смотреть надо

Урежьте код до минимально возможного, но чтобы проблема на нем воспроизводилась и покажите.
Странная работа скрипта, Работает только если запущен после старта работы биржи
 
Цитата
Mikhail_04 написал:
Мой скрипт начинает работу с подбора инструментов
Вот тут и завелась принципиальная ошибка.

У меня, например, скрипт постоянно в цикле проверяет является ли текущее время рабочим для биржи, установлено ли соединение с сервером, состояние торговой сессии, соответствие локального времени и времени последней свечи, корректность получения необходимых параметров рабочих бумаг.
И только если все его устраивает, то запускается торговый функционал.

Короче, обвешайте свой скрипт дополнительными проверками.
ордер - Book-or-Cancel, Book-or-Cancel
 
Цитата
Александр Магн написал:
А что в итоге, реализовали для фиксированного формата?
Какой вы нетерпеливый, всего 9 месяцев прошло
Тут доработки по несколько лет ждут
не закрывает вовремя позицию!
 
Цитата
Владимир написал:
BlaZed,
Цитата
Какая моя фраза не верна во вашему мнению?
Долбите по рынку в последние секунды/миллисекуны нужной свечи
Ну тогда требую пояснений, что не так в моей фразе.
Ибо заданные выше в теме условия выполняются в очень большой долей вероятности.

Цитата
Владимир написал:
Цитата
А вот что такое ваше "Когда свеча закрывается"?
Когда истекает её таймфрейм. Лично я с незакрытыми свечами вообще не работаю, а анализирую их именно в момент закрытия.
Вы что-то уже сами себе противоречите, то утверждаете что на все эти секунды миллисекунды болт забили, то вдруг анализируете свечи в определенный момент.Я вот тоже на незакрытые свечи внимания особого не обращаю, но ловить моменты закрытия.. нахрен надо. Анализируем все кроме последней (они по определению уже закрытые) и не страдаем ерундой.
не закрывает вовремя позицию!
 
Цитата
Владимир написал:
Наоборот
Какая моя фраза не верна во вашему мнению?
Цитата
Владимир написал:
Когда свеча закрывается, смотрим на LAST, это и будет CLOSE свечи
Ну, как бы, LAST всегда является CLOSE последней свечи, об этом спору нет.

А вот что такое ваше "Когда свеча закрывается"?
Свеча она либо закрытая, либо пока еще открытая, промежуточного значения нет.
не закрывает вовремя позицию!
 
Цитата
Sergey написал:
подскажите как закрываться тогда когда мне нужно и не быть зависимым от тиков?
Рыночной заявкой

Цитата
Sergey написал:
бывает мне нужно закрыться на close свечи
Долбите по рынку в последние секунды/миллисекуны нужной свечи и ваша сделка, возможно, и станет CLOSE свечи )))
sendTransaction, BOOK_OR_CANCEL
 
Видно же что сразу с кодировкой проблема
Кодировка файла со скриптом должна быть cp1251
Пассивная заявка в sendTransaction(), Как правильно заполнить
 
Цитата
Karina Dmitrieva написал:
Здравствуйте, NikitaS.

На данный момент ввод заявки с признаком "Только пассивная" с помощью функции sendTransaction возможен при использовании универсального формата транзакций.
Чтобы получить необходимое описание в данном формате, Вы можете в Рабочем месте QUIK в "Кармане транзакций" ввести требуемую транзакцию и сохранить ее в .tri-файл,
после чего использовать полученные параметры в вызове sendTransaction.
Примите пожелание на реализацию функционала подачи пассивной заявки через фиксированный формат транзакций.

PS:
Вот удивляюсь я с вашего наименования форматов.
Тот что в квике называется универсальным нифига не универсальный и зависит от выбранного языка терминала.
А формат который действительно универсальный, в квике называете фиксированным.
Л - ЛОГИКА )))
Баг документации - нет актуальных названий параметров param_name в getParamEx
 
Цитата
funduk написал:
нигде в документации по qlua нет ни списка этих параметров, ни информации о том, где их брать
Есть библиотека, которая умеет выдергивать все доступные параметры в разрезе классов инструментов


Качать тут http://qgcp.totalh.net/
Дельта - хеджер, Буду рад комментариям по коду
 
Цитата
Олег123 написал:
Первые шаги на QPILE, буду рад комментариям по приложенному коду.
Вот не с того вы первые шаги делаете...
Разрабы давно уже отказались от поддержки QPILE, развиваться язык больше не будет.
Хочется программировать под QUIK пишите на LUA, а трупик QPILE совершенно нет смысла пинать
История позиций и торговли, Пропадает точка входа за вчера на графике
 
Цитата
Roman Koledin написал:
 Спасибо за Ваше мнение - но позвольте (Отсутствие линии входа на графике и отсутствие истории Вы относите к СВИСТЕЛКАМ и ПЕРДЕЛКАМ) - как ?! То что главное и первое на что смотрится МОЖНО отнести к перделкам - повторюсь ЭТО ОСНОВА ОСНОВ в любой платформе!
Без обид, но для меня, например, это совершенно не важно.
Зайдите в раздел пожеланий по развитию квика, почитайте, наверняка каждый второй свое пожелание считает критически важным.
И много из этого реализовали?
Да ничего практически.
Раздел бесполезный, чисто поболтать.
Исключения, когда пишут не про пожелания, а указывают на ошибки, это иногда реально исправляют.

Quik позиционирует себя как торговый терминал
Инфа об инструментах есть, график есть, стакан есть, поручения работают.
Все остальное и есть свистелки с перделками, которые реализуются самостоятельно.

Цитата
Roman Koledin написал:
PS - И еще писать на LUA я к сожалению не умею - а устанавливать свистелки и перделки "созданные кем то" нет желания
Ну можете надеяться на разработчиков, когда через несколько лет надоест ждать, мнение, возможно, поменятся.

Вангую.
Скоро в теме появится представитель разработчика, напишет, что "Ваше пожелание зарегистрировано бла-бла-бла".
Потом еще раз появится и напишет "Мы рассмотрели Ваше пожелание бла-бла-бла реализация пожелания признана потенциально целесообразной и т.д."
Через несколько лет кто-нибудь в теме спросит где же реализация
Зайдет очередной представитель разраба и напишет "Реализация всех пожеланий происходит согласно нашему регламенту и т.д.", короче ждите
Как-то так
Робот-сканер нескольких инструментов в Quik Lua
 
Цитата
Алексей А. написал:
Не подскажете, при помощи чего можно сделать цикл перебора инструментов?
Да хотя бы так
Код
instruments={{"class1","sec1"},{"class2","sec2"},{"class3","sec3"},{"class4","sec4"}}
for _,val in ipairs(instruments) do
   message(val[1].." "..val[2])
end

Цитата
Алексей А. написал:
С "вечным циклом" и проверками разобрался.
Разобрался, говорите?
На счет проверок вас впереди ждет не мало "сюрпризов", скоро это поймете.
История позиций и торговли, Пропадает точка входа за вчера на графике
 
Да примите уже как факт, что пожелания не выполняются в разумные сроки.
Это вроде как всем давно понятно, но возмущения никак не утихнут.

Со своей основной функцией quik вполне себе справляется, торговые поручения выполняются.

А все свистелки-перделки, либо будете ждать еще неизвестно сколько лет, либо можете запрограммировать на lua и сторонних библиотеках.
Робот-сканер нескольких инструментов в Quik Lua
 
Цитата
Алексей А. написал:
Подскажите, пожалуйста, что добавить в скрипт, чтобы можно было запустить его один раз, чтобы постоянно мониторил цену, пока не отключишь его.
Если вкратце, то
Добавить цикл который будет крутить майн пока не остановите
Добавить цикл перебора инструментов
Добавить 100500 проверок, чтобы скрипт не скупил все растущие бумаги на все деньги ))
Фильтр дублей сигналов на сделку, Как реализовать?
 
Цитата
Сергей написал:
Руками я могу и без QLUA торговать. Мне нужно эту штуку в другую штуку встроить и получить полный автомат :)))
Причем тут руки? Вроде как все понимают, что обсуждается логика робота.

Цитата
Сергей написал:
Советника делаю, а плох тот советник, который сначала даст сигнал на лонг, а потом несколько сигналов на закрытие сделки.
Ну это весьма спорный вопрос.
Появился сигнал на покупку - купили.
Появился сигнал на продажу - продали.
Появился второй сигнал на продажу, а продавать уже нечего - проигнорировали.
Не вижу тут никакой проблемы, все логично и просто.

Цитата
Сергей написал:
Вы сначала даете детсадовские советы, затем задаете вопросы, которые меня настораживают.
Так если вы задаете "детсадовские" вопросы, какого ответа вы ожидаете то?
Готовый код робота ждете что ли?

nikolz один вариант предложил, я другой, чем недовольны непонятно

Сформулируйте вопрос нормально, получите другой ответ.
Фильтр дублей сигналов на сделку, Как реализовать?
 
Что-то вы мудрите сильно, все же гораздо проще

Определяем сколькими лотами торгуем, от этого и пляшем.
У меня это рассчитывает функция, в зависимости от ГО, волантильности и остатка на счете.

Решили, например, торговать 10 лотов

Далее все просто

Если с шортами торгуем
Есть сигнал на покупку и у вас меньше 10 лотов, докупаем до +10 лотов
Есть сигнал на продажу и у вас больше -10 лотов, допродаем до -10 лотов

Если без шортов
Есть сигнал на покупку и у вас меньше 10 лотов, докупаем до +10 лотов
Есть сигнал на продажу и у вас больше 0 лотов, допродаем до 0 лотов
Как работать с битовыми флагами?, Как получить бит из битогового флага?
 
Игорь Б, в документации LUA сказано:
Цитата
Библиотека bit32 стала нежелательной. Легко загрузить совместимую внешнюю библиотеку или лучше заменить её функции соответствующими битовыми операторами. (Помните, что bit32 оперирует с 32-битными целыми, а битовые операторы Lua 5.3 оперируют с целыми Lua, которые по умолчанию имеют 64 бита.)
Так что ваш вариант хоть и рабочий, но использовать его не рекомендуется.

У меня, например, проверка происходит примерно так:
Код
if(tbl['flags']>>2&1==1)then
  -- Продажа (бит 2 равен 1)
else
  -- Покупка (бит 2 равен 0)
end
Флаги для таблицы сделок
 
Цитата
Сергей написал:
Прошу пояснить, по какой причине указан бит 0, и следующий сразу бит 2. Почему нет бита 1?
Исторически так сложилось.

Раньше, если память  не изменяет, и для заявок и для сделок использовался один набор битовых  флагов (загляните в справку по 7.x версии, например), потом из  разделили.
В любом случае смысла забивать этим голову нет, работаем с тем что имеем
срочный рынок Московской биржи переходит на новую тарифную модель
 
Цитата
nikolz написал:
на бирже надо не расходы экономить, а убытки сокращать.
Экономия на комиссии биржи хоть и копейки, но если их можно будет избежать добавив одну строчку кода, то почему бы и нет?
срочный рынок Московской биржи переходит на новую тарифную модель
 
Цитата
Anton Belonogov написал:
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
Тоже считаю возможность создавать пассивные заявки через sendTransaction весьма нужным функционалом.
Надеюсь реализовывать будете не 10 лет.
COMMENT и CLIENT_CODE
 
Читаю тему и складывается такое ощущение, что друг друга просто не понимаете.

Цитата из руководства пользователя QUIK
Цитата
CLIENT_CODE 20-ти символьное составное поле, может содержать код клиента и текстовый комментарий (поле «Комментарий») с тем же разделителем, что и при вводе заявки вручную. Необязательный параметр
Проще говоря, то что мы помещаем в параметр CLIENT_CODE при формировании транзакции, должно попасть в поле "комментарий" в таблице заявок.
Собственно, так оно и работает, и это весьма удобно для отслеживания и нахождения нужных заявок.

ТС же столкнулся с ситуацией, что вне зависимости от того что помещаешь в параметр CLIENT_CODE транзакции, в поле "Комментарии" в таблице заявок прилетает Номер счета.
И весь вопрос в том кто в этом виноват, брокер или терминал.
Получить дату закрытия реестра по дивидендам
 
Цитата
Роман написал:
Может все таки есть вариант проще?
Конечно есть вариант попроще.
Тут на форуме есть пользователь Антон, его библиотека умеет выдергивать все возможные параметры из квика
http://qgcp.totalh.net/

Параметр отвечающий за дату закрытия реестра называется dividenddate
Кривые шибки в QLua
 
Цитата
Роман написал:
Попробуйте создать в папке Quik папку LuaIndicators и положить туда скрипт.
Не надо ерунды советовать, этот скрипт не индикатор
Кривые шибки в QLua
 
Цитата
Алексей написал:
В чём может быть проблема?
Скрипт рабочий, выводит "Hello, World" в окно сообщений.
Тут не работать нечему

У вас окно сообщений то хоть на панели имеется?
Отличие функции OnDisconnected от
 
Цитата
Quikos написал:
Правильно ли я понимаю, что отличия нет ?
Неправильно.

Вы же сами нашли описания функций, так прочитайте их вдумчиво.
Первая это коллбек, а вторая определение состояния.
Как из скрипта lua узначть что терминал QUIK загрузился полностью и подгрузил данные эккаунта ?, Как из скрипта lua узначть что терминал QUIK загрузился полностью и подгрузил данные эккаунта ?
 
Цитата
Владимир написал:
А зачем?
Как вам ответить, ленивый я, и люблю максимально автоматизировать все что можно.
Чтобы не было необходимости постоянного ручного контроля.
Не хочу я каждое утро включать комп как вы, у меня он всегда включен.
Бывают же проблемы у провайдера, например порвалась интернет сессия потом восстановилась.
В моем случае скрипт просто заново подключится к брокеру.
А у вас? Руками подключаться, пропустив время торговли, когда возможно были удачные моменты для входа?

Ну или у меня настроено автоматическое получение обновлений винды, после которых при необходимости по ночам перезагружается система.
Абсолютно пофигу, комп перезагрузится, пользователь автоматом залогинится, квик стартанет и подключится к брокеру, а утром продолжит торговлю как ни в чем не бывало.

Да даже банально свет выключили, а ИБП не выдержала долгого отключения. Когда дадут свет, все заведется и будет работать.

Или на месяц свалить на отдых и быть уверенным что торговля идет как и задумано.

По мне так сплошные плюсы

Цитата
Владимир написал:
зачем автоматизировать потенциально аварийную ситуацию?
А где тут вы увидели "потенциально аварийную ситуацию"?
Пару лет, если не больше работает так, аварий не наблюдал ни разу.

Цитата
Владимир написал:
Не говоря уже про двухфакторную аутентификацию - там ведь и обратную связь нужно иметь, причём по независимому каналу.
Вот тут есть ваша правда, полностью независимого канала я этим лишился, комп имеет доступ к СМСкам, но это осознанные потери.
Скажем так, автоматическая двухфакторная авторизация лучше чем полное отсутствие двухфакторной авторизации, но хуже чем через независимый канал.
Как из скрипта lua узначть что терминал QUIK загрузился полностью и подгрузил данные эккаунта ?, Как из скрипта lua узначть что терминал QUIK загрузился полностью и подгрузил данные эккаунта ?
 
Цитата
Владимир написал:
Какое отношение скрипт имеет к авторизации?
Это дело Квика, но никак не скрипта - автоматическая авторизация не может быть реализована на любом языке.
Ну если квик не умеет автоматическую авторизацию, то приходится реализовывать это самостоятельно.
Цитата
Владимир написал:
А скрипту она совершенно по барабану (моему, во всяком случае).
Так моему тоже )))

Есть торговый скрипт, а есть скрипт для авторизации.
И это совершенно разные скрипты с разным функционалом.
Как из скрипта lua узначть что терминал QUIK загрузился полностью и подгрузил данные эккаунта ?, Как из скрипта lua узначть что терминал QUIK загрузился полностью и подгрузил данные эккаунта ?
 
Цитата
Рустем написал:
А чм вы автологинитесь ?
При помощи w32.dll ?
Скриптом, используя функционал библиотеки w32.dll
Тут на форуме есть пользователь swerg, его сборкой библиотеки пользуюсь, отличная вещь.
Как из скрипта lua узначть что терминал QUIK загрузился полностью и подгрузил данные эккаунта ?, Как из скрипта lua узначть что терминал QUIK загрузился полностью и подгрузил данные эккаунта ?
 
Цитата
Владимир написал:
А что, собссно, нельзя реализовать на луа?
Например автологин и прохождение двухфакторной авторизации на "чистом" луа без доп. библиотек и сторонних утилит даже на представляю как сделать.
А это весьма нужный функционал для автоматизации на мой взгляд.
Как из скрипта lua узначть что терминал QUIK загрузился полностью и подгрузил данные эккаунта ?, Как из скрипта lua узначть что терминал QUIK загрузился полностью и подгрузил данные эккаунта ?
 
Цитата
Владимир написал:
КАКИЕ ИМЕННО "костыли" позволяют добиться стабильной работы?
Шутить изволите?
Да у меня значительную часть кода занимают костыли, которыми проверяю как факт доставки, так и корректность получаемых данных и даже передаваемых данных.
Ну как пример
Код
    local param=getParamEx2(class_code,sec_code,"LAST")
    if(param.result=="1")and(param.param_image~="")and(param.param_type=="1")and(tonumber(param.param_value)~=0)then params["LAST"]=tonumber(param.param_value) end
и вот без подобных проверок на каждый чих замучаешься потом ошибки ловить, и будешь кричать на весь форум что квик говно.

У квика, на мой взгляд, основная беда в том, что нет гарантии что  ты получишь данные, а если получил их, то это еще не значит, что они  будут корректными.
С отправляемыми данными из-за динамической типизации та же беда, надо всегда убеждаться что они корректные.
Зато если убедился что с данными полный порядок, то скипт как-то стабильно работает, ну если руки не из жопы, конечно.

Цитата
Владимир написал:
А вот Квик я как раз поменял, с девятой версии снова на восьмую.  Десятку даже не пытался ставить, но по здешним отзывам она хуже даже  девятки.
Всегда обновлялся практически сразу, как только арка обнову выкатывала.
По-крайней мере всё что мне надо, работает начиная с седьмой и по десятую.
Цитата
Владимир написал:
И что Луа есть полное дерьмо, но писать нужно именно на нём, тоже говорил.
Предпочтительно писать на луа, это да.
Но далеко не все можно реализовать на луа.
Я не про непосредственно торговлю, а про автоматизацию торговли, чтобы не сидеть перед монитором постоянно.
Как из скрипта lua узначть что терминал QUIK загрузился полностью и подгрузил данные эккаунта ?, Как из скрипта lua узначть что терминал QUIK загрузился полностью и подгрузил данные эккаунта ?
 
Цитата
Владимир написал:
Здесь ни в чём нельзя быть уверенным наверняка, и никакие костыли от этого не спасут.
Ну зачем так категорично-то?
Спору нет, в Квике проблем хватает, но с помощью "костылей" вполне можно добиться стабильной работы.
Я так уже и не помню когда в свои скрипты последний раз серьезные правки вносил, только мелочи всякие причесываю, да стратегию немного корректирую под текущие условия.
Торгуют роботы, деньгу приносят и никаких проблем не наблюдается.

Цитата
Владимир написал:
Я уже приводил пример, что данные портфеля ЧАСАМИ могут лежать неправильными.
Я бы после подобного брокера сменил.


Зачем постоянно на квик ругаться?
Вы же тут сами постоянно пишете, что ваш робот 100500 инструментов одновременно торгует и зарабатывает.
Квик это ж всего лишь инструмент, со своими, конечно, косяками, но работать на нем вполне можно.
Как из скрипта lua узначть что терминал QUIK загрузился полностью и подгрузил данные эккаунта ?, Как из скрипта lua узначть что терминал QUIK загрузился полностью и подгрузил данные эккаунта ?
 
Цитата
Рустем написал:
Что является для программы триггером что можно начать анализировать данные и торговать ?
Нет четкого триггера.
Есть только определенная вероятность того, что данные получены.

Я, например, опрашиваю таблицу, пока ее размер не станет больше нуля, но не дольше заданного времени.
Если время прошло, а таблица все-еще пустая, то считаем что позиций нет.
Код
function FuturesClientHolding() -- Первоначальное заполнение позиций по срочному рынку
  params["TOTALNET"]  = 0 -- Текушие позиции
  params["OPENSELLS"] = 0 -- Активная продажа
  params["OPENBUYS"]  = 0 -- Активная покупка
  local n=0
  while (runStatus==3)and(n<try_count)and(getNumberOf('FUTURES_CLIENT_HOLDING')==0) do -- Ждем заполнения таблицы "Позиции по клиентским счетам (фьючерсы)"
    if(n==0)then message("["..account.."] Ждем... Позиции по клиентским счетам") end
    sleep(loop_timeout) n=n+1
  end
  if(getNumberOf('FUTURES_CLIENT_HOLDING')>0)then -- Таблица "Позиции по клиентским счетам (фьючерсы)" заполнена
    for i=0,getNumberOf('FUTURES_CLIENT_HOLDING')-1 do
      local tbl=getItem('FUTURES_CLIENT_HOLDING', i)
      if(type(tbl)=="table")and(tbl['firmid']==firmid)and(tbl['trdaccid']==account)and(tbl['sec_code']==sec_code)and(tbl['type']==0)then
        params["TOTALNET"]  = tbl['totalnet']
        params["OPENSELLS"] = tbl['opensells']
        params["OPENBUYS"]  = tbl['openbuys']
      end
    end
  end
  message("["..account.."] Позиции: Текущие="..params["TOTALNET"].." Покупка="..params["OPENBUYS"].." Продажа="..params["OPENSELLS"])
end

Метод весьма далек от идеала, но лучшего не нашел.

PS: В свое время рассматривал еще один вариант.
Перед проверками поставить один лот на покупку по минимально возможной цене (чтобы точно не сработала заявка), и тут же снять его.
После чего ждать пока в таблице позиций не появится нужный инструмент, а он обязан будет появиться.
Неверная версия протокола в Quik 10.0.0.183, (брокер Сбер)
 
Это значит что брокер еще не перевел свои сервера на десятую версию
Не работает простейший скрипт вывода сообщения
 
Атака клонов  :cool:  
Шаг сетчика в операторе for, Некорректная работа оператора for при нецелочисленном шаге
 
Сегодня столкнулся с некорректной работой оператора for, если задать не целочисленный шаг счетчика

Простой пример
Код
for x=1,2,0.1 do
 message("x="..x)
end
Логично ожидать перебор значений от 1 до 2 включительно с шагом 0.1
Однако перебор значений идет от 1 только до 1.9

Пришлось выкручиваться костылем, типа такого
Код
for x=10,20,1 do
 message("x="..x/10)
end

Причем косячит не для всех шагов, например при шаге 0.2 все корректно.


QUIK 9.7.1.10
Предварительная проверка наличия в базе Quik инструмента (опциона), Subscribe_Level_II_Quotes и getParamEx не существующего опциона приводят к зависанию Quik
 
Я бы проверку на корректность возвращаемых значений сделал посерьезнее
попробуйте вместо
Код
   if(ther_price_hz.result == "1") then
примерно так
Код
   if(ther_price_hz.result=="1")and(ther_price_hz.param_image~="")and(ther_price_hz.param_type=="1")then
Эмуляция крон внутри lua
 
Цитата
nikolz написал:
Цитата
BlaZed написал:
Можно в основном цикле сравнивать локальное время компа с вашими требованиями к работе скрипта по времени.
При соответствии выполнять функционал, при несоответствии крутить пустой цикл.
вместо пустого цикла используйте
sleep(время ожидания до следующего запуска)
Естественно пустой цикл со слипом, я просто не стал очевидные вещи расписывать
Эмуляция крон внутри lua
 
Можно в основном цикле сравнивать локальное время компа с вашими требованиями к работе скрипта по времени.
При соответствии выполнять функционал, при несоответствии крутить пустой цикл.
Часто зависает Quik 9.7.1.10, Имя события проблемы: AppHangB1
 
Boris, вам шашечки или ехать?

- У меня квик виснет
- Сделайте первое и второе и предоставьте нам информацию для анализа проблемы
- Ничего не буду делать, я тут деньги теряю, догадайтесь сами что у меня поломалось


PS: ошибки в скриптах могут быть логическими, и проявляться только при определенных условиях, так что 99% времени работает стабильно, а потом виснет, вполне реальное поведение при ошибках в скриптах.
На чем основана Ваша торговая стратегия?
 
Цитата
Виктория написал:
BlaZed, добрый день!

Отправляла в личку 03.08 сообщение "по торговому роботу" (здесь и на мейл вроде бы). Подскажите пожалуйста, оно пришло?
Ответил в личку
Страницы: 1 2 3 4 5 6 7 След.
Наверх