Как добавить индикатор в Quik, установить его так, чтобы было удобно

Как добавить индикатор в Quik, установить его так, чтобы было удобно

Добрый день, читатели и гости блога, а также подписчики и зрители видеоканала. Наша тема сегодня Zigzag для Quik скачать, добавить индикатор в виде файла lua. Как его настроить.

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

Получить этот инструмент в версии для Quik можно прямо на этой странице немного ниже. Для этого воспользуйтесь кнопками социальных сетей. И как всегда этот инструмент, предоставляется моим дорогим читателям совершенно бесплатно.

Установка, настройка

Для установки, распакуйте файл в папку вашего терминала. Там нужно создать папку LuaIndicators. Например, путь к файлу может быть таким C:\FinamJunior\LuaIndicators. Дальше, установите индикатор. Правой кнопкой на график «Добавить…» или кнопка Insert. Дальше, как обычно.

Скачать

Таким же способом переходим к редактированию. Настроек только две:

  • ddd – это период Зигзаг. Если увеличить его значения, то инструмент станет более сглаженным. Если уменьшить, то мелкие неровности графика будут отражаться на линии инструмента.
  • Period ATR – это период вспомогательной линии на графике, которую создатели, видимо предлагают использовать в качестве сигнальной.

На инструменте также можно заметить стрелки синего и красного цвета. Я не буду объяснять, как их применять, все и так понятно. Могу только ещё раз сказать, что сам по себе Zigzag используется только как вспомогательный инструмент, например, для работы с волновой теорией Эллиотта.

Смотреть обзор-видео про индикатор


Другие статьи на эту тему:

Использование, выводы

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

Можно сделать вывод. Что Zigzag для Quik, получить который можно с этой страницы – это индикатор, который отличается от своего аналога для MT4 внешним видом и способом настраивать для работы. Однако при этом инструмент легко узнаваем, легок в установке. Так что даже если все его стрелки и дополнительные построения никому не понадобятся, то использовать его в качестве вспомогательного инструмента все-таки можно.

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

Тем не менее, если спекулянт по разным причинам решает поменять торговый терминал, он неизбежно столкнётся с трудностями начиная от различий в интерфейсе программы и заканчивая полным непониманием нового языка программирования. Подобная ситуация возникает и при переходе с MetaTrader (далее MT) на Quik, при этом самым первым вопросом многих трейдеров, привыкших к MT, является запрос «как установить индикаторы для Quik?».

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

Дело в том, что до 2013 года в Quik нельзя было вообще создавать свои индикаторы, поэтому пользователи были вынуждены просить разработчиков добавить в новую версию или обновление необходимые инструменты, при этом, если кому-то нужен был редкий и непопулярный алгоритм, можно было и не дождаться его появления вовсе.

Позже появилась возможность писать свои индикаторы на языке программирования под названием «Lua». Чтобы подобный алгоритм (собственный или загруженный из сети) появился в перечне квика, необходимо создать специальную папку «LuaIndicators» в основной папке терминала, в которую и будут устанавливаться все подобные файлы.

Как добавить индикаторы для Quik на рабочее окно

Чтобы лучше усвоить последовательность действий, рассмотрим пример настройки привычного индикатора CCI, с которым знаком практически каждый пользователь терминала MT. Если же кто-то из читателей вообще не имел опыта торговли даже на демо-счетах, рекомендуем прочитать соответствующую публикацию или справку по данному алгоритму.

Итак, после того, как было открыто окно графика нужного инструмента, необходимо при помощи правой кнопки мыши вызывать контекстное меню и нажать «Добавить график (индикатор)», как это представлено на рисунке выше. Также можно выполнить команду в главном меню «Экспорт данных→Графики→ Добавить график (индикатор). Результат будет идентичен:

Открылось одноимённое окно, в котором представлены индикаторы для Quik, источник данных, а также список окон, куда можно добавить нужный алгоритм. Выбираем слева CCI, а так как он является осциллятором, в перечне окон нажимаем на пункт «новое окно». В данном случае индекс товарного канала отобразится в новом подвальном окне. Если бы нам потребовалась скользящая средняя, то качестве окна необходимо было бы выбрать «окно 1». Как можно заметить, последовательность действий сложнее, чем в MT, но это скорее дело привычки. Далее нажимаем «ок» и автоматически переходим в окно настроек:

В разделе «общие» программа предлагает пользователю задать название окна, вариант представления индикатора (линия, бар, пунктир и т.д.), цветовую гамму и прочие незначительные настройки. В «Параметрах» определяется период (в барах, а не единицах времени) и метод расчёта значений. Во вкладках «Дополнительно» и «Уровни» применительно к CCI можно задать сдвиг графика и сигнальные горизонтальные уровни. Если всё было сделано верно, получим следующий результат:

Что ещё следует учесть, изучая индикаторы для Quik

Перед тем, как принимать решение о переходе на квик, нужно учесть несколько важных моментов, во-первых, индикаторы в данном терминале нельзя строить на базе других алгоритмов, как это можно делать в других программах, в т.ч. и в MT. А это значит, что часть систем, построенных на стандартных индикаторах, придётся переписывать.

Во-вторых, пользователи MT и Quik так и не смогли придти к общему мнению на предмет того, какой язык программирования эффективнее и функциональнее. Весомые аргументы приводятся как с одной, так и с другой стороны, в частности, главное преимущество терминалов MT – это их неразрывная связь с языками программирования mql (4 и 5), которые оптимизированы специально под соответствующие версии программы и являются одними из самых простых для изучения «с нуля».

С другой стороны, язык Lua, при помощи которого создаются индикаторы для Quik, применяется во многих других приложениях. Поэтому если трейдер его освоит, то сможет применить знания и для решения других задач, чего не скажешь, например, о языке mql4, сфера применения которого крайне ограничена.

Также нужно сразу определиться, зачем вообще нужен квик, ведь для торговли на форекс (межбанковском валютном рынке) он не подходит и может быть полезен только для торговли на срочном рынке валютными фьючерсами, в основном же, им пользуются трейдеры на фондовом рынке.

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

Какие можно сделать выводы

В качестве заключения отметим, что в квике превосходно работает любой индикатор, так как пользователь получает прямой поток котировок, а это значит, что в отличие от МТ4, графики не проходят через дополнительные фильтры, и каждая мелкая сделка будет учтена алгоритмом без исключений.

Кроме этого, в Quik без сбоев работают все индикаторы, предназначенные для анализа объёмов, в то время как в МТ4 трейдер по умолчанию вынужден довольствоваться тиковыми объёмами, и то, сомнительного качества, так как котировки предварительно проходят через вышеупомянутые фильтры дилинговых центров. Все эти нюансы являются сильными сторонами рассмотренной сегодня биржевой платформы в контексте построения индикаторных систем.

Но по традиции, без минусов также не обошлось, в частности, к главным недостаткам как самого квика, так и индикаторов, можно отнести сложность написания последних вследствие особенностей языка Lua. Кроме этого, пока пользователи MT4 накапливали опыт, создавая и тестируя тысячи алгоритмов, разработчики квик длительное время добавляли индикаторы только по просьбе и заказам пользователей.

Поэтому если трейдер принял решение «а уйду я из ДЦ к обычному брокеру и перенесу свою стратегию на новый терминал», придётся изрядно потратиться финансово даже на то, чтобы переписать необходимые индикаторы (работа программистов стоит не дёшево).

Можно, конечно, и самому освоить программирование, но в данном случае придётся ещё некоторое время работать с МТ, пока не получится создать необходимые индикаторы для Quik, так как, прочитав несколько самоучителей по языку Lua, не получится сразу реализовать свои идеи, не допуская при этом ошибок. Источник:

Социальные кнопки для Joomla

Популярное:

  • 14.11.2013 06:32 | Индикатор разворота - определяем конец тренда 52758
  • 02.04.2015 10:04 | Индикатор VSA читает рынок как открытую книгу 49618
  • 23.09.2014 11:08 | Конструктор советников форекс позволит создать любой торговый робот 46460

В этом разделе я буду выкладывать совершенно бесплатно все торговые роботы (СОВЕТНИКИ) и скрипты для терминала QUIK, для торговли на Московской бирже, FORTS.

Поэтому, уважаемые трейдеры, скачиваем, тестируем, наслаждаемся торговлей!

Все для терминала QUIK

Скрипты, Торговые роботы

Скачать индикатор SChannel на LUA
alignright wp-image-5447" src="http://daytradingschool.ru/wp-content/uploads/SChannel-3.png" alt="SChannel" width="150 height=">
В момент, когда крупный игрок набирает позицию, на рынке наблюдается фаза баланса.
Можно получить логистический тренд с выраженными фазами аккумуляции, движения и дистрибуции.
Распаковать в папку LuaIndicators и добавить индикатор. Скачать индикатор ZigZag на LUA
Zigzag — позволяет выбрать цену для расчета (Open, High, Low, Close, High-Low, Average, Middle, Weighted_Close). Работает на любых таймфреймах, отображает на экране уровни переломов тренда. Скачать индикатор ATR на LUA
color: red;">Скачать скрипт для автозапуска вашего терминала QUIK Авто запуск QUIK
Установив данный скрипт, можно будет сделать так, чтобы ваш терминал QUIK запускался сам, особенно это удобно, когда КВИК установлен где-то на удаленном сервере. Скачать Адаптер для связки терминала Quik и MarketDelta Коннектор Quik + MarketDelta
«Маркет Дельта» работает в связке с «КВИКом» в режиме реального времени. Вся история в ней сохраняется. Если у вас были пропуски в торговле, то пропущенные данные скачиваются бесплатно и через конвертор импортируются в «Маркет Дельту». Связка работает стабильно и без сбоев. Скачать робота TRIX Торговый робот TRIX для QUIK
В основе робота лежит стратегия на
Робот входит в позицию Лонг, когда индикатор закрывается выше нулевой линии, либо заданного уровня, в шорт обратные условия. Закрытие позиции по Тейк Профиту, Стоп Лоссу либо по трейлинг стопу.
Написан на языке QPILE. Пробои дневки
Все знают, что при пробое каких-то значимых уровней, начинается движение в сторону пробития, особенно на рынке акций.
Данный робот — помощник подсвечивает из списка акций те, которые пробили 30 дневный минимум или 30 дневный максимум, причем 30 — условно, можно поставить свое значение.
Написан на языке QPILE. Скачать робота помощника для QUIK Обнаружитель ГЕПов на акциях
Помогает трейдеру обнаружить из списка акций те, что открылтсь с ГЕПом, причем размер этого ГЭПа можно задать в процентном соотношении в настройках.
Данный робот — помощник подсвечивает из списка акции, открывшиеся с ГЕПом.
Написан на языке QPILE. Скачать робота для QUIK Торговый робот для QUIK, в основе которого лежит алгоритм на основе пересечения двух простых скользящих средних (SMA)
Торговый робот для QUIK, в основе которого лежит алгоритм на основе пересечения скользящих средних (simple moving average - SMA). В роботе заложен модуль тестирования. Систему можно протестировать на любой ценной бумаге (фьючерс /акция), на любом участке ценовой истории, с любым таймфреймом. Результаты тестов выводятся в виде графика, а также экспортируются в Excel.
Основные особенности:
1. Работа на любом таймфрейме.
2. Неограниченная диверсификация.
3. Использование любого рынка (ММВБ или РТС – ФОРТС).
4. Тестирование и графический просмотр тестов.
5. Изменение оптимизационных параметров.
6. Реконнект вслучае обрыва связи интернет.
7. Ведение лог файлов.
С роботом в архиве находится файл info.wnd, а также FAQ возможных ошибок. Скачать утилиту для QUIK QCenter.
Позволяет создавать МТС или Роботов для Quik на базе MetaStock. Скачать робота для QUIK QuikOrdersDOM.
Робот-скальпер. Позволяет проводить быстрые заявки в Quik-е, заявки отправляются одним кликом. Скачать утилиту для QUIK
color: red;">Скачать робота помощника Астрологический плагин SkyQuant for AmiBroker

SkyQuant - plug-in для AmiBroker, позволяющий анализировать рыночные циклы и исследовать паттерны, основываясь на базовых принципах финансовой астрологии. Использование плагина как составной части высокопроизводительной платформы даёт возможность обрабатывать большой объём статистических данных, строить, тестировать и оптимизировать алгоритмические торговые системы.
Основные характеристики SkyQuant:
-Новый тип визуализации.
-Быстрый расчет окружения для создания, тестирования на истории и оптимизации.
-Широкий спектр доступных астрологических методов: аспекты, ингрессия, звездная коррекция, дома.
В состав архива входит:
— программа SkyQuant;
— исходный код программы SkyQuant;
— скрипт для автоматической отправки транзакций в торговый терминал QUIK.

ВСЕ МАТЕРИАЛЫ предоставлены для ознакомления, скачивание материала с целью дальнейшей продажи или распространения запрещено.
ВСЕ МАТЕРИАЛЫ НА ДАННОЙ СТРАНИЦЕ САЙТА БЫЛИ НАЙДЕНЫ НА ПРОСТОРАХ ИНТЕРНЕТА И НАХОДИЛИСЬ В СВОБОДНОМ ДОСТУПЕ.
* Предупреждение о рисках: работа на финансовых рынках и использование кредитного плеча сопряжена с высоким уровнем риска и может привести к частичной или полной потере депозита. Начиная работу на финансовом рынке, убедитесь, что вы имеете достаточный уровень знаний и подготовки и полностью осознаете возможные риски. Любые рекомендации предоставлены в качестве рыночных комментариев, и не являются советом по инвестициям. Компания сайт не несет ответственности за любые потери или убытки, которые могут возникнуть прямо или косвенно от использования предоставленной информации и программ.

Если возникнут сложности, обращайтесь в скайп Школы

Как правило, те, кто приступает к биржевым торгам, начинают изучать наиболее простой и одновременно эффективный технический анализ. Причем, ознакомившись с - трендовыми линиями, фигурами и прочим - новички начинают изучение чуть более сложного, отчасти математизированного раздела ТА - . Так называют математические функции от цены и объема, способные показать наиболее вероятное дальнейшее развитие ценового движения.

Индикаторов существует достаточно много - в торговом терминале QUIK 7 их представлено 39 штук. Также там присутствует - Volume, который является не индикатором, а параметром, дополнительно характеризующим ценовую свечку. Все эти индикаторы, в свою очередь, разделяются на трендовые, осцилляторы, конверты и прочее. И часто новички задаются вопросом, какие из индикаторов применять в своей торговле, поскольку все они имеет как плюсы, так и минусы. Ответ на этот вопрос и несколько полезных рекомендаций по использованию индикаторов в «Квик 7» - в нашей статье.

Для начала стоит дать несколько базовых рекомендаций. В первую очередь начинающим трейдерам стоит помнить о том, что ТА в целом и индикаторы в частности гораздо лучше работают на таймфреймах от часа. Не стоит сразу пытаться вести торговлю внутри дня - это удел мастеров трейдинга, а новичкам лучше вести торги на более крупных временных отрезках.

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

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

В-четвертых, не стоит разделять технически й и (новостной фон, календарь макростатистики и прочее). Данные виды анализа не противоречат один другому, а дополняют друг друга.

Индикаторы для начинающих

Первым индикатором, с которого обычно и начинают знакомство с миром технических индикаторов, является Скользящее среднее (ЕМА). Его можно увидеть как у новичков, так и у профессионалов - в том, что этот несколько старый и простой индикатор в целом способен приносить прибыль, не сомневается никто. Это подтверждается прогонами на различных тестерах. Стоит отметить, что новичкам лучше использовать этот индикатор с более длительным периодом (от 100), чтобы научиться видеть, как меняются действительно важные , и не дергаться по мелочам.

Так как скользящее среднее является трендовым индикатором, его показания лучше совмещать с осцилляторами. Для средне- и долгосрочной торговли крайне хорошо зарекомендовал себя RSI. Стоит помнить, что одним из самых мощных сигналов по этому индикатору является дивергенция, появление которой в большей степени и стоит отслеживать в паре с сигналами ЕМА, например, изменениями направления наклона и пересечения с ценой.

Крайне важным «фильтром» для сигналов указанных индикаторов будет являться объём торгов (его можно добавить на ценовой график, выбрав из списка индикаторов для QUIK 7 Volume). Объём торгов должен подтверждать тренд. Стоит помнить, что тренд зачастую начинается с прорыва консолидации на повышенных объёмах, что говорит о вливании денег профессионалов в начинающуюся тенденцию, а продолжается на невысоких, что говорит об отсутствии желание у оппонентов тренда работать против тенденции. Завершается тренд опять же на повышенных объёмах. Это говорит о том, что цена уперлась в уровень, с которым ей так просто не справиться.

Помимо индикаторов, рекомендуем не забывать о методах классического ТА. Мы считаем построение трендовых линий обязательным - вне зависимости от того, применяете ли вы индикаторы или нет. Линии трендов позволяют понимать те зоны, в которых возможна максимальная активность участников торгов, так как концентрация заявок у трендовых линий обычно возрастает, что выливается в повышенный объём торгов на их границах, не забываем, что объёмы и двигают рынок.

Конечно, можно было бы заменить трендовые линии индикатором типа (например, Bollinger Bands), но трендовые линии применяют гораздо больше , которые и образуют повышенную концентрацию заявок, поэтому наша рекомендация - использовать трендовые линии. Причём некоторую помощь начинающим трейдерам для определения момента пробития консолидации (или боковика, что в принципе близко по значению) может оказать такой индикатор, как , который крайне часто применяют алготрейдеры для формализации пробития флета. Фракталы как раз и определяют текущие ценовые максимумы и минимумы за определённый временной интервал. Причём показания индикатора Fractals лучше использовать именно в качестве логической компоненты, чем как , то есть просто для понимания того, когда именно происходит пробитие. Этот индикатор поможет начинающим трейдерам выработать верное понимание указанного момента.

Помимо входов в позицию, крайне важно понимать, когда лучше фиксировать прибыль. Здесь на помощь приходит индикатор Parabolic SAR, который чаще всего и применяют именно для этой роли. При пересечении ценой данного индикатора следует фиксировать прибыль, хотя бы частично. Использование же данного индикатора для входа в позицию менее целесообразно.

Но самое главное, что показатели указанных индикаторов и прочих методов анализа (причём не только технического, но и фундаментального) необходимо именно сочетать, а не вырывать из контекста. Нужно понимать, индикаторы могут показать, что в определённые моменты вполне вероятны соответствующие события на ценовом графике, но не более того. Трейдер же, в свою очередь, должен принимать торговые решения и контролировать их риски, собирая воедино показания и ТА и ФА.

Вывод

Индикаторы стоит использовать в биржевой торговле как начинающим, так и опытным трейдерам, но их сигналы не стоит поним ать в качестве сигналов к безусловному совершению сделок. Оптимальный вариант - сочетать сигналы индикаторов в QUIK 7 с общей рыночной ситуацией и правилами риск- и мани-менеджмента.

Продолжаю отвечать на ваши вопросы.

Вопрос: Есть ли какой-нибудь простенький примерчик с анализом волатильности и торговлей на пробой?

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

Для определения средней волатильности мы применим индикатор ATR (Average true rage). Стоит заметить, что в Quik-e, что бы программа на qpile или qlua могла брать с графика данный, график должен быть открыт (в том числе и индикатор). Поэтому давайте прямо сейчас откроем какой нибудь график, например, ЛУКОЙЛ:

И добавим к нему индикатор:

Там же можно настроить цвет линий:

Параметры, например, количество периодов:

И ввести идентификатор:

Идентификатор нужен, что бы мы могли обратиться к нему в программе. В дальнейшем можно редактировать параметры индикатора щелкнув по графику правой кнопкой мыши и во всплывшем меню выбрать «Параметры графика»:

Аналогично можно отредактировать параметры свечек (Price), так же задав для них идентификатор:

А теперь будем учиться получать данные с графиков. Для начала со свечек:

local N= getNumCandles("MyPrice")

t, n, i= getCandlesByIndex("MyPrice", 0, N- 2, 2)

message("Предыдущая свеча close=".. t[ 0]. close, 1)

message("Текущая свеча close=".. t[ 1]. close, 1)

Данный скрипт выдаст два числа: сначала закрытие предыдущей свечи, а потом закрытие текущей:

А затем для текущей свечи:

Стоит заметить, что значение close текущей свечи постоянно меняется, так как она еще не сформирована. Так же могут меняться higt и low у этой свечи. А вот предыдущая и все те, что левее их, остаются прежними - они уже сформированы.

Теперь разберем конструкции:

local N= getNumCandles("MyPrice")

t, n, i= getCandlesByIndex("MyPrice", 0, N- 2, 2)

Сначала мы получаем количество свечей. Дело в том, что функция getCandlesByIndex требует указывать, с какой по счету свечи мы получаем данные, а счет начинается с самой левой свечки. Она имеет номер 0, а самая права, текущая, соответственно N-1 - на единицу меньше количества свечек.

Теперь о синтаксисе функции getCandlesByIndex. У нее четыре параметра. Первый - идентификатор графика, который мы ставили выше. Если у нас несколько графиков, то мы как раз сможем их различать по этому идентификатору. Второй параметр - номер линии, для свечей тут должен стоять нуль. Третий - с какой свечи мы начинаем получать свечи, ее номер. В нашем случае это N-2 - мы хотим получить предпоследнюю и последнюю свечки. И, наконец, четвертый параметр - количество свечек, которые мы хотим получить.

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

Обратите внимание, что функция getCandlesByIndex возвращает целых три значения. Самое первое, как вы уже поняли, это сама таблица свечей. Второе значение - это количество свечей в полученной таблице. Казалось, бы зачем оно нужно? Вроде как количество должно быть равно четвертому параметру, не? Не всегда. Как вы думаете, сколько свечей вернет вот такая конструкция:

Вовсе не 10, так как начиная со свечи N-3 мы имеем только три свечки, поэтому программа выдаст:

А вот если мы напишем:

local N= getNumCandles("MyPrice")

t, n, i= getCandlesByIndex("MyPrice", 0, N- 3, 2)

То количество свечей будет равно 2.

А вот что это за третье возвращенное значение? А это так называемая легенда - подпись графика:

По умолчанию это название бумаги, но можно отредактировать и поставить свое название.

Аналогично мы можем брать данные и с индикатора:

local N= getNumCandles("MyATR")

t, n, i= getCandlesByIndex("MyATR", 0, N- 2, 2)

message("Предыдущее значение индикатора ".. t[ 0]. close, 1)

message("Текущее значение индикатора ".. t[ 1]. close, 1)

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

Далее вопрос: а как торговать на пробой уровней? Можно использовать стоп лоссы. Они как раз сработают при пробое: купят при пробое вверх и продадут при пробое вниз. Стоп лосс выставляется практически точно так же, как и обычная заявка (см..aspx?id=773), только в поле ACTION ставиться значение NEW_STOP_ORDER, а так же обязательно заполняются поля STOP_ORDER_KIND, STOPPRICE и EXPIRY_DATE.

После прихода очередной свечи может возникнуть необходимость переставить стоп лоссы (если они еще не сработали). Для преставления стоп лоссов мы удаляем старые стоп лоссы и выставляем новые. Как удалять см. урок 6 (). Стоп заявки удаляться точно так же, как и обычные, только ACTION ставиться KILL_STOP_ORDER.

Что бы не выставлять повторно стоп заявки, будем запоминать номер выставленной заявки, а если заявка удалена или исполнена - снимать этот номер. Для этого в процедуре OnStopOrder (это предопределенное имя) будем анализировать флаги. Как анализировать флаги см. урок 4 ().

Может возникнуть вопрос: А как обеспечить, что бы проверка сигнала была только на каждой новой свече? Вообще, можно воспользоваться функциями CreateDataSource и SetUpdateCallback, но до них мы еще дойдем. А пока, в простейшем примере торговли на пробоях с анализом волатильности, который находиться в приложении 1, я сделал проще: старые уровни для пробоя запоминаются в момент выставления стоп ордеров. Когда новые уровни отличаются от старых (а это может быть только с приходом новой свечи, так как уровни рассчитываются по предпоследней свече, а она не меняется), робот пересматривает стопы, в случае необходимости удаляет и выставляет новые.

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

Вопрос: Все таки для начинающих никак не подходит работа со стаканом — на истории стакан не потестить, лучше рассмотреть работу со свечками, например стратегию по скользящим средним — как получать свечки и значения скользящих средних..... чего не избежать при использовании вашего примера..

По работе со свечами, могу дополнить обещанным чуть выше описанием функций CreateDataSource и SetUpdateCallback. Эти функции позволяют создать CALLBACL функцию и привязать ее к графику. Эта функция будет вызываться каждый раз, как только на графике произойдут какие либо изменения. Вот пример:

p_classcode= "TQBR" --Код класса

p_seccode= "LKOH" --Код инструмента

Служебные переменные

is_run = true

function cb(index)

local t = ds: T(index)

local str = "свеча № ".. tostring (index).. " из ".. tostring (ds: Size()).. " open=".. ds: O(index)

str = str.. " high=".. tostring (ds: H(index)).. " low=".. tostring (ds: L(index))

str = str.. " close=".. tostring (ds: C(index)).. " объем: ".. tostring (ds: V(index))

str = str.. " дата и время=".. tostring (t.day).. ".".. tostring (t.month).. ".".. tostring (t.year).. " ".. tostring (t.hour).. ":".. tostring (t.min)

str = str.. ":".. tostring (t.sec).. " и ".. tostring (t.ms).. " мс"

message(str, 1)

function main()

ds= CreateDataSource(p_classcode, p_seccode, INTERVAL_M1)

ds: SetUpdateCallback(cb)

while is_run do

sleep(100)

function OnStop(stop_flag)

is_run= false

Запустите его и каждый тик на графике вы будете получать вот такое вот сообщение:

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

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

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

Вот так, например, выглядела эта таблица для робота, который мы разбирали на уроке Стохастик с фильтром на Qpile (часть 2) (http://сайт/community/article.aspx?id=246):

На qlua Тоже можно создавать такие окна, при чем не одно, как на qpile, а несколько. Различаются такие окна по дескрипторам. Дескриптор - это его идентификационный номер, который возвращает функция AllocTable(). После того, как при помощи функции AllocTable() был создан дескриптор, он может быть использован для создания окна. Сначала мы объявляем заголовки при помощи функции AddColumn, затем при помощи CreateWindow мы открываем это окно. После чего можем добавлять в него строки, например, при помощи функции InsertRow.

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

p_classcode= "SPBFUT" --Код класса

p_seccode= "GZZ4" --Код инструмента

Служебные переменные

is_run = true

function cb(index)

local t = ds: T(index)

row = InsertRow(id, - 1)

local str= tostring (t.day).. ".".. tostring (t.month).. ".".. tostring (t.year).. " ".. tostring (t.hour).. ":".. tostring (t.min).. ":".. tostring (t.sec)

SetCell(id, row, 1, tostring (index))

SetCell(id, row, 2, tostring (ds: O(index)))

SetCell(id, row, 3, tostring (ds: H(index)))

SetCell(id, row, 4, tostring (ds: L(index)))

SetCell(id, row, 5, tostring (ds: C(index)))

SetCell(id, row, 6, tostring (str))

SetCell(id, row, 7, tostring (ds: V(index)))

message(str, 1)

function main()

id= AllocTable()

AddColumn(id, 1, "№ свечи", true , QTABLE_INT_TYPE, 11)

AddColumn(id, 2, "open", true , QTABLE_DOUBLE_TYPE, 10)

AddColumn(id, 3, "high", true , QTABLE_DOUBLE_TYPE, 10)

AddColumn(id, 4, "low", true , QTABLE_DOUBLE_TYPE, 10)

AddColumn(id, 5, "close", true , QTABLE_DOUBLE_TYPE, 10)

AddColumn(id, 6, "datetime", true , QTABLE_STRING_TYPE, 20)

AddColumn(id, 7, "volume", true , QTABLE_DOUBLE_TYPE, 15)

message(tostring (CreateWindow(id)), 1)

ds= CreateDataSource(p_classcode, p_seccode, INTERVAL_M1)

ds: SetUpdateCallback(cb)

while is_run do

sleep(100)

function OnStop(stop_flag)

is_run= false

А вот результат работы этой программы:

На этом урок окончен, но мы с вами не прощаемся, до новых встреч.

Прикрепленные файлы