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

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

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

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

 
Ошибка при считывании таблицы текущих торгов
 
Нашлась ошибка, вместо GetParamEx надо было написать getParamEx
Ошибка при считывании таблицы текущих торгов
 
Nikolay, а как ее включить?
Ошибка при считывании таблицы текущих торгов
 
Добрый день, пытаюсь считать параметр из таблицы текущих торгов, но получаю ошибку - 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

Подскажите, если не трудно, где ошибка
При входе в сделку, цена отскакивает на 50 - 200 пунктов. Обман брокера?
 
ViK_An, сложно что-то сказать без примера
Не считывает таблицу "Ограничения по клиентским счетам", Не считывает таблицу "Ограничения по клиентским счетам"
 
Вопрос решился, в документации ошибка!
В документации сказано что ключ числовой но на самом деле строковый. Через такой цикл получил значения ключей

for k,v in pairs(futures_client_limits) do
    n=n+1
    log_file:write(k.." - "..v.."\n");
end
При входе в сделку, цена отскакивает на 50 - 200 пунктов. Обман брокера?
 
График общий для всех, кто-то встал в лонги и заработал на движении вверх а кто-то на том же движении потерял стоя в шортах. Единственный способ менять цену - скупать ордера из стакана, перемещаюсь к вышестоящим или нижестоящим ордерам. Чтобы протолкнуть цену умышленно нужно выставить заявку на тысячи, десятки тысяч контрактов, ради ваших нескольких штук этого делать никто не будет, потерять таким получится обязательно, заработать точно нет.
Не считывает таблицу "Ограничения по клиентским счетам", Не считывает таблицу "Ограничения по клиентским счетам"
 
А если пытаюсь обратиться к элементу, получаю nil
message(tostring(futures_client_limits[1]));
Не понимаю почему не возвращает таблицу, в квике она открыта и в ней есть значения
Не считывает таблицу "Ограничения по клиентским счетам", Не считывает таблицу "Ограничения по клиентским счетам"
 
Не считывает таблицу "Ограничения по клиентским счетам"

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, Как построить график на основе произвольных данных
 
Цитата
nikolz написал:
Цитата
Христиан написал:
В итоге решил сделать тестирование стратегий на C# и потом переносить алгоритм на lua
в квик на  луа тестирование стратегий работает очень медленно.
Более лучшим вариантом является амиброкер и связка его с QUIK.
В смысле не тестирование переносить на lua а алгоритм для торговли, и им уже торговать
Тестирование робота на исторических данных в quik, Как построить график на основе произвольных данных
 
В итоге решил сделать тестирование стратегий на C# и потом переносить алгоритм на lua
Тестирование робота на исторических данных в quik, Как построить график на основе произвольных данных
 
Хочу эмулировать график в ускоренном режиме на основе тиковых данных о движении цены, с подключенным к этому графику роботом. Как с помощью lua построить произвольный график? Сколько ни искал интернете не нашел.
Страницы: 1
Наверх