а как вы управляете терминалом КВИК. Он у Вас на сервере брокера?
Железо для торговли роботом
Пользователь
Сообщений: Регистрация: 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, так как произошло изменение позиции, т е изменились параметры выставленной заявки. Т е у заявки на бирже изменились параметры. Новая не выставлялась.
Как зделать переворот пози?
Пользователь
Сообщений: Регистрация: 30.01.2015
14.02.2016 06:55:06
Цитата
Андрей Мурга написал: Ви не поняли,Смотрите if aaa>bbb then buy end if aaa<bbb then закрить бай и открить селл,Как ето записать кодом? тоесть банальний реверс просто увиличить контракт не поможет робот потом запутается
if aaa<bbb then sell end ---------------------------------------- если продать столько же сколько в позиции, то она закроется, если продать больше, чем есть (если бумага маржируемая), то откроется short.
Железо для торговли роботом
Пользователь
Сообщений: Регистрация: 30.01.2015
13.02.2016 15:25:06
проблема скорее будет не в железе, а в задержках каналов связи и ОС ( алгоритм сингла). тестируйте их пингом и потом принимайте решение.
Железо для торговли роботом
Пользователь
Сообщений: Регистрация: 30.01.2015
13.02.2016 15:22:50
На указанном железе будет плохо. Если хотите очень хорошо, то робот надо ставить на удаленном выделенном железном сервере, в крайнем случае виртуальном, возможно как сейчас у Вас.
Как зделать переворот пози?
Пользователь
Сообщений: Регистрация: 30.01.2015
12.02.2016 19:41:58
сделать противоположную сделку если купили, то продать если продали, то купить если курили, то курить
вопрос по индикаторам, движение индикатора
Пользователь
Сообщений: Регистрация: 30.01.2015
12.02.2016 19:40:19
отправил на почту пример
вопрос по индикаторам, движение индикатора
Пользователь
Сообщений: Регистрация: 30.01.2015
12.02.2016 14:38:40
покажите свой индикатор( программу).
OnOrder выдает ошибку
Пользователь
Сообщений: Регистрация: 30.01.2015
08.02.2016 19:57:44
относительно объявления глобальных переменных в любом месте неверно. вот пример: print(x) x=10 результат nil
OnOrder выдает ошибку
Пользователь
Сообщений: Регистрация: 30.01.2015
08.02.2016 19:45:01
, Все что я написал - есть правда. Но причину ошибки я указал неверно. Вы тоже неверно указали причину ошибки. ------------------- Ошибка в том, что переменная order не содержит элемента order_num Поэтому вызов функции onOrder с параметрами или без не спасает от этой ошибки.
программа на луа делает один цикл купить-продать, программу скачал с интернета. работает. или сам переделал. она купила или продала по индикатору и встала.
Пользователь
Сообщений: Регистрация: 30.01.2015
07.02.2016 10:24:50
бесконечный цикл в функции Main
Порядок отслеживания процесса выполнения транзакций
Пользователь
Сообщений: Регистрация: 30.01.2015
07.02.2016 10:22:59
еще надо (я отслеживаю) заявки, которые выставляет человек, от заявок робота; заявки, которые являются стопами от заявок которые являются условными для открытия позиции. это до кучи
Порядок отслеживания процесса выполнения транзакций
Пользователь
Сообщений: Регистрация: 30.01.2015
07.02.2016 10:20:30
еще надо отслеживать стоп-заявки и отличать их лимит заявки от выставляемых лимит заявок. Это до кучи.
Синхронизация данных от SetUpdateCallback
Пользователь
Сообщений: Регистрация: 30.01.2015
07.02.2016 10:11:42
примерно так:
Скрытый текст
--shares -- список инструментов local oldt_si,oldt_eu,flag=0,0,0; local ds={}; function main() local i = 1 for sec,v in pairs(shares) do local t=ds[i] if t==false then t,er= CreateDataSource(v.classcode,sec, INTERVAL_H1) if er==nil then t.clas=v.classcode; t.sec=sec; t:SetUpdateCallback(function(index) cb(index,ds[i]) end) toLog(log,"ds added i="..i.." classcode:"..v.classcode.." seccode:"..sec) ds[i]=t; else Log(log,"er="..er) end end i=i+1 end
while is_run do sleep(1000) end
end
function cb(ind,t) local Ti = t:T(ind-1) local h = Ti.hour local curhms = h*10 if flag==2 and (curhms~=oldt_si or curhms~=oldt_si) then flag=0 end if flag==2 then return end if curhms==oldt_si then flag=flag+1; oldt_si=curhms end if curhms==oldt_eu then flag=flag+1; oldt_eu=curhms end
if flag==2 then -- обработка
end
end
Синхронизация данных от SetUpdateCallback
Пользователь
Сообщений: Регистрация: 30.01.2015
07.02.2016 10:02:40
либо введите флаг . И по нему блокируйте обработку.
Синхронизация данных от SetUpdateCallback
Пользователь
Сообщений: Регистрация: 30.01.2015
07.02.2016 10:02:01
поставьте выравнивание после обработки.
Сортировка пользовательской таблицы QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
07.02.2016 09:57:19
по QLUA
HHV, LLV за период в LUa ?, Реализация в Луа в виде индикатора HHV LLV
Пользователь
Сообщений: Регистрация: 30.01.2015
07.02.2016 09:56:26
возьмите решение из известного Вам проекта и перепишите его на луа.
HHV, LLV за период в LUa ?, Реализация в Луа в виде индикатора HHV LLV
Пользователь
Сообщений: Регистрация: 30.01.2015
07.02.2016 09:55:19
В луа Ваша задача тоже решается легко.
HHV, LLV за период в LUa ?, Реализация в Луа в виде индикатора HHV LLV
Пользователь
Сообщений: Регистрация: 30.01.2015
07.02.2016 09:46:08
, самокритика - это похвально. Но замечу, не я Вас спрашиваю , при этом гордясь собственным невежеством, а ВЫ.
Сортировка пользовательской таблицы QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
07.02.2016 09:42:56
см в документации Приложение 2.
Работа с OnOrder
Пользователь
Сообщений: Регистрация: 30.01.2015
07.02.2016 09:23:35
один ... может задать столько вопросов, на которые 100 умных затрахаются отвечать. ------------------------- Это сладкое слово - ХАЛЯВА.
Работа с OnOrder
Пользователь
Сообщений: Регистрация: 30.01.2015
06.02.2016 18:26:27
Я уже писал как решать данную проблему. Повторю еще раз. Надо контролировать изменение лимитов. И при их изменении шевелиться с заявками. тогда будет по ... сколько раз у вас сработает OnOrder
Обращение к произвольной ТТП, есть возможность?
Пользователь
Сообщений: Регистрация: 30.01.2015
06.02.2016 18:19:14
нет, взламывать не надо. Так как мы имеем встроенную в основной поток VMLUA , следовательно все dll, которые мы подключаем к ней являются родными для процесса info.exe (терминала КВИК) ------------------------- Проблема лишь в отсутствии документации. Но хорошей документацией QUIK никогда не славился. Поэтому простейший реинженеринг софта потребуется ----------------------------- Раньше, когда требовался взлом (до времен VM Lua) подобную задачу я делал даже без СИ, на скриптовом языке Autoit. ------------------ Но, правда, не вижу практической надобности этого мероприятия.
Как бороться с файлом alltrade.dat
Пользователь
Сообщений: Регистрация: 30.01.2015
06.02.2016 18:10:20
можно делать так: -------------------------------- руками в квике 1) нажать в меню "Очистить все и начать новый сеанс"' ------------------------------- автоматом: 2) батник прописать сценарий удалить файлы 3) п 1 сделать автоматом 4) написать скрипт в батник для запуска квика и прочего. Например: у меня уже лет ...надцать квик по расписанию запускается скриптом и вводит пароли. запускает все, что еще надо, можно удалять все, что не надо .
OnOrder выдает ошибку
Пользователь
Сообщений: Регистрация: 30.01.2015
06.02.2016 07:39:08
А ошибку Вы получаете потому, что у Вас вызов функции происходит до ее описания Попробуйте изучить Lua.
OnOrder выдает ошибку
Пользователь
Сообщений: Регистрация: 30.01.2015
06.02.2016 07:37:34
Нельзя колбек вставлять в main попробуйте разобраться с назначением колбеков и main. Так НЕЛЬЗЯ: function main() while is_run do OnOrder() sleep(50) end end