Если мошенники из STForex (СТФорекс) и Вас тоже обманули, то сообщите об этом нам Пишите на эту почту: [email protected]
Напишите нам
Для Вас сообщение …
Жаль, но специалист в данный момент не на месте, в связи с этим очень просим Вас указать Ваш e-mail в форме связи далее
Оператор [ИМЯ] уже в чате.
Специалист [ИМЯ] - сейчас Вам напишет.
Оператор ответит в течении трех минут
Напишите пожалуйста Ваш e-mail в форме далее, чтобы мы смогли Вам написать.
Ваша информация принята, очень скоро с Вами свяжутся - ДЕНЬГИ НЕ ПЕРЕДАВАЙТЕ !!!
Напишите пожалуйста Ваш e-mail в форме далее, чтобы мы смогли Вам написать.

Новый робот

Создание нового торгового робота

Описание, корректировка, установка программы

В прошлой статье мы разработали простой алгоритм и сделали небольшой обзор библиотеки Stock#.

Теперь, когда предварительный этап закончен, перейдем непосредственно к программированию торгового робота. Для этого нам потребуется Microsoft Visual Studio 2010 и небольшое знание языка C#.

Запустим Visual Studio 2010 и создадим проект WPF. Сразу в настройках проекта выставим версию фреймворка «.NET Framework 4» (Рис. 8).

версия фреймворкаверсия фреймворка

Рис. 8. Свойства проекта.

Далее, определимся с визуальным интерфейсом проекта, он у нас будет минималистический (Рис. 9).

визуальный интерфейсвизуальный интерфейс

Рис. 9. Интерфейс робота

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

<StackPanel Width="408" Height="163"><br /> <Grid><br />   <Button Name="buttonConnect" Content="Подключить" /><br />   <Button Name="buttonDisConnect" Content="Отключить" /><br /> </Grid><br /> <Separator></Separator><br /> <Button Name="buttonStartRobot" Content="Запустить робота" /><br /> <Button Name="buttonStopRobot" Content="Остановить робота" /><br /></StackPanel>

Рассмотрим по шагам, какие функции должны выполнять эти события.

Нажатие на кнопку «Подключить»

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

2) Далее необходимо подписаться на все необходимые события.

3) Затем достаточно произвести подключение к терминалу с помощью метода Connect().

Нажатие на кнопку «Отключить»

Кнопка «Отключить» должна выполнить проверку на подключение робота к терминалу, затем остановить экспорт данных из QUIK и отключиться.

Нажатие на кнопку «Запустить робота»

Рассмотрим данное событие подробнее.

1) Вначале создается два объекта – менеджер свечей CandleManager и серия свечей CandleSeries. Это два разных класса, первый является управляющим звеном, CandleManager позволяет принимать данные о свечах из терминала и обрабатывать их. Второй класс CandleSeries – серия свечей, использую этот класс, можно обратиться к любой свече по её числовому индексу.

2) Этот же метод нажатия на кнопку должен запускать торговую стратегию. Для этого необходимо создать экземпляр класса Strategy (либо его наследника) и вызнать метод Start.

После выполнения этих действий будет запущена стратегия.

Подробнее

Перейдем к реализации стратегии. Рассмотрим как в StockSharp выполняется стратегия.

Как написано в документации есть два подхода к реализации стратегий:

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

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

В StockSharp рекомендуется применять именно событийную модель.

Опишем функции, которые должна выполнять стратегия:

1) вход/выход в позицию

2) управление позицией

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

//когда свеча сформирована, то запустить метод обработки свечи ProcessCandle

_candleSeries

.WhenCandlesFinished()

.Do(ProcessCandle)

.Apply(this);

Рассмотрим метод ProcessCandle() (рис. 10). Этот метод вызывается каждый раз когда приходит новая свеча из терминала. Хотелось бы отметить, что свечи обрабатываются через объект класса CandleManager и хранятся в экземпляре класса CandleSeries. Причем свечи формируются из таблицы всех сделок Quik.

свечисвечи

Рис. 10. Схема алгоритма метода ProcessCandle

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

Причем функцию отслеживания срабатывания стоп-лоса, мы перекладываем на дочернюю стратегию StopLossStrategy.

Итак, стратегия создана. Но прежде чем запускать её, нужно знать, как она будет работать. Добавим логирование в наш проект. В StockSharp для этого существует класс LogManager. Чтобы запустить процесс логирования достаточно выполнить следующий код:

LogManager _logManager = new LogManager();

var fileListener = new FileLogListener(String.Format(«log\\{0}_{1:00}_{2:00}.txt», DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day));

_logManager.Sources.Add(_trader);

_logManager.Listeners.Add(fileListener);

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

Для того чтобы просматривать как работает робот, можно воспользоваться встроенным в Stock# механизмом мониторинга посредством класса MonitorWindow (Рис. 11).

механизмом мониторингамеханизмом мониторинга

Рис. 11. Монитор работы робота

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

На этом программную реализацию можно считать законченной, остается только скомпилировать проект и запустить. Рекомендую для запуска использовать тестовый счет.


Обратная связь официального веб-ресурса STForex COM

Юр лицо лохотрона: StForex Ltd, телефон STForex в России: 8 (800) 775-09-22 (развод на деньги круглосуточный, БЕССПЛАТНО !!!)
ОФИЦИАЛЬНЫЙ АДРЕС STForex (ООО "СТФ"): Россия, 123112, г. Москва, Пресненская Набережная дом 6, строение 2
Загружаю карту...
Лицензия у СТФорекс (StForex Ltd) - ОТСУТСВУЕТ !!! Лохотрон разводит людей на деньги жителей России НЕЗАКОННО !!!
Если так произошло и SCAMеры из STForex (StForex Ltd) Вас развели, тогда обязательно пишите о данном факте нам на официальную почту: [email protected]

Официальные е-майл адреса:
[email protected] (группа технической поддержки, Безматерных Анатолий)
[email protected] (направление обработки жалоб на информационный веб-сервис stforex.info, Саламатина Ольга)
[email protected] (администратор сервиса stforex.info, Гончарова Любовь)

Следите за нами в социальных сетях:
Наш официальный видео канал на YouTube
Группа в ВКонтакте
Вступайте в нашу группу в Одноклассниках
Мы в Твиттере
Наша группа в Мой Мир
Мы в Instagram

© 2017 - 2024 stforex.info
Карта сайта