Как загрузить робота в QUIK
Чтобы загрузить (установить) в QUIK написанный на языке QPILE портфель (он же робот, или скрипт, или программа) необходимо произвести следующие действия.
В разделе "Меню" "Таблицы" выбрать "Портфели" и "Задать портфель". Либо просто нажать одновременно две клавиши - Ctrl и F10.
Выбрать свой портфель и нажать кнопку "Загрузить локально". Нажать "Выход".
Затем необходимо создать таблицу для просмотра параметров портфеля. Для этого опять "Меню" "Таблицы" выбрать "Портфели" и "Просмотр портфеля" или Ctrl и F12. Выбираем свой портфель. Жмем "Добавить все" и "Да".
Именно после этого момента портфель начнет расчитываться!
Чтобы изменить время расчета портфеля идем в "Меню" "Таблицы" выбрать "Портфели" и "Доступные портфели" или Ctrl и F11. Меняем "Период расчета (сек)", жмем "Применить".
Если хотим удалить наш портфель из расчета жмем "Удалить".
64 комментария для “Как загрузить робота в QUIK”
Добрый день, Иван!
Читаю ваш блог так как меня сейчас очень интересуют торговые роботы.
Не хотели бы Вы попробовать совместно поработать над новым роботом?
Ваше программирование, моя торговая стратегия.
Игорь.
Добрый день, Иван. Поссле нажатия "Добавить всё" - "Да" QUIK выдаёт ошибку. "Произошла ошибка при расчете портфеля "Gold_Rush", идентификатор организации "ALL_FIRMS", сообщение об ошибке "File: func_gr.txt, line: 132. Unknown identifier CLOSE_MA [ RESULT = CLOSE_MA ] "
У вас открыт часовой график фьючерса на золото? На нем есть индикатор СС? Скользящая средняя имеет соответствующее название "MA_GOLD"?
Если всё есть, то возможно, из-за несовершенства функции определения значения индикатора, что сегодня не было сделок, т.е. невозможно определить последний по времени CLOSE.
Иван, добрый вечер. При загрузке робота в Quick есть опция - Загрузить локально. Она у меня она не активна. Как ее можно активировать? И какие возможности дает? Есть еще проблемка. В моем роботе предусмотрена функция записи информации в файл с помощью *Writeln*. И вот в чем странность: когда загружаешь робота заново и он начинает расчет - все отлично, записи делаются. Однако, если оставить робота загруженным и на следующий день запустить его через Ctrl + 12 - все работат как надо, но никаких записей не происходит. Ты не сталкивался с такой проблемой? Спасибо, Виктор.
Косяк!...., хотел сказать *Загрузить на сервер*)))
Загрузить на сервер - опция брокеров, мне кажется.
Насчет записи в файл - не сталкивался. Я выключаю терминал не выгружая портфели. На след день всё просто само собой работает. Попробуйте спросить на официальном форуме либо выкладывайте код, посмотрим.
Я даже териминал не выключаю на ночь. Просто усыпляю комп, а утром он автоматом включается и терминал сам востанавливает связь. И портфель сам начинает расчет. Но вот только записей в файлы не делает. А стоит его выгрузить и загрузить заново - и записи появляются. Причем раньше все работало нормально, но вот только причину, по которой перестало - никак не вычислю. Попробую на официальном форуме спросить. Как починю - расскажу в чем дело. Да, кстати, есть еще вопросик. При отправке ордера на покупку или продажу формируется MAP массив. Однако, я так и не понял, как из него вытащить цену покупки/продажи. Можно ли это вообще сделать? Хотелось бы, чтобы при каждой покупке или продаже портфель делал запись в файл, содержащую цену покупки/продажи. Спасибо.
Возник вопрос. Код отслеживания соединения с сервером я написал, однако никак не могу найти, как в случае разрыва соединения, заставить терминал автоматом подключиться к серверу?
Михаил. В Меню "Связь - Доступные соединения" поставьте галочки "Восстанавливать связь" и "Использовать параметры последнего соединения". Очень часто помогает. Особенно, если оставлять компьютер на ночь - утром ничего не надо делать, соединяется автоматически.
Хотя, конечно, когда падает сервер никуда уже не деться.
Виктор. Во время покупки/продажи я определяю текущую цену и уже её записываю в лог-файл. Из МАР массива ничего не вытаскиваю.
Здравствуйте! Парни подскажите пожалуйста (или дайте ссылочку) где можно почитать про язык qpile, чтобы ознакомиться с его структурой. Спасибо
Прошу прощения, какжется нашел на Вашем блоге. Но вслуйстае же если есть какие-либо источники, скажите пожалуйста
[это ссылка] - руководство пользователя.
Доброго времени суток! У меня к вам следующий вопрос.
На сегодняшний день у меня возникла необходимость автоматизации торговли в квике по сигналам из метастока.
Меня интересует следующее:
1) автоматизация подкачки данных из квика в метасток10
2) обработка уже имеющейся у меня системы и эксперта в метастоке10
3) экспорт из метастока в квик заявки(сделки, стопы) на исполнение сделки
4) контроль исполнения заявки, перестановка неисполненной заявки
5) учет в заявке доли капитала и количества бумаг в лоте.
Хотелось бы узнать был ли у вас подобный опыт, можете ли вы разработать подобного робота для автоматической торговли, как срочно это может реализоваться на практике, сколько за это хотели бы получить? К сожалению, опыта профессионального программирования у меня нет.
Меня интересует решение этой проблемы в максимально короткие сроки, а также небольшие консультации по специфике работы робота, языка программирования и т.п..
Или может быть вы можете подсказать где мне найти такого спеца?
Благодарю за потраченные секунды вашего драгоценного времени. )
Здравствуйте. Сразу скажу, что я не большой любитель метастока.
1. Как подкачивать данные в метасток можно почитать в интернете http://www.finam.ru/analysis/exphelp/default.asp.
2. Не понял. Что за обработка? Тестирование на истории?
3. Тут нет проблем.
4. Можно контролировать, но не просто.
5. Нет проблем.
Подобный опыт программирования есть, но как показала практика от метастока лучше избавиться. Хотя, всё зависит от реализуемой стратегии и потребностей. Времени на разработку, как правило, уходит от двух недель. Плата индивидуальна.
Можете озвучить свою стратегию здесь. Можно будет оценить её работоспособность. Вдруг она заинтересует кого-то из читателей. Мне кажется делиться торговыми идеями не страшно. Ликвидности рынка хватит на всех.
Самая большая концентрация программистов находится на официальном форуме квика quik.ru.
"Иван
15 Июль, 2009, 18:03У вас открыт часовой график фьючерса на золото? На нем есть индикатор СС? Скользящая средняя имеет соответствующее название «MA_GOLD»?
Если всё есть, то возможно, из-за несовершенства функции определения значения индикатора, что сегодня не было сделок, т.е. невозможно определить последний по времени CLOSE."----
Выставил, поместил. Не работает. Хотя сообщение об ошибке пропало. Тут такой момент:
1. График СС - через правую на графике - "Добавить график (индикатор)" - "Мувинг эвередж"? Если "Да", то там переименовываем в MA_GOLD и всё? Если "Нет", то как его выводить?
2. Робот сейчас только лонги выставляет?
1. Не переименовываем, а во вкладке "Дополнительно" вписываем "Идентификатор".
2. Да, один лонг.
Иван подскажите пожалуйста, а где производиться расчет Скользящей средней "ma_gold" ?
а есть еще какие нить источники, книги может быть по qpile, то что есть на официальном сайте квика чертовски мало... я правдо ток ток начал знакомство, а так опыт программирования есть, но я не могу осознать строчку с ма_голд
СС вы строите на графике, т.е. добавляете индикатор. У этого индикатора устанавливаете соответствующий идентификатор. Строка с ма_голд обращается к функции, которая определяет значение индикатора СС в текущий момент времени. Функция обращается к уже рисующемуся индикатору и просто вытягивает его значение.
Иван, а как с Вами можно связаться? К примеру не могли бы Вы мне отправить письмо на мыло? antuan@rambler.ru
Иван подскажите пожалуйста, а что это за файл fuck_gr? в нем я нашел ту самую фукцию которая мне покоя не дает "manow"
Ой )))))))) перечитал "func_gr" *
Это файл с функциями. Их я просто вынес, так удобнее жить.
функция ma_now
FOR lineID FROM 0 TO LineCount-1
line = Get_Collection_Item (lines, lineID)
close_ma = 0 + Get_Value (line,"CLOSE")
END FOR
а зачем тут фор? если конечный результат всегда будет
lineid=lineCount-1
line = Get_Collection_Item (lines, lineID)
close_ma = 0 + Get_Value (line,"CLOSE")
а минус один нам нужен эт как бы значения предшествующие?
Всё верно. Просто данная функция иногда используется и для определения значений индикатора Болинджер Бэндс, где три линии.
Можно и упростить.
А минус один, т.к. счет начинается с нуля.
Спасибо, верной доргой значит иду))
а как будет выглядеть функция для определения значения RSI? как не мучаюсь, все ему не нравится. Можете подсобить подробным кодом?)
В общем индикатор называется RSI. Его идентификатор RSI1. Пытался адаптировать вашу функцию со средней, но как не перелопачивал код, он все никак не хочет работать.
LTime = FTime
slice = Get_Candle_Ex ("RSI1", Date, LTime)
LineCount = 0 + Get_Value (slice,"COUNT")
LTime = Get_Value (slice,"LTime")
lines = Get_Value (slice,"LINES")
FOR lineID FROM 0 TO LineCount-1
line = Get_Collection_Item (lines, lineID)
RSI = 0 + Get_Value (line,"CLOSE")
END FOR
result = RSI
=== Возможно сайт поменяет кавычки.
Здравстауйте!!! Когда вхожу в пошаговый режим отработки программы ,то у меня не активны нижние кнопки отладчика. Курсора ,покузывающего на какой строке нахожусь нету. Я просто могу видеть текст программы. Ошибок при открытии отладчика не выдается. "горячие" клавиши типа F10 не работают. Не могу понять в чем проблемма! Это ошибка или нет.Если ошибка, то как ее найти?
Что делать?
Спасибо!
добавил новую функцию в текст программы .Когда вхожу в пошаговый режим отработки программы ,то у меня не активны нижние кнопки отладчика. Курсора ,покузывающего на какой строке нахожусь нету. Я просто могу видеть текст программы. Ошибок при открытии отладчика не выдается. "горячие" клавиши типа F10 не работают. Не могу понять в чем проблемма! Это ошибка или нет.Если ошибка, то как ее найти?
Что делать?
Какую программу вы отлаживаете?
Я отлаживаю программу GOLD RUSH.
Я написал новую функсию для автоматизации стоп лоса
и добавил ее в текст. Юлок этой функции прописал в верхней части текста программы, а в нижней части текста там где цикл MA_GOLD вызываю эту функцию
В чати проверки выставлена заявка или нет
После выставления заявки , программа не видит прследнюю заявку толькл чnо выставленную, количество всех заявок (n) не увиличвается на +1 тоесть на последнюю заявку и когда я проверяю в цикле поиска установленнвых заявок с признаком "исполненная " .- переменная ispolneno остается равной =0.
непонятно в чем дело!
n = GET_NUMBER_OF ("ORDERS")
FOR m FROM 1 TO n
trade = GET_ITEM ("ORDERS", m)
NUMBER = GET_VALUE (trade, "NUMBER") + 0
IF order_key == NUMBER
STATUS = GET_VALUE (trade, "STATUS")
IF STATUS == "FILLED"
ispolneno = 0
vystavleno = 0
Сейчас я еще раз проверил.
1. Ставвлю заявку
2.Она сразу исполняется
2 Заявка появляется в таблице заявок как исполненная .я ее там вижу.
3.перехожу к блоку проверок исполнения
4 и когда перебираю все заяки за текущий день ищу исполнена она или нет, то n = GET_NUMBER_OF ("ORDERS") не увеличиласьна одну последнюю заявку и счетчик m вылетает из цикла поиска на дойдя до последней заявки.
Что делать?
Спб! всем
Если заявка исполняется, то портфель узнает о том, что она исполнилась только при следующей интерации.
Да, при следующей.
Следующая итерация -это переход на следующую строчку кода программы или нет ?
Например:
1. Шаг №1 отправляю заявку на покупку send_oder()
2. Шаг №2 n = GET_NUMBER_OF ("ORDERS")
3. Шаг №3 проверяю в каком статусе эта заявка находиться.
IF STATUS = GET_VALUE (trade, "STATUS")
....
Если n не увеличиться на 1то я в цикле поиска последеней заявки не найду свою последнюю исполненную заявку , я это значет я на следующем шаге я поставлю еще одну заявку на покупку. А мне этого не надо! Что делать? Где начинается итерация и где заканчивается? Спасибо!
Интерация - полный просчёт кода портфеля с верхней строчки до нижней.
Рекомендую сделать так:
1) Проверять исполнилась ли заявка.
2) Ставить заявку.
То есть проверять исполнение заявки до того, как её ставить.
Спасибо!
Завтра попробую.
Иван, подскажи где взять реально работающего робота для механической торговли акциями который можно загрузить в квик.
Иван, подскажи где взять реально работающего робота для механической торговли акциями который можно загрузить в квик.
=) Аха. Дадут тебе реально работающего робота нахаляву. Как же. В инете только пробники.
Александр, что вы с ним будете делать?
Скажите плз.может квик одновременно работать с несколькими роботами. Тоесть могу ли я одновременно запустить скажем трех роботов по одному или нескольким инструментам...?
спасибо!
Можно. Только они все должны назваться по разному.
Спасибо!
Спасибо за предыдущий комментарий1
У меня еще один вопрос.
Я пишу функцию стоп лоса
и выставляю условие:
trans_params = set_value (trans_params, "STOPPRICE_CONDITION","=<=")
но при выставлении стопа у меня условие всегда "<=".
Вопрос: Каким параметром (как он называется) и как правильно праписывается в программе условие активации стопа.
Спасибо!
Неправильно указал
Я пишу функцию стоп лоса
и выставляю условие:
trans_params = set_value (trans_params, "STOPPRICE_CONDITION","=>=")
но при выставлении стопа у меня условие всегда "=<=".
Вопрос: Каким параметром (как он называется) и как правильно праписывается в программе условие активации стопа.
Спасибо!
Загружаю Вашего робота. Выдает ошибку "Произошла ошибка при расчете портфеля "Gold_Rush", идентификатор организации "ALL_FIRMS", сообщение об ошибке "File: func_gr.txt, line: 132. Unknown identifier CLOSE_MA [ RESULT = CLOSE_MA ] " Есть график GDZ9, есть мувинг со стандартными параметрами 9 периодов, експоненц. Что не так? Заранее спасибо.
Загружаю Вашего робота. Выдает ошибку "Произошла ошибка при расчете портфеля "Gold_Rush", идентификатор организации "ALL_FIRMS", сообщение об ошибке "File: func_gr.txt, line: 132. Unknown identifier CLOSE_MA [ RESULT = CLOSE_MA ] " так же теперь портфель взял квик теперь как у саботеура.
Мувинг должен иметь ИДЕНТИФИКАТОР MA_GOLD. Идентификатор находится во вкладке Дополнительно.
Да. да я просто забыл об этом написать. Он имеет идентификатор МА_GOLD.
Теперь нашел ошибку.Ваш робот грузится но не работает.
Спосбо всем за помощь!
У меня получилось , но работает пока криво!
Чем дальше разбираюсь тем больше вопросов:
1. В квике есть функция получения инф по цене которая произошла например минуту назад. Если есть такой инструмент скажите плз как это описывается.(нужен пример функции)
2. Могу я с помощью квика анализировать параметры "свечки" . Например получить данные по свече произошедшие минуту назад (открытие, закрытие, макс, мин)
Спасибо.
переделал на ммвб втбр ваш робот не раб. .на фью чи нет доступа не открывал.и не хочу.читал кто то делал на сбер. подскажите плиз или отработайте на чужие аккаунты .т.е. на своем и вставим свои. что б работало.у меня на экселе на ма плохо работало.понятно что ма заденет большие таймфреймы.поэтому 5ти мин-ки на 15 ти.2 е скольз. средние.ПОЭТОМУ "ПРИКРУТИТЬ БЫ ТУДА СТОХАСТИК."
есть AVTOSTOP [это ссылка]. они продают и это плохо.
Иван, напишите мне, плиз, на мыло - есть несколько вопросов к Вам.
спасибо
Здравствуйте Иван! Сколько стоит у вас стоит заказать простейшего робота для квика , который лишь ориентируется относительно рыночной цены акций ( в частности акций банк ВТБ).?
[это ссылка]
попробуй здесь эту программу
Спасибо, но всё-таки в голове такая путаница! Если не трудно напишите плз - как выставить заявку на покупку акций ВТБ в резмере 2 лотов через Qpile.
И что изменится в заявке, если она исполнится . то есть как поставить условие IF, чтобы например после продажи с наценкой подать заявку на покупку по той же цене?
Здравствуйте.
Требуется написать робота для автоматического выставления заявок на покупку/продажу в торговом терминале QUIK на основании показаний различных индикаторов.
8-916-186-61-40 Андрей
Спасибо.
to Андрей-> индикаторы в квике находятся или в какой-либо внешней программе?
Здравствуйте, Иван
У меня есть идея (алгоритм) для написания робота в квике, но написать не смогу. Помощь окажете ? сот. 89226138627
Есть робот-скальпер для работы на ММВБ по акциям Сбербанка.Александр