Программирование - это просто
Advertisement
Главная arrow Уроки программирования arrow Уроки программирования qplie (платный раздел) arrow QUIK. Урок 22. Реализуем трейлинг стоп.
01.03.2024 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Статьи
Платный раздел
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Размышления
Наука для чайников
Друзья сайта
Excel-это не сложно
Все о финансах
.
QUIK. Урок 22. Реализуем трейлинг стоп. Печать E-mail
Автор megabax   
20.04.2012 г.
Структура программы на примере простейшей программы

QUIK. Урок 22. Реализуем трейлинг стоп.

Что бы смотреть урок полностью, подпишитесь на платный раздел.

В платном разделе статья находиться здесь.


Исходники к уроку можно скачать в платном разделе.

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

Ниже приведенный портфель осуществляет такой сдвиг стоп лосса, по заданному инструменту.

Вот исходный текст этого портфеля...

...

.. И библиотека к нему (Lib.qpl)...

...

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

  • pTicker. Код финансового инструмента, например, если это фьючерс на Газпром со сроком исполнения июнь 2012 года, то его код GZM2. Подробнее см. урок "Вводим заявку".

  • pClass. Так же можно узнать из таблицы текущих параметров.
  • pAccount. Клиентский счет.
  • pClienCode. Код клиента.
  • pCount. Количество лот инструмента.
  • pStopLoss. Уровень стоп лосса, в единицах валюты цены.
  • pTralingStop. Уровень чувствительности, насколько цена должна сдвинуться, что бы произошел сдвиг стоп лосса. Допустим, фьючерс на Газпром стоит 17500 руб. Уровень стоп лосса 100. Тоесть, если мы имеем позицию лонг, то стоп лосс ставим на 17400 руб. Если pTralingStop=30, то стоп сдвинется, если цена превысит 17530. Если будет 17529, то сдиг еще не происходит. Стала 17531, стоп лосс стал 17431.

  • pDir. Направление позиции, которую защищает данный стоп лосс. 1 - если стоп защищает лонг (стоп заявка на продажу), и -1 если стоп защищает шорт (стоп заявка на покупку). Если мы посмотрим в текст робота, то увидим, что в функции выставления заявок мы передаем не pDir а -pDir.

  • pStopSpread. Защитный спред стоп лосса, в единицах валюты цены. На сколько цена исполнения в стоп заявке хуже стоп цены. Нужно для гарантированного срабатывания стоп заявки. Если мы поставим стоп цену и цену срабатывания одинаковую, то стоп лосс может и не сработать.  Стоп заявка при достижения стоп цены генерирует лимитированную заявку по цене исполнения, указанной в стоп заявке.  А лимитированная заявка может и не сработать, если в этот момент не будет встречных заявок. Так что для гарантированного срабатывания мы устанавливаем цену выставления лимитированной заявки заведомо хуже стоп цены.

Работает данная программа следующим образом...

Словами этот алгоритм можно сформулировать так: "Если цена пошла в нашем направлении на заданный уровень, то смешаем стоп-лосс в новое положение, таким образом, что бы он всегда отставал от текущей цены на заданный диапазон ("от" и "до").  Этот диапазон мы задам параметрам pStopLoss и pTralingStop. Где pStopLoss - это насколько стоп лосс ниже текущей цены, а pTralingStop - сколько цена должна пройти, что бы произошел сдвиг. Допустим, на фьючерс по Газпрому у нас цена покупки 17800, при pStopLoss = 100 стоп заявка будет 17700. Цена ушла вниз на 50 и стала 17750 - ничего не происходит. Цена пошла вверх и стала 17810 - если у нас pTralingStop =20 тоже ничего не происходит. А вот как только цена стала 17821 - стоп лосс стал 17721. Цена стала 17842 - и стоп-лосс опять подтянулся до 17742.

Для изменения цены стоп-лосса мы удаляем старую стоп заявку функцией DeleteStopAsID, вот как она реализована...

...

... А вот теперь посмотрим протокол работы робота, как это выглядит на практике:*

QUIK. Урок 22. Реализуем трейлинг стоп.

Ну и историю изменения заявок (тут трейлинг стоп был 2):*

QUIK. Урок 22. Реализуем трейлинг стоп.

 


* Скриншоты, помеченные данным знаком, являются цитатами и иллюстрациями   программного продукта "Quik", авторское право на который принадлежит "ARQA Technologies"

 

Последнее обновление ( 20.04.2012 г. )
 
« След.   Пред. »
 
© 2024 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги