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

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

Страницы: 1 2 3 4 5 След.
Автосохранение настроек
 
Цитата
Anzhelika Belokur написал:
Уточните, пожалуйста, с какой периодичностью  во времени Вы хотели бы получить автоматическое сохранение настроек?
С периодичностью заданной пользователем.
Так же как и в большинстве программ реализовано.
Код
[галочка] Автосохранение каждые [число] минут
То, что в скобочках задает пользователь
getParamEx актуальный список param_name
 
Цитата
Сергей написал:
Добрый день, а подскажите, пожалуйста, идентификатор параметра "Цена первой сделки в текущей сессии".  
FIRSTOPEN
Всплывающие сообщения в Quik, сообщения,оповещения
 
Вот реально этот "спам" сообщений достал.
Когда валится несколько сотен сообщений с инфой о инструментах которые я не использовал и не собираюсь использовать в ближайшее время, с этим определенно надо что-то делать.

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

Чтобы можно было настраивать какие сообщения хочу получать, а какие нет.
Например, сообщения биржи прогонять через фильтр, сообщения брокера игнорить, а сообщения от скриптов получать все.
Сбербанк getInfoParam("SERVER"), Выводится некорректное строковое значение
 
Я когда-то для перекодировки входящих смс такую себе написал
Код
function dos2win(s)
  local str=""
  for i=1,string.len(s) do
    local byte=string.byte(s,i)
    local char=string.char(byte)
    if(byte>=128)and(byte<=175)then char=string.char(byte+64) end
    if(byte>=224)and(byte<=239)then char=string.char(byte+16) end
    if(byte==240)              then char=string.char(168) end
    if(byte==241)              then char=string.char(184) end
    str=str..char
  end
  return str
end
Файлы TAB , WND и приватность
 
Так откройте текстовым редактором и посмотрите.
Как минимум номера счетов и id фирмы в файле info.wnd открытым текстом лежат
Так же имена нескольких своих скриптов тоже там найти можно.

Вроде не столь критично, но все же ну его нафик такое давать кому-то.

А что за tab-файлы? Не наблюдаю таких в квике
разрывы соединения при работе qbittorrent, конфликт связи QUIK и qbittorrent
 
Надо ограничивать не только скорости, а еще и количество соединений.
Автологин
 
Цитата
Роман написал:
Всем привет. А можно у автологина настроить правильно, чтобы по субботам и воскресеньям не подключался? Спасибо  
Конечно можно.
Давно уже все реализовано и прекрасно работает, правда с помощью подключения внешней библиотеки w32.dllЕсли вас этот момент не смущает, то вам сюдаhttps://quik2dde.ru/viewtopic.php?id=80
А это точно форум QUIK?
 
Цитата
Alexey Ivannikov написал:
Прошло 10 дней, за это время никто более тут по проблеме не высказался, конкретики Вы также не предоставили.
На самом деле, и правда же сразу понятно кого Незнайка имеет ввиду.

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

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

Другими словами, вы можете взять чистый дистрибутив QUIK-Junior и работать с любым брокером который работает с QUIK.
Вам надо будет только самостоятельно настроить шифрование и подключение к серверам брокера.
Торговый скрипт встроенный в индикатор
 
Индикаторы же в основном потоке квика выполняются.
А нагружать основной поток, это подвешивать квик.

К тому же и в индикаторах весьма ограниченный набор функций поддерживается.

Короче, идея, конечно, интересная, но реализовывать ее точно не стоит.
Геморроя будет явно больше чем пользы.
Версии 9.х.х.хх, Ошибки при установке, шаблоны
 
Цитата
Vladimir написал:
Что вы имеете ввиду по обновлением с серверов арки вручную? Скачивать с ftp и копировать/распаковывать архив в свою рабочую папку, предварительно заархивировав то что было?
Да. Именно это.
Скрипт для перезапуска другого скрипта
 
А зачем перезапускать скрипт?
Чисто теоретически ничего не мешает в скрипте в определенное время занилить используемые переменные после чего запустить сборщик мусора.
Быстрое восстановление работы QUIK, ( обрыв связи, проблемы с двухфакторной идент, отказ SSD или компьютера)
 
Такое ощущение, что вы не с той стороны пытаетесь решать проблему.
1) Если постоянные разрывы связи, то менять провайдера надо
Если редкие и кратковременные, то автологин квика нормуль отрабатывает https://quik2dde.ru/viewtopic.php?id=802) Если не приходят СМС, значит или менять опсоса, или отключить двухфакторную авторизацию
3) Лучше свести вероятность отказа компа до минимума. Рейд, резервное питание, нормльное железо. Ну или даже виртуализировать.
А так то ничего не мешает держать несколько квиков на одном брокерском счете, это от настроек брокера зависит.
Версии 9.х.х.хх, Ошибки при установке, шаблоны
 
Цитата
Роман написал:
Вы не в теме!
Ну а вы вероятно в теме и такими-то вопросами )))
Цитата
Роман написал:
Дистрибутивы предоставляются брокерами, т.к. у каждого брокера свой модуль автоматического подключения завязанный именно на него.
Дистрибутивы предоставляются разработчиком.
А брокеры просто настраивают конфиги квика на свои сервера и методы авторизации, и выкладывают эти правленные дистры у себя. Все ради того, чтобы пользователям надо было меньше думать.
Цитата
Роман написал:
И суть проблемы ещё раз прочитайте!
Так с первого раза все предельно понятно.
info.wnd сконвертировался под конкретную версию, под более старую на заводится, а бекапов вероятно нет

Еще раз: используйте актуальную версию квика и не страдайте ерундой
Версии 9.х.х.хх, Ошибки при установке, шаблоны
 
Цитата
Роман написал:
ЧТО ДЕЛАТЬ?
Использовать 9.2.3.15, а еще лучше актуальную 9.3.3.3

PS: Научитесь делать бекапы, и обновляться вручную с серверов арки.
Обновляемая таблица в заданном ценовом диапазоне
 
Александр,
Научитесь излагать мысли так, чтобы люди не прибегая к телепатии вас могли бы понять.
Совершенно же не ясно что вы хотите.
А в коде и правда менять нечего, ибо нету тут кода.

Вы напишите код, а что будет не получаться, спрашивайте.
А сейчас это выглядит именно как "напишите за меня" причем даже не понятно что именно.
В таблице "Текущие торги", самопроизвольно появляются неличквидные инструменты.
 
Vlad,

В настройках программы галочка есть.
При получении нового инструмента добавлять его в таблицы, снимите ее.
Не понятная ошибка помогите, луа самп тут, (exception) and (error)
 
Судя по коду сначала файл script_update.ini должен скачаться с удаленного сервера, а потом открыться.
Но как видно из ошибки открыть файл не получается.

Логично предположить два варианта
1) Файл D:\SAMP\CLEAR SBORKA SAMP\moonloader\script_update.ini имеется, но какой-то косяк с правами доступа
=> Проверить права на файл
2) Файл отсутствует по указанному пути.
2.1) Файл не может быть записан в указанную директорию
=> Проверить права доступа на директорию D:\SAMP\CLEAR SBORKA SAMP\moonloader\
2.2) Файл не скачивается
=> Выяснить почему
А не скачаваться он может, если я нашел верное описание функции downloadUrlToFile
Цитата
Описание
Загружает файл из интернета по URL по протоколу HTTP.
Код
https://raw.githubusercontent.com/FasminCode/FasminCode/main/script_update.ini
Ничего не смущает?
Известные баги 9 версии
 
Цитата
Кирилл написал:
еще баг с всплывающей посказкой  
По пунктам 2, 4 и 5 это явно мимо.
Или железо слабое, или ОС загажена, или в квике 100500 окон открыто

QUIK стартует 3-4 секунды до ввода пароля и 5-10 секунд до полной загрузки всех таблиц и графиков.
Ну и, естественно, никаких торможений не наблюдаются.
Причем у меня железо далеко не топовое.

QUIK 9.3.3.3, правда я ставил чистый квик джуниор и настраивал на Открытие брокер
Quik - определить актуальный код фьючерса
 
Цитата
Kalmar написал:
 Простите, чего там "время unix"?
Дык имеется ввиду unixtime aka posixtime
Быстродействие Quik
 
