дополню ранее сказанное. пропуски срабатываний у Вас будут всегда происходить по следующей причине. --------------------------------- Данные в ТВС приходят пакетами. Т е сделки следующие с малым интервалом друг за другом придут к Вам одновременно. ----------------------------------- При этом колбек будет срабатывать на них последовательно и непрерывно. Т е например две сделки совершены с интервалом 100 мс но пришили в одном пакете. колбек на них отреагирует два раза но с интервалом полагаю менее мс. Т е у Вас произойдет анализ статуса на обе сделки одновременно. Если первая изменит статус а вторая вернет его обратно, то Вы этот сигнал не увидите и заявку не выставите. -------------------------------------- Эту ошибку никаким железом не исправишь - это методическая ошибка (ошибка метода). Ее можно устранить лишь изменив алгоритм работы робота. Теперь вроде все.
Железо для торговли роботом
Пользователь
Сообщений: Регистрация: 30.01.2015
21.02.2016 14:03:23
могу предположить следующее. Так как Вы пользуетесь колбеками , а они не синхронизируются то у Вас status успевает изменится туда и обратно до того момента, как Вы на него прореагируете
У БКС сервера работают медленно ( возможно так делают специально, чтобы на вип сервер подключались за денюшку, возможно старое железо, возможно клиентов много и сервер не справляется), короче реакция сервера медленная. Сейчас у нового брокера у Вас раз в 5 быстрее реакция сервера. В результате Вы сейчас просто не успеваете обрабатывать status и теряете сигнал. ----------------------------- Чем медленнее будет рынок, тем лучше у Вас будет срабатывание. -------------------------- Короче, проблема у Вас в потере сигналов status. Надо переделывать алгоритм обработки сигналов, либо работать со свечами. О чем уже писал ранее. --------------------------------- Чудес не бывает, но хочется в них верить.
Железо для торговли роботом
Пользователь
Сообщений: Регистрация: 30.01.2015
20.02.2016 19:04:58
а почему Вы решили, что меньше сигналов - это неправильно? возможно у вас коридор для болинджера большой задан для текущего рынка.
Железо для торговли роботом
Пользователь
Сообщений: Регистрация: 30.01.2015
20.02.2016 18:44:42
вернее сказать запаздывание 2-5 раз больше
Железо для торговли роботом
Пользователь
Сообщений: Регистрация: 30.01.2015
20.02.2016 18:43:58
В БКС серверы работают медленнее, чем то, что Вы показали раньше. Примерно 2-5 раз.
Железо для торговли роботом
Пользователь
Сообщений: Регистрация: 30.01.2015
20.02.2016 17:56:26
и еще если я правильно понял, у Вас как-то странно проверяется пересечение. Вы используете сделку и заявку Вы именно так хотите? но тогда Ваш алгоритм вообще не соответствует картинке
Железо для торговли роботом
Пользователь
Сообщений: Регистрация: 30.01.2015
20.02.2016 17:52:12
На картинках у Вас пересечение свечи с линией болинджера а в программе используется тик. ----------------------- свеча - это четыре индикатора вычисляемых по куче тиков. ----------------------------- поэтому то, что у Вас написано это совершенно не то, что Вы хотите (если смотреть на картинки) ------------------------------- Нарисуйте картинку тиков внутри свечи и посмотрите . Если хотите как на картинке то используйте свечи а не ТВС
Железо для торговли роботом
Пользователь
Сообщений: Регистрация: 30.01.2015
20.02.2016 16:04:37
Хочу обратить Ваше внимание на тот факт, что в ТВС тики, а на графиках у Вас свечи. ------------------------------ Т е то, что вы реализовали это не то , что на графиках.
Определить очередь моей заявки в стакане в любой момент времени., Определение очереди.
Пользователь
Сообщений: Регистрация: 30.01.2015
20.02.2016 15:20:22
берете стакан и ищите свою заявку по цене. это и будет ваш номер в стакане.
Железо для торговли роботом
Пользователь
Сообщений: Регистрация: 30.01.2015
20.02.2016 15:16:56
есть существенная разница в реализации подобных действий на истории и в реале.
Железо для торговли роботом
Пользователь
Сообщений: Регистрация: 30.01.2015
20.02.2016 15:15:13
вернее сказать ошибка в алгоритме функции пересечения
Железо для торговли роботом
Пользователь
Сообщений: Регистрация: 30.01.2015
20.02.2016 15:14:10
могу предположить, что Вы неверно обрабатываете пересечение цены и индикатора, поэтому сигнал не возникает.
Вывод таблицы
Пользователь
Сообщений: Регистрация: 30.01.2015
19.02.2016 20:15:05
для этого Вам надо ознакомиться с форматом файлов Excel и написать программу. -------------------------------------------- все в этом мире возможно, вопрос лишь в том, сколько на это надо .... и есть ли у Вас столько.
Железо для торговли роботом
Пользователь
Сообщений: Регистрация: 30.01.2015
19.02.2016 20:07:04
Полагаю, что в правильной программе выставление заявки по Вашему алгоритму не зависит от задержки общения с брокером. Если у Вас зависит, то ищите ошибки в логике программы. ------------------------ В качестве совета: Ваш алгоритм робота удобно реализовать в индикаторе (без заморочкой с колбеками и ТВС)
Вывод таблицы
Пользователь
Сообщений: Регистрация: 30.01.2015
19.02.2016 16:53:11
а если надо добавлять в конец файла, то вместо w+ поставить a+
Проблема с циклом
Пользователь
Сообщений: Регистрация: 30.01.2015
19.02.2016 12:13:53
на этот вопрос я уже отвечал в другом блоге. повторю еще раз: добавьте перед циклом run=true;
ошибка транзакции
Пользователь
Сообщений: Регистрация: 30.01.2015
18.02.2016 23:58:49
примерно так: psec=getSecurityInfo(clas,sec); sform="%6."..psec.scale.."f"; t["PRICE"]=string.format(sform,Price);
тип линии 4, не знаю как точно называется. ------------------ попробую придумать отдельный тест.
изображение индикаторов
Пользователь
Сообщений: Регистрация: 30.01.2015
17.02.2016 18:54:31
попробую объяснить еще раз. ------------------------ На графике цифрами обозначены штрихи (красный цвет) 3 -нормальный штрих 1 и 2 - штрих который изменен приведенным выше кодом. ----------------------------------- собственно это и есть весь код ------------------------- Теперь про ошибку. Ваша функция SetValue изменяет одну точку, но эта точка отображается отрезком линии ( штрих) так как выбран тип штриховой. ------------------ Проблема в том, что в свечном графике используются два места для изображения свечи, или как Вам удобнее - две точки. ------------------------------- Поэтому на свечном графике штрих состоит из двух частей - двух точек, а функция SetValue меняет лишь одну точку (половинку штриха)- последнюю. поэтому штрих на свечах разрывается на две точки (половинки штриха) --------------------- Попробуйте сами нарисовать штриховую линию на свечном графике и изменить любое значение свечи - получите два огрызка штриха.
изображение индикаторов
Пользователь
Сообщений: Регистрация: 30.01.2015
17.02.2016 12:51:00
объяснение Вашей ошибки следующее. У Вас штрих рисуется двум отрезками. функция SetValue корректирует лишь последний, поэтому первый остается без изменения.
изображение индикаторов
Пользователь
Сообщений: Регистрация: 30.01.2015
17.02.2016 12:42:44
, т е то , что у штрих линии штрих расщепляется на два огрызка - это нормально?
изображение индикаторов
Пользователь
Сообщений: Регистрация: 30.01.2015
17.02.2016 11:54:02
Добрый день, вот такая ошибочка выходит: В данном случае применяется функция SetValue(i-1,m+2,GetValue(i-2, m+2)) где m+2 -номер индикатора, i - текущая свеча. алгоритм: Предыдущее значение заменяется на препердыдущее. В результате линия индикатора на свече делится пополам (1 и 2) Половинка 1 остается на старом уровне а половинка 2 переходит на новый.
очему могла упасть скорость экспорта данные по DDE
Пользователь
Сообщений: Регистрация: 30.01.2015
16.02.2016 19:06:32
диспетчером задач посмотрите 1) сколько занято памяти и сколько в пике 2) какая загрузка процессора когда тормозится 3) закройте все, что не нужно для торговли.
Железо для торговли роботом
Пользователь
Сообщений: Регистрация: 30.01.2015
16.02.2016 19:00:42
попробуйте из дома сделать пинг на ip брокера. Если сервер брокера не ответит то на московскую биржу и сравните с временем задержки ответа сервера В приведенной Вами картинки это 31 mc. если пинг у Вас будет меньше, то переход на свой комп будет работать также как сервером, иначе будет хуже.
Тейк Профит и Стоп Лос
Пользователь
Сообщений: Регистрация: 30.01.2015
16.02.2016 17:02:30
что будет проскальзывать и относительно чего?
Железо для торговли роботом
Пользователь
Сообщений: Регистрация: 30.01.2015
16.02.2016 12:55:33
а как вы управляете терминалом КВИК. Он у Вас на сервере брокера?
Железо для торговли роботом
Пользователь
Сообщений: Регистрация: 30.01.2015
16.02.2016 12:52:21
резюме - "это не заливная рыба"
Железо для торговли роботом
Пользователь
Сообщений: Регистрация: 30.01.2015
16.02.2016 12:49:40
Похоже что в киеве. С первого взгляда выгоды от виртуалки почти нет. Я такие параметры получаю на своем компе(но не у всякого брокера). Есть брокеры у которых сервера тормозятся сильно. А где будет комп?
Не могу зарегистрировать заявку на срочной секции, Не могу зарегистрировать заявку на срочной секции
Пользователь
Сообщений: Регистрация: 30.01.2015
16.02.2016 06:44:59
возможно Вы неправильно указываете цену (точность либо формат) кроме того, res содержит сообщение об ошибке. Надо его (res) вывести на экран либо в файл либо посмотреть в отладке.
Железо для торговли роботом
Пользователь
Сообщений: Регистрация: 30.01.2015
15.02.2016 21:59:39
нашел у финама: до 30 транзакций в секунду примерно 5 т р в месяц + 5 т р установка + еще что-то для моего места нахождения обещают уменьшение задержки в 6 раз.
Железо для торговли роботом
Пользователь
Сообщений: Регистрация: 30.01.2015
15.02.2016 21:41:35
пытался посмотреть что же предлагают брокеры т е какие характеристики и за какую цену. кроме рекламы, что все круто, ничего конкретного не нашел.
Не работает бесконечный цикл
Пользователь
Сообщений: Регистрация: 30.01.2015
15.02.2016 19:31:54
поставьте первой строкой run=true-- или любое значение
Помогите определиться - Plaza или FIX
Пользователь
Сообщений: Регистрация: 30.01.2015
15.02.2016 18:58:56
ключевым моментом будет канал доступа. Это вам будет стоить от 10 до 100 т р в месяц. Готовы?
Линейка
Пользователь
Сообщений: Регистрация: 30.01.2015
15.02.2016 18:55:29
можно пластмассовую линейку взять и прикладывать к тому месту, где хочется. и никакой проблемы.
Железо для торговли роботом
Пользователь
Сообщений: Регистрация: 30.01.2015
15.02.2016 18:50:10
А что брокер Вам обещал и за какие деньги, когда брали у него место на сервере?
Железо для торговли роботом
Пользователь
Сообщений: Регистрация: 30.01.2015
15.02.2016 18:48:38
полагаю, что у брокера Вы существенно выигрываете в скорости реакции. Но это можно сказать лишь если покажите то, что указал ранее.
дайте ссылку , где на вашем сайте это лежит. Спасибо
Где скачать документацию по qlua
Пользователь
Сообщений: Регистрация: 30.01.2015
15.02.2016 12:09:24
действительно, хотелось бы услышать начальника транспортного цеха. где документация на QLUA версии 7. Спасибо
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
Пользователь
Сообщений: Регистрация: 30.01.2015
15.02.2016 12:05:07
Я пользуюсь таким алгоритмом для отличия первого колбека от последующих Создаем таблицу событий по которым следим за колбеками (активным событиям) при поступлении колбека по событию изменяем его состояние в таблице событий. Если событие стало неактивным, то удаляем его из таблицы состояний. Проблем с кучей колбеков на одно и тоже событие у меня нет.
Расчет EMA, Формула расчета в Quik?
Пользователь
Сообщений: Регистрация: 30.01.2015
15.02.2016 08:41:37
еще замечу автору вопроса: если обратитесь к литературе, то обнаружите, что EMA это простейший цифровой фильтр с бесконечной импульсной характеристикой. Так как фильтрацию делаем на конечном интервале, то вне 3000 значений мы как бы придумываем Есть различные варианты продления данных за интервал наблюдения. Это тоже есть в книжках. Если интересно, что там за горизонтом, можно прочитать в книжках перед изобретением колеса.
Расчет EMA, Формула расчета в Quik?
Пользователь
Сообщений: Регистрация: 30.01.2015
15.02.2016 08:36:20
выкладываю модуль расчета индикаторов EMA написал очень давно, результаты должны быть как в квике
Код
local modname = ...
--автор Николай Камынин kamnik@mail.ru www.kamynin.ru
local M = {}
_G[modname] = M
package.loaded[modname] = M
local _G=_G -- глобальная таблица
setfenv(1, M)
function EMAt(y,x,m,i,n) --x- таблица
if m>=i then local s=0; for j=0,i-1 do s=s+x[i-j] end y[i]=s/i;
else if n==nil then y[i]=(y[i-1]*(m-1)+2*x[i])/(m+1); else y[i]=y[i-1] -(x[i-m] -x[i])/m; end
end
end
function EMAf(y,x,m,i,n) --x- функция
if m>=i then local s=0; for j=0,i-1 do s=s+x(i-j) end y[i]=s/i;
else if n==nil then y[i]=(y[i-1]*(m-1)+2*x(i))/(m+1); else y[i]=y[i-1]-(x(i-m)-x(i))/m; end
end
end
function sEMA(y,x,m,i)
local s=y;
if m>=i then s=((m-1)*s+x)/m; else s=(s*(m-1)+2*x)/(m+1); end
return s;
end --скользящее среднее x период m n если не задано то ехпонента или простое сглаживание
CreateDataSource
Пользователь
Сообщений: Регистрация: 30.01.2015
14.02.2016 21:55:04
честно говоря, написал это еще год назад. но как-то не было надобности использовать.
CreateDataSource
Пользователь
Сообщений: Регистрация: 30.01.2015
14.02.2016 21:52:59
Для справки: Реализовал открытие источников без графиков для индикаторов. ------------------- алгоритм следующий: 1) сделал библиотеку для запуска функций любого скрипта из других скриптов 2) Написал скрипт, который отвечает за открытие источников и находится в спящем потоке. 3) Если индикатору или скрипту нужны данные по истории, то он обращается за данными к спящему скрипту, который возвращает индикатору требуемые данные. --------------------
Железо для торговли роботом
Пользователь
Сообщений: Регистрация: 30.01.2015
14.02.2016 20:19:01
Поясню еще раз. ----------------------- 1) Железо можно взять любое, лишь бы памяти не менее 2 Гб. На этом сервере у Вас 1.5 а пик более 1.5 т е бывает выгрузка на диск - это плохо. Поэтому памяти не менее 2. -------------------------- 2) сейчас у Вас квик у брокера в дата центре. сделайте в работающем КВИКЕ во 10:00, 12:00 и 21:00 информационное окно в расширенном варианте и покажите, тогда можно будет сказать конкретно на сколько хуже.
Как пошагово выполнять скрипт на qlua при запучке из QUIK ?, Вся суть, в принципе, выражена в вопросе.
Пользователь
Сообщений: Регистрация: 30.01.2015
14.02.2016 13:23:04
никак. чтобы отслеживать ошибки делайте вывод переменных в лог файл.
getBuySellInfoEx
Пользователь
Сообщений: Регистрация: 30.01.2015
14.02.2016 07:04:14
откатить версию: из backup из каталога нужной версии переписываем в QUIK.
Колбэк при частичном открытии лимитированной позиции
Пользователь
Сообщений: Регистрация: 30.01.2015
14.02.2016 06:59:33
для начала читаем документацию: OnOrder Функция вызывается терминалом QUIK при получении новой заявки или при изменении параметров существующей заявки. Черным по белому написано: придет onOrder, так как произошло изменение позиции, т е изменились параметры выставленной заявки. Т е у заявки на бирже изменились параметры. Новая не выставлялась.