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

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

Страницы: Пред. 1 2 3 След.
Что за [ FORTS ] [ 90112 ] " SQLProxy ограничение борьбы с наводнениями " .Кто сталкивався?
 
Цитата
Одного ученого спросили- Почему вы такой умный?
Он ответил- Потому что не стеснялся задавать вопросы, даже если окружающие считали их глупыми.
Lbot3D
Как управлять временем жизни стоп-заявки и как её снять по trans_id?, управление стоп-заявками
 
Не ленитесь: есть же справочники, клавиша F1.

Интерпретатор языка Lua. Руководство пользователя:

Скрытый текст


Lbot3D
Сообщение "Ошибка снятия заявки" в ответ на KILL_ORDER. И все.
 
В ответ на sendTransaction пришло это:
Код
17:21:42,608; [SRH6]; killOrd, 9992 x 2 [2], заявка на снятии: 3207822477 t_id = 808620531
Lbot3D
Сообщение "Ошибка снятия заявки" в ответ на KILL_ORDER. И все.
 
Такой пример:

Код
-- classCode, trans_id, order_num заданы корректно
local trans_params = {
["CLASSCODE"] = classCode,
["TRANS_ID"] = trans_id,
["ACTION"] = "KILL_ORDER",
["ORDER_KEY"] = order_num
}
local res = sendTransaction(trans_params)
if string.len(res) == 0 then
   message('Заявка на снятии: '..order_num)
   -- момент снятия фиксируется в OnOrder()
else
   message('Ошибка снятия заявки '..order_num..". Причина= " .. res)
   -- какие-то действия при этом
end
Сегодня словил это, на демо:



