macd cross zero ea v1.02.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «macd cross zero ea v1.02.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой торговый советник для платформы 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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.