Цитата
Иван написал:
Подскажите пожалуйста рекомендации что еще можно сделать?

В ярлычках квика добавил ключ запуска -clear, теперь всякий мусор прям при запуске квика чистится
Цитата
1.8 Ключи запуска Рабочего места QUIK
-clear – очистить служебные файлы, которые содержат торговые данные (info.log (или curr_data.log в зависимости от настроек терминала), acnt.dat, alert.ik, alltrade.dat,
trades.dat, orders.dat). Это позволяет ускорить загрузку программы.
только аккуратно, а то вдруг для вас вышеуказанные файлы не мусор
Получение из таблицы текущих торгов всех доступных на текущий момент фьючерсов по инструменту
 
Цитата
Иван написал:
Подскажите пожалуйста почему вы остановились именно на 3 днях до экспирации? А не на 1?
В первом посте задача стояла в три дня до экспирации
Я лично за 1 до экспирации инструмент меняю.

Цитата
Иван написал:
Но у меня заработало получение актуальных фьючерсов только после изменения изменения шаблона поиска для функции gmatch()
for test_sec_code in string.gmatch(sec_list, "("..pref.."[^%s,]+)") do -- Перебираем список
У вас getClassSecurities(class_code) возвращает строку с пробелами?
Quik - определить актуальный код фьючерса
 
Цитата
Иван написал:
Можно ли как-то автоматически определить актуальный торгуемый фьючерс?
https://forum.quik.ru/messages/forum10/message60005/topic6947/#message60005
Перестал работать SERVERTIME. не могу понять в чём проблема
 
Hired, можно сделать проще
Код
isRun = true

base_time = "22:16:30"
base_hour,base_min,base_sec = string.match(base_time,"(%d*):(%d*):(%d*)")
base_offset=base_hour*3600+base_min*60+base_sec

function main()
  while isRun do
    srv_hour,srv_min,srv_sec = string.match(getInfoParam('SERVERTIME'),"(%d*):(%d*):(%d*)")
    srv_offset=srv_hour*3600+srv_min*60+srv_sec
    if(srv_offset>=base_offset)then
      message("go")
      isRun = false
    else
      message("wait")
    end
      sleep(100)
   end
end
Получение из таблицы текущих торгов всех доступных на текущий момент фьючерсов по инструменту
 
Цитата
Владимир написал:
BlaZed, Чего хорошего в такой "динамике"? Понятно, что список инструментов нужно вынести в отдельный файл, но получать динамически его от брокера... У меня этот список проходит довольно тщательную проверку, где-то раз в месяц повторяемую, и бОльшая часть инструментов эту проверку не проходит. А с оставшимися можно работать.
Если вы даже не поняли о чем разговор, то не стоит встревать с "умными" советами.
Получение из таблицы текущих торгов всех доступных на текущий момент фьючерсов по инструменту
 
Яна, у меня когда-то подобная задача стояла

В код зашивать список инструментов так себе идея, если необходимо несколько инструментов отслеживать, то грустно станет списки поддерживать в актуальном состоянии.
Динамически будет проще и красивее.
Код
function FindSecCode(class_code,pref,dtmd) -- Определяем инструмент для торговли
  local sec_list=getClassSecurities(class_code) -- Получаем список инструментов
  for test_sec_code in string.gmatch(sec_list,"("..pref.."[^,]+)") do -- Перебираем список
    local param=getParamEx(class_code,test_sec_code,"DAYS_TO_MAT_DATE")
    if(param.result=="1")and(param.param_image~="")and(param.param_type~="0")then -- Параметр получен корректно?
      if(tonumber(param.param_value)>=dtmd)then return test_sec_code end -- Проверяем дни до экспирации
    end
  end
end

sec_code=FindSecCode("SPBFUT","BR",3)
if(sec_code)then message("actual futures is "..sec_code) end

Возможно, стоило бы сортировку прикрутить, но сколько не наблюдал, от брокера сразу отсортированный по времени экспирации список прилетает.
Как узнать возможность торговли инструментом?
 
Цитата
uuh написал:
Как теперь  проверять возможность выставления заявки - не  понятно
Надо не только сам параметр проверять, а еще и корректность получения данного параметра
А то бывает такое, что параметр как бы есть, но его как бы нет и доверять ему не стоит

