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

Учимся программировать в среде Metatrader (mql). Урок 18. Добавляем в советник еще одну стратегию

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

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


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

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

Второе. Напишем функцию для торговли по данной стратегии и функцию генерации сигналов по данной стратегии. Вставим функцию торговли по данной стратегии в раздел start().

Третье. Напишем функцию TradePending, которая в отличии от функции Trade не просто совершает сделки, а выставляет отложенные ордера.

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

 

Теперь поговорим о самой добавленной стратегии. Ее суть в том, что бы входить в рынок на откатах. Откатами будем считать наклон короткого канала против длинного канала:

 

Учимся программировать в среде Metatrader (mql). Урок 18. Добавляем в советник еще одну стратегию

 

А теперь сам текст советника:

//+------------------------------------------------------------------+

//|                                                      Komplex.mq4 |

//|                                                    Шуравин А. П. |

//|                                                  www.easyprog.ru |

//+------------------------------------------------------------------+

#property copyright "Шуравин А. П."

#property link      "www.easyprog.ru"

 

//---- input parameters

extern int       Channel_n1=300;

extern int       Channel_n2=50;

extern int       Channel_n1_small=10;

extern int       Channel_n2_small=3;

extern int       ChannelH=70;

extern int       SmallChannelGap=100;

extern int       TakeProfit=500;

extern int       StopLoss=300;

extern double    Lots=1;

extern bool      IsRecoilChannelBorders=true;

extern bool      IsSmallChannel=true;

 

... 

 

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

 

Период оптимизации Период тестирования Результат, % Параметры
07.09.2011-09.09.2011 08.09.2011-12.09.2011 191 n1=380; n2=10; small_n1=5; small_n2=5; SmallChannelGap=290; tp=1750; sl=600
08.09.2011-12.09.2011 09.09.2011-13.09.2011 76 n1=210; n2=10; small_n1=10; small_n2=6; SmallChannelGap=150; tp=1900; sl=45
09.09.2011-13.09.2011 12.09.2011-14.09.2011 5 n1=200; n2=10; small_n1=8; small_n2=7; SmallChannelGap=50; tp=800; sl=1000
12.09.2011-14.09.2011 13.09.2011-15.09.2011 151 n1=300; n2=220; small_n1=10; small_n2=7; SmallChannelGap=110; tp=850; sl=1000
13.09.2011-15.09.2011 14.09.2011-16.09.2011 57 n1=320; n2=240; small_n1=8; small_n2=6; SmallChannelGap=50; tp=1100; sl=900
14.09.2011-16.09.2011 15.09.2011-19.09.2011 116 n1=340; n2=90; small_n1=5; small_n2=2; SmallChannelGap=110; tp=1850; sl=1000
15.09.2011-19.09.2011 16.09.2011-20.09.2011 -25 n1=320; n2=140; small_n1=9; small_n2=2; SmallChannelGap=130; tp=1850; sl=500
16.09.2011-20.09.2011 19.09.2011-21.09.2011 -25 n1=30; n2=10; small_n1=10; small_n2=6; SmallChannelGap=50; tp=2000; sl=850
19.09.2011-21.09.2011 20.09.2011-22.09.2011 104 n1=60; n2=290; small_n1=6; small_n2=2; SmallChannelGap=50; tp=700; sl=950
20.09.2011-22.09.2011 21.09.2011-23.09.2011 188 n1=200; n2=370; small_n1=69 small_n2=3; SmallChannelGap=270; tp=1250; sl=1000

 

Средний результат 84%, что больше, чем с случае одной стратегии, которую мы рассмотрели на предыдущем уроке.

 


Скриншоты, опубликованные в данной статье, являются цитатами и иллюстрациями  программного продукта "Metatrader 4", авторское право на который принадлежит "MetaQuotes Software Corp". 


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