Это очень прибыльная система проверенно на реале!
Стратегия проста! Если линия голубая, надо чтоб советник продал, как только линия поменяет цвет на синий то надо чтоб он закрыл предидущую и купил!
Кто сможет бесплатно! Это советник не лично мне, а всему форуму!
Как то так:
//+------------------------------------------------------------------+
//| Moving Averages.mq5 |
//| Copyright Copyright 2010, MetaQuotes Software Corp.,AM2 |
//| http://www.mql5.com |
//| http://www.crossmaker.narod.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2010, MetaQuotes Software Corp.,AM2."
#property link "http://www.mql5.com"
#property link "http://www.crossmaker.narod.ru "
#property version "1.04"
#include <Trade\Trade.mqh>
input int MovingPeriod = 20; // Moving Average period
//---
int ExtHandle=0;
//+------------------------------------------------------------------+
//| Check for open order conditions |
//+------------------------------------------------------------------+
void CheckForOpen()
{
MqlRates rt[2];
//--- go trading only for first ticks of new bar
if(CopyRates(_Symbol,_Period,0,2,rt)!=2)
{
Print("CopyRates of ",_Symbol," failed, no history");
return;
}
if(rt[1].tick_volume>1) return;
//--- get current Moving Average
double ma[3];
if(CopyBuffer(ExtHandle,0,0,3,ma)!=3)
{
Print("CopyBuffer from iMA failed, no data");
return;
}
//--- check signals
ENUM_ORDER_TYPE signal=WRONG_VALUE;
if(ma[0]>ma[1]) signal=ORDER_TYPE_SELL; // sell conditions
else
if(ma[0]<ma[1]) signal=ORDER_TYPE_BUY; // buy conditions
//--- additional checking
if(signal!=WRONG_VALUE)
if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
if(Bars(_Symbol,_Period)>200)
{
CTrade trade;
trade.PositionOpen(_Symbol,signal,1,
SymbolInfoDouble(_Symbol,signal==ORDER_TYPE_SELL ? SYMBOL_BID:SYMBOL_ASK),
0,0);
}
//---
}
//+------------------------------------------------------------------+
//| Check for close order conditions |
//+------------------------------------------------------------------+
void CheckForClose()
{
MqlRates rt[2];
//--- go trading only for first ticks of new bar
if(CopyRates(_Symbol,_Period,0,2,rt)!=2)
{
Print("CopyRates of ",_Symbol," failed, no history");
return;
}
if(rt[1].tick_volume>1) return;
//--- get current Moving Average
double ma[3];
if(CopyBuffer(ExtHandle,0,0,3,ma)!=3)
{
Print("CopyBuffer from iMA failed, no data");
return;
}
//--- positions already selected before
bool signal=false;
long type=PositionGetInteger(POSITION_TYPE);
if(type==(long)POSITION_TYPE_BUY && ma[0]>ma[1]) signal=true;
if(type==(long)POSITION_TYPE_SELL && ma[0]<ma[1]) signal=true;
//--- additional checking
if(signal)
if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
if(Bars(_Symbol,_Period)>200)
{
CTrade trade;
trade.PositionClose(_Symbol,3);
}
//---
}
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
ExtHandle=iCustom(NULL,0,"trend",MovingPeriod);
//---
return(0);
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
if(PositionSelect(_Symbol)) CheckForClose();
else CheckForOpen();
//---
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
}
//+------------------------------------------------------------------+
Как то так:
Интересная ситуация. Пытаюсь запустить приведенный выше код в тестере. Компиляция - без ошибок. При запуске в тестере:
2010.11.08 22:20:30 Tester loading of C:\Program Files\MetaTrader 5\MQL5\Experts\is7n_trend.ex5 failed
2010.11.08 22:20:30 MQL5 wrong type, loading of is7n_trend failed
??? (build 353).
Интересная ситуация. Пытаюсь запустить приведенный выше код в тестере. Компиляция - без ошибок. При запуске в тестере:
2010.11.08 22:20:30 Tester loading of C:\Program Files\MetaTrader 5\MQL5\Experts\is7n_trend.ex5 failed
2010.11.08 22:20:30 MQL5 wrong type, loading of is7n_trend failed
??? (build 353).
А вы переименовали is7n_trend в trend ?
Или здесь замена:
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- ExtHandle=iCustom(NULL,0,"trend",MovingPeriod);
//--- return(0);
}
//+------------------------------------------------------------------+
на:
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- ExtHandle=iCustom(NULL,0,"is7n_trend",MovingPeriod);
//--- return(0);
}
//+------------------------------------------------------------------+
А вы переименовали is7n_trend в trend ?
Или здесь замена:
на:
Всё понял: в "советнике" не оказалось OnTick, OnTrade, OnTimer, но есть OnCalculate... И вообще текст советника скачался совершенно не такой (имя-такое)...
Оказалось, это первоначальный вариант. Что-то не соображу, как выцепить код - все копируется одной длиннной строкой...

- www.mql5.com
Всё понял: в "советнике" не оказалось OnTick, OnTrade, OnTimer, но есть OnCalculate... И вообще текст советника скачался совершенно не такой (имя-такое)...
Оказалось, это первоначальный вариант. Что-то не соображу, как выцепить код - все копируется одной длиннной строкой...
Вот файл эксперта exptrend.mq5. Положите его в папку /Experts.
И файл индикатора trend.mq5. Д.б. в папке /Indicators.
Это очень прибыльная система проверенно на реале!
Стратегия проста! Если линия голубая, надо чтоб советник продал, как только линия поменяет цвет на синий то надо чтоб он закрыл предидущую и купил!
Если "очень прибыльная" и "проверенная", то почему ничего не выходит? Попробуйте чуть по-другому (покупка, для продажи - зеркально).
1. Открываемся на пробое последнего мах (хай) Х баров при условии, что на этих Х баров был откат хотя бы по хаям (можно усложнить, но можно попробовать и НАСТОЛЬКО "тупо").
2. СЛ - под минимумом этих Х баров (он может быть и на пробойном!!!), ТП= Y% от СЛ.Для начала Y=100%, далее можно оптимизировать и его, и Х. Для Х желательно будет подобрать ДИАПАЗОН, т.е. минимальное и максимальное количество баров. Думаю, что должно получиться как минимум несливалово, которое потом можно будет и доработать (в т.ч. "нормировать"/оптимизировать величину отката).
И главное - забудьте про перевороты, особенно на МА. Ситуация есть - выскочил, урвал кусок и назад, в кусты. Совсем не факт, что рынок на малейшем качке должен разворачиваться даже на тяжелой МА, а у вас мелкая МАша...
PS: набросал "мимоходом", если где описка - сорри, ИМХО смысл понятен.
Улучшить введением доп. фильтра (напр. МАКД или одной более тяжелой МА) элементарно, но начать лучше с того, что написал.
Вообще-то если говорить об оптимизации, то начинать надо с периода МА - подбирать под конкретный инструмент и таймфрейм, сначала визуально/грубо, исходя из того, какие сигналы предпочтительней, а потом уж всё остальное.
Мне всё равно понадобится такой элемент как составная часть будущего советника, поэтому если у кого получится что-нибудь приличное в первом приближении, могу предложить совместно ПЛОТНО поработать онлайн/реалтайм на ОБЩЕЕ благо. С МАшами работаю давно и плотно, на них основана моя главная ТС.
Вот файл эксперта exptrend.mq5. Положите его в папку /Experts.
И файл индикатора trend.mq5. Д.б. в папке /Indicators.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Это очень прибыльная система проверенно на реале!
Стратегия проста! Если линия голубая, надо чтоб советник продал, как только линия поменяет цвет на синий то надо чтоб он закрыл предидущую и купил!
Кто сможет бесплатно! Это советник не лично мне, а всему форуму!