Вот так работаем с такой напастью
Код
    local param=getParamEx2(class_code,sec_code,"TRADINGSTATUS")  -- Состояние сессии
    if(param.result=="1")and(param.param_image~="")and(param.param_type=="4")and(tonumber(param.param_value)>=0)then params["TRADINGSTATUS"] =tonumber(param.param_value) end
Баги QUIK 8.13
 
Цитата
Roffild написал:
Нужна нормальная функция, которая точно ответит на "Торговля разрешена?"
Нормальной нет, но можно же накидать доп проверок, чтобы свести точность до приемлемого уровня.
isConnected - это и так понятно, проверяем наличие подключения к брокеру
Проверяем параметр "TRADINGSTATUS" из ТТТ. - Параметр тормозной, в пики нагрузок (на открытии утром торгов и при открытии вечерней сессии) наблюдал задержки 3-5 секунд, но уже лучше чем ничего, если не скальперить, то этого уже более чем достаточно.

Пишем и прикручиваем функцию проверки на праздничные/выходные дни и время работы биржи. Благо все эти параметры известны заранее. При синхронизированных системных часах точность очень хорошая.
Я еще дополнительно проверяю соответствие локального времени и время последней свечи на высоколиквидном инструменте (SI).
Можно ли как-то синхронизировать время на моем ПК (с QUIK 9) со временем на сервере QUIK / мосбиржи / брокера?
 
Нет ничего невозможного.
Мосбиржа  уже несколько лет предоставляет такую возможность https://www.moex.com/s2116
Но для этого придется расположить свое оборудование в зоне колокации мосбиржи.
Получение признака "Субординированный инструмент" в lua
 
Цитата
Anton написал:
Ссылка протухла,  перезалил , пару недель проживет
Антон, пользуюсь иногда вашей библиотекой GetClassParameters
Но к сожалению она перестала работать при переходе на QUIK 9.x
Если не сложно, может заставите ее работать и под девятым квиком, а если еще и под Lua 5.4 будет работать, было бы совсем замечательно.
[ Закрыто] Ищу спеца по ЛуаКвик, для долгосрочного сотрудничества по созданию робота и его доработкам или для консультаций и наставничества.
 
Anton, спасибо за предоставленный скрипт по очистке при завершении.

Можете объяснить зачем нужны строки, которые я закомментил в вашем скрипте?
Код
function OnStop()
   assert(runStatus == 3, "Unexpected runStatus in OnStop: " .. runStatus)
   runStatus = runStatus - 1
   while runStatus == 2 do
      sleep(10)
   end
--   runStatus = runStatus - 1
end

function main()
   onMainInit()
   runStatus = 3
   while runStatus == 3 do
      onTimeStep()
      sleep(mainLoopTimeout)
   end
   do
      local s, e = pcall(onMainCleanup)
      runStatus = runStatus - 1
--      while runStatus == 1 do
--         sleep(10)
--      end
      if not s then error(e) end
   end
end
Не могу понять в чем смысл данного ожидания уже после выполнения функции очистки.
[ Закрыто] Ищу спеца по ЛуаКвик, для долгосрочного сотрудничества по созданию робота и его доработкам или для консультаций и наставничества.
 