Интересное явление: QUIK это увидел и отразил в сообщении, OnTransReply() никак не среагировал (((.
Как же подобное отлавливать на QLua?
Или это - особенности демо-версии?
Lbot3D
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Старатель, так-то у меня стоит это:
Код
local  v = '6.17'
if versionLess(Terminal_Version,v ) then
   table_insert=table.insert
   table_remove=table.remove
   table_concat=table.concat
else   
   table_insert=table.sinsert
   table_remove=table.sremove
   table_concat=table.sconcat
end

Можно ли сделать так, чтобы всем было одинаково хорошо: и тем, кто применяет QUIK 6.0, и тем, у кого 6.17 и тем, кто юзает модный Dark Metro style QUIK 7.1?
Наверно нет. Только QUIK 7.1, только хардкор!
Lbot3D
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Цитата

Старатель: вот эта проверка лишняя:

if t~=nil then OnTradeDo(t) end
Согласен, тянется давно. Уберу.
Lbot3D
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Костыль выглядит пока так:
Код
local trades = {} -- таблица наших сделок
local tmp_tr = {} -- временная таблица наших сделок для отсева дублей OnTrade

function OnTrade(trade)
   -- <...>
   if not tmp_tr[trade.trade_num] then
      -- добавим в таблицу первый колбэк.
      tmp_tr[trade.trade_num] = true  
      -- добавим в очередь на обработку.
      table.insert(trades,trade)
   end
end

function OnTradeDo(trade)
   -- <...обработать сделку>
end

function main()
   -- <...>
   if #trades~=0 then
      while #trades>0 do
         local t=table.remove(trades,1)
         -- сделку отправим на обработку, таблицу чистим.
         if t~=nil then OnTradeDo(t) end
      end   
   end
   -- <...>
end
Сильно не хотел добавлять лишние временные таблицы. :-|
Lbot3D
Грамматика хромает в "Руководстве пользователя", Интерпретатор языка Lua.
 
Цитата
locked_sell           NUMBER            Заблокировано на продажу количества лотов
locked_buy           NUMBER            Заблокировано на покупку количества лотов

Может, "количество"?
Lbot3D
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Sergey Gorokhov
Цитата
Интерпретатор языка Lua, Руководство пользователя, Версия 2.3

2.2.3 OnTrade Функция вызывается терминалом QUIK при получении сделки.
Так быть должно: получили сделку, получили колбэк.
Эта функция отличается от соседней:
Цитата
2.2.4 OnOrder Функция вызывается терминалом QUIK при получении новой заявки или при изменении
параметров существующей заявки.
Есть заявка, и ее параметры могут меняться: регистрация, частичные исполнения, отмена или исполнение.
Логично.

Но так себя вести сделка не должна: Это явление по своей природе разовое: это сделка!
Пошли в магазин за хлебом, дали денег, получили хлеб и чек на этот товар.
Один чек, не два! И после нашего ухода из магазина никто нам вдогонку не кричит - возьмите еще, он такой же, но третий!
Логично: один товар - один чек.
Если бы было не так - значит что-то происходит неладное: аппарат кассовый неисправен, кассир не обучен или еще что.
И с этим OnTrade что-то неладное:
Если до 7-ой версии несколько лет она работала исправно, согласно документации: вызывалась при получении сделки, то сейчас работает так:
Цитата
2.2.3 OnTrade Функция вызывается терминалом QUIK при получении сделки или при изменении параметров прошедшей сделки.
Прошу вас, вчитайтесь. Ужаснитесь!

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

Цитата
Илья Грачёв написал:
Сергей, Вы так и не ответили зарегистрировано ли моё пожелание расширить имеющийся интерфейс коллбэков, путём добавления новых (типа OnOrderChanged, OnTradeChanged, OnTransCompleted и т.п.), которые вызывались бы только один раз и всегда приносили бы окончательное значение объекта. Судя по Вашему ответу, сервер уже сейчас отличает первый вызов коллбэка ото всех остальных, поэтому моё предложение не потребует от Вас внесения серьёзных изменений в код. Зато, как я понимаю, это устроило бы всех.
P.S. Конечно, это предполагает, что в дальнейшем ARQA не будет вносить изменения в логику работы уже опубликованных интерфейсов.
Да, особенно в части P.S. : ))
Lbot3D
Как зделать переворот пози?
 
Или так:
Код
-- LastPos - ТЧП
-- Reverse - реверс или нет?
-- WorkSize - рабочий размер
-- OperSell - попытка продать
-- OperBuy - попытка купить

if LastPos > 0 then
   if Reverse then
      k=LastPos+WorkSize
      OperSell(k)
   else
      OperSell(LastPos)
   end   
elseif LastPos < 0 then
   if Reverse then
      k=-LastPos+WorkSize
      OperBuy(k)
   else   
      OperBuy(-LastPos)
   end   
else
   if not OperBuy(WorkSize) then
      OperSell(WorkSize)
   end
end
Lbot3D
Как зделать переворот пози?
 
Короткое дополнение:
Цитата
Reverse = Y
Вот теперь точно: всё!
Lbot3D
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Целых 381 обновлений в QUIK версии 7.1.0 !
OnTrade() научился отсылать АБСОЛЮТНО ИДЕНТИЧНЫЕ отклики в разное время:

QUIK версии 7.1.0.381
Скрытый текст

  1. 21:07:40,537
  2. 21:07:40,541
  3. 21:07:40,563
Lbot3D
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
В моем сообщении от 08.02.2016 №119  приведен протокол OnTrade() QUIK версии 7.0.4.10.
Время всех трех колбэков (АБСОЛЮТНО ИДЕНТИЧНЫХ) одно и то же, с точностью до миллисекунд: 14:27:54,046
Вы говорите: "Начиная с последнего обновления сервера, таблица сделок стала обновляемой."
Но факты говорят, что OnTrade() шлет тройной отклик. Повторяю: шлет тройной отклик!
Ваша "обновляемая таблица сделок" была обновляемой, если бы:
а) Время колбэков отличались бы друг от друга;
б) Они несли бы отличающиеся друг от друга в чем-то данные.
Ни того ни другого не наблюдается.
Да, вы писали:
Цитата
Серьезно, обновляются те поля которые пока еще не доступны в LUA
"...пока..." С прошлого года! Все еще недоступны!
Дайте хоть бит дополнительный: первый - "1", не первый - "0"!
Скрытый текст
Lbot3D
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Цитата
ознакомьтесь с регламентом
Там ни слова про "разумные сроки" : )
quod erat demonstrandum
Цитата
Вы в коде тоже можете проверять только первый колбек, например сравнивая номер сделки.
Вопрос не стоит "как отличать колбэк одной сделки от колбэка другой сделки"!

