Есть задача удаления всех лимитированных заявок в таблице. Написал такой код
client... code... n=GET_NUMBER_OF("ORDERS")
FOR i FROM 1 to n trade = GET_ITEM ("ORDERS", i) schet=GET_VALUE (trade,"ACCOUNT") sec_t=GET_VALUE (trade, "SECCODE") if schet=client if sec_t=code status_limit=GET_VALUE(trade,"STATUS") tip_operation=GET_VALUE (trade,"OPERATION") balance=GET_VALUE (trade,"BALANCE") order_number=GET_VALUE (trade,"NUMBER") end if end if END FOR
Здравствуйте ! При выполнении скрипта QPILE в таблице скрипта вывожу значение SERVERTIME через GET_INFO_PARAM. Это нормально, что секунды могут замереть, а потом перескочить сразу на 2-3 секунды ? Что это означает ? Происходит в это время задержка в выполнении скрипта ? Не хватает мозгов у компа ? Или медленный интернет канал ? В информационном окне и в левом нижнем углу интерфейса время бежит четко без задержек. Локальное время на компе совпадает со временем сервера. Стоит ли с этим заморачиваться ?
Здравствуйте ! Запустил тут на одной машине два терминала от разных брокеров. Загрузил в оба терминала робота на qpile. В настройках робота,как положено, указаны торговые счета для каждого брокера. В остальном код робота совершенно одинаков - название переменных, условия входа/выхода и т.д. Также одинаково обозначены идентификатор цены на графиках в разных терминалах. В результате роботы начали бодаться друг с другом. Вход в позу осуществляется по лимитированной заявке, которая выставляется заранее и либо она сработает, либо нет. Далее следует сигнал заявка снимается и ставится противоположная и т.д. Так вот конфликта в выставлении/снятии заявок нет. Но как только цена доходит до заявки и оба робота входят в позицию, один аварийно закрывает позицию (есть такое условие по одной из переменных). Если закрывать портфель в любом из терминалов, тогда все работает четко. Вопрос. Может ли существовать конфликт одинакового кода на qpile, запущенного одновременно в двух разных терминалах на одном ПК ? Или мне надо переименовать все переменные в одном из кодов ? Или это из-за одинакового названия идентификатора цены в настройках графика ?
Здравствуйте ! Минимальные системные требования читал. Все же, что важнее при выборе провайдера VDS для квика под WIndows Server 2012 R2. При одинаковой стоимости какую конф-ю выбрать: 1) Intel Xeon, 2.6ГГц - 4 ядра,2 гига опертивки; 2) Intel Xeon, 2.6ГГц - 1 ядро, 4 гига оперативки. Или вообще хватит 2 ядра и 2 оперативки ? Будут крутиться два портфеля на qpile.
Я что-то после qpile пребываю в легком шоке. Сегодня целый день убил, чтобы понять, почему робот продолжает входить в позицию, хотя уже одна заявку улетела. В цикле на вход, помимо торгового условия есть проверка на наличие позиции по фьючерсу. Код на получение позиции такой (подсмотрел тут на форуме))):
function GetTotalNet(stroka) local i = 0 local futures = {} while futures.sec_code ~= stroka do futures = getItem("futures_client_holding", i) i = i+1 end return futures.totalnet end
Далее в майне вызываем эту функцию и присваиваем переменной значение local total_net=GetTotalNet(тут пишем код бумаги). Т.е. если total_net=0 и еще другие условия, то входим в позицию. На купиле это работало. Тут же я долго не мог понять, почему скрипт набирает позицию до упора, пока не выскочит сообщение "превышен лимит по инструменту". Логическим путем пришел к выводу, что после посылки лимитированной заявки (которая уходит по рынку) и ее исполнения, нужно остановить скрипт, чтобы позиция успела обновиться в таблице. В конце цикла на вход ставлю паузу в 5 секунд. Только тогда все заработало как нужно. Это нормально ? Или у меня код кривой на получение позиции и можно как-то ускорить процесс ?
Здравствуйте ! Пытаюсь разобраться с языком QLUA на примере простых стратегий. Например, параболик САР. При перескоке цены параболиком, открываем позицию. Вход на текущей свече. Вопрос. Откуда брать цену, чтобы получить ее максимально быстро по сравнению с кодом на qpile (там я беру цену последней сделки из таблицы текущих параметров): 1) Также из таблицы текущих параметров 2) Из таблицы всех сделок, отфильтровав по нужному инструменту. 3) Напрямую из стакана. Только там будем сравнивать бид или оффер с параболиком, а не цену последней сделки. 4) Напрямую с графика цены через GetNumCandles и далее как в примере с индикаторами ? Или для Lua это не принципиально ? И в любом случае результат будет одинаковым ?
Какой самый скоростной способ получения данных с индикатора, того же параболика, например ? Или способ только один через GetNumCandles и далее.