Цитата
БорисД написал:
Не думал я что  критиков будет много  а желающих в этом деле поучаствовать не будет ( может позднее кто подтянется  ?  
Не в критике дело, а в том, что за это взялся "единственный на этом форуме, кто пишет на чистом Lua"

А значит, что подход будет примерно такой
Читаем ласт из ТТТ, строим свечки самостоятельно, суперсекретная аналитическая функция, отправка транзакции без каких-либо проверок состояния. Ну и все это в цикле.
Кому надо что-либо другое, те "лапули" не умеющие писать на "чистом LUA", следовательно идут в жопу.

Надеюсь что я ошибаюсь, но пока что посижу тут с попкорном, понаблюдаю

А так думаю тут у многих свои роботы написаны.
Только я, например, не вижу смысла делиться наработками, по крайней мере на данном этапе, когда даже сама идея разработки вызывает сомнения.
[ Закрыто] Ищу спеца по ЛуаКвик, для долгосрочного сотрудничества по созданию робота и его доработкам или для консультаций и наставничества.
 
Цитата
Владимир написал:
Здесь уже, похоже, должны появиться какие-то вопросы. Так что перекур до их получения.
Вопрос тут только в том, неужели вы правда верите в подобную затею?
А то что мне кажется что вы просто сейчас угораете  :cool:

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

Один активно работает с графиками, другому это не надо.
Один динамически получат инструмент, другой работает по заранее готовому списку.
Один предпочитает работать с колбеками и очередями событий, другой считает это кощунством.
Кому-то надо рассчитывать в зависимости от состояния счета количество лотов, а кто-то предпочитает в ручную контролировать это
Да тут даже на простое формирование trans_id у каждого свой взгляд.

И таких примеров можно привести очень много.

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

Цитата
Владимир написал:
Считаем сумму один раз, а потом к ней добавляем новое значение и убираем самое старое. Два действия - какой тут цикл?
Так это не работает, тут разговор не про SMA, а про EMA
Но даже для случая SMA, период 1000, сумму без цикла считать стали бы?
EMA, Расчет средней скользящей
 
Цитата
nikolz написал:
не используйте цикл. Это зло в прогах реального времени.
А разве возможно без цикла рассчитать EMA? Буду признателен, если продемонстрируете как это сделать.
Цитата
nikolz написал:
Если Вам надо рассчитать EMA с периодом 1000 таймов скока времени  будете считать?
Ради интереса проверил, на моем компе период 1000 просчитался за 0,00099999999656575 секунды
Цитата
nikolz написал:
При этом Вы для каждого нового значения повторно обсчитываете предыдущие 999.
Это вы откуда взяли? Для расчета каждого нового значения берется одно предыдущее из кеша.
Цитата
nikolz написал:
В правильной программе и кеш никакой не нужен
На вкус и цвет...
Цитата
nikolz написал:
и время расчета нового значения  не зависит от периода EMA
Так у меня время расчета тоже от периода не зависит
Увеличение кол-во лотов для входа в позицию в зависимости от профита
 
Код
function Q_lot()
  local default_lot=1 -- количество лотов при отсутствии прибыли
  lot=default_lot+math.max(0,math.floor(Profit/35000))
end 
EMA, Расчет средней скользящей
 
Дмитрий, ну пример для изучения вы явно не самый удачный нашли.. точнее совсем уж неудачный ибо кривой и нерабочий, в нем даже и комментировать нечего

Лови мою функцию расчета EMA Close вместе с примером использования
Код
function main()
  ema_cache={}  -- Кзш со значениями EMA Close
  period=15 -- Период EMA
  ds,error_desc=CreateDataSource("SPBFUT","SiZ1",INTERVAL_H1) -- Создаем датасурс
  n=0 -- Счетчик
  while(ds:Size()==0)and(n<100)do sleep(100) n=n+1 end -- Ждем загрузки датасурса
  if(n==100)then message("Ошибка:"..tostring(error_desc)) return false end -- Если не дождались - выход
  ema(ds,period) -- Вычисляем EMA, заполняем кзш
  message("EMA "..ema_cache[ds:Size()])   -- Пример получения EMA последней свечи
  message("EMA "..ema_cache[ds:Size()-1]) -- Пример получения EMA предпоследней свечи
end
function ema(datasource,period) -- Расчет EMA Close
  local k=2/(period+1) -- Коэффициент взвешивания
  for i=1,datasource:Size() do -- Пробегаемся по всем свечам
    if i==1 then ema_cache[i]=datasource:C(i) -- EMA Close первой свечи
            else ema_cache[i]=k*datasource:C(i)+(1-k)*ema_cache[i-1] -- EMA Close всех остальных свеч
    end
  end
end
Перевод робота с lua 5.1 на lua 5.3
 
Цитата
Олег написал:
Добрый день. Попробовал убрать math.floor.Ошибка остаётся прежней: Неправильно указан номер заявки: "1.9250430826724e+018"
Какая версия терминала используется?

Запустите следующий код
Цитата
  local N = getNumberOf("orders")                  
  for i=0,N-1 do
    local row = getItem("orders",i)
    if(bit.band(row.flags,1)>0) and (bit.band(row.flags,4)>0) then message("order_num="..row.order_num) end
  end
будет ли корректно отображаться номера активных заявок?
Перевод робота с lua 5.1 на lua 5.3
 
Цитата
Олег написал:
В чём ошибка?
Вот в этой строчке
Код
local keyNumber = math.floor(row.order_num)
Зачем тут у вас math.floor()?
Он вам и приводит число к экспоненциальной записи.
Уберите и будет все работать
Подскажите как сделать Таймер на пользовательскую функцию?
 
Ну и еще один пример
https://forum.quik.ru/messages/forum10/message57762/topic6682/#message57762
Иногда не срабатывает killorder (во время движений)
 
Цитата
Alexey написал:
Имеет ли смысл отправлять повторный приказ "KILL_ORDER", если не дождался подтверждения исполнения первого приказа ??
В таком случае надо определить, что такое "не дождался подтверждения исполнения первого приказа".
Какое время будете считать за не ответ?
Вот в вашем случае ответ на заявку был спустя 8 секунд, т.е. заявка никуда не потерялась, а просто висела в очереди на исполнение.

Лично я считаю, что смысла нет, ну по крайней мере в течении первой минуты после отправки на исполнение
Приходилось наблюдать задержки и по примерно 30 секунд, а вот потерь заявок без потери связи с сервером не наблюдал.

Цитата
Alexey написал:
Может второй приказ проскочит в другую очередь ? ))
Это вряд ли
Иногда не срабатывает killorder (во время движений)
 
