Что я делаю неправильно с последовательно размещаемыми заявками?

Страницы: 1
RSS
Что я делаю неправильно с последовательно размещаемыми заявками?, Отправка заявки после исполнения предыдущей
 
Всем привет!

Стоит задача: после покупки лукойла в количестве 1 штуки (появление его в портфеле) необходимо купить 1 сбер.

В текущем варианте кода лукойл покупается сразу, а сбер только после остановки скрипта и его повторного запуска.

Видимо необходим перезапуск getFuturesHolding; я его пробовал вставить внутрь цикла со сбером ,но эффекта нет...

Как мне следует поступить?

Заранее спасибо!

Код
function main()

   while stopped == false do

      local portfolio = getFuturesHolding("SPBFUT", "SPBFUT***","LKU0",0).totalnet


      if portfolio==0 then
         
         --заявка на покупку LKU0

      elseif portfolio==1  then

         --заявка на покупку SRU0

      end

      sleep(1000)
   end
en
 
Возможно, не хватает времени на обновление portfolio.
После покупки LKON (перед elseif) можно вставить
Код
local timeWfinish = os.time() + 5;
while portfolio==0 do
    portfolio = getFuturesHolding("SPBFUT", "SPBFUT***","LKU0",0).totalnet;
        if os.time() > timeWfinish then
          message("Вышло время ожидания portfolio");
          error("");
        end; 
    sleep(100);
end;
 
Игорь Б, не помогает - все без изменений: вторая заявка уходит только после перезапуска скрипта...
 
Думаю у Вас не корректно организован оператор if.
До второго условия он не доходит. Разделите.
Код
if portfolio==0 then

end;
if portfolio==1 then

end;
 
Игорь Б,, я и этом вариант пробовал - то же самое.

Мне кажется, что getFuturesHolding не лучший вариант для таких скриптов.
Насколько я понял из документации, есть еще функции для определения текущих позиций, но пока не получилось с ними разобраться -  у меня опыт с луа 10 дней )
 
Я бы все делал через таблицу сделок или таблицу заявок. Но для опыта 10 дней это не знаю.
 
Игорь Б, не кажется, что через портфель код короче будет
 
Leonid,
описанное поведение у нас не воспроизводится, приведите полную версию кода.
 
Sergey Gorokhov,  сейчас скрипт заработал как надо...

Может быть был глюк интерпретатора?

У меня были случаи когда возвращался nil, но после замены названия переменной все работало как надо.
Страницы: 1
Читают тему (гостей: 1)
Наверх