← К каталогу
Исходный код · ID 286

macd cross zero ea v1.02.mq4

Похожие материалы по тегам

2 to 1 strategy with signals.pineTradingView · 2 общих теговmulti_lot_scalper_a.mq4MQL4 / MetaTrader 4 · 2 общих теговfresh algo signals & overlays v25_6334471093901859175.pineTradingView · 2 общих теговfresh algo v24 tradingview indicator_5918156155804195406.pineTradingView · 2 общих теговlinear regression channel.mq4MQL4 / MetaTrader 4 · 2 общих теговtrading criteria.mq4MQL4 / MetaTrader 4 · 2 общих тегов
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Данный продукт представляет собой торговый советник для платформы MetaTrader 4, написанный на языке MQL4. Основная функция советника — автоматическое открытие и управление ордерами на основе сигнала индикатора MACD при пересечении нулевой линии. Сигналы покупки и продажи формируются при переходе значения MACD из отрицательной зоны в положительную и наоборот, с возможностью использования трёх различных режимов сигнализации с разной глубиной анализа истории.

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

В советнике реализованы фильтры времени торговли с учётом часовых поясов (летнее/зимнее GMT-смещение), ограничения по дням недели и торговым сессиям. Также предусмотрены защита от высокого спреда, ограничение количества одновременных ордеров и поддержка ECN-режима работы с брокером.

Настройки программы