Утром на открытии торгов и после вечернего клиринга часто бывают такие задержки.
И это вполне понятно, ибо очень много таких как вы желающих в первые секунды торгов совершить сделку.
Сервера брокеров и биржи просто не успевают обрабатывать заявки, отсюда и задержки.

И вариантов тут не много
1) Выстраивать стратегию чтобы такие задержки были не критичны
2) Снимать заявки за несколько минут/секунд до окончания торговой сессии
3) Разместить сервер у брокера
4) Ну или даже разместить свой сервер на площадке биржи и торговать без брокера.

Вот я выбрал первый вариант, как самый простой и понятный.
рыночные заявки становятся лимитными
 
Цитата
Незнайка написал:
Где именно?
В руководстве пользователя QUIK идущем в комплекте с терминалом:
Цитата
Раздел 5: Торговые операции клиента
5.2.2 Окно «Ввод заявки»
..........
12.*«Условие исполнения» определяет порядок обработки остатка заявки при ее частичном
исполнении:
..........
(*) Указанные параметры отсутствуют при операциях на срочном рынке
FORTS.

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

На мосбирже рыночных заявок по срочному рынку нет как таковых.
А то что в квике называется рыночной заявкой, при торговле на срочном рынке как раз превращается в обычную лимитную.
Что делает SetEmptyCallback() ?
 
