Игорь Б (Все сообщения пользователя)

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

Страницы: Пред. 1 2 3
Создает ли CreateDataSource источник данных если его запустить во внерабочее время ?
 
OnAllTrade
Функция обратного вызова вызывается терминалом QUIK при получении обезличенной сделки. С CreateDataSource не связана.
В CreateDataSource получают инфо, связанную со свечками O,H,L,C,Size,T + param.  В OnAllTrade получают инфо, связанную со сделками. Часть параметров пересекаются. Поэтому каждый использует кому как удобно.
Создает ли CreateDataSource источник данных если его запустить во внерабочее время ?
 
Один раз ошибся и то же поставил интервал тики. Была та же история. Но быстро нашел свою ошибку, исправил и все вошло в свое русло. Зачем тебе тики, поставь М1.   ds:C(Size) все равно меняется с каждой сделкой. (Хотя допускаю наличие идеи, основанной именно на тиках).
Фильтрация транзакций "своего" робота
 
Цитата
Максим написал:
Если есть доступ к скриптам, то надёжней будет нечто вроде
global_trans_id = trans_id * 10 + robot_id
trans_id = trans_id + 1

Если роботов до 10 включительно - умножаем trans_id на 10, до 100 - на 100 и т.д.

Ну и разбирать обратно это проще простого, пришёл ответ на транзакцию с global_trans_id - берём остаток от деления на 10 (100, 1000, etc) и обрабатываем только если совпадает с текущим robot_id.
Можно сделать так.
Перед формированием номера транзакции (trans_id) проверять его с существующими номерами в таблице заявок через getItem().
При совпадении изменять.  
Фильтрация транзакций "своего" робота
 
Если есть доступ к скрипту.
где-то в самом начале до main() поставить
trans_id      = os.time();

перед выставлением заявки
function MyOpenPosition() -- Выставляет заявку на открытие позиции
     trans_id = trans_id + 1; -- Получает ID для следующей транзакции
     -- Заполняет структуру для отправки транзакции
     local Transaction={
     ACCOUNT   = ACCOUNT_CODE,         -- Код счета
      ------------------------
       -----------------------
     TRANS_ID  = tostring(trans_id)      -- ID транзакции
      };
      local Res = sendTransaction(Transaction); -- Отправляет транзакцию
end;
-- Функция вызывается терминалом, когда приходит новая информация таблицы заявок
function OnOrder(order)
  -- Если пришла информация по нашей транзакции
   if order.trans_id == trans_id then --именно наша заявка
       order_num = order.order_num; --номер заявки
       flag_OnOder = true;  --флаг именно наша заявка
   end;
end;
Как начать читать файл не с первой строки, а со 2й?, исторические данные
 
Цитата
Andrey.R написал:
нет такое не работает ни в каком виде
Код
  f  =   io.open ( "Test.txt" ,"r");
f:seek( "set" , 0 );
 for  line =  3 , f:lines()  do 
       print (line)
     end   
Я тебе предложил не так.
Твой вариант должен быть такой.

Myfile = io.open("Test.txt","r+");
Myfile:seek("set",0);  
i = 0;
 for line in Myfile:lines() do
     i = i + 1;
     if i == 3 then  
------действия
-------
break;
     end;  
 end;
Как начать читать файл не с первой строки, а со 2й?, исторические данные
 
Может я не понял вопроса, но я делаю так.

Myfile:seek("set",0);   "set"-начало файла   "end"-конец "cur"-текущая позиция offset-смещение с начала строки в символах(0-крайнее      левое положение)

 i = 0;
 for line in Myfile:lines() do
     i = i + 1;
     if i == 20 then --находим нужную строку по порядку от начала
     ------действия
    -------
         break;
     end;
 end;
QLUA, вопросы начинающих.
 
Sergey Gorokhov,
Цитата
Sergey Gorokhov написал:
Игорь Б  ,

Проблема не в коде, код работает.
Возможно в терминале у Вас просто отключен вывод сообщений?
Проверьте в таблице сообщений, есть ли там записи
Да, действительно.
Спасибо.
QLUA, вопросы начинающих.
 
Попытался написать совсем простой скрипт
IsRun = true;
function main()
    while IsRun do
    message("ok",2);
    sleep(1000);
    end;
end;
function OnStop()
    IsRun = false;
end;
Добавляю скрипт в сервисе quik. Запускаю. Красный квадрат меняется на зеленый треугольник. Ошибок не выдает. Но ничего не происходит.
qlua.dll есть.
message() ставил в разные места скрипта.
Подскажите, в чем может быть дело.
Спасибо.
Подвисает квик при срабатывании оповещения
 
При попытке обновить, пишет, что версия программы на сервере не изменилась.
Подвисает квик при срабатывании оповещения
 
Здравствуйте.
При создании оповещения ставлю галочку на "Оповещение активно до снятия". Для меня это важно.
При срабатывании, оповещение может подать 1-2 звуковых сигнала и виснет. Снять оповещение не дает. Активировать другое окно не дает. Хотя, окно котировок работает, возможно медленнее. Короче, совершить сделку нет возможности. Приходиться закрывать квик через диспетчер задач. Если снять галочку на "Оповещение активно до снятия", срабатывает один раз и все работает. Версия 7.6.1.1
Тех. параметры компа выше требуемых.

Спасибо.
Страницы: Пред. 1 2 3
Наверх