НастройкаОписание
comment to display in the order (comment) Комментарий ордера — Комментарий для отображения в ордере
magic number required if you use different settings on a same pair, same timeframe (magic) Магический номер — Магический номер для различия ордеров при использовании разных настроек на одном инструменте и таймфрейме
moneymanagement Управление денежными средствами — Группа управления денежными средствами
lots size (lots) Размер лота — Размер лота
enable risk management (mm) Управление рисками — Включение управления рисками
risk in percentage of the account (risk) Риск в процентах — Риск в процентах от депозита
minimum lots size (minlot) Минимальный лот — Минимальный размер лота
maximum lots size (maxlot) Максимальный лот — Максимальный размер лота
lotdigits Знаки лота — Количество знаков после запятой для размера лота
admoneymanagement Расширенное управление денежными средствами — Группа расширенного управления денежными средствами
dynamiclot Динамический лот — Включение динамического расчёта размера лота
dynamicfactor Коэффициент динамического лота — Коэффициент для динамического расчёта размера лота
ordersmanagement Управление ордерами — Группа управления ордерами
make the expert compatible with ecn brokers (ecn) ECN-режим — Совместимость с ECN-бордерами
close the orders on an opposite signal (oppositeclose) Закрытие по противоположному сигналу — Закрытие ордеров при получении противоположного сигнала
reverse the signals, long if short, short if long (reversesignals) Инвертирование сигналов — Инвертирование сигналов: покупка вместо продажи и наоборот
maximum trades allowed by the traders (maxtrades) Максимальное количество сделок — Максимальное количество одновременных торговых операций
maximum trades per bar allowed by the expert (tradesperbar) Сделок на бар — Максимальное количество сделок на бар
hide stop loss (hidesl) Скрыть стоп-лосс — Скрытие стоп-лосса при открытии ордера
hide take profit (hidetp) Скрыть тейк-профит — Скрытие тейк-профита при открытии ордера
stop loss (stoploss) Стоп-лосс — Стоп-лосс в пунктах
take profit (takeprofit) Тейк-профит — Тейк-профит в пунктах
profit in pips required to enable the trailing stop (trailingstart) Прибыль для активации трейлинг-стопа — Прибыль в пунктах, необходимая для активации трейлинг-стопа
trailing stop (trailingstop) Трейлинг-стоп — Расстояние трейлинг-стопа в пунктах
margin allowed to the market to enable the trailing stop (trailingstep) Отступ трейлинг-стопа — Отступ от рынка для активации трейлинг-стопа
gain in pips required to enable the break even (breakevengain) Прибыль для активации безубыточного уровня — Прибыль в пунктах, необходимая для активации безубыточного уровня
break even (breakeven) Безубыточный уровень — Безубыточный уровень в пунктах
maximum spread allowed by the expert (maxspread) Максимальный спред — Максимально допустимый спред
adordermanagement Расширенное управление ордерами — Группа расширенного управления ордерами
0=standard close, 1=close when global profit is positive on new close, 2=close on pipstarget (closemode) Режим закрытия ордеров — Режим закрытия: 0 — стандартное закрытие, 1 — закрытие при положительном общем профите, 2 — закрытие по целевому количеству пунктов
pipstarget Целевые пункты — Целевое количество пунктов для закрытия по профиту
entrylogics Логика входа — Группа логики входа в сделку
signal1 Сигнал 1 — Включение сигнала 1 — пересечение нуля MACD
signal2 Сигнал 2 — Включение сигнала 2 — пересечение нуля MACD с отложением на 1 бар
signal3 Сигнал 3 — Включение сигнала 3 — пересечение нуля MACD с отложением на 2 бара
macdfast Быстрый период MACD — Период быстрой линии MACD
macdslow Медленный период MACD — Период медленной линии MACD
macdsma Период сигнальной линии MACD — Период сигнальной линии MACD
mafilter Фильтр скользящей средней — Включение фильтра скользящей средней
maperiod Период скользящей средней — Период скользящей средней
mamethod Метод скользящей средней — Метод расчёта скользящей средней
maprice Цена скользящей средней — Тип цены для расчёта скользящей средней
bar in the past to take in consideration for the signal (shift) Сдвиг бара — Бар в прошлом для расчёта сигнала
timefilter Фильтр времени — Группа фильтра времени торговли
gmt offset of the broker (summergmtshift) Летнее GMT-смещение — Летнее GMT-смещение брокера
gmt offset of the broker (wintergmtshift) Зимнее GMT-смещение — Зимнее GMT-смещение брокера
enable special time filter on friday (mondayfilter) Фильтр понедельника — Включение специального фильтра времени для понедельника
start to trade after this hour (mondayhour) Час начала торговли в понедельник — Час начала торговли в понедельник
minutes of the friday hour (mondayminute) Минуты начала торговли в понедельник — Минуты часа начала торговли в понедельник
enable time filter (weekfilter) Еженедельный фильтр — Включение еженедельного фильтра времени
start hour to trade after this hour (starthour) Час начала торговли — Час начала торговой сессии
minutes of the start hour (startminute) Минуты начала торговли — Минуты часа начала торговой сессии
stop to trade after this hour (endhour) Час окончания торговли — Час окончания торговой сессии
minutes of the start hour (endminute) Минуты окончания торговли — Минуты часа окончания торговой сессии
trade on sunday (tradesunday) Торговля в воскресенье — Разрешение торговли в воскресенье
enable special time filter on friday (fridayfilter) Фильтр пятницы — Включение специального фильтра времени для пятницы
stop to trade after this hour (fridayhour) Час остановки торговли в пятницу — Час остановки торговли в пятницу
minutes of the friday hour (fridayminute) Минуты остановки торговли в пятницу — Минуты часа остановки торговли в пятницу
Получить полный код

Поиск по коду файла

extern string comment="EA";              // comment to display in the order
extern int magic=1234;                   // magic number required if you use different settings on a same pair, same timeframe

extern string moneymanagement="Money Management";

extern double lots=0.1;                  // lots size
extern bool mm=false;                    // enable risk management
extern double risk=1;                    // risk in percentage of the account
extern double minlot=0.01;               // minimum lots size
extern double maxlot=50;                 // maximum lots size
extern int lotdigits=2;

extern string admoneymanagement="Advanced Money Management";

extern bool dynamiclot=true;
extern double dynamicfactor=1;

extern string ordersmanagement="Order Management";

extern bool ecn=false;                   // make the expert compatible with ecn brokers
extern bool oppositeclose=true;          // close the orders on an opposite signal
extern bool reversesignals=false;        // reverse the signals, long if short, short if long
extern int maxtrades=100;                // maximum trades allowed by the traders
extern int tradesperbar=1;               // maximum trades per bar allowed by the expert
extern bool hidesl=false;                // hide stop loss
extern bool hidetp=false;                // hide take profit
extern double stoploss=0;                // stop loss
extern double takeprofit=0;              // take profit
extern double trailingstart=0;           // profit in pips required to enable the trailing stop
extern double trailingstop=0;            // trailing stop

extern double trailingstep=1;            // margin allowed to the market to enable the trailing stop
extern double breakevengain=0;           // gain in pips required to enable the break even
extern double breakeven=0;               // break even
int expiration=0;                 // expiration in minutes for pending orders
double slippage=0;                // maximum difference in pips between signal and order
extern double maxspread=100;             // maximum spread allowed by the expert

extern string adordermanagement="Advanced Order Management";

extern int closemode=1;                  // 0=standard close, 1=close when global profit is positive on new close, 2=close on pipstarget
extern int pipstarget=20;

extern string entrylogics="Entry Logics";

extern bool signal1=true;
extern bool signal2=false;
extern bool signal3=false;
extern int macdfast=12;
extern int macdslow=26;
extern int macdsma=9;
extern bool mafilter=false;
extern int maperiod=105;
extern int mamethod=0;
extern int maprice=0;
extern int shift=1;                      // bar in the past to take in consideration for the signal
/*
extern string timeout="Time Outs and Targets Settings";

extern bool usetimeout=true;
extern int timeout1=30;
extern int target1=7;
extern int timeout2=70;
extern int target2=5;
extern int timeout3=95;
extern int target3=4;
extern int timeout4=120;
extern int target4=2;
extern int timeout5=150;
extern int target5=-5;
extern int timeout6=180;
extern int target6=-8;
extern int timeout7=210;
extern int target7=-15;
*/

extern string timefilter="Time Filter";

extern int summergmtshift=2;             // gmt offset of the broker
extern int wintergmtshift=1;             // gmt offset of the broker
extern bool mondayfilter=false;          // enable special time filter on friday
extern int mondayhour=12;                // start to trade after this hour
extern int mondayminute=0;               // minutes of the friday hour
extern bool weekfilter=false;            // enable time filter
extern int starthour=7;                  // start hour to trade after this hour
extern int startminute=0;                // minutes of the start hour
extern int endhour=21;                   // stop to trade after this hour
extern int endminute=0;                  // minutes of the start hour
extern bool tradesunday=true;            // trade on sunday
extern bool fridayfilter=false;          // enable special time filter on friday
extern int fridayhour=12;                // stop to trade after this hour
extern int fridayminute=0;               // minutes of the friday hour

datetime t0,t1,tstart,tend,tfriday,tmonday,lastbuyopentime,lastsellopentime,time;
int i,bc=-1,cnt,tpb,tps,tries=100,lastorder,buyorderprofit,sellorderprofit,lotsize;
int nstarthour,nendhour,nfridayhour,nmondayhour,number,ticket,gmtshift,tradetime;
string istarthour,istartminute,iendhour,iendminute,ifridayhour,ifridayminute,imondayhour,imondayminute;
double cb,sl,tp,ilots,lastbuylot,lastselllot,lastlot,lastprofit,mlots,win[14],sum[14],globalprofit;
double lastbuyopenprice,lastsellopenprice,lastbuyprofit,lastsellprofit,tradeprofit;

bool closebasket=false;

double pt,mt;
int dg;

int init(){
      // код доступен только после оплаты
   }

int start(){
      // код доступен только после оплаты
   }

int open(int type,double lots,double price,double stoploss,double takeprofit,int expire,color clr){
   int ticket=0;
   if(lots<minlot)lots=minlot;
   if(lots>maxlot)lots=maxlot;
   if(type==OP_BUY || type==OP_BUYSTOP || type==OP_BUYLIMIT){
      if(hidesl==false && stoploss>0){sl=price-stoploss*pt;}else{sl=0;}
      if(hidetp==false && takeprofit>0){tp=price+takeprofit*pt;}else{tp=0;}
   }
   if(type==OP_SELL || type==OP_SELLSTOP || type==OP_SELLLIMIT){
      if(hidesl==false && stoploss>0){sl=price+stoploss*pt;}else{sl=0;}
      if(hidetp==false && takeprofit>0){tp=price-takeprofit*pt;}else{tp=0;}
   }
   ticket=OrderSend(Symbol(),type,NormalizeDouble(lots,lotdigits),NormalizeDouble(price,dg),slippage*mt,sl,tp,comment+". Magic: "+DoubleToStr(magic,0),magic,expire,clr);
   return(ticket);
}

double lotsoptimized(){
   double lot;
   if(stoploss>0)lot=AccountBalance()*(risk/100)/(stoploss*pt/MarketInfo(Symbol(),MODE_TICKSIZE)*MarketInfo(Symbol(),MODE_TICKVALUE));
   else lot=NormalizeDouble((AccountBalance()/lotsize)*minlot*risk,lotdigits);

   return(lot);
}

int checktime(){
   if(TimeCurrent()<win[TimeYear(TimeCurrent())-1999] && TimeCurrent()>sum[TimeYear(TimeCurrent())-1999])gmtshift=summergmtshift;
   else gmtshift=wintergmtshift;

   string time="";
   string svrdate = Year()+"."+Month()+"."+Day();

   if(mondayfilter){
      nmondayhour=mondayhour+(gmtshift);if(nmondayhour>23)nmondayhour=nmondayhour-24;
      if(nmondayhour<10)imondayhour="0"+nmondayhour;
      if(nmondayhour>9)imondayhour=nmondayhour;
      if(mondayminute<10)imondayminute="0"+mondayminute;
      if(mondayminute>9)imondayminute=mondayminute;
      tmonday=StrToTime(svrdate+" "+imondayhour+":"+imondayminute);
   }
   if(weekfilter){
      nstarthour=starthour+(gmtshift);if(nstarthour>23)nstarthour=nstarthour-24;
      if(nstarthour<10)istarthour="0"+nstarthour;
      if(nstarthour>9)istarthour=nstarthour;
      if(startminute<10)istartminute="0"+startminute;
      if(startminute>9)istartminute=startminute;
      tstart=StrToTime(svrdate+" "+istarthour+":"+istartminute);

      nendhour=endhour+(gmtshift);if(nendhour>23)nendhour=nendhour-24;
      if(endhour<10)iendhour="0"+nendhour;
      if(endhour>9)iendhour=nendhour;
      if(endminute<10)iendminute="0"+endminute;
      if(endminute>9)iendminute=endminute;
      tend=StrToTime(svrdate+" "+iendhour+":"+iendminute);
   }
   if(fridayfilter){
      nfridayhour=fridayhour+(gmtshift);if(nfridayhour>23)nfridayhour=nfridayhour-24;
      if(nfridayhour<10)ifridayhour="0"+nfridayhour;
      if(nfridayhour>9)ifridayhour=nfridayhour;
      if(fridayminute<10)ifridayminute="0"+fridayminute;
      if(fridayminute>9)ifridayminute=fridayminute;
      tfriday=StrToTime(svrdate+" "+ifridayhour+":"+ifridayminute);
   }

   if((weekfilter && (nstarthour<=nendhour && TimeCurrent()<tstart || TimeCurrent()>tend) || (nstarthour>nendhour && TimeCurrent()<tstart && TimeCurrent()>tend))
   || (tradesunday==false && DayOfWeek()==0) || (fridayfilter && DayOfWeek()==5 && TimeCurrent()>tfriday) || (

Показано первые 50% кода (символов: 24431)

Открыть по тарифу

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

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
2 443,10₽ ≈ $29.86