Цитата
Владимир написал:
Это была демонстрация абсолютной НЕработоспособности CreateDataSource
Неработоспособности? Может вы забыли запустить скрипт?
Кто-то не умеет работать с данной функцией, кто-то умеет.
А на вкус и цвет, как говорится, все фломастеры разные.
Цитата
Владимир написал:
на основе которой ВААПЩЕ НЕЛЬЗЯ "реализовать что-либо интересное", такой способ доступа к данным - это КРЕТИНИЗМ!
Опять я наблюдаю столь категоричные высказывания  от вас :smile:
Вы хоть как-то аргументируйте свою позицию-то, а то спорить скучно.
Цитата
Владимир написал:
Не говоря уже о том, что функция эта относится к разделу работы с графиками.
Тут согласен, но это уже вопрос терминологии, а не программирования.
Цитата
Владимир написал:
С нею невозможно работать при ЛЮБОМ коде, даже вылизанным до последней запятой.
Як так??? Да вы ради интереса хоть попробуйте поработать что ли, а то получается классическое "не читал, но осуждаю".
Цитата
Владимир написал:
Во-первых, Lua я знаю. Мало того: я здесь чуть ли не единственный, кто пишет на чистом Lua.
На чистом LUA?? Да быть такого не может!  :lol:
Вы LUA и QLUA не путаете случаем?
Цитата
Владимир написал:
Я имел в виду, что оператор этот дурацкий, я так никогда не делал, и делать не буду.
Чем это обычный логический оператор OR то провинился?
Прекрасный оператор на мой взгляд, как минимум ни чуть не хуже чем AND и NOT.
Кстати, вы знали что в LUA оказывается нет оператора XOR? Мне, например, в свое время его очень не хватало для работы с битовыми флагами.
Цитата
Владимир написал:
Во-первых, свечи у меня начинаются с 15-секундных.
А я это и упомянул, что самостоятельно считать свечи стоит только для нестандартных интервалов.
Цитата
Владимир написал:
Во-вторых, они считаются по-другому: я уже не раз говорил, что классические мат. ожидание и дисперсия в миллион равз информативнее всей этой "японской" дребедени.
Звучит логично. Поверю на слово, мне лень проверять.
Цитата
Владимир написал:
В-третьих, Вы не ответили на мой вопрос: СКОЛЬКО свечей она мне даст по каждому интервалу?
Формирует 3000 последних свечей, но может дать больше, если ранние свечи уже есть в истории терминала
Цитата
Владимир написал:
И что она будет делать при появлении очередной свечи? Будет всё время дописывать? Или даже и дописывать не будет?
Создаст свечу с новым индексом и будет обновлять ее данные, пока не появится следующая свеча.
Что делает SetEmptyCallback() ?
 
Цитата
nikolz написал:
для любого интервала надо считать close,Low, High, Volume.
Просто Выдернуть не получится .
Да ладно, всегда выдергивал и бед не знал.

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

Цитата
nikolz написал:
На мало ликвидном рынке надо учитывать тот факт, что на интервале может не быть сделок вообще.
Если работаете на мало ликвидных рынках, то что ж мешает добавить дополнительные проверки по времени свечи и объему?
Что делает SetEmptyCallback() ?
 
Цитата
Владимир написал:
Ах ты засранец!
Более чем взаимно!  :cool:

Цитата
Владимир написал:
Нет, я не понимаю: Вы ВСЕРЬЁЗ предлагаете подобную хрень реализовать или прикалываетесь?
Побойтесь бога, зачем мне вам что-то предлагать?
Это была демонстрация работоспособности CreateDataSource, на основе которой можно уже реализовать что-либо интересное, но вы это не смогли понять.Или вы думали, что я вам тут полноценного робота со всеми вашими хотелками предоставлю?
Ну нафиг...

Цитата
Владимир написал:
что делает хреновина вида "ds[tikers[j][1]]=ds[tikers[j][1]] or {}" я не знаю, да и знать не хочу
Вы таки гордитесь тем что не знаете LUA?  :lol:
Что делает SetEmptyCallback() ?
 
Цитата
Владимир написал:
Лично я решения не вижу ВААПЩЕ
Понимаю, старость не радость, но вы там держитесь, не унывайте...  :lol:

Special for you
Код
function main()
  ds={}
  intervals={INTERVAL_M15,INTERVAL_M30,INTERVAL_H1,INTERVAL_H2,INTERVAL_H4,INTERVAL_D1}
  tikers={{"SPBFUT","SiZ1"},{"SPBFUT","SiH2"},{"SPBFUT","SiM2"},{"SPBFUT","SiU2"}}
  for i=1,#intervals do
    for j=1,#tikers do
      ds[tikers[j][1]]=ds[tikers[j][1]] or {}
      ds[tikers[j][1]][tikers[j][2]]=ds[tikers[j][1]][tikers[j][2]] or {}
      ds[tikers[j][1]][tikers[j][2]][intervals[i]]=CreateDataSource(tikers[j][1],tikers[j][2],intervals[i])
      while(ds[tikers[j][1]][tikers[j][2]][intervals[i]]:Size()==0) do sleep(1) end
    end                                                                 
  end
-- Пример получения свечи
  local need_ds=ds["SPBFUT"]["SiZ1"][INTERVAL_H1]
  local size=need_ds:Size()
  message("O="..need_ds:O(size).." H="..need_ds:H(size).." L="..need_ds:L(size).." C="..need_ds:C(size))
end
Страницы: 1 2 3 4 5 След.
Наверх