MR.dollarEA
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «mr.dollar_pending orders ea v6.1.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой торговый советник для MetaTrader 4, написанный на языке MQL4. Основное назначение — управление отложенными ордерами (BuyStop, BuyLimit, SellStop, SellLimit) и рыночными ордерами на торговом счёте. Советник предоставляет широкие возможности для настройки размещения ордеров по четырём типам, включая объёмы, расстояния от текущей цены, тейк-профит и стоп-лосс.
Продукт включает фильтры торгового времени, позволяющие ограничить открытие и управление ордерами определёнными часами и днями недели. Поддерживаются функции управления ордерами по условиям прибыли и убытка, скользящий стоп (Trailing Stop), а также автоматическое повторное открытие закрытых ордеров.
Дополнительно реализована функция хеджирования с настраиваемыми начальными ордерами, режимы умножения лотов и фильтры закрытия ордеров по пятницам. Советник использует магическое число для идентификации своих ордеров и отображает информацию о счёте на графике.
Настройки программы
| Настройка | Описание |
|---|---|
| UseHourTrade | Использовать фильтр часов — Разрешает фильтрацию ордеров по торговым часам |
| FromHourTrade | Начальный час торговли — Начальный час торговой сессии |
| ToHourTrade | Конечный час торговли — Конечный час торговой сессии |
| OpenHedgeFirstTime | Открывать хедж-ордера впервые — Разрешает открытие начальных хедж-ордеров (покупка и продажа) |
| HedgeLots | Лот хедж-ордеров — Объём лота для начальных хедж-ордеров |
| HedgeTP | Тейк-профит хедж-ордеров — Тейк-профит для хедж-ордеров |
| HedgeSL | Стоп-лосс хедж-ордеров — Стоп-лосс для хедж-ордеров |
| AddOrdersAfterClose | Добавлять ордера после закрытия — Разрешает повторное открытие ордеров после их закрытия |
| ReverseClosedOrders | Обратное открытие закрытых ордеров — Открывает ордера в обратном направлении от закрытых |
| CloseIfLastOrderProfit | Закрывать при прибыли последнего ордера — Закрывает все ордера, если последний ордер был прибыльным |
| S1 | Метка BuyStop — Текстовая метка группы настроек BuyStop |
| OpenBuyStopOrders | Открывать BuyStop — Разрешает открытие отложенных ордеров BuyStop |
| NumberOfBuyStopOrders | Количество BuyStop — Количество отложенных ордеров BuyStop для открытия |
| BuyStopFirstLot | Начальный лот BuyStop — Начальный объём лота для первого отложенного ордера BuyStop |
| DistanceFromCurrentPriceBS | Расстояние от цены до BuyStop — Расстояние от текущей цены до первого ордера BuyStop |
| DistanceBetweenBuyS | Расстояние между BuyStop — Расстояние между отложенными ордерами BuyStop |
| Distance_AddBuyS | Дополнительное расстояние BuyStop — Дополнительное расстояние между ордерами BuyStop |
| BuyStopTakeProfit | Тейк-профит BuyStop — Тейк-профит для отложенных ордеров BuyStop |
| BuyStopSL | Стоп-лосс BuyStop — Стоп-лосс для отложенных ордеров BuyStop |
| S2 | Метка BuyLimit — Текстовая метка группы настроек BuyLimit |
| OpenBuyLimitOrders | Открывать BuyLimit — Разрешает открытие отложенных ордеров BuyLimit |
| NumberOfBuyLimitOrders | Количество BuyLimit — Количество отложенных ордеров BuyLimit для открытия |
| BuyLimitFirstLot | Начальный лот BuyLimit — Начальный объём лота для первого отложенного ордера BuyLimit |
| DistanceFromCurrentPriceBL | Расстояние от цены до BuyLimit — Расстояние от текущей цены до первого ордера BuyLimit |
| DistanceBetweenBuyL | Расстояние между BuyLimit — Расстояние между отложенными ордерами BuyLimit |
| Distance_AddBuyL | Дополнительное расстояние BuyLimit — Дополнительное расстояние между ордерами BuyLimit |
| BuyLimitTakeProfit | Тейк-профит BuyLimit — Тейк-профит для отложенных ордеров BuyLimit |
| BuyLimitSL | Стоп-лосс BuyLimit — Стоп-лосс для отложенных ордеров BuyLimit |
| S3 | Метка SellStop — Текстовая метка группы настроек SellStop |
| OpenSellStopOrders | Открывать SellStop — Разрешает открытие отложенных ордеров SellStop |
| NumberOfSellStopOrders | Количество SellStop — Количество отложенных ордеров SellStop для открытия |
| SellStopFirstLot | Начальный лот SellStop — Начальный объём лота для первого отложенного ордера SellStop |
| DistanceFromCurrentPriceSS | Расстояние от цены до SellStop — Расстояние от текущей цены до первого ордера SellStop |
| DistanceBetweenSellS | Расстояние между SellStop — Расстояние между отложенными ордерами SellStop |
| Distance_AddSellS | Дополнительное расстояние SellStop — Дополнительное расстояние между ордерами SellStop |
| SellStopTakeProfit | Тейк-профит SellStop — Тейк-профит для отложенных ордеров SellStop |
| SellStopSL | Стоп-лосс SellStop — Стоп-лосс для отложенных ордеров SellStop |
| S4 | Метка SellLimit — Текстовая метка группы настроек SellLimit |
| OpenSellLimitOrders | Открывать SellLimit — Разрешает открытие отложенных ордеров SellLimit |
| NumberOfSellLimitOrders | Количество SellLimit — Количество отложенных ордеров SellLimit для открытия |
| SellLimitFirstLot | Начальный лот SellLimit — Начальный объём лота для первого отложенного ордера SellLimit |
| DistanceFromCurrentPriceSL | Расстояние от цены до SellLimit — Расстояние от текущей цены до первого ордера SellLimit |
| DistanceBetweenSellL | Расстояние между SellLimit — Расстояние между отложенными ордерами SellLimit |
| Distance_AddSellL | Дополнительное расстояние SellLimit — Дополнительное расстояние между ордерами SellLimit |
| SellLimitTakeProfit | Тейк-профит SellLimit — Тейк-профит для отложенных ордеров SellLimit |
| SellLimitSL | Стоп-лосс SellLimit — Стоп-лосс для отложенных ордеров SellLimit |
| S5 | Метка множителя — Текстовая метка группы настроек множителя лотов |
| UseMultiplier | Использовать множитель лотов — Разрешает использование множителя лотов |
| X_Multiplier | Режим множителя — Режим множителя: true — мультипликативный, false — аддитивный |
| Multiplier | Значение множителя — Значение множителя лотов |
| S6 | Метка времени и цены — Текстовая метка группы настроек времени и цены ордеров |
| HighLowCandle | Использовать High/Low свечи — Использует максимум/минимум предыдущей свечи для расчёта цен ордеров |
| OpenAtChoosenHour | Открывать в выбранный час — Разрешает открытие ордеров только в заданный час |
| Hour_ | Час открытия ордеров — Час, в который разрешено открытие ордеров |
| StartPrice | Начальная цена — Опорная цена для размещения отложенных ордеров |
| Gap | Допуск цены от StartPrice — Допустимое отклонение цены от StartPrice для открытия ордеров |
| OnlyOnce | Открыть только один раз — Разрешает открытие ордеров только один раз |
| S7 | Метка закрытия ордеров — Текстовая метка группы настроек закрытия и удаления ордеров |
| FridayOpenOrdersFilter | Фильтр открытия ордеров по пятницам — Фильтрует открытие ордеров по пятницам |
| FridayDeleteOrders | Удалять ордера по пятницам — Удаляет отложенные ордера по пятницам в заданный час |
| FridayCloseOrders | Закрывать ордера по пятницам — Закрывает рыночные ордера по пятницам в заданный час |
| _Hour | Час фильтрации по пятницам — Час для фильтрации и закрытия ордеров по пятницам |
| CloseAfterPassMinutes | Закрывать по истечении времени — Разрешает автоматическое закрытие ордеров по истечении заданного времени |
| MinutesPass | Минуты ожидания для закрытия — Количество минут ожидания перед автоматическим закрытием ордеров |
| CloseOrdersAfterProfit | Закрывать при прибыли — Разрешает закрытие ордеров при достижении заданного уровня прибыли |
| DeleteOrdersAfterProfit | Удалять при прибыли — Удаляет отложенные ордера при достижении заданного уровня прибыли |
| Profit | Порог прибыли для закрытия — Значение прибыли для автоматического закрытия ордеров |
| CloseOrdersAfterLoss | Закрывать при убытке — Разрешает закрытие ордеров при достижении заданного уровня убытка |
| Loss | Порог убытка для закрытия — Значение убытка для автоматического закрытия ордеров |
| S8 | Метка управления ордерами — Текстовая метка группы настроек управления ордерами |
| TrailingStop | Расстояние Trailing Stop — Расстояние скользящего стопа в пунктах |
| TrailingProfit | Прибыль для Trailing Stop — Прибыль для активации скользящего стопа |
| TrailingStep | Шаг Trailing Stop — Шаг скользящего стопа |
| S9 | Метка фильтра времени — Текстовая метка группы настроек фильтра времени |
| FridayCloseEA | Закрывать советник по пятницам — Закрывает работу советника в заданный час по пятницам |
| Friday_CloseHour | Час закрытия по пятницам — Час закрытия ордеров или советника по пятницам |
| MagicNumber | Магическое число — Магическое число для идентификации ордеров советника |
Поиск по коду файла
input bool UseHourTrade = false;
input int FromHourTrade = 7;
input int ToHourTrade = 17;
input bool OpenHedgeFirstTime=false;
input double HedgeLots=0.1;
input int HedgeTP=0;
input int HedgeSL=0;
input bool AddOrdersAfterClose=true;
input bool ReverseClosedOrders=false;
input bool CloseIfLastOrderProfit=false;
input string S1="BuyStop Orders Settings ";
input bool OpenBuyStopOrders=true;
input int NumberOfBuyStopOrders=50;
input double BuyStopFirstLot=0.1;
input int DistanceFromCurrentPriceBS=0;
input int DistanceBetweenBuyS=20;
input int Distance_AddBuyS=0;
input int BuyStopTakeProfit=0;
input int BuyStopSL=0;
input string S2="BuyLimit Orders Settings";
input bool OpenBuyLimitOrders=true;
extern int NumberOfBuyLimitOrders=50;
input double BuyLimitFirstLot=0.1;
input int DistanceFromCurrentPriceBL=0;
input int DistanceBetweenBuyL=20;
input int Distance_AddBuyL=0;
input int BuyLimitTakeProfit=0;
input int BuyLimitSL=0;
input string S3="SellStop Orders Settings";
input bool OpenSellStopOrders=true;
input int NumberOfSellStopOrders=50;
input double SellStopFirstLot=0.1;
input int DistanceFromCurrentPriceSS=0;
input int DistanceBetweenSellS=20;
input int Distance_AddSellS=0;
input int SellStopTakeProfit=0;
input int SellStopSL=0;
input string S4="SellLimit Orders Settings";
input bool OpenSellLimitOrders=true;
input int NumberOfSellLimitOrders=50;
input double SellLimitFirstLot=0.1;
input int DistanceFromCurrentPriceSL=0;
input int DistanceBetweenSellL=20;
input int Distance_AddSellL=0;
input int SellLimitTakeProfit=0;
input int SellLimitSL=0;
input string S5=" Lots Multiplier ";
input bool UseMultiplier=true;
input bool X_Multiplier=true;
input double Multiplier=2;
input string S6=" Order Open Time/Price Settings ";
input bool HighLowCandle=false;
input bool OpenAtChoosenHour=false;
input int Hour_=12;
input double StartPrice=0;
input int Gap=3;
input bool OnlyOnce=false;
input string S7=" Close and Delete Orders ";
input bool FridayOpenOrdersFilter=true;
input bool FridayDeleteOrders=false;
input bool FridayCloseOrders=false;
input int _Hour=20;
input bool CloseAfterPassMinutes=false;
input int MinutesPass=100;
input bool CloseOrdersAfterProfit=true;
input bool DeleteOrdersAfterProfit=true;
input int Profit=200;
input bool CloseOrdersAfterLoss=false;
input double Loss=-200;
input string S8=" Order Management";
input int TrailingStop=0;
input int TrailingProfit=0;
input int TrailingStep=0;
input string S9="Time Filter";
input bool FridayCloseEA=false;
input int Friday_CloseHour=20;
bool enter;
double point;double Price;
int digits;int i,Q,Qq;
extern int MagicNumber=2533;
void OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
Comment("");
}
int orderscnt()
{
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber){
cnt++;
}
}
}
return(cnt);
}
int ordersPen()
{
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber&&OrderType()>OP_SELL){
cnt++;
}
}
}
return(cnt);
}
int orders(){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber&&OrderType()<=OP_SELL){
cnt++;
}
}
}
return(cnt);
}
void OnTick()
{
// код доступен только после оплаты
}
Comment("Programmed by MR.dollar"+"\n"+"Arabic Traders Forum"+"\n"+"www.arabictrader.com/vb"+"\n"+
"Number Of Pending Orders = "+ordersPen()+"\n"+"Number Of Market Orders = "+orders()+"\n"+
"Account Free Margin = "+DoubleToStr(AccountFreeMargin(),2)+"\n"+"Profit Value = "+DoubleToStr(AccountProfit(),2));
bool ss=true;
if(Qq+Q==orderscnt()&&!((FromHourTrade < ToHourTrade && TimeHour(TimeCurrent()) >= FromHourTrade && TimeHour(TimeCurrent()) < ToHourTrade) || (FromHourTrade > ToHourTrade && TimeHour(TimeCurrent()) >= FromHourTrade ||
TimeHour(TimeCurrent()) < ToHourTrade))&&UseHourTrade){
DeletePendingOrders();
}
if (UseHourTrade){
if(!((FromHourTrade < ToHourTrade && TimeHour(TimeCurrent()) >= FromHourTrade && TimeHour(TimeCurrent()) < ToHourTrade) || (FromHourTrade > ToHourTrade && TimeHour(TimeCurrent()) >= FromHourTrade ||
TimeHour(TimeCurrent()) < ToHourTrade))){
Comment("Non-Trading Hours!");
ss=false;
}
}
if(TrailingStop>0)MoveTrailingStop();
if(FridayCloseEA&&Hour()>=Friday_CloseHour&&DayOfWeek()==5)
return;
if(AddOrdersAfterClose&&orderscnt()>0){
OpenClosedOrders();
}
int totalNumber=0;
if(ss==true&&orderscnt()<1&&(OnlyOnce==false||enter==true)&&(FridayOpenOrdersFilter==false||DayOfWeek()!=5||Hour()<_Hour)&&(Hour()==Hour_||OpenAtChoosenHour==false)){
double lastlot;double newlot;double TP,SL;
lastlot=0;
if(OpenHedgeFirstTime)
{
if(HedgeSL==0){SL=0;}else{SL=Ask-HedgeSL*point;}
if(HedgeTP==0){TP=0;}else{TP=Ask+HedgeTP*point;}
OrderSend(Symbol(),OP_BUY,HedgeLots,NormalizeDouble(Ask,Digits),3*Q,NormalizeDouble(SL,Digits),NormalizeDouble(TP,Digits),"MR.dollar EA",MagicNumber,0,Blue);
if(HedgeSL==0){SL=0;}else{SL=Bid+HedgeSL*point;}
if(HedgeTP==0){TP=0;}else{TP=Bid-HedgeTP*point;}
OrderSend(Symbol(),OP_SELL,HedgeLots,NormalizeDouble(Bid,Digits),3*Q,NormalizeDouble(SL,Digits),NormalizeDouble(TP,Digits),"MR.dollar EA",MagicNumber,0,Red);
}
if(OpenSellLimitOrders){
for(i=1;i<=NumberOfSellLimitOrders;i++)
{
if(UseMultiplier){
if(X_Multiplier){
newlot=Multiplier*lastlot;
}
else{newlot=lastlot+SellLimitFirstLot;}
}
else{newlot=SellLimitFirstLot;}
if(newlot==0){newlot=SellLimitFirstLot;}
lastlot=newlot;
if(StartPrice==0){Price=Bid+(DistanceFromCurrentPriceSL*point)+(i*DistanceBetweenSellL*point+i*Distance_AddSellL*point);}
else{Price=StartPrice+(DistanceFromCurrentPriceSL*point)+(i*DistanceBetweenSellL*point);}
if(HighLowCandle){Price=High[1]+(DistanceFromCurrentPriceSL*point)+(i*DistanceBetweenSellL*point);}
if(SellLimitTakeProfit==0){TP=0;}else{TP=Price-SellLimitTakeProfit*point;}
if(SellLimitSL==0){SL=0;}else{SL=Price+SellLimitSL*point;}
if((StartPrice==0&&HighLowCandle==false)||(HighLowCandle==true&&Hour()==Hour_+1)||(Close[0]>=StartPrice-Gap*point&&Close[0]<=StartPrice+Gap*point)){
OrderSend(Symbol(),OP_SELLLIMIT,newlot,Price,3,SL,TP,"MR.dollarEA"+totalNumber+"_",MagicNumber,0,Red);
totalNumber++;
}
}
}
lastlot=0;
if(OpenBuyLimitOrders){
for(i=1;i<=NumberOfBuyLimitOrders;i++)
{
if(UseMultiplier){
if(X_Multiplier){
newlot=Multiplier*lastlot;
}
else{newlot=lastlot+BuyLimitFirstLot;}
}
else{newlot=BuyLimitFirstLot;}
if(newlot==0){newlot=BuyLimitFirstLot;}
lastlot=newlot;
if(StartPrice==0){Price=Ask-(DistanceFromCurrentPriceBL*point)-(i*DistanceBetweenBuyL*point+i*Distance_AddBuyL*point);}
else{Price=StartPrice-(DistanceFromCurrentPriceBL*point)-(i*DistanceBetweenBuyL*poinПоказано первые 50% кода (символов: 13499)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.