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

На этой странице можно скачать торговых роботов. Это как мои разработки, так и разработки посетителей ресурса. Выложенные коды делятся на отдельные функции, например торговые, индикаторные, контроль за связью сервера так и на непосредственно торговых роботов. Конечно каждый код обязательно дорабатывается для соответствия задачам. Если у Вас есть интересные коды, которыми Вы готовы поделиться с посетителями сайта, свяжитесь со мной и я выложу их в этом разделе в общем доступе. Доступные для скачивания торговые роботы и функции находятся в формате .zip и после скачивания и распаковки могут использоваться, после соответствующей доработки, для автоматизации действий в QUIK.

www

Notepad++ - домашняя страница удобного редактора кода, где его можно бесплатно скачать;

file Autostarter.zip — бесплатная утилита контролирующая состояние QUIK, запускающая и вводящая логин и пароль;

Скачать торгового робота смогут только зарегистрированные пользователи.

В ближайшее время можно будет скачать торговые роботы новых версий, регистрируйтесь и проверяйте обновления на сайте.

Внимание! Все размещенные на сайте материалы носят исключительно ознакомительный характер! Администрация сайта не несет ответственности за последствия применения тех или иных материалов в инвестиционной и торговой работе!

  1. Дмитрий
    21 апреля 2009 в 20:37 | #1

    Кажется файлы Movav и movav2 имеют одинаковое содержимое... Это не ошибка?

  2. 123
    21 мая 2009 в 16:02 | #2

    Да и Tral_bot.zip какой то урезаный вообщем не рабочий...

    респект создателям сайта!!! ))

    Евгений Reply:

    Трал_бот ожидает модификации, все никак руки не дойдут. Напишите что надо улучшить, сделаю.

  3. Катя
    28 мая 2009 в 18:02 | #3

    разбираю tral_bot удобно очень, что есть комментарии. Можно добавить туда часть для позиций шорт и функцию откупа шорта по той же схеме. Спасибо.

    Евгений Reply:

    Спасибо автору робота 🙂 Если Вы захотите, можете выложить модифицированного «трала» в рубрике «Сборник торговых роботов».

  4. ВК-Инвест
    6 июля 2009 в 23:05 | #4

    Спасибо, нашел что искал — функции по получению данных окна котировок. Строю скальпинг-систему, свяжитесь со мной, есть интересные идеи.

  5. Алла
    6 июля 2009 в 23:11 | #5

    Евгений, а сколько стоит регистрация? в форме ввода пароля написано 60 рублей без какого-то VAT, это сколько?

    Евгений Reply:

    Регистрация для каждого оператора мобильной связи в РФ стоит примерно от 80 до 90 рублей. Т.е. именно эта сумма спишется с Вашего счета. После регистрации доступны ВСЕ коды всех торговых роботов на сайте.

  6. rusl
    30 июля 2009 в 12:34 | #6

    Евгений, да что вы людей мучаете обучением ))ну не программситы мы, что тут поделаешь )) да и времени особо нет, да выложите Вы РАБОЧИЙ/РАБОТАЮЩИЙ простенький Робот с отправкой транзакций по по двум скользящим средним и поможем мы вашему проекту 2-3 тыс. рублей ))

    Евгений Reply:

    Отправил письмо Вам в почту.

    Евгений Reply:

    Так!

    Следуя просьбам на след неделе постараюсь написать такого робота. Стоимость его 3000 руб будет. Оплата на яндексденьги. Кому интересно — пишите запрос мне в личку www.hirobot.ru/svyazatsya-so-mnoj/

    rasswet Reply:

    как успехи? получилось у вас то, что хотели?

  7. amir279
    18 сентября 2009 в 14:01 | #7

    устанавил робота из mooving.zip портфель успешно устанавливается, затем квик ругается — произошла ошибка при расчете портфеля идентификатор организации "ALL FIRMS сообщение об ошибке File moovin.qpl, line 121 Unknown identifier MONEYCURRENTBALANCE

  8. amir279
    18 сентября 2009 в 14:03 | #8

    может подскажете как исправить, не спец я в этом деле

    Евгений Reply:

    поправил, смотрите тему.

    amir279 Reply:

    спасибо.

  9. rusl
    29 октября 2009 в 16:15 | #9

    как ни ковырялся, но функцию OHLC для таймфреймов 2 и 4 часа настроить не смог. Евгений,на досуге может посмотришь?

    Евгений Reply:

    Попробую. Но не обещаю в ближайшее время — работы очень много. Основной, на «факультатив» времени не хватает толком.

  10. aleksandr
    29 октября 2009 в 18:41 | #10

    Здрасвуйте !

    А нельзя написать простейший трейлинг-стоп с тейк-профитом, чтобы при движении цену в нужную сторону стоп тоже поднимался, а при достижении стопа или тейка — позиция закрывалась ? Спасибо.

    Евгений Reply:

    В разделе «Купить» есть робот «Трейлинг-стоп». Это то что вам нужно.

  11. 9 ноября 2009 в 17:05 | #11

    Подскажите,как в difender настроить стоплосс и тейкпрофит. плиз.

    Евгений Reply:

    В смысле «настроить»? Стоплосс и тейкпрофит указываются в начале кода в пунктах:

    STOPLOSS=100

    TPROFIT=200

  12. Genius_80
    25 ноября 2009 в 00:13 | #12

    Привлек особое внимане NoPasaran. Есть идеи сделать робота который может работать на истории и показывать на графике, где он совершил покупку, где продажу, и какую получил прибыль/убыток с учетом комиссии. Чтоб отрабатывать стратегии.

  13. empenoso
    9 декабря 2009 в 17:15 | #13

    Как сделать чтобы NOTEPAD++ подсвечивал функции QPILE?

    Евгений Reply:

    Присвоить редактируемому файлу расширение .qpl

  14. Saboteur
    27 января 2010 в 19:01 | #14

    Не пойму как настроить робота Мувинг. Загрузил, а он не работает. И еще там в таблице в столбце moving ноли стоят. Я так понимаю там должно быть значение. Помогите пожалуйста.

    Евгений Reply:

    Скорее всего неправильно приписан код инструмента. если вы запускаете его на ФОРТС то брокеры используют два стандарта кода: RIH0 и RTS-3.10, в случае с актуальным фьючерсом на индекс РТС. Попробуйте оба варианта.

  15. 29 января 2010 в 12:30 | #15

    Здравствуйте, Евгений! Загрузил Вашего робота из Defender.zip — дату, время показывает, когда совершаешь сделку показывает цену сделки, текущую чистую позицию! А вот цену стопа и тэйкпрофита не показывает и соответственно не выставляет заявки! Подскажите, пожалуйста, в чём дело, что нужно исправить?

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

    Евгений Reply:

    Сегодня, 29 января 2010г. обновил версию торгового робота «Дефендер», смотрите публикацию — там новый код, также по ссылке доступно скачивание нового кода. код проверил на своем реальном счете в «БКС» — работает. Настройки внутри кода.

  16. 29 января 2010 в 12:36 | #16

    Здравствуйте, Евгений! Загрузил Вашего робота из Mooving.zip — дату, время показывает, когда сам совершаешь сделку показывает текущую чистую позицию, вариационная маржа! А вот moving, isrealtime, price не показывает и соответственно сам робот ни каких заявок не выставляет! Подскажите, пожалуйста, в чём дело, что нужно исправить?

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

    Евгений Reply:

    Читайте тему "Торговый робот «Мувинг»

  17. ivo-skorpion
    1 февраля 2010 в 22:57 | #17

    Евгений! Большое спасибо Вам, за Ваших роботов!

    Я если, честно сомневался, что такое возможно!

    Всем кто ещё не зарегистрировался, советую! Евгений настоящий профессионал, решит любую проблему!

    Евгений, ещё раз спасибо, как только получится получать автоматически (без моего участия) стабильный + (только сегодня заработали роботы ещё не настроил), обязательно отблагодарю!

  18. 10 марта 2010 в 18:00 | #18

    Здравствуйте, Евгений!

    А можно сделать так, чтобы в роботе мувинг сделка совершалась (при заданных условиях) только при открытии нового бара, а не в процессе его формирования! Или когда сделка совершается, чтобы в течении определенного времени (например 5 — 10 минут) сделки не совершались, а затем опять при достижении заданных условий, снова совершалась сделка!?!

    Ну в смысле, если мы например купили, а цена пошла в низ, чтобы через 10 минут снова докупили и т.д., т.е. усреднение позиции!

    Я понятно выразил свою мысль??? :)))

    Евгений Reply:

    Можно. Это почти робот ЕМА — www.hirobot.ru/200908torg...ishhet-xozyaina/

  19. 1qwerty
    23 марта 2010 в 21:37 | #19

    Евгений, для первого программирования на 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:

    А какую ошибку пишет?

    Евгений Reply:

    Функция правильная

  20. 1qwerty
    23 марта 2010 в 21:39 | #20

    Идентификатор на самом индикаторе установлен как SMA

  21. 1qwerty
    24 марта 2010 в 12:55 | #21

    Все заработало, причина в том что не указал часть кода:

    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

  22. Kobalt
    24 марта 2010 в 13:21 | #22

    Скачал файл mooving, заменил INSTRUMENT="« ACCOUNT=»" «CLASSCODE», ""), вывел все таблицы. В портфеле отображены дата, время, moving. Число стопов и прайс по нолям. Поле запуска портфеля вылетает окно — Цена заявки должна быть положительна. Что не так?

  23. Евгений
    24 марта 2010 в 13:38 | #23

    Неправильно указан код инструмента — робота получает ноль вместо его цены. Найдите соответствующую публикацию на сайте, посмотрите там.

  24. 1qwerty
    24 марта 2010 в 15:01 | #24

    Евгений,

    Для того чтобы дополнить мою таблицу значением лучшей цены покупки/продажи в момент последней сделки шапку кода описанного выше оставил прежней и добавил 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

  25. Евгений
    24 марта 2010 в 21:01 | #25

    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

  26. 1qwerty
    25 марта 2010 в 11:42 | #26

    Евгений!

    Спасибо.

    Пока начинаю... разобравшись буду рад если и мои комментарии помогут Вам или другим пользователям!

  27. ksm77
    26 марта 2010 в 08:33 | #27

    Здравствуй Евгений!

    Разъясни пожалуста какие функции и циклы Купайла нужно использовать чтобы на базе торгового робота МУВИНГ, оставить только вход по Мувингу. Т.е пересек бар скользящую — вошли, при последующих пересечениях (если ТР0)сигнала на сделку нет.

    В сети сложно найти простых и понятных уроков по Купайл.

    Евгений Reply:

    Удалите из робота «Мувинг» эти строки (два блока):

    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

    В них как раз описывается процедура реверса. т.е. если тек поза больше или меньше нуля.

  28. ksm77
    26 марта 2010 в 08:35 | #28

    Если ТР не равно 0 (не прописался знак неравенства)

  29. ksm77
    26 марта 2010 в 19:53 | #29

    Все понятно, но вход должен быть именно при пересечении. А Мувинг открывает позицию сразу. Должно быть нужно создавать коллекцию?

    Евгений Reply:

    Не понял ваш вопрос: «Мувинг» открывает позицию если цена выше или ниже ОДНОЙ кривой. При использовании одной цена всегда либо выше либо ниже, поэтому робот сразу после запуска открывает позицию.

    «Мувинг» — лишь пример торгующего робота на основе данных индикаторов, если вам нужно его модифицировать — берите за основу, подключайте вторую кривую аналогичным способом и используя уже готовые блоки выстраивайте логику. Ничего сложного.

  30. ksm77
    26 марта 2010 в 20:33 | #30

    Позиция должна открываться когда бар пересекает скользящую. Если сверху вниз — то шорт, если снизу вверх — то лонг.

    Если использовать две скользящие, у меня тоже позиция открывается в момент включения робота.

    Какой блок нужно добавить? Какие функции использовать?

  31. Евгений
    26 марта 2010 в 20:39 | #31

    Т.е. как я понял вы уже добавили вторую кривую?

    Вам нужно прописать блок который фиксирует соотношение значения двух скользящих (или одной скользящей и цены) на момент запуска робота. И затем блок который каждую итерацию отслеживает эти же параметры, как только соотношение поменялось (например 1 параметр был больше 2-го на момент запуска, а сейчас стола наоборот) — отправлять транзакцию или что-то там делать. Для этого нужно использовать глобальные переменные, и сделать нечто вроде т.н. «флага» который меняет значение с нуля на единицу если соотношение поменялось. А следом оператор условия, который отслеживает этот флаг.

  32. ksm77
    26 марта 2010 в 21:08 | #32

    Да вторую скользящую прописал — это легко, сделал по аналогии.

    Со всем остальным впринципе можно справиться, а вот как зафиксировать соотношение цены и скользящей на момент запуска робота — с этим у меня сложности.

    Евгений Reply:

    Я описывал выше, задайте глобальную переменную, при первом запуске запомните в нее какая линия больше. И при последующих запусках проверяйте опять соотношение кривых и эту переменную. если изменилось — значит было пересечение.

  33. ksm77
    28 марта 2010 в 19:40 | #33

    Евгений, чем отличаются переменные, заданные таким-

    NEW_GLOBAL («FLAGEND»,1)

    и таким образом-

    HIGH=0

    ???

    Евгений Reply:

    Первый тип — т.н. «глобальный», эти переменные сохраняют последнее значение при множестве итераций. В вашем примере первоначальное значение этой переменной — единица, если вы потом приравняете эту переменную к другому значению — она его сохранит.

    Второй — обычный, и она объявляется каждую итерацию программы. Подробнее читайте в руководстве по языку.

  34. 1qwerty
    29 марта 2010 в 17:07 | #34

    Евгений!

    Не могу понять, как прописать сумму текущей строчки и предыдущей.

    К примеру в моей таблице из таблицы текущих сделок берется цена и каждая следующая дополняет массив данных, т.е. новое значение не стирает старое, а старое становится ниже на строчку и новое добавляется. Вот как сделать сумму новой (текущей) строчки и предыдущей и соответственно эту сумму записать в строчку от куда взят новый (текущий) параметр?

  35. Евгений
    29 марта 2010 в 19:26 | #35

    b=чтото там

    a=a+b

  36. ksm77
    29 марта 2010 в 20:54 | #36

    Евгений :Т.е. как я понял вы уже добавили вторую кривую?

    Вам нужно прописать блок который фиксирует соотношение значения двух скользящих (или одной скользящей и цены) на момент запуска робота. И затем блок который каждую итерацию отслеживает эти же параметры, как только соотношение поменялось (например 1 параметр был больше 2-го на момент запуска, а сейчас стола наоборот) — отправлять транзакцию или что-то там делать. Для этого нужно использовать глобальные переменные, и сделать нечто вроде т.н. «флага» который меняет значение с нуля на единицу если соотношение поменялось. А следом оператор условия, который отслеживает этот флаг.

    Ответить на этот комментарий

    IF TP=0 AND ORDERCOUNT=0 AND PRICEMOVING

    FLAG=1

    END IF

    END IF

    Евгений, я сделал вот так.

    Задал переменную NEW_GLOBAL («FLAG»,1)

    Как раз на первой строчке КВИК ругается...

    Евгений Reply:

    Так, по мувингу все обсуждения в публикации мувинга. Копируйте вопрос туда, я там отвечу.

  37. perviy
    5 мая 2010 в 14:47 | #37

    Скажите пожалуйста, как устранить ошибку в tral_bot.

    При запуске сообщает. произошла ошибка при расчёте портфеля TralBot

    Ошибка TralBot.qpl, line:13 Standalone identifier in an expression

    USE_CASE_SENSITIVE_CONSTANTS[

    USE_CASE_SENSITIVE_CONSTANTS]"

    Евгений Reply:

    Обновите версию QUIK.

    perviy Reply:

    Пользуюсь последней версией

    Евгений Reply:

    Проверьте еще разок, суть в том что у вас кивк ругается на относительно недавно введенные функции. Старый квик их просто не понимает.

    Valery Reply:

    USE_CASE_SENSITIVE_CONSTANTS; (В коде отсутствует ; — точка с запятой в конце строки)

  38. ivo-skorpion
    29 июня 2010 в 20:43 | #38

    Евгений, подскажите пожалуйста, принцип работы — Move_orders— торговая функция, передвигающая заявки.

    Евгений Reply:

    Привет, я расскажу не более чем написано в руководстве, там полная информация. От себя же скажу. что я такой функцией не пользуюсь, предпочитаю удалять старые и ставить новые заявки.

    Для подобных вопросов есть соответствующий раздел www.hirobot.ru/voprosyotvety/

  39. Mechtatel
    22 ноября 2010 в 16:54 | #39

    Привет, Евгений. Я новичок на форуме, на рынке тоже. Тема ваша очень интересная, хоть и малопонятная. Неудобство в том, что большинство роботов у вас созданы для фьючерсов, а я и в акциях не всё понимаю. Насколько сложно переписать Defender для акций? Обращаюсь к тем участникам форума, кто уже хорошо разбирается в Qpile

    Евгений Reply:

    Привет.

    Есть соответствующая публикация: www.hirobot.ru/2010/04/os...botov-dlya-mmvb/

    Читайте сайт с самого начала, много вопросов рассмотрено уже.

  40. rellai
    25 марта 2011 в 16:04 | #40

    Скачал робота Gold_Rush — давненько вроде с этого сайта не могу заставить работать при хапуске выдает ошибку: func_gr.txt, line:132 Uncnown identifier CLOSE_MA [ result = CLOSE_MA]

    вот функция

    ' Функция определения текущего значения MA

    FUNC MAnow (MA_Name)

    Year = "" & (0 + get_value (GET_DATETIME (), «YEAR»))

    Month = "" & (0 + get_value (GET_DATETIME (), «MONTH»))

    Day = "" & (0 + get_value (GET_DATETIME (), «DAY»))

    Date = fTextData (Year,Month,Day) & ""

    Hour = GET_VALUE (GET_DATETIME (), «HOUR»)

    Min = GET_VALUE (GET_DATETIME (), «MIN»)

    Time = fTextTime (Hour,Min) & «„

    slice = Get_Candle_Ex (MA_Name, Date, Time)

    LineCount = 0 + Get_Value (slice,“COUNT»)

    time = Get_Value (slice,"TIME")

    lines = Get_Value (slice,"LINES")

    FOR lineID FROM 0 TO LineCount-1

    line = Get_Collection_Item (lines, lineID)

    close_ma = 0 + Get_Value (line,"CLOSE")

    END FOR

    result = close_ma

    END FUNC

    ' ------------------- Конец определения значения MA —

    ошибка возникает тут result = close_ma

    Евгений Reply:

    Привет.

    Робот не мой. Ошибка в цикле:

    FOR lineID FROM 0 TO LineCount-1

    line = Get_Collection_Item (lines, lineID)

    close_ma = 0 + Get_Value (line,"CLOSE")

    END FOR

    т.е. он скорее всего не срабатывает вообще, поэтому переменной close_ma вообще не присваивается никакого значения.

    И потом, слишком громоздкое получение значения мувинга, все это (на мой взгляд, я не знаю что у вас за робот) можно сделать одной строкой:

    CLOSE_MA=GET_VALUE (GET_COLLECTION_ITEM (GET_VALUE (GET_CANDLE_EX («LINEID», DATE, TIME),"LINES"),0),"CLOSE") +0

  41. Kalikazandr
    28 июля 2011 в 20:11 | #41

    Привет!

    Killallorders_func весьма нужная функция, один минус, в строке:

    IF (GET_VALUE (GET_ITEM («ORDERS», I), «STATUS»)="ACTIVE") AND (GET_VALUE (GET_ITEM («ORDERS», I), «SECCODE»)=INSTRUMENT)

    Периодически выдает ошибку определения INSTRUMENT

    Торгую на ММВБ, м.быть особенность биржи или брокер шалит?

    Автору Респект

    Евгений Reply:

    Привет.

    Спасибо!

    Строка правильная, если ругается именно на INSTRUMENT — проверьте, проводятся ли в промежутке между объявлением этой переменной в блоке настроек и этой функцией операции с переменной INSTRUMENT. Ведь по сути, после того как вы задали код бумаги в этой переменной, последняя не должна модифицироваться, и следовательно не будет ошибки.

    Kalikazandr Reply:

    Привет Евгений!

    У меня все инструменты заданы как:

    Seccode="SBER03" и т.д.

    Я понимаю, что Инструмент не расшифровывается в функции и выдает ошибку, но почему не всегда? Все условия так или иначе ссылаются на эту функцию, а ошибку выдает иногда.

    Это так же как функция при заданном условии:

    IF GET_VALUE (GET_COLLECTION_ITEM (GET_VALUE (GET_CANDLE_EX (IDENTIFICATION, DATE, TIME),"LINES"),0),"OPEN")+0>0

    OGAZP=GET_VALUE (GET_COLLECTION_ITEM (GET_VALUE (GET_CANDLE_EX (IDENTIFICATION, DATE, TIME),"LINES"),0),"OPEN")+0

    END IF

    Периодически обнуляет все переменные связанные с OPEN

    + задолбал синтаксис, тяжело купайловцам сделать блок для проверки синтаксиса хоть для блокнота ))

    Евгений Reply:

    В таком случае должно быть так: IF (GET_VALUE (GET_ITEM («ORDERS», I), «STATUS»)="ACTIVE") AND (GET_VALUE (GET_ITEM («ORDERS», I), «SECCODE»)=Seccode)

  42. Kalikazandr
    30 июля 2011 в 16:06 | #42

    Привет Евгений! Спасибо я разобрался.

    Дело было не в бобине))

    Просто ошибку выдавало когда в портфеле не было акций.

    INSTRUMENT у меня встречался в блоке определения цены покупки-и когда я сначала покупал, а потом включал робота-он работал без ошибок.

    IF POSA 0

    N_TRADES=GET_NUMBER_OF («TRADES»)+0

    PRICE_POK=0

    Str = GET_ITEM («TRADES», N_TRADES)

    INSTRUMENT = GET_VALUE (Str, «SECCODE»)

    IF N_TRADES>0

    IF SECCODE = INSTRUMENT

    PRICE_POK = GET_VALUE (GET_ITEM («TRADES», N_TRADES), «PRICE»)+0

    Massiv = Set_Value (Massiv, «PRICE_POK»,PRICE_POK)

    END IF

    END IF

    END IF

    Евгений Reply:

    Ну, отлично!

  43. Kalikazandr
    24 февраля 2012 в 10:26 | #43

    Здравствуйте!

    Вопрос несколько сторонний обсуждаемым выше. Т.к. оф-форума я не нашел на сайте, то задам его здесь. В текстовый файл портфель сносит переменные:

    OPERATION="SELL"

    QUANTITTY=1000

    LAST_PRICE=100

    WRITELN («C:/биржа/log/new.log»,OPERATION&","&QUANTITY&","&LAST_PRICE )

    Получается такая вот строка в логе:

    SELL,1000,100

    Вопрос: как теперь получить эти значения из файла в первоначальном виде? В описании кривой пример, купайловцы говорят см. описание. Замкнутый круг.

    Заранее благодарен, Александр

    Евгений Reply:

    Ничего не понял, расшифруйте. И на сайте есть раздел FAQ, лучше там обсудить

  44. ka3ak78
    27 ноября 2012 в 18:30 | #44

    новые роботы кто нибудь напишите будем тестировать!! =)

Необходимо войти на сайт, чтобы написать комментарий.