Христиан (Автор тем)

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

Страницы: 1
Как найти количество контрактов которое можно купить на определенную сумму?
 
Добрый день, есть скрипт который выставляет лимитные заявки на покупку и на продажу фьючерсов на уровнях индикатора, и при изменении цены индикатора переставляет их функцией MoveOrder с указанием новой цены и нового количества (т.к. на новой цене новое ГО и количество доступных контрактов может измениться).
Я определяю количество контрактов для отправки транзакции на лимитную заявку через CalcBuySell, но после того как первые заявки выставляются денежные средства блокируются, и CalcBuySell возвращает 0. Вопрос, как определить количество контрактов которое можно позволить на определенную сумму? Пытался рассчитать ГО самостоятельно но понял что это нереально, единственная здравая мысль - взять из таблицы текущих торгов цену для ГО продавца и покупателя, выставить заявки выше и ниже этой цены и определить величину изменения ГО для 1 шага цены по величине заблокированных средств. Но это не очень хороший вариант т.к. для определения цены в лонг нужно выставить заявку выше расчетной цены, а в шорт ниже, одна из них в любом случае возьмется а этого не хотелось бы.
Работа main() при наличии 1 ядра
 
Здравствуйте, хочу поставить Quik на VPS сервер чтобы работал там круглосуточно, волнует вопрос, как будет работать main() в отдельном потоке при наличии только 1 ядра? Все ли будет работать или нужно минимум 2. Поправьте если я чего-то не понимаю, спасибо
Снимается заявка сразу после отправки транзакции
 
Добрый день. Хочу отправить лимитную заявку на покупку по более низкой цене, заявка принимается, но в таблице заявок у нее сразу статус "снята". Результат выполнения заявки пустой, то есть ошибок нет, почему тогда заявка снимается?

function Buy()
local price_order = 40.85;
local count_order = 1;
local transaction = {
["ACCOUNT"] = name_account,
["TYPE"] = "M",
["TRANS_ID"] = "7",
["CLASSCODE"] = CLASS_CODE,
["SECCODE"] = sec_code,
["ACTION"] = "NEW_ORDER",
["OPERATION"] = "B",
["PRICE"] = tostring(price_order),
["QUANTITY"] = tostring(count_order)
}
local result = sendTransaction(transaction);
SetCell(t_id, 5, 0, result);

end

 
Ошибка при считывании таблицы текущих торгов
 
Добрый день, пытаюсь считать параметр из таблицы текущих торгов, но получаю ошибку - C:\QuikFinam\lua\my_script.lua:2: attempt to call a nil value (global 'GetParamEx')

function main()
    msg = GetParamEx("SPBFUT", "BRV0", "LAST").param_value;
    message(tostring(msg));
end

Подскажите, если не трудно, где ошибка
Не считывает таблицу "Ограничения по клиентским счетам", Не считывает таблицу "Ограничения по клиентским счетам"
 
Не считывает таблицу "Ограничения по клиентским счетам"

is_run = true;

function OnInit(script_path)
    LogOpen();--открываем файл с логом или создаем новый если его не существует
    futures_client_limits = getItem("futures_client_limits", 1);--получение первой строки таблицы Ограничения по клиентским счетам
    log_file:write(getNumberOf(futures_client_limits).."\n");
end

function main()
    while is_run do
         sleep(100);
    end
end

function LogOpen()--открываем файл с логом или создаем новый если его не существует
    local timeNow = os.time();
    log_file = io.open(getScriptPath().."//log_"..os.date("%Y", timeNow).."."..os.date("%m", timeNow)..".txt","a");--открываем файл с логом или создаем новый если его не существует
    fullDate = os.date("%d", timeNow).."/"..os.date("%m", timeNow).."/"..os.date("%Y", timeNow).." "..os.date("%X", timeNow);--текущая дата для записи в лог
    log_file:write(fullDate.."\n");
    log_file:flush();
end

function LogClose()
    log_file:close();
end



getNumberOf(futures_client_limits) возвращает -1
Тестирование робота на исторических данных в quik, Как построить график на основе произвольных данных
 
Хочу эмулировать график в ускоренном режиме на основе тиковых данных о движении цены, с подключенным к этому графику роботом. Как с помощью lua построить произвольный график? Сколько ни искал интернете не нашел.
Страницы: 1
Наверх