macd_sampletraining.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «macd_sampletraining.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный код представляет собой торговый советник для платформы MetaTrader 4, написанный на языке MQL4. Советник предназначен для обучения и демонстрации модульного подхода к разработке экспертных советников. Он использует значения индикатора MACD (основная линия и сигнальная линия) в сочетании со скользящей средней EMA для определения тренда и принятия решений о входе и выходе из сделок.
Советник открывает позиции BUY при подтверждении бычьего пересечения MACD и восходящего тренда, а позиции SELL — при медвежьем пересечении и нисходящем тренде. Для управления рисками реализованы фиксированный тейк-профит, стандартный трейлинг-стоп и уровни закрытия на основе MACD. Перед открытием позиции проверяется наличие свободных средств на счёте и корректность настроек.
Весь торговый процесс обрабатывается в функции start(), вызываемой при каждом новом тике. Советник работает только с текущим символом на текущем графике и предназначен для использования в качестве обучающего примера базовой логики торгового советника.
Настройки программы
| Настройка | Описание |
|---|---|
| How many pips movement before trade is closed (TakeProfit) | Тейк-профит — Количество пунктов движения до закрытия сделки |
| How many lots to use for each trade (Lots) | Размер лота — Количество лотов для каждой сделки |
| Using standard trailing stop how many pips for trail (TrailingStop) | Трейлинг-стоп — Значение стандартного трейлинг-стопа в пунктах |
| Open a trade when MACD is above this level (MACDOpenLevel) | Уровень открытия по MACD — Открытие позиции, когда MACD поднимается выше данного уровня |
| Close a trade when MACD drops below this level (MACDCloseLevel) | Уровень закрытия по MACD — Закрытие позиции, когда MACD опускается ниже данного уровня |
| Period for the MA used to determine trend (MATrendPeriod) | Период MA для определения тренда — Период скользящей средней EMA для определения тренда |
Поиск по коду файла
extern double TakeProfit = 50; // How many pips movement before trade is closed
extern double Lots = 0.1; // How many lots to use for each trade
extern double TrailingStop = 30; // Using standard trailing stop how many pips for trail
extern double MACDOpenLevel=3; // Open a trade when MACD is above this level
extern double MACDCloseLevel=2; // Close a trade when MACD drops below this level
extern double MATrendPeriod=26; // Period for the MA used to determine trend
int start()
{
// код доступен только после оплаты
}
double MacdCurrent, MacdPrevious, SignalCurrent;
double SignalPrevious, MaCurrent, MaPrevious;
int cnt, ticket, total;
if(Bars<100)
{
Print("bars less than 100");
return(0);
}
if(TakeProfit<10)
{
Print("TakeProfit less than 10");
return(0); // check TakeProfit
}
MacdCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);
MacdPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);
SignalCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);
SignalPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);
MaCurrent=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,0);
MaPrevious=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,1);
total=OrdersTotal();
if(total<1)
{
if(AccountFreeMargin()<(1000*Lots))
{
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if(MacdCurrent<0 && MacdCurrent>SignalCurrent && MacdPrevious<SignalPrevious &&
MathAbs(MacdCurrent)>(MACDOpenLevel*Point) && MaCurrent>MaPrevious)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"macd sample",16384,0,Green);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
}
else Print("Error opening BUY order : ",GetLastError());
return(0);
}
if(MacdCurrent>0 && MacdCurrent<SignalCurrent && MacdPrevious>SignalPrevious &&
MacdCurrent>(MACDOpenLevel*Point) && MaCurrent<MaPrevious)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,"macd sample"Показано первые 50% кода (символов: 3034)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.