Простой советник EMA WMA RSI

cmillion

Гуру форума
Советник достаточно простой и при небольшой практике его может модифицировать даже человек не знакомый с программированием.

Описание:

Советник открывает сделки, основываясь на пересечении МА. Открытие фильтруется по индикатору RSI.
Если RSI > 50 - разрешены только Buy
Если RSI < 50 - разрешены только Sell

Переменные:


period_EMA = 28 - период линии ЕМА
period_WMA = 8 - период линии WМА
period_RSI = 14 - период индикатора RSI
stoploss = 0 - уровень установки стоп лосс при открытии ордера (если 0, то стоплосс не выставляется)
takeprofit = 500 - уровень установки тейк профит при открытии ордера (если 0, то тейкпрофит не выставляется)
risk = 10 - если Lot = 0, то размер Lot вычисляется, как %(risk) от свободных средств
Magic = 777 - уникальный номер ордеров данного советника, используется для того, чтобы советник не влиял на ордера открытые вручную или другими советниками.
CloseCounter = false - если установить параметр true, то ордера будут закрываться при обратном сигнале. Т.е. при открытии Buy, закроются все Sell и наоборот.
Lot = 0.1 - лот может быть установлен любой, но при нулевом значении лот будет рассчитан автоматически.
TrailingStop,Tip.Fr.or.Candl - Используемый в советнике TrailingStop подробно описан: _http://codebase.mql4.com/ru/6494


Картинка:
tester.gif


Советы:

Если Вы выставляете takeprofit = 0, то обязательно установите CloseCounter = true, иначе ордера просто не закроются.
При установке stoploss = 0, защитного стопа нет, при этом линия баланса в тестере идет красиво, но есть риск просадки.

Посмотреть вложение EMA_WMA_RSI.rar
Удачи!
 

cmillion

Гуру форума
Обновленный тест на BROCO
EURUSD (EURO vs US DOLLAR)
Период 1 Час (M5) 2010.01.04 00:00 - 2010.06.02 23:00 (2010.01.01 - 2010.06.03)

StrategyTesterEMAWMARSI_M5.gif :?:

Посмотреть вложение 2010_M5.rar

Обновление советника: _http://cmillion.narod.ru
 
Последнее редактирование модератором:

cmillion

Гуру форума
Новая версия

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

============================================
PHP:
extern int     period_1             = 5,           //Период усреднения для вычисления первой MA.
               ma_shift_1           = 0,           //Сдвиг индикатора относительно ценового графика.
               ma_method_1          = MODE_EMA,    //Метод усреднения. Может быть любым из значений методов скользящего среднего (Moving Average).
                                                   //MODE_SMA 0 Простое скользящее среднее 
                                                   //MODE_EMA 1 Экспоненциальное скользящее среднее 
                                                   //MODE_SMMA 2 Сглаженное скользящее среднее 
                                                   //MODE_LWMA 3 Линейно-взвешенное скользящее среднее 

               applied_price_1      = PRICE_OPEN;  //Используемая цена. Может быть любой из ценовых констант.
                                                   //PRICE_CLOSE 0 Цена закрытия 
                                                   //PRICE_OPEN 1 Цена открытия 
                                                   //PRICE_HIGH 2 Максимальная цена 
                                                   //PRICE_LOW 3 Минимальная цена 
                                                   //PRICE_MEDIAN 4 Средняя цена, (high+low)/2 
                                                   //PRICE_TYPICAL 5 Типичная цена, (high+low+close)/3 
                                                   //PRICE_WEIGHTED 6 Взвешенная цена закрытия, (high+low+close+close)/4 

extern int     period_2             = 30,          //Период усреднения для вычисления второй MA.
               ma_shift_2           = 0,           //Сдвиг индикатора относительно ценового графика.
               ma_method_2          = MODE_LWMA,   //Метод усреднения. Может быть любым из значений методов скользящего среднего (Moving Average).
               applied_price_2      = PRICE_OPEN,  //Используемая цена. Может быть любой из ценовых констант.
               timeframe_2          = 0;           //Период. Может быть одним из периодов графика. 0 означает период текущего графика.

extern int     barOpen              = 1;           //бар на котором ждем сигнал (0- текущий  1 - прошлый)

extern bool    Buy            = true;  //разрешить сделки Buy
extern bool    Sell           = true;  //разрешить сделки Sell
extern int     Step           = 20;    //расстояние между открываемыми ордерами в сетке ордеров 
extern double  Lots           = 0.0;   //если=0 то лот будет расчитан как процент от свободных средств по RiskPercent % 
extern double  RiskPercent    = 0.01;  //Lots = AccountBalance() * (RiskPercent / 100.0) / 10000.0
extern double  K_Lot          = 1.5;   //умножение лота 
extern double  Max_Lot        = 150;   //ограничение размера лота
extern int     DigitsLot      = 2;     //кол-во знаков после запятой в размере лота (2 - 0,01) (1 - 0,1)

extern int     OrdersTrall    = 5;     //кол-во ордеров, после которого разрешаем тралить
extern bool    VirtualTS      = false; //выставлять виртуальный или реальный тралл 
extern int     TrailingStop   = 15;     //если 0 то нет тралла стоплоссов 

extern string   _____________  = "Filter Time";
extern int     TimeStart       = 0 ,    //ограничение времени работы советника
               TimeEnd         = 24,    //не открываем ордера и закрываем отложки если время не между TimeStart и TimeEnd
               FridayHourClose = 16;    //час закрытия ордеров в пятницу
              

extern string  ____________   = "";
extern bool    DrawInfo       = true;  //вывод информации на экран
310514.JPG
4u2.PNG
MA23,04,13.PNG
MA.PNG
 

Вложения

Последнее редактирование:

chocolate

Гуру форума
Я немного не понял, уточните, пожалуйста: советник продается?
 

cmillion

Гуру форума
Я немного не понял, уточните, пожалуйста: советник продается?
Ну если есть желание, то можете за него заплатить, хотя он выложен в первом посту с открытым кодом без ограничений на использование.
 
Последнее редактирование модератором:

cmillion

Гуру форума
gyazo.com/65370db448d89d7ec051a52a5706d302
Попробуйте изменить лот. Советник сам не подстраивает лот под брокера, а ставит тот что Вы указали, поэтому нужно смотреть какой лот разрешает брокер.
 
Последнее редактирование модератором:

Yaroslavik

Гуру форума
Всё равно таже ошибка на доллар ене воощпе так пишет

 
Последнее редактирование модератором:

Yaroslavik

Гуру форума
Если не затруднит выложите рабочую версию без этих затруднений
 

ARTEMCHIK

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

Описание:

Советник открывает сделки, основываясь на пересечении МА. Открытие фильтруется по индикатору RSI.
Если RSI > 50 - разрешены только Buy
Если RSI < 50 - разрешены только Sell

Переменные:


period_EMA = 28 - период линии ЕМА
period_WMA = 8 - период линии WМА
period_RSI = 14 - период индикатора RSI
stoploss = 0 - уровень установки стоп лосс при открытии ордера (если 0, то стоплосс не выставляется)
takeprofit = 500 - уровень установки тейк профит при открытии ордера (если 0, то тейкпрофит не выставляется)
risk = 10 - если Lot = 0, то размер Lot вычисляется, как %(risk) от свободных средств
Magic = 777 - уникальный номер ордеров данного советника, используется для того, чтобы советник не влиял на ордера открытые вручную или другими советниками.
CloseCounter = false - если установить параметр true, то ордера будут закрываться при обратном сигнале. Т.е. при открытии Buy, закроются все Sell и наоборот.
Lot = 0.1 - лот может быть установлен любой, но при нулевом значении лот будет рассчитан автоматически.
TrailingStop,Tip.Fr.or.Candl - Используемый в советнике TrailingStop подробно описан: _http://codebase.mql4.com/ru/6494


Картинка:
Посмотреть вложение 12548


Советы:

Если Вы выставляете takeprofit = 0, то обязательно установите CloseCounter = true, иначе ордера просто не закроются.
При установке stoploss = 0, защитного стопа нет, при этом линия баланса в тестере идет красиво, но есть риск просадки.

Посмотреть вложение 12547
Удачи!
В этой Сове аж 9 ошибок!:facepalm:
 

Yaroslavik

Гуру форума
Вы типо на приколе грю у двух брокеров одна и таже ошибка сколько брокеров вам надо чтоб вы взялись и доделали прежде чем выкладывать ?
 

cmillion

Гуру форума
Вы типо на приколе грю у двух брокеров одна и таже ошибка сколько брокеров вам надо чтоб вы взялись и доделали прежде чем выкладывать ?
Мне не нужны Ваши брокеры. Вы сами смотрите какие ошибки выдает советник и делайте выводы. Этот советник написан почти 10 лет назад и до сих пор никто кроме Вас не нашел в нем ошибки. Не думаю, что Вы такой умный, скорей невезучий :) или просто раньше никогда не работали с советниками.
 
Последнее редактирование модератором:

cmillion

Гуру форума
Конечно ведь в новых версиях в именах переменных запрещены точки. Нужно просто их заменить на _
Вот откомпилировал без ошибок. Теперь будет работать и в будущих версиях.
 

Вложения

Верх