Скачать торгового робота

На этой странице можно скачать торговых роботов. Это как мои разработки, так и разработки посетителей ресурса. Выложенные коды делятся на отдельные функции, например торговые, индикаторные, контроль за связью сервера так и на непосредственно торговых роботов. Конечно каждый код обязательно дорабатывается для соответствия задачам. Если у Вас есть интересные коды, которыми Вы готовы поделиться с посетителями сайта, свяжитесь со мной и я выложу их в этом разделе в общем доступе. Доступные для скачивания торговые роботы и функции находятся в формате .zip и после скачивания и распаковки могут использоваться, после соответствующей доработки, для автоматизации действий в QUIK.
![]()
Notepad++ - домашняя страница удобного редактора кода, где его можно бесплатно скачать;
Скачать торгового робота смогут только зарегистрированные пользователи.
В ближайшее время можно будет скачать торговые роботы новых версий, регистрируйтесь и проверяйте обновления на сайте.
Внимание! Все размещенные на сайте материалы носят исключительно ознакомительный характер! Администрация сайта не несет ответственности за последствия применения тех или иных материалов в инвестиционной и торговой работе!
Кажется файлы Movav и movav2 имеют одинаковое содержимое... Это не ошибка?
Да и Tral_bot.zip какой то урезаный вообщем не рабочий...
респект создателям сайта!!! ))
Евгений Reply:
мая 21, 2009 at 20:24
Трал_бот ожидает модификации, все никак руки не дойдут. Напишите что надо улучшить, сделаю.
разбираю tral_bot удобно очень, что есть комментарии. Можно добавить туда часть для позиций шорт и функцию откупа шорта по той же схеме. Спасибо.
Евгений Reply:
мая 28, 2009 at 18:06
Спасибо автору робота
Если Вы захотите, можете выложить модифицированного «трала» в рубрике «Сборник торговых роботов».
Спасибо, нашел что искал — функции по получению данных окна котировок. Строю скальпинг-систему, свяжитесь со мной, есть интересные идеи.
Евгений, а сколько стоит регистрация? в форме ввода пароля написано 60 рублей без какого-то VAT, это сколько?
Евгений Reply:
июля 6, 2009 at 23:14
Регистрация для каждого оператора мобильной связи в РФ стоит примерно от 80 до 90 рублей. Т.е. именно эта сумма спишется с Вашего счета. После регистрации доступны ВСЕ коды всех торговых роботов на сайте.
Евгений, да что вы людей мучаете обучением ))ну не программситы мы, что тут поделаешь )) да и времени особо нет, да выложите Вы РАБОЧИЙ/РАБОТАЮЩИЙ простенький Робот с отправкой транзакций по по двум скользящим средним и поможем мы вашему проекту 2-3 тыс. рублей ))
Евгений Reply:
июля 30, 2009 at 12:55
Отправил письмо Вам в почту.
Евгений Reply:
июля 31, 2009 at 10:26
Так!
Следуя просьбам на след неделе постараюсь написать такого робота. Стоимость его 3000 руб будет. Оплата на яндексденьги. Кому интересно — пишите запрос мне в личку www.hirobot.ru/svyazatsya-so-mnoj/
устанавил робота из mooving.zip портфель успешно устанавливается, затем квик ругается — произошла ошибка при расчете портфеля идентификатор организации "ALL FIRMS сообщение об ошибке File moovin.qpl, line 121 Unknown identifier MONEYCURRENTBALANCE
может подскажете как исправить, не спец я в этом деле
Евгений Reply:
сентября 22, 2009 at 17:29
поправил, смотрите тему.
amir279 Reply:
сентября 23, 2009 at 9:18
спасибо.
как ни ковырялся, но функцию OHLC для таймфреймов 2 и 4 часа настроить не смог. Евгений,на досуге может посмотришь?
Евгений Reply:
октября 29, 2009 at 20:05
Попробую. Но не обещаю в ближайшее время — работы очень много. Основной, на «факультатив» времени не хватает толком.
Здрасвуйте !
А нельзя написать простейший трейлинг-стоп с тейк-профитом, чтобы при движении цену в нужную сторону стоп тоже поднимался, а при достижении стопа или тейка — позиция закрывалась ? Спасибо.
Евгений Reply:
октября 29, 2009 at 20:05
В разделе «Купить» есть робот «Трейлинг-стоп». Это то что вам нужно.
Подскажите,как в difender настроить стоплосс и тейкпрофит. плиз.
Евгений Reply:
ноября 9, 2009 at 17:11
В смысле «настроить»? Стоплосс и тейкпрофит указываются в начале кода в пунктах:
STOPLOSS=100
TPROFIT=200
Привлек особое внимане NoPasaran. Есть идеи сделать робота который может работать на истории и показывать на графике, где он совершил покупку, где продажу, и какую получил прибыль/убыток с учетом комиссии. Чтоб отрабатывать стратегии.
Как сделать чтобы NOTEPAD++ подсвечивал функции QPILE?
Евгений Reply:
декабря 10, 2009 at 20:01
Присвоить редактируемому файлу расширение .qpl
Не пойму как настроить робота Мувинг. Загрузил, а он не работает. И еще там в таблице в столбце moving ноли стоят. Я так понимаю там должно быть значение. Помогите пожалуйста.
Евгений Reply:
января 27, 2010 at 19:37
Скорее всего неправильно приписан код инструмента. если вы запускаете его на ФОРТС то брокеры используют два стандарта кода: RIH0 и RTS-3.10, в случае с актуальным фьючерсом на индекс РТС. Попробуйте оба варианта.
Здравствуйте, Евгений! Загрузил Вашего робота из Defender.zip — дату, время показывает, когда совершаешь сделку показывает цену сделки, текущую чистую позицию! А вот цену стопа и тэйкпрофита не показывает и соответственно не выставляет заявки! Подскажите, пожалуйста, в чём дело, что нужно исправить?
Заранее спасибо!
Евгений Reply:
января 29, 2010 at 18:51
Сегодня, 29 января 2010г. обновил версию торгового робота «Дефендер», смотрите публикацию — там новый код, также по ссылке доступно скачивание нового кода. код проверил на своем реальном счете в «БКС» — работает. Настройки внутри кода.
Здравствуйте, Евгений! Загрузил Вашего робота из Mooving.zip — дату, время показывает, когда сам совершаешь сделку показывает текущую чистую позицию, вариационная маржа! А вот moving, isrealtime, price не показывает и соответственно сам робот ни каких заявок не выставляет! Подскажите, пожалуйста, в чём дело, что нужно исправить?
Заранее спасибо!
Евгений Reply:
января 29, 2010 at 19:45
Читайте тему "Торговый робот «Мувинг»
Евгений! Большое спасибо Вам, за Ваших роботов!
Я если, честно сомневался, что такое возможно!
Всем кто ещё не зарегистрировался, советую! Евгений настоящий профессионал, решит любую проблему!
Евгений, ещё раз спасибо, как только получится получать автоматически (без моего участия) стабильный + (только сегодня заработали роботы ещё не настроил), обязательно отблагодарю!
Здравствуйте, Евгений!
А можно сделать так, чтобы в роботе мувинг сделка совершалась (при заданных условиях) только при открытии нового бара, а не в процессе его формирования! Или когда сделка совершается, чтобы в течении определенного времени (например 5 — 10 минут) сделки не совершались, а затем опять при достижении заданных условий, снова совершалась сделка!?!
Ну в смысле, если мы например купили, а цена пошла в низ, чтобы через 10 минут снова докупили и т.д., т.е. усреднение позиции!
Я понятно выразил свою мысль???
))
Евгений Reply:
марта 10, 2010 at 18:08
Можно. Это почти робот ЕМА — www.hirobot.ru/200908torg...ishhet-xozyaina/
Евгений, для первого программирования на qpile взял один из ваших алгоритмов (mooving_ver1.1) и раздел 8 из описания qpile — начал сравнивать и разбираться. Результатом работы над алгоритмом собирался добиться заполнения созданной мною таблицы значениями скользящей средней (эксп., период 16, по открытию). Но Квик выдает ошибку в 13 строчке — не могу понять почему?
Код:
1.PORTFOLIO_EX MOOVING VER 1.1;
2.DESCRIPTION MOOVING VER 1.1;
3.CLIENTS_LIST ALL_CLIENTS;
4.FIRMS_LIST ALL_FIRMS;
5.USE_CASE_SENSITIVE_CONSTANTS;
6.
7.PROGRAM
8.
9.INSTRUMENT="SRM0"
10.ACCOUNT="SPBFUT00rw4"
11.LOTS=1
12.
13.MOVING=GET_VALUE (GET_COLLECTION_ITEM (GET_VALUE (GET_CANDLE_EX («SMA», DATE, TIME),"LINES"),0),"OPEN") +0
IF MOVING=0
RETURN
END IF
OUTPUT=CREATE_MAP ()
OUTPUT=SET_VALUE (OUTPUT,"DATE",DATE)
OUTPUT=SET_VALUE (OUTPUT,"TIME",TIME)
OUTPUT=SET_VALUE (OUTPUT,"MOVING",MOVING)
DELETE_ALL_ITEMS ()
ADD_ITEM (1,OUTPUT)
END_PROGRAM
PARAMETER DATE;
PARAMETER_TITLE ДАТА;
PARAMETER_DESCRIPTION ДАТА;
PARAMETER_TYPE STRING (30);
END
PARAMETER TIME;
PARAMETER_TITLE ВРЕМЯ;
PARAMETER_DESCRIPTION ВРЕМЯ;
PARAMETER_TYPE STRING (30);
END
PARAMETER MOVING;
PARAMETER_TITLE MOVING;
PARAMETER_DESCRIPTION MOVING;
PARAMETER_TYPE NUMERIC (10,0);
END
PARAMETER PRICE;
PARAMETER_TITLE PRICE;
PARAMETER_DESCRIPTION PRICE;
PARAMETER_TYPE STRING (30);
END
END_PORTFOLIO_EX
Евгений Reply:
марта 23, 2010 at 21:55
А какую ошибку пишет?
Евгений Reply:
марта 23, 2010 at 21:56
Функция правильная
Идентификатор на самом индикаторе установлен как SMA
Все заработало, причина в том что не указал часть кода:
SERVERTIME=GET_INFO_PARAM («SERVERTIME»)
SERVERDATE=GET_INFO_PARAM («TRADEDATE»)
TIMESERV=SUBSTR (SERVERTIME,0,2)&SUBSTR (SERVERTIME,3,2)&SUBSTR (SERVERTIME,6,7)
TIME=TIMESERV+0
DATE=SUBSTR (SERVERDATE,6,4)&SUBSTR (SERVERDATE,3,2)&SUBSTR (SERVERDATE,0,2)
TRID=TIME&DATE
Скачал файл mooving, заменил INSTRUMENT="« ACCOUNT=»" «CLASSCODE», ""), вывел все таблицы. В портфеле отображены дата, время, moving. Число стопов и прайс по нолям. Поле запуска портфеля вылетает окно — Цена заявки должна быть положительна. Что не так?
Неправильно указан код инструмента — робота получает ноль вместо его цены. Найдите соответствующую публикацию на сайте, посмотрите там.
Евгений,
Для того чтобы дополнить мою таблицу значением лучшей цены покупки/продажи в момент последней сделки шапку кода описанного выше оставил прежней и добавил C_BID/C_OFFER – итоговый код ниже:
Квик строит таблицу но в столбцах C_BID/C_OFFER нет вообще ничего (даже нулей), вы сталкивались с вопросов получения значения лучшей цены покупки/продажи в момент последней сделки? В чем может быть причина ошибки (кстати Квик не пищит что в в коде есть ошибка).
PRICE=GET_VALUE (GET_PARAM_EX («SPBFUT»,INSTRUMENT,"LAST"),"PARAM_VALUE")+0
C_BID=GET_VALUE (GET_PARAM_EX («SPBFUT»,INSTRUMENT,"BID"),"PARAM_VALUE")+0
C_OFFER=GET_VALUE (GET_PARAM_EX («SPBFUT»,INSTRUMENT,"OFFER"),"PARAM_VALUE")+0
MOVING=GET_VALUE (GET_COLLECTION_ITEM (GET_VALUE (GET_CANDLE_EX («SMA», DATE, TIME),"LINES"),0),"CLOSE") +0
IF MOVING=0
RETURN
END IF
OUTPUT=CREATE_MAP ()
OUTPUT=SET_VALUE (OUTPUT,"DATE",DATE)
OUTPUT=SET_VALUE (OUTPUT,"TIME",TIME)
OUTPUT=SET_VALUE (OUTPUT,"MOVING",MOVING)
OUTPUT=SET_VALUE (OUTPUT,"PRICE",PRICE)
OUTPUT=SET_VALUE (OUTPUT,"C_BID",C_BID)
OUTPUT=SET_VALUE (OUTPUT,"C_OFFER",C_OFFER)
ADD_ITEM (1,OUTPUT)
END_PROGRAM
PARAMETER DATE;
PARAMETER_TITLE ДАТА;
PARAMETER_DESCRIPTION ДАТА;
PARAMETER_TYPE STRING (30);
END
PARAMETER TIME;
PARAMETER_TITLE ВРЕМЯ;
PARAMETER_DESCRIPTION ВРЕМЯ;
PARAMETER_TYPE STRING (30);
END
PARAMETER MOVING;
PARAMETER_TITLE MOVING;
PARAMETER_DESCRIPTION MOVING;
PARAMETER_TYPE NUMERIC (10,0);
END
PARAMETER PRICE;
PARAMETER_TITLE PRICE;
PARAMETER_DESCRIPTION PRICE;
PARAMETER_TYPE STRING (30);
END
PARAMETER BID;
PARAMETER_TITLE C_BID;
PARAMETER_DESCRIPTION Лучшая цена спроса;
PARAMETER_TYPE Numeric (10,0);
END
PARAMETER OFFER;
PARAMETER_TITLE C_OFFER;
PARAMETER_DESCRIPTION Лучшая цена предложения;
PARAMETER_TYPE Numeric (10,0);
END
END_PORTFOLIO_EX
PARAMETER C_BID; !!!!!!!!!!!!!!!!!
PARAMETER_TITLE C_BID;
PARAMETER_DESCRIPTION Лучшая цена спроса;
PARAMETER_TYPE Numeric (10,0);
END
PARAMETER C_OFFER; !!!!!!!!!!!!!!!!!
PARAMETER_TITLE C_OFFER;
PARAMETER_DESCRIPTION Лучшая цена предложения;
PARAMETER_TYPE Numeric (10,0);
END
Евгений!
Спасибо.
Пока начинаю... разобравшись буду рад если и мои комментарии помогут Вам или другим пользователям!
Здравствуй Евгений!
Разъясни пожалуста какие функции и циклы Купайла нужно использовать чтобы на базе торгового робота МУВИНГ, оставить только вход по Мувингу. Т.е пересек бар скользящую — вошли, при последующих пересечениях (если ТР0)сигнала на сделку нет.
В сети сложно найти простых и понятных уроков по Купайл.
Евгений Reply:
марта 26, 2010 at 18:42
Удалите из робота «Мувинг» эти строки (два блока):
IF TP<0 AND PRICE>MOVING
IF ORDERCOUNT=0 AND FLAGBYE=1
LOTS=ABS (TP)*2 ' УДВОЕНИЕ ЛОТОВ ДЛЯ РЕВЕРСА
OP="B"
FLAGBYE=0
FLAGSELL=1
END IF
END IF
IF TP>0 AND PRICE
IF ORDERCOUNT=0 AND FLAGSELL=1
LOTS=ABS (TP)*2 ' УДВОЕНИЕ ЛОТОВ ДЛЯ РЕВЕРСА
OP="S"
FLAGSELL=0
FLAGBYE=1
END IF
END IF
В них как раз описывается процедура реверса. т.е. если тек поза больше или меньше нуля.
Если ТР не равно 0 (не прописался знак неравенства)
Все понятно, но вход должен быть именно при пересечении. А Мувинг открывает позицию сразу. Должно быть нужно создавать коллекцию?
Евгений Reply:
марта 26, 2010 at 19:58
Не понял ваш вопрос: «Мувинг» открывает позицию если цена выше или ниже ОДНОЙ кривой. При использовании одной цена всегда либо выше либо ниже, поэтому робот сразу после запуска открывает позицию.
«Мувинг» — лишь пример торгующего робота на основе данных индикаторов, если вам нужно его модифицировать — берите за основу, подключайте вторую кривую аналогичным способом и используя уже готовые блоки выстраивайте логику. Ничего сложного.
Позиция должна открываться когда бар пересекает скользящую. Если сверху вниз — то шорт, если снизу вверх — то лонг.
Если использовать две скользящие, у меня тоже позиция открывается в момент включения робота.
Какой блок нужно добавить? Какие функции использовать?
Т.е. как я понял вы уже добавили вторую кривую?
Вам нужно прописать блок который фиксирует соотношение значения двух скользящих (или одной скользящей и цены) на момент запуска робота. И затем блок который каждую итерацию отслеживает эти же параметры, как только соотношение поменялось (например 1 параметр был больше 2-го на момент запуска, а сейчас стола наоборот) — отправлять транзакцию или что-то там делать. Для этого нужно использовать глобальные переменные, и сделать нечто вроде т.н. «флага» который меняет значение с нуля на единицу если соотношение поменялось. А следом оператор условия, который отслеживает этот флаг.
Да вторую скользящую прописал — это легко, сделал по аналогии.
Со всем остальным впринципе можно справиться, а вот как зафиксировать соотношение цены и скользящей на момент запуска робота — с этим у меня сложности.
Евгений Reply:
марта 27, 2010 at 23:11
Я описывал выше, задайте глобальную переменную, при первом запуске запомните в нее какая линия больше. И при последующих запусках проверяйте опять соотношение кривых и эту переменную. если изменилось — значит было пересечение.
Евгений, чем отличаются переменные, заданные таким-
NEW_GLOBAL («FLAGEND»,1)
и таким образом-
HIGH=0
???
Евгений Reply:
марта 28, 2010 at 19:45
Первый тип — т.н. «глобальный», эти переменные сохраняют последнее значение при множестве итераций. В вашем примере первоначальное значение этой переменной — единица, если вы потом приравняете эту переменную к другому значению — она его сохранит.
Второй — обычный, и она объявляется каждую итерацию программы. Подробнее читайте в руководстве по языку.
Евгений!
Не могу понять, как прописать сумму текущей строчки и предыдущей.
К примеру в моей таблице из таблицы текущих сделок берется цена и каждая следующая дополняет массив данных, т.е. новое значение не стирает старое, а старое становится ниже на строчку и новое добавляется. Вот как сделать сумму новой (текущей) строчки и предыдущей и соответственно эту сумму записать в строчку от куда взят новый (текущий) параметр?
b=чтото там
a=a+b
IF TP=0 AND ORDERCOUNT=0 AND PRICEMOVING
FLAG=1
END IF
END IF
Евгений, я сделал вот так.
Задал переменную NEW_GLOBAL («FLAG»,1)
Как раз на первой строчке КВИК ругается...
Евгений Reply:
марта 29, 2010 at 20:57
Так, по мувингу все обсуждения в публикации мувинга. Копируйте вопрос туда, я там отвечу.
Скажите пожалуйста, как устранить ошибку в tral_bot.
При запуске сообщает. произошла ошибка при расчёте портфеля TralBot
Ошибка TralBot.qpl, line:13 Standalone identifier in an expression
USE_CASE_SENSITIVE_CONSTANTS[
USE_CASE_SENSITIVE_CONSTANTS]"
Евгений Reply:
мая 5, 2010 at 19:47
Обновите версию QUIK.
perviy Reply:
мая 6, 2010 at 11:29
Пользуюсь последней версией
Евгений Reply:
мая 6, 2010 at 21:41
Проверьте еще разок, суть в том что у вас кивк ругается на относительно недавно введенные функции. Старый квик их просто не понимает.
Valery Reply:
мая 14, 2010 at 16:53
USE_CASE_SENSITIVE_CONSTANTS; (В коде отсутствует ; — точка с запятой в конце строки)
Евгений, подскажите пожалуйста, принцип работы — Move_orders— торговая функция, передвигающая заявки.
Евгений Reply:
июня 29, 2010 at 20:46
Привет, я расскажу не более чем написано в руководстве, там полная информация. От себя же скажу. что я такой функцией не пользуюсь, предпочитаю удалять старые и ставить новые заявки.
Для подобных вопросов есть соответствующий раздел www.hirobot.ru/voprosyotvety/