Перерисовка индикатора на графике без изменения свечек возможна ?
Пользователь
Сообщений: Регистрация: 30.01.2015
19.01.2016 12:14:42
используйте функции SetValue(NUMBER index, NUMBER line_number, NUMBER value) Но есть небольшой баг в применении этой функции при формате линий - штрих почему-то исправляется лишь вторая половинка штриха.
Как в Lua сделать безусловный переход ? Или такой возможности нет ?
Николай Камынин пишет: оператор goto считается в программировании самым мощным оператором перехода. Поэтому он в неумелых руках может так разрушить и запутать программу, что потом будете долго искать ошибки. ------------------------------ Поэтому применение данного оператора считается признаком неумения разрабатывать алгоритмы. --------------------------------- многие языки по указанным ранее причинам не содержат данный оператор. --------------------------------------------- Учитесь печь правильные программы без этого оператора.
Смеялсо. Ох уж эта философия... есть миллион примеров, где использование одного-единственного goto позволяет сделать простой и быстрый код, а не городить огород из иных конструкций, развивая в себе "неумения разрабатывать алгоритмы"
Еще программистам на ассемблере расскажите что безусловный переход это плохо.
Не буду вдаваться в полемику. Но замечу простой и быстрый код - это не критерий правильности его работы и возможности развития и сопровождения в дальнейшем. GOTO позволяет делать непредсказуемые и не очевидные выходы в любые места и из любых мест. В таких программах бывает сложно проследить такие выходы о которых разработчик и сам порою забывает. Дальнейшая модернизация таких программ при коллективной разработке более сложна чем программы созданные по модульному принципу (один вход -один выход) Но конечно, каждый пишет , как умеет. Я тоже, когда начинал разрабатывать программы еще на ассемблерах часто использовал безусловный goto. теперь - никогда его не применяю, хотя люблю писать на СИ,С++.
Правильно ли я понимаю общую концепцию QUIK + DDE/QLua?, Впрос по концептуальному видению
Пользователь
Сообщений: Регистрация: 30.01.2015
19.01.2016 12:00:00
Цитата
Edunon пишет: Николай , большое спасибо за развёрнутый ответ! Пока есть несколько непонятных моментов, которые опускаются в объяснениях, буду рад, если вкратце поясните их. В QLua и через DDE можно смотреть открытые таблицы или открывать новые. Правильно ли я понимаю, что нужно учитывать, что пользователь может случайно закрыть таблицы, забыться и поменять состав столбцов, или ещё как-либо непреднамеренно повлиять на области видимости робота? Я пока плохо знаю QUIK, потому есть опасения. Пока писал ответ, нашёл как отправлять заявку: sendTransaction(), значит есть всё таки «не табличные» функции? Как это укладывается в общую парадигму? Вы написали, что QUIK хранит данные, полученные от серверов биржи. Правильно ли я понимаю, что таким образом можно смотреть историю?
Спасибо за помощь!
В своем ответе под таблицами я имел ввиду внутреннее хранилище. Поясню свое видение QUIK В квике есть хранилище и есть внешнее отображение данных из него. Как сделано хранилище я не знаю. Учитавая с какими напрягами туда надо лазить, полагаю что как-то через что-то. Но это не важно Если память мне не изменяет (уже давно не работаю с DDE) DDE экспорт во внешние программы работает с форматом отображаемых таблиц . Т е есть меняем порядок столбцов то и в DDE будет меняться При работе c библиотекой QLUA обращение осуществляется к хранилищу по именам Следовательно никакого значения порядок столбцов на экране для QLUA не имеет Т к данные в колбек отдаются практически перед отображением на экране и перед передачей в DDE, то QLUA получается более удобнее , чем DDE ---------------------- sendTransaction() - эта функция отправки заявки на биржу. Никакого отношения к хранению данных не имеет. Конечно в QLUA есть множество функций прикладного назначения, а не только обращения к хранилищу данных. ---------------------- В целом, LUA с библиотекой QLUA и расширениями DLL на Си позволяют написать любого робота или эксперта или индикатор.
Как эффективнее разгрузить КВИК
Пользователь
Сообщений: Регистрация: 30.01.2015
19.01.2016 07:55:35
существенно разгрузить можно отказавшись от потока всех сделок. Так как Вы торгуете лишь акциями , то возможно торговать и без этого потока.
Как в Lua сделать безусловный переход ? Или такой возможности нет ?
Пользователь
Сообщений: Регистрация: 30.01.2015
19.01.2016 07:50:35
оператор goto считается в программировании самым мощным оператором перехода. Поэтому он в неумелых руках может так разрушить и запутать программу, что потом будете долго искать ошибки. ------------------------------ Поэтому применение данного оператора считается признаком неумения разрабатывать алгоритмы. --------------------------------- многие языки по указанным ранее причинам не содержат данный оператор. --------------------------------------------- Учитесь печь правильные программы без этого оператора.
Активация стоп-заявки
Пользователь
Сообщений: Регистрация: 30.01.2015
19.01.2016 07:45:50
Цитата
Denis пишет: Добрый день. Не нашел в руководстве можно ли средствами Луа активировать активную стоп-заявку (аналог "правый клик-активировать стоп-заявку")?
Готовой функции нет. надо убрать стоп заявку и выставить безусловную заявку с такими же параметрами
Правильно ли я понимаю общую концепцию QUIK + DDE/QLua?, Впрос по концептуальному видению
Если это так, какие есть концептуальные особенности использования такой прослойки? Нормально ли живётся с таким подходом? В идеале я хотел работать через Plaza 2, на нормальном языке, с нормальной отладкой, с нормальным API, но ежемесячная оплата доступа охладила пыл. Можно ли с QLua как-то приблизиться к архитектурному уровню работы через Plaza 2 или всё-таки придётся оперировать таблицами QUIK?
Разница примерно в следующем. когда Вы работаете с плазой, то реализуется схема клиент-сервер . Клиентом выступает ваш робот. А сервером -сервер биржи В этой схеме сервер отдает вам ответы на запросы, а хранение переданной сервером информации Вы осуществляете сами в своей программе. Т е создаете свою БазуДанных ------------------------------------------ В случае работы с квиком, в качестве клиента выступает торговый терминал КВИК. Он реализует хранение ответов и пересылку запросов на сервер Сервером выступает сервер брокера, он транслирует ответы сервера биржи Торговый терминал QUIK организует хранение полученной с сервера информации. Поэтому появляются таблицы (как известно таблицы - это способ хранения в реляционных базах данных ) --------------------------------------- Таким образом, при работе с QUIK Вы обращаетесь за данными к базе данных терминала QUIK , а ваши запросы и ответы на них QUIK транслирует на сервер брокера и далее на сервер биржи. Т е при работе с плазой у Вас нет готовой базы данных, а при работе с QUIK - есть - это таблицы терминала.
Массовая отправка заявок на сервер QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
26.11.2015 17:27:59
Да, еще забыл сказать, что речь конечно о боевой работе, а не ...изме на тестовом сервере или на ежегодных или месячных тестах.
Массовая отправка заявок на сервер QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
26.11.2015 17:24:44
Добрый вечер, Объясняю для тех,кто не понял. -------------------------- Речь идет не об отправлении пулеметом 1000 транзакций по 1 сделке в каждой, а об отправлении 1000 транзакций по различным бумагам и различным счетам. ------------------------------------- Кратко рассказываю про грабли. ------------------- Для начала, решите на основе какой информации будут отправляться эти 1000 транзакций. ----------------------------- Если это информация по свечам, то она приходит не чаще, чем 10 раз в секунду. Кроме того, на Вашем компе работает алгоритм энгл, который обеспечит вам отправку транзакций примерно 10 раз в секунду Ну и так далее... ==================== Кроме того, учтите , то время обработки транзакции ядром сервера брокера да и биржи примерно 1 ms. А Вы в очереди не первый. ------------------------ После того, как учтете все это, то можете попробовать отправить хотя бы 100 в секунду, хотя бы по 10 бумагам, хотя бы по 5 счетам. ------------------------------------------- Успехов Вам мечтатели.
Массовая отправка заявок на сервер QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
25.11.2015 20:00:04
1000 заявок в секунду по разным инструментам и разным счетам да еще через терминал КВИК? Так Вы ж, батенька, фантазер!!! Для начала попробуйте хотя бы 100 отправить.
CreateDataSource
Пользователь
Сообщений: Регистрация: 30.01.2015
24.11.2015 08:59:42
Цитата
тот самый пишет: почему я думаю, что CreateDatasource - автономна, т.е. имеет свой LUA-поток? Потому что она служит для прямого получения данных с сервера QUIK и имеет свои коллбеки, которые не связаны со стандартными QLUA-коллбеками, выполняющимися в основном потоке квика для всех скриптов.
полагаю, что отдельный поток может иметь (или не иметь ) луа машина. У нас есть два потока -функция main и основной поток QUIK. ------------------------------------------ CreateDatasource запускается либо в Main, либо вне ее ( в основном раньше не работало, поэтому сейчас запускаю лишь в main) ------------------------------------- Таким образом, получаем либо в потоке main, либо в основном потоке. ------------------------------------
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
Пользователь
Сообщений: Регистрация: 30.01.2015
14.11.2015 14:03:59
Хочу добавить свою ложку в Вашу бочку. Возможно мирное решение данной проблемы заключается в следующем. ------------------- Создателям скриптов (т е нам, вам) взять за основу тот факт, что скрипты работают с асинхронными событиями. --------------------- Следовательно, пока событие не наступило, его нет, и гадать о его наступлении бессмысленно. ------------------------------ Например, если trans_id=0 , то это означает, что "ноль" если trans_id=nil , то это означает, что "nil" А когда поступит trans_id не равен 0, то и будем его обрабатывать. Т е либо мы обрабатываем интересующие нас события, либо игнорируем их. ------------------------------ При этом, безусловно, список событий должен быть отражен в документации разработчиков. ---------------------------- Тогда нет проблемы в том, что и сколько раз обновляется.
Как обрезать число типа float до 2х знаков после запятой
Пользователь
Сообщений: Регистрация: 30.01.2015
14.11.2015 08:58:08
или так z=0.01*math.floor(100*x) print(z) ---------------- 1.11
Как обрезать число типа float до 2х знаков после запятой
Пользователь
Сообщений: Регистрация: 30.01.2015
14.11.2015 08:53:59
лучше так: x=1.1124432871741 y=string.sub(x,1,string.find(x,'.')+3) print(y) ------- 1.11
Загрузка переменных в область файла, В файле 1 задать переменную, которую можно print в файле 2
Пользователь
Сообщений: Регистрация: 30.01.2015
14.11.2015 08:49:32
А можно подробнее изложить, что Вы хотите? ------------------ Пишите решаемую задачу, а не желаемые финты над понятиями языка.
Можно ли сделать скрипт, который будет запрещать устанавливать более 1 заявки в 5 минут
Пользователь
Сообщений: Регистрация: 30.01.2015
09.11.2015 16:16:54
Если проблема в отсутствии элементарной дисциплины, то надо быстрее уходить с рынка, пока депозит еще не слили. сольете обязательно и даже если будете подавать лишь одну заявку в 5 минут.
Можно ли сделать скрипт, который будет запрещать устанавливать более 1 заявки в 5 минут
Пользователь
Сообщений: Регистрация: 30.01.2015
09.11.2015 16:08:45
поэтому проще всего не подавать поручения чаще чем 1 раз в 5 минут. Научится этому существенно проще, чем сделать защиту от дурака.
Можно ли сделать скрипт, который будет запрещать устанавливать более 1 заявки в 5 минут
Пользователь
Сообщений: Регистрация: 30.01.2015
09.11.2015 16:06:14
Цитата
green_X5 пишет: Сделать легко. Отслеживание окна заявки через WinApi, с появлением в окне заданного инструмента убивать окно заявки. В тот же момент месага в пейджер -"Заявки чаще чем раз в 5 минут приводят к разорению депозита и приступу простатита! Ваши руки тяжелеют, пальцы немеют, резь в предстательной железе становится невыносимой... тик-так.. тик-так.. ".
Использование WinApi предполагает определенного уровня знаний у разработчика. Полагаю,что у задавшего вопрос этих знаний нет. Поэтому это не легко для него будет.
заполнение созданной таблицы
Пользователь
Сообщений: Регистрация: 30.01.2015
09.11.2015 08:32:57
Надо начать с изучения луа на простых примерах без КВИК (взять Scite и делать примеры с массивами переменными , взять различные модули и делать примеры с графиками с окнами) После этого изучить модуль QLUA на простых примерах (читать свечи, обнаруживать пересечение линий выводить линии выводить метки и т д) В процессе познания придет понимание как сделать то, что хотите.
Уровни страйков на график БА и изменение ОИ на страйке за день по всем действующим сериям, опционы страйки
Пользователь
Сообщений: Регистрация: 30.01.2015
09.11.2015 08:29:09
Если хотите сделать это сами, то вариант действий всего один: 1) Изучить LUA на примерах не связанных с QUIK 2) Изучать библиотеку QLUA на простых примерах 3) Написать то, что хотите. --------------------- Уйдет примерно от 3 до 6 месяцев. Просить халяву - это тупиковый вариант.
Можно ли сделать скрипт, который будет запрещать устанавливать более 1 заявки в 5 минут
Пользователь
Сообщений: Регистрация: 30.01.2015
09.11.2015 08:20:49
Вот несколько возможных вариантов решений 1) Ставим внешний скрипт запуска квик через 5 минут после его отключения при выставлении заявки, выходим из квика. Через 5 минут скрипт снова запускает квик. ------------------------------- 2) В квик устанавливаем автоматическое восстановление соединения через 5 минут Скрипт на луа разрывает соединение с интернет на 30 секунд , если приходит колбек активной заявки. Через 5 минут после этого КВИК восстанавливает соединение -------------------------------- 3) После выставления заявки (прихода колбека) скрипт луа блокирует клавиатуру и мышь на 5 минут ------------------ Ну и т д
заполнение созданной таблицы
Пользователь
Сообщений: Регистрация: 30.01.2015
08.11.2015 09:34:20
На моем сайте есть картинки работы робота, отображающие то, что Вы хотите на графиках. Все это написано на луа. И нет надобности "городить огород", сваливая все доступное в кучу. --------------------- Ученье -свет, но неученых - тьма
Можно ли сделать скрипт, который будет запрещать устанавливать более 1 заявки в 5 минут
Пользователь
Сообщений: Регистрация: 30.01.2015
08.11.2015 09:26:35
Цитата
Владимир Ишанин пишет: Логику программы я понимаю.. Событие на установку позиции, затем переменная с датой и пока не пройдет 5 минут, нажимать на поставить заявку нельзя, но как это сделать программно, можете подсказать пожалуйста) С lua я еще дело не имел. Спасибо
Есть как минимум три варианта: 1) Найти в инете готовое решение 2) заказать разработку данного скрипта 3) научиться писать скрипты и сделать его самому -------------------------- Рассказать "как это делается " можно, но обучить это делать, лишь рассказывая, нельзя.
Можно ли сделать скрипт, который будет запрещать устанавливать более 1 заявки в 5 минут
Пользователь
Сообщений: Регистрация: 30.01.2015
07.11.2015 11:54:17
Можно
Сравнение скорости по LUA и DDE
Пользователь
Сообщений: Регистрация: 30.01.2015
06.11.2015 16:26:27
когда читаем историю, то есть следующий момент, не знаю учли ли Вы это терминал сначала готовить массив для передачи по DDE потом передает у меня получалось примерно так (где-то есть на форуме) : 8 секунд готовит 2 секунды передает А как у Вас получается?
Сравнение скорости по LUA и DDE
Пользователь
Сообщений: Регистрация: 30.01.2015
06.11.2015 16:21:37
Цитата
Alex Alex пишет: Также в праздники сравнил скорость передачи таблицы всех сделок - примерно 250.000 записей. Через DDE - 17.3 сек, через LUA (через Event) - 164,3 сек. Сравнение разумеется некорректно из-за блоковой передаче при DDE
Начнем сначала (Если ошибаюсь, поправьте). Обычно имеем два вида передачи данных 1) Реальное время 2) накопленная история. В первом случае, принятые терминалом текущие данные ТВС сначала вызовут колбек, потом запишутся в ТВС потом поступят на DDE Т е DDE не могут передаваться раньше. DDE - это передача данных через блок памяти. ------------------------- Далее у Вас задействованы два одинаковых механизма записи в MapFile. --------------------- Не знаю как Вы реализовали передачу данных и запись Но существенные потери у Вас будут при нырянии в функции VMLua, так как там все очень сильно накручено с проверками индексами и т д -------------------------- Попробуйте сравнить время записи и чтения какой-либо переменной на LUAс временем записи и чтения ячейки памяти на CИ.
Можно ли получить исторические данные по инструменту не открывая график в QUIK ?, Можно ли получить исторические данные по инструменту не открывая график в QUIK ?
Пользователь
Сообщений: Регистрация: 30.01.2015
04.11.2015 11:06:22
1) Поставьте так ds,err = CreateDataSource("SPBFUT", "RIZ5", INTERVAL_M15) message(err); чтобы увидеть ошибку открытия источника 2) Попробуйте закрыть график выйти из квика с сохранением и перезапустить квик снова посмотрите состояние err можно в log файл вывести ds , если нет программы вывода, возьмите у меня на сайте или любую другую
Можно ли получить исторические данные по инструменту не открывая график в QUIK ?, Можно ли получить исторические данные по инструменту не открывая график в QUIK ?
Пользователь
Сообщений: Регистрация: 30.01.2015
03.11.2015 17:50:11
попробуйте так: --------------------------- function main() if ds==nil then ds,err = CreateDataSource("SPBFUT", "RIZ5", INTERVAL_M15) message(err); else local m=ds:Size()-1 ; local Oi,Hi,Li,Ci= ds:O(m),ds:H(m),ds:L(m),ds:C(m) local text = tostring(Oi)..'***'..tostring(Ci)..'\n' message(text); end
несколько транзакций за одну секунду
Пользователь
Сообщений: Регистрация: 30.01.2015
02.11.2015 14:14:33
Цитата
Валентин пишет: какие варианты с переводом в цифру еще? я сделал так
На форуме есть варианты. Пошукайте. добавьте проверку на корректность . может быть пустая строка
Заказ всех сделок, Использование CreateDataSource для заказа всех сделок
Пользователь
Сообщений: Регистрация: 30.01.2015
02.11.2015 08:33:24
я не измерял, так как не использовал файлы tri/tro.
Заказ всех сделок, Использование CreateDataSource для заказа всех сделок
Пользователь
Сообщений: Регистрация: 30.01.2015
31.10.2015 07:05:49
Цитата
Alex Dronov пишет: Вы не подскажите в чем преимущество qlua относительно метода экспортировать тики qpile и потом работать с .tri/.tro любым языком? это замерялось как быстрее или зачем все эти мучения с виртуальной машиной? только этот вопрос остался. спасибо.
примерно одно и тоже, но чем сложнее алгоритм, чем больше разница.
несколько транзакций за одну секунду
Пользователь
Сообщений: Регистрация: 30.01.2015
29.10.2015 19:40:10
я бы сразу перевел время в секунды и работал бы с числами, а не со строками в виде "12:15:50". Если надо точнее, то берем локальное время в миллисекундах и синхронизируем. Если сделать синхронизацию компьютера по серверу точного времени, то можно просто взять внутреннее время с погрешность 0.1 секунда и вообще проблем нет.
Заказ всех сделок, Использование CreateDataSource для заказа всех сделок
sam063rus пишет: удивляюсь, однако сколько в квике ошибок... и как в такой системе только торговать... )))))))))
p.s. ладно хоть она бесплатна для рядовых пользователей, а то бы эту компанию просто засудили ))
пробежавшись по форуму можно сделать вывод: они, АРКА, делают таксебе продукт исключительно на таксебе ОС для таксебе пользователей.
с претензиями на качество и оптимальность тут очевидно делать нечего. это территория лоха.
Как говорит Козьма Прудков "Бди в корень" Когда что-то делается для раздачи как бесплатное приложение, то не стоит ожидать чуда. Но замечу, что, для российского рынка, КВИК лучше всех живых решений. ---------------------------------------------------------------- Ну так уж в России заведено, чтобы не делали, но лучше, чем автомат Калашникова, не получается.
Как узнать время биржи (квика)?
Пользователь
Сообщений: Регистрация: 30.01.2015
29.10.2015 19:28:46
задержку нет необходимости создавать сервером QUIK. ее можно создать например маршрутизатором, либо драйвером, либо OC. Например, на своем компьютере в ОС можно уменьшить задержку отправки пакетов с 200 ms до 10 ms, но никто не мешает увеличить эту задержку скажем до 10 секунд.
Авторизация средствами qlua
Пользователь
Сообщений: Регистрация: 30.01.2015
29.10.2015 19:21:13
Да, в нем надо кавычки >> заменить на " (особенность WP). Честно говоря, я уже и не помню подробности этого варианта. Их было много для разных задач автоматизации.
Как узнать время биржи (квика)?
Пользователь
Сообщений: Регистрация: 30.01.2015
29.10.2015 08:33:30
Цитата
Валентин пишет: нам даже не важно время биржи. мы работаем с сервером брокера. и синхронизацию по идее надо делать с ним
Попробую объяснить неважность данной проблемы. ------------------------------------ Сразу хочу предупредить особо ретивых, я высказываю свое представление о данной проблеме на основе собственных исследований. Ниже приведена информация из расчета, что читающий ее является обычным пользователем, а не хакером или спецом в разработке софта. ---------------------------------- Рассматриваем случай работы по обычному каналу через терминал КВИК Итак начнем: 1) операционная система компа позволяет отсылать не более 4 заявок в секунду. 2) Информация с биржи приходит к нам пакетами примерно 2-4 пакета в секунду. При этом мы видим последовательное появление сделок с различным временем , в то время когда они пришли к нам в одном пакете. Т е кажется, что это реальное время, но в действительности есть систематическое запаздывание. --------------------------- Говоря образно, мы видим сегодня, то что было вчера. --------------------------- Поэтому надо учитывать тот факт, что априори информация, доступная нам всегда запаздываем на 0.2-0.5 сек. ------------------------ 3) полагаю, что сервер брокера тоже синхронизируется по серверам точного времени. Поэтому разность времени между сервером биржи и сервером брокера будет не более 0.1 сек. ----------------------------------- Но брокер может сам включить искусственно задержку трансляции данных. --------------------------------------- Кроме того, существенную задержку составляет очередь клиентов на сервер брокера. По официальным данным скорость ядра сервера биржи (будем считать и сервера брокера) примерно 1000-2000 транзакций в секунду. Если, при активном рынке, к брокеру приходит одновременного 1000 заявок на сервер, то задержка будет не менее 1 сек. Реально может быть и более.
Заказ всех сделок, Использование CreateDataSource для заказа всех сделок
Пользователь
Сообщений: Регистрация: 30.01.2015
29.10.2015 08:11:22
это уже обсуждалось неоднократно последние десять лет. Ответ один -нет.
Авторизация средствами qlua
Пользователь
Сообщений: Регистрация: 30.01.2015
29.10.2015 08:08:07
Дополню предыдущий ответ. Если установка галочки не спасает, а необходимо еще какие либо действия, то можно запустить внешнее приложение оно может быть и на луа и на автоите. Отличие autoit от срипта на vbs или имеющихся средств автоматизации - простота создания практически любых сценариев с возможность управления приложениями через их меню.
Николай Камынин пишет: Это не всегда верно, возможна ситуация, когда стоп-заявка исполнилась, а информация о выставлении заявки еще не пришла.
В этом случае, как вы понимаете, проверять нечего. Нет же ещё заявки. Вот другая ситуация, когда информация по заявке (сделке) уже пришла, а поля order.linkedorder и stop_order.linkedorder ещё не обновились. Вот тут проблема...
А я обрабатываю данную ситуацию для обнаружения заявки , выставленной по исполненному стопу. ---------- Так по заявке или по сделке пришла информация. сделка и заявка в разных колбеках и их обработка различная Я об этом писал. У меня указанной Вами проблемы нет. Если посмотрите еще раз мое описание состояний то увидите, что их больше , чем исходной кодировке флагов состояния.
Разработчика: позиция по клиентским счетам, активные стоп-заявки и тд
Пользователь
Сообщений: Регистрация: 30.01.2015
28.10.2015 17:46:15
правильно Вы понимаете. Есть лишь индикация ненулевого значения. Когда ситуация такая встретится, то буду решать как ее исправлять автоматом, пока такой задачи не возникало.
Выставление "рыночных" заявок
Пользователь
Сообщений: Регистрация: 30.01.2015
28.10.2015 17:42:51
Цитата
Старатель пишет: Николай Камынин , и да, ваши рассуждения несостоятельны: Во-первых, продажа может осуществляться в долг, и сколько резервировать ДС - тоже не известно Во-вторых, при выставлении стоп-заявки, ДС не резервируются.
Продажа в долг рассчитывается по наличию у Вас залога. Но конкретно выполнять или не выполнять решает брокер. ------------------------------------------------- Что же касается Вашего изречения "не состоятельны", то это не доказательство , а Вы не господь,чтобы изрекать истину в последней инстанции. -------------------------------------------------- Я описал Вам возможную ситуацию. Никто Вас не заставляет ее читать или ей верить.
несколько транзакций за одну секунду
Пользователь
Сообщений: Регистрация: 30.01.2015
28.10.2015 17:36:52
Если необходимо посылать несколько заявок в какой-то отрезок времени, то лучше вычислять время по модулю значения отрезка. Тогда полученное значение будет меняться от 0 до величины отрезка- 1 квант.
Разработчика: позиция по клиентским счетам, активные стоп-заявки и тд
Пользователь
Сообщений: Регистрация: 30.01.2015
28.10.2015 11:40:26
Цитата
Старатель пишет: Что делаете, если на транзакцию длительное время нет ответа?
проверяю интернет и ищу ошибки в своей программе. При нормальной работе канала и отсутствии ошибок такая ситуация не возникала.
Выставление "рыночных" заявок
Пользователь
Сообщений: Регистрация: 30.01.2015
28.10.2015 11:33:09
Цитата
Старатель пишет: Отклоняется только рыночная стоп-заявка на покупку. Стоп на продажу принимается и исполняется.
Могу объяснить это следующим образом При продаже осуществляется продажа фиксированного количества , которое у Вас есть по любой цене на бирже. Т е брокер это исполнит всегда так как что продать есть, а цена указана любая. ----------------------------------------------- При покупке ситуация иная. Вы заказываете купить конкретное число по любой цене, но при ограниченном количестве Ваших денег. Т е возникает риск покупки Вам на сумму больше, чем у Вас есть. А это уже нельзя делать. Так как ситуация не предсказуемая, то в выполнении такого поручения логичнее отказать, так как исполнение стопа делает робот и заранее резервирует ваши деньги, а при цене по рынку - сколько точно надо?- неизвестно!!!
Как узнать время биржи (квика)?
Пользователь
Сообщений: Регистрация: 30.01.2015
28.10.2015 11:24:08
для начала синхронизируйте время компьютера с сервером точного времени например с 3.ru.pool.ntp.org поставьте например синхронизацию через час или меньше. В результате будет несинхронность локального времени относительно биржи менее секунды. Если будет желание можете исследовать несинхронность точнее.
Сейчас делаю следующим образом: если в таблице стоп-заявок не находится стопа с stop_order.order_num==order.linkedorder , то считается, что заявка выставлена в результате переноса через клиринг, в противном случае - в результате исполнения стоп-ордера.
Это не всегда верно, возможна ситуация, когда стоп-заявка исполнилась, а информация о выставлении заявки еще не пришла.
Авторизация средствами qlua
Пользователь
Сообщений: Регистрация: 30.01.2015
28.10.2015 10:56:50
у меня на сайте (где-то давно)
есть пример на Autoit, работаю сам с подобным решением несколько лет. ----------------------------- Мне нравится делать автоматизацию на Autoit, рекомендую.
Выставление "рыночных" заявок
Пользователь
Сообщений: Регистрация: 30.01.2015
26.10.2015 19:02:04
Цитата
Старатель пишет: QUIK Junior v.7.0.0.289 Отправляю 4 рыночные заявки (2 обычные и 2 стоп): В результате стоп-заявка на покупку отклоняется с формулировкой "Рыночная заявка для клиентского счета запрещена": ------------------ Что происходит? UID 92812
Предположу два варианта 1) это тестовый сервер 2) рыночная цена в стопе на фьючерсах не катит. Если хотите рыночную цену на фьючах, то поставьте цену минимально допустимую (для продажи) или максимально допустимую (для покупки) И получите по рыночной цене А на неликвиде сольете весь депозит.
Разработчика: позиция по клиентским счетам, активные стоп-заявки и тд
Пользователь
Сообщений: Регистрация: 30.01.2015
26.10.2015 18:52:59
В качестве совета расскажу кратко свое решение для скриптов (для индикаторов решение другое). --------------------------------------- Я создаю таблицы сделок,активных заявок,активных условных заявок, транзакций. ------------------------------------- при отсылки поручения , записываем транзакцию в таблицу транзакций при приеме колбека на транзакцию удаляем из соответствующей таблицы. Таким образом , контролируем баланс транзакций. ---------------------------------- В колбеке обработки заявок я различаю три состояния, новая, активная и неактивная. -------------------------------- Активные заявки различаются как выставленные роботом или человеком и заявки выставленные при исполнении условных заявок. ---------------------------------- В неактивном состоянии заявки различаю два состояния - исполнена , отклонена ------------------------------- таблицу сделок почти не обрабатываю Просто фиксирую совершенные сделки и считаю прибыль убытки комиссии и т д --------------------------------------- Условные заявки разделяю на стоп-заявки и условные заявки, а также на заявки выставленные роботом и заявки выставленные человеком -------------------------- Перечисленные выше состояния я обрабатываю. мне не имеет значение сколько пришло колбеков Для каждого указанного состояния свой алгоритм обработки. ----------------------------- Примерно так.
Изучаем Qlua., "hello world"
Пользователь
Сообщений: Регистрация: 30.01.2015
25.10.2015 10:51:33
поправка,следует читать: ------------- "Например, Если в этой заявке указано купить 100 лотов, а желающие продать, подают заявки по нашей или лучшей цене лишь по одному, то колбек OnTrade будет вызван минимум 100 раз."