Я хотел бы отличать первый колбэк OnTrade от сделки от второго и прочих колбэков OnTrade этой же сделки.
Lbot3D
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Цитата
Пожелание да зарегистрировано, но это не значит что оно прям в следующей же версии будет реализовано. Следите за новостями.
Понятие "разумные сроки" не вписывается в вашу философию.
Все пункты теста Джоэла (12 шагов к лучшему коду) вам не пройти.

Цитата
Сервер знает какой терминал к нему подключается и в зависимости от версии отправляет данные по разному.
Ясно.

Цитата
Туда приходит только первый колбэк.
Значит он (сервер) отличает ее от следующих!
Так внесите этот отличительный признак в отправляемую OnTrade!
Большего от вас я не прошу. Сделайте же хоть что-то.
Lbot3D
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Запустил 2 демо-счета.
На одном QUIK версии 6.17.1.17, на другом - 7.0.4.10.
Сервер подключения - один и тот же.
Проверил OnTrade(). Результаты:

QUIK версии 6.17.1.17
Скрытый текст



QUIK версии 7.0.4.10
Скрытый текст

Итак, QUIK 7 как получал три абсолютно идентичных отклика, так и продолжает получать. Обещанный порядковый номер отклика так и не реализован.
Но при всем при этом, QUIK версии 6.17.1.17 все же получает один ответ OnTrade. Он их как-то отличает и выдает только один из трех?
Тут не совсем ясно, пользовательский терминал генерирует три вызова OnTrade на 7-ом и один на ранних версиях, или серверная часть их шлет?
Lbot3D
Грамматика хромает в "Руководстве пользователя", Интерпретатор языка Lua.
 
Цитата
Руководство пользователя.
4.15 Лимиты по бумагам
Цитата
locked_sell NUMBER Заблокировано на продажу количества лотов
locked_buy NUMBER Заблокированного на покупку количества лотов
Где-то, что-то веет, млеет... ©

А что - можно, конечно, догадаться.

Но вы поправьте.
Lbot3D
HHV, LLV за период в LUa ?, Реализация в Луа в виде индикатора HHV LLV
 
Три варианта названия языка  :shock:!
1. LUa;
2. Луа;
3. Лув.
Вы, уважаемый vic, определитесь уж с названием языка вначале.
Посмотрите название форума.
Либо прочитайте: http://www.lua.org/about.html#name
Lbot3D
HHV, LLV за период в LUa ?, Реализация в Луа в виде индикатора HHV LLV
 
Примерно так:
в Settings нужно написать Time = "11.00",
в OnCalculate делать проверку равенства часов времени свечи с Settings.Time
При совпадении - высчитать требуемые значения и нарисовать, иначе - нарисовать предыдущие значения.
Все.
Lbot3D
Порядок отслеживания процесса выполнения транзакций
 
_sk_, да вы просто монстр, такое выдать!
Утащу к себе.
В п.6 можно поступить проще: не создавать отдельную таблицу, а добавить в таблицу ордера статус отправки команды на ее удаление, и в п.5 добавить - удаляется при снятии заявки.
Lbot3D
Присвоим идентификатор графику программно!
 
«Идентификатор» – уникальный строковый идентификатор, присваиваемый графику.
Идентификатор используется при получении доступа к указанному графику средствами
языка QLua или QPILE.

Рабочее место пользователя Программного комплекса QUIK – фронт-офисной системы прямого доступа (Руководство пользователя.)
Раздел 4. Работа с графиками
4.2 Настройка графика
4.2.4 Дополнительные настройки
Lbot3D
Присвоим идентификатор графику программно!
 
Предлагаю предусмотреть присвоение идентификатора графикам на Lua в  Settings.
Lbot3D
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Вот, насобирал: 1.
Цитата
Sergey Gorokhov пишет:
На сделке, которая является сущностью торговой системы нет некоторых полей, которые есть в QUIK
В частности это UID, TRANS_ID а также набор флагов и ряд других специфичных параметров
Серверу чтобы проставить эти обновленные параметры приходится отправлять сделку несколько раз.
Иначе, отправка сделки задерживалась бы до установки всех параметров, что гораздо хуже чем получить подряд несколько обновлений.
2.
Цитата
Sergey Gorokhov пишет:
Как уже было сказано и еще раз повторю, трансляция нескольких OnTrade есть, будет и от этого избавляться не планируется, по уже озвученным причинам.
Это значит что если данная реализация приводит к неудобству, предложите способ его избежать и мы зарегистрируем пожелание. Варианты типа "сделайте как было" не принимаются.
3.
Цитата
Sergey Gorokhov пишет:
Серьезно, обновляются те поля которые пока еще не доступны в LUA
4.
Цитата
Sergey Gorokhov пишет:
"биржевые" параметры, НЕ стали вдуг обновляемыми, кто Вам такое сказал? Еще раз внимательно прочитайте мой ответ.
Если продолжить цепляться к словам, то, в общем, не важно, что именно "биржевые" параметры" не стали обновляемыми.
Стали обновляемыми сделки, при этом, очень странным образом, обновляемые сделки вовсе не обновляются, а просто повторяются три раза.
Да, прочитал: "обновляются те поля которые пока еще не доступны в LUA". А зачем их отправлять в Lua, в таком случае?
Если они не важны для нее, не отправляйте их в "втемную", тупо присоединив их к тем данным, которые уже отправлялись ранее!

Кстати, http://www.lua.org/about.html:
Цитата
"Lua" (pronounced LOO-ah) means "Moon" in Portuguese. As such, it is neither an acronym nor an abbreviation, but a noun. More specifically, "Lua" is a name, the name of the Earth's moon and the name of the language. Like most names, it should be written in lower case with an initial capital, that is, "Lua". Please do not write it as "LUA", which is both ugly and confusing, because then it becomes an acronym with different meanings for different people. So, please, write "Lua" right!
Lbot3D
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Цитата
Старатель пишет:
Цитата
_sk_ пишет:
В шестой версии такого не бывает, т.к. она не поддерживает обновление строк в таблице сделок.
Я потому и задаюсь вопросом: в 6-й версии таблица сделок была не обновляемой. Это значит, что пришедшая с биржи информация по сделке была либо сразу полной, либо...
Почему теперь концепция изменилась, и биржевые параметры в таблице сделок могут обновляться бесконечное число раз?
Они сделали это по своим внутренним причинам.  :lol:  
Цитата
Николай Камынин пишет:
если trans_id=0 , то это означает, что "ноль"
если trans_id=nil , то это означает, что "nil"
А когдапоступитtrans_id не равен 0, то и будем его обрабатывать.
Т е либо мы обрабатываем интересующие нас события, либо игнорируем их.
В том случае, которое было упомянуто в самом начале этой темы, приходили три отклика OnTrade() с одинаковым количеством параметров и одинаковыми данными.
И все, что было в моем скрипте ориентировано на обработку OnTrade() летит в тар-тарары.
Фактически, эта функция была выведена из строя.
И если с несколькими откликами OnOrder() мы уже сжились, но засады по OnTrade() мало кто ожидал.
И тема trans_id, вобще-то, не при чем.
То, что она появилась и что с ней происходит, это интересно, но не в этой теме.
Lbot3D
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
В Система QUIK, 7.0 еще 19.10.2015
Цитата
Вячеслав писал:
OnTrade() на одну сделку теперь дает ТРИ обратных вызова?
И вопрос как-то остался без ответа ((
Тема  "trans_id=0" как бы опять не увела в сторону решение основной, на мой взгляд, темы, озвученной в вышеприведенной цитате.
:what:
Lbot3D
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Цитата
Старатель пишет:
По какому принципу чистите? После третьего колбека?
Код
-- 2.2.3 Функция вызывается терминалом QUIK при получении сделки.
function OnTrade(trade)
   table_insert(trades,trade)
end
<...>
--Обработка таблицы сделок
if #trades~=0 then
   while #trades>0 do
      local t=table_remove(trades,1)
      if t~=nil then OnTradeDo(t) end
   end   
end
 
Ордера так же.
Lbot3D
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Цитата
Старатель пишет:
Собственно, так раньше было с OnOrder, когда он приходил по нескольку раз. В 7-й версии вместо OnOrder по нескольку раз приходят OnTrade. Причём все с абсолютно одинаковыми параметрами.
С это фичей мы уже живем дружно не первый год!  :lol:
Цитата
Старатель пишет:
А зачем удалять? Я храню таблицы номеров пришедших заявок и сделок.
Я их обрабатываю один раз.
И чищу сразу.
Цитата
Старатель пишет:
Вот действительно непонятно, зачем слать несколько одинаковых колбеков, если уже в первом приходят все параметры. Можете подробнее пояснить?
Если они, коллбеки, будут как-то (например, по номерам) идентифицированы, то я готов этот вопрос не задавать.
И не спрашивать: а в чем же все-таки смысл второго и третьего отклика OnTrade() :?:
Lbot3D
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Цитата
Sergey Gorokhov пишет:
Как уже было сказано и еще раз повторю, трансляция нескольких OnTrade есть, будет и от этого избавляться не планируется, по уже озвученным причинам.
Это значит что если данная реализация приводит к неудобству, предложите способ его избежать и мы зарегистрируем пожелание. Варианты типа "сделайте как было" не принимаются.
На вскидку, например можно подумать над добавлением порядкового номера обновления для каждой сущности.
1, 2, 3 и т.д. Тогда, в коде можно будет фильтровать по номеру обновления if num=1 then.

Если возражений нет, предлагаю зарегистрировать такое пожелание.
Это отличный способ.
Возражений нет, зарегистрируйте, пожалуйста!
Lbot3D
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
В прежних версиях QUIK количество купленных-проданных лотов можно было брать из OnTrade(): вести подсчет trade.qty.
В данной версии это уже не будет работать так просто.
Можно, конечно, запоминать приход информации в некую базу_сделок , произвести расчеты, и по приходу следующих порций OnTrade() быстренько так глянуть в эту базу: а не было ли уже этой сделки раньше?
Пока я не вижу критериев, как удалять из этой базы сделку, так как "несколько раз" - расплывчато. Будем копить?
На таких условиях применять OnTrade() становится не очень комфортно.
Lbot3D
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
quio, если вопрос ко мне - то у меня на тестах трехкратное исполнение наблюдается на каждой сделке.
Sergey Gorokhov, это похоже на то, что я совершаю покупку в магазине: получаю товар, а чек мне выдают не один, а целых три.
И они одинаковые.
С вами весело  :sad: .
Lbot3D
QUIK (версия 7.0.0.289), function OnTransReply(trans_reply)
 
Проверил, работает.
Да вот скучать вы не дадите: теперь OnTrade().
Lbot3D
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Вот такая вот зараза - отработала три раза  :what: !
На 6.17.1.17 такого не наблюдается.
Lbot3D
Можно ли сделать скрипт, который будет запрещать устанавливать более 1 заявки в 5 минут
 
Цитата
Здравствуйте!
Я часто езжу к бабушке в деревню. У нее живет много разных животных, но меня интересует одна птица. Это курица. Понимаю, что это звучит забавно, но мне нужна не сама курица, а ее клюв. Дело в том, что мой один хороший друг рассказал мне, что можно его отпилить, так чтобы курица осталась жива. Клюв мне нужен для чёток, нам в школе дали задание сделать их из подручных материаллов. Мне хочется сделать что то оригинальное. Так вот мой вопрос: чем лучше всего пилить и вообще каким образом, ведь курица будет дергаться...?
Огромное спасибо за советы!!!
Было уже.
Стиль вопроса топикстартера схож.
И люди отвечают на полном серъёзе  :wink: .
Lbot3D
QUIK (версия 7.0.0.289), function OnTransReply(trans_reply)
 
Спасибо!
Да вот проверить исправления пока не получается: на странице https://arqatech.com/ru/support/files/quik-workstation/
ее (7.0.1) еще нет, да и обновиться QUIK не обновляется.
Неудобства продолжаются  :what: .
Lbot3D
QUIK (версия 7.0.0.289), function OnTransReply(trans_reply)
 
Цитата
Constantin пишет:
Это вместо "qty" получается.
Точнее будет - "qty" вместо "quantity".
И не позавидуешь тем, кто применяет роботов на Lua, в которых применена функция OnTransReply() с использованием параметров price, quantity, sec_code и class_code   :\  .
Lbot3D
QUIK (версия 7.0.0.289), function OnTransReply(trans_reply)
 
Старатель, да,  так лучше.
Еще и это:
Цитата
["quantity"]=10,
Lbot3D
QUIK (версия 7.0.0.289), function OnTransReply(trans_reply)
 
Результат ее работы:
Скрытый текст

При этом, QUIK версии 6.17.1.17 выдал:

Скрытый текст

Отличий несколько, но сильно смутил один момент: отсутствие  ["sec_code"] в 7-й версии.
Это фича или баг?
Lbot3D
WndConverter, Как легко и просто перейти на новый контракт.
 
Цитата
Imersio Arrigo пишет:
Цитата
XXM пишет:
и за 2-3 клика легко и просто перешли бы на новые контракты.
Используйте якорь
Попробовал якорь.
Работает.
Но если графиков (например) 10, то прицеплять - отцеплять 10 графиков - муторно, да и подпись во вкладке "Общие" в параметрах индикатора не сохраняется (а он у меня, как правило, совпадает с идентификатором).
Удобства утилиты WndConverter неизмеримо выше.
Lbot3D
WndConverter, Как легко и просто перейти на новый контракт.
 
Я ей давно перестал пользоваться по причине своего вывода о зависании программы.
Но если бы она (WndConverter) выводила бы на экран некоторую информацию о ходе своей работы (типа "обработка графика такого-то", "обработка фильтра ...", "обработка наименования ..."), вряд ли сделал такой поспешный вывод и не перестал бы применять ее, в общем-то, очень удобную утилиту.
Сейчас скачал Quik_Junior_v7.0 и не увидел в этом наборе программы "WndConverter".
Тут уж решил написать свой начальный вопрос.

Сейчас опробовал ее на Quik v7.0.0.289 - сработала на 5+
Lbot3D
WndConverter, Как легко и просто перейти на новый контракт.
 
Черное окно. И тишина...
Которое я воспринял как зависание.
Через 20-30 секунд я принудительно закрывал окно.
Сейчас дал времени побольше - и программа решила поставленную задачу!
стыдно  :| .
И так: программа работает, моя тревога была ложной, спасибо за ответы.
Lbot3D
WndConverter, Как легко и просто перейти на новый контракт.
 
Сейчас программа WndConverter.exe перестала запускается. ОС Win7.
Создание ярлыка и запуск в режиме совмести с XP не помогло:

Lbot3D
WndConverter, Как легко и просто перейти на новый контракт.
 
Было дело, написали вы WndConverter (при переходе с Т0 на Т2).
Я ей пользовался некоторое время перед экспирацией фьючерсов (подробнее на smart-lab.ru).
Но время шло, версии Quik-а обновлялись, менялись структуры данных (наверное) и возможности утилиты тихо и молча иссякли.
Было бы неплохо, если вы восстанóвите работоспособность программы, и вместо того, чтобы сетовать:
Код
«Перед экспирацией меняю инструмент на графиках, как обычно много лет уже…  
Замена графика как обычно: 
правой кнопкой тык в окно графика > параметры текущего окна > диаграмма > заменить инструмент > 
выбираем нужный, сохраняем. А графиков меня более 20. Устаю» 
мы бы составили подобный текст:
Код
SPBFUT,LKZ5=SPBFUT,LKH6
SPBFUT,SRZ5=SPBFUT,SRH6
SPBFUT,GZZ5=SPBFUT,GZH6
SPBFUT,SiZ5=SPBFUT,SiH6
SPBFUT,GDZ5=SPBFUT,GDH6
SPBFUT,VBZ5=SPBFUT,VBH6
и за 2-3 клика легко и просто перешли бы на новые контракты.
Lbot3D
Тестирование стратегий в QUIK., Почему бы и нет?
 
Цитата
Николай Камынин пишет:
У меня все гораздо скучнее, потому что просто.
Есть цикл по параметрам оптимизации, которые задаем в виде "начало,конец,шаг".
Это, бесспорно, интересно.
Но скучно не потому, что просто - потому что музыки у вас нет.  ;-)
Цитата
Николай Камынин пишет:
В результате - получаю оптимизированный по параметрам алгоритм.
Эквити выводится и в реале и при оптимизации на график для каждой сделке.
В реальной работе оптимизация отключается заданием нулевого шага.
И где он - предел возможностей QUIK?
Lbot3D
Тестирование стратегий в QUIK., Почему бы и нет?
 


Тестируемые в видео стратегии:


Код
;-------------------------------------------------------------------------------
[SRT1]
Security = SRU5, SPBFUT, SR_Kelt,T1
WorkSize = 2
OpenSlippage = 30
WithdrawPeriod = 5
Sensitivity = 2
BuyAtLimit = if ({S_Keltner.0} > {Sber_MA})  then {S_Keltner.3}
TakeProfitLong = {S_Keltner.2}
CloseLong = {S_Keltner.0} < {Sber_MA}
SellAtLimit = if ({S_Keltner.0} < {Sber_MA})  then {S_Keltner.1}
TakeProfitShort = {S_Keltner.4}
CloseShort ={S_Keltner.0} > {Sber_MA}
autoBot = Y
;-------------------------------------------------------------------------------

[SRT2]
Security = SRU5, SPBFUT, SR_Kelt,T2
WorkSize = 2
OpenSlippage = 30
WithdrawPeriod = 5
Sensitivity = 2
BuyAtLimit = if ({S_Keltner.0} > {Sber_MA})  then {S_Keltner.0}
TakeProfitLong = {S_Keltner.1}
CloseLong = {S_Keltner.0} < {Sber_MA}
SellAtLimit = if ({S_Keltner.0} < {Sber_MA})  then {S_Keltner.0}
TakeProfitShort = {S_Keltner.4}
CloseShort ={S_Keltner.0} > {Sber_MA}
autoBot = Y
;-------------------------------------------------------------------------------

[SRT3]
Security = SRU5, SPBFUT, SR_Kelt,T3
WorkSize = 2
OpenSlippage = 30
WithdrawPeriod = 5
Sensitivity = 2
BuyAtLimit = if ({S_Keltner.0} > {Sber_MA})  then {S_Keltner.4}
TakeProfitLong = {S_Keltner.1}
CloseLong = {S_Keltner.0} < {Sber_MA}
SellAtLimit = if ({S_Keltner.0} < {Sber_MA})  then {S_Keltner.1}
TakeProfitShort = {S_Keltner.4}
CloseShort ={S_Keltner.0} > {Sber_MA}
autoBot = Y
;-------------------------------------------------------------------------------

[SRT4]
Security = SRU5, SPBFUT, SR_Kelt,T4
WorkSize = 2
OpenSlippage = 30
WithdrawPeriod = 5
Sensitivity = 2
BuyAtLimit = if ({S_Keltner.0} > {Sber_MA})  then {S_Keltner.4}
TakeProfitLong = {S_Keltner.0}
CloseLong = {S_Keltner.0} < {Sber_MA}
SellAtLimit = if ({S_Keltner.0} < {Sber_MA})  then {S_Keltner.2}
TakeProfitShort = {S_Keltner.0}
CloseShort ={S_Keltner.0} > {Sber_MA}
autoBot = Y
;-------------------------------------------------------------------------------

[SRT5]
Security = SRU5, SPBFUT, SR_MA,T5
WorkSize = 2
OpenSlippage = 30
OpenLong   = {MA_fast} > {MA_slow}
OpenShort   = {MA_fast} < {MA_slow}
StopLoss = 50
TakeProfit = 200, 20, 20
autoBot = Y
;-------------------------------------------------------------------------------

[SRT6]
Security = SRU5, SPBFUT, SR_MA,T6
WorkSize = 2
OpenSlippage = 30
OpenLong =  {Close, 1} > {High, 2}
OpenShort = {Close, 1} < {Low, 5-2}
autoBot = Y
StopLoss = 400
TakeProfit = 200, 20, 20
;-------------------------------------------------------------------------------


[SRT7]
Security = SRU5, SPBFUT, SR_MA,T7
WorkSize = 2
OpenSlippage = 30
OpenLong   = {MA_fast} > {MA_slow}
OpenShort   = {MA_fast} < {MA_slow}
Reverse = Y
StopLoss = 50
TakeProfit = 100, 20, 20
autoBot = Y
;-------------------------------------------------------------------------------

[SRT8]
Security = SRU5, SPBFUT, SR_macd,T8
WorkSize = 10
OpenSlippage = 30
OpenLong   = cross(Close, MA_low,1) and {MACDsber} > {0.05}
CloseLong   = cross(Close, MA_high)
OpenShort   = cross(MA_high, Close,1) and {MACDsber} < {-0.05}
CloseShort   = cross(MA_low, Close)
StopLoss = 50
autoBot = Y
;-------------------------------------------------------------------------------

[SRT9]
Security = SRU5, SPBFUT, SR_macd,T9
WorkSize = 10
OpenSlippage = 30
OpenLong   = cross(Close, MA_low) and {MACDsber} > {0.05}
OpenShort   = cross(MA_high, Close) and {MACDsber} < {-0.05}
StopLoss = 50
TakeProfit = 200, 20, 20
autoBot = Y
 
Lbot3D
Индикатор Keltner Levels.
 



Скачать: http://www.xsharp.ru/novosti/keltner_levels
Lbot3D
Окно данных (Data Window), Почти как в Wealth-Lab
 


Было бы полезно создать "Data Window".
Lbot3D
Цифры после запятой на индикаторах QUIK., Отображение индикаторов.
 
Цитата
Sergey Gorokhov пишет:
...
Это можем зарегистрировать как пожелание, причем только при отображение информации
...
Это нет, так как средствами LUA уже можно легко округлить значения если необходимо
С Lua - да, легко округляется. Так и буду делать.
Скрипту, в общем-то, и без разницы, сколько там запятых будет отображаться на графиках.
Свое предложение я снимаю. Визуально округлять большого смысла не вижу.
Спасибо!
Lbot3D
Цифры после запятой на индикаторах QUIK., Отображение индикаторов.
 
Желаю, чтобы такая возможность была.
Lbot3D
Цифры после запятой на индикаторах QUIK., Отображение индикаторов.
 


Есть ли возможность настроить индикаторы на вывод с настраиваемой точностью (например, для контракта SRU5 выставить "0 цифр после запятой")?
Причем настроить не только для вывода на график, но и для считывания скриптами на Lua.
Lbot3D
Аккаунт выставившего заявку, Можно ли увидеть?
 
Цитата
lergen пишет:
Дело в том что у меня есть робот который подбирает неэффективность рынка. Т.е. его алгоритм заточен заключать сделку только когда она 100 процентов принесет прибыль. Так и было несколько месяцев. Несколько дней назад ситуация поменялась в корне. Сделки почти все в минус.
А вы резко так поменяйте ваш алгоритм: вместо прежней "КУПИТЬ" посылайте команду "ПРОДАТЬ" и наоборот.
Цитата
lergen пишет:
Но я знаю что против меня это работает весьма эффективно.
И да - сделать это следует не с открытия рынка, а после 14.00. И важно вовремя заметить ослабление потока прибыли, чтобы ОН или ОНИ не почувствовали подвоха  :!:
Lbot3D
Страницы: Пред. 1 2 3 След.
Наверх