Zone Recovery Area
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «zone recovery area.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Это торговый советник для платформы MetaTrader 4 на языке MQL4. Советник анализирует пересечение двух скользящих средних для определения направления торговли и реализует стратегию восстановления зоны с серией последовательных сделок. Используются стандартные торговые функции MetaTrader для размещения и закрытия ордеров.
Настройки программы
| Настройка | Описание |
|---|---|
| TakeProfit | Take Profit — Размер прибыли в пунктах для установки уровня Take Profit при открытии и последующих сделках. |
| Zone_Recovery_Area | Зона восстановления — Смещение в пунктах, определяющее зону, в которой размещаются встречные ордера для восстановления позиции. |
| str5 | Быстрая скользящая средняя — Текстовый параметр-подпись, обозначающий группу настроек быстрой скользящей средней. |
| Period1 | Период быстрой скользящей средней — Период быстрой скользящей средней, используемой для формирования сигнала на покупку. |
| str6 | Медленная скользящая средняя — Текстовый параметр-подпись, обозначающий группу настроек медленной скользящей средней. |
| Period2 | Период медленной скользящей средней — Период медленной скользящей средней, используемой для формирования сигнала на продажу. |
| MAGICNUMBER | Магический номер — Базовый магический номер для идентификации ордеров советника; дополнительные номера формируются автоматически. |
Поиск по коду файла
#property version "1.00"
#property strict
extern double TakeProfit=150; //Take Profit(in pips)
extern double Zone_Recovery_Area=50; //Zone_Recovery_Area(in pips)
input string str5="Fast moving average";
input int Period1=20; //Fast moving average(in pips)
input string str6="Slow moving average";
input int Period2=200; //Slow moving average(in pips)
input int MAGICNUMBER=1111;
double buyprice;
bool result;
int MAGICNUMBER1=MAGICNUMBER;
int MAGICNUMBER2=MAGICNUMBER+1;
int MAGICNUMBER3=MAGICNUMBER+2;
int MAGICNUMBER4=MAGICNUMBER+3;
int MAGICNUMBER5=MAGICNUMBER+4;
int MAGICNUMBER6=MAGICNUMBER+5;
int MAGICNUMBER7=MAGICNUMBER+6;
int MAGICNUMBER8=MAGICNUMBER+7;
int MAGICNUMBER9=MAGICNUMBER+8;
int MAGICNUMBER10=MAGICNUMBER+9;
int MAGICNUMBER11=MAGICNUMBER+10;
int MAGICNUMBER12=MAGICNUMBER+11;
int err,T;
double pips;
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
}
void OnTick()
{
// код доступен только после оплаты
}
bool isnewcandle()
{
static int barsonchart=0;
if(Bars==barsonchart)
return(false);
barsonchart=Bars;
return(true);
}
void ZONE_RECOVERY1()
{
int iCount=0;
int Count_one_trade_a=0;
int Count_one_trade_b=0;
int Count_one_trade_c=0;
int Count_one_trade_d=0;
int Count_one_trade_e=0;
{
if(Bars<100)
{
Print("bars less than 100");
return;
}
if(IsTradeAllowed()==false)
{
Print("Trade IS NOT Allowed");
return;
}
}
if(CheckMoneyForTrade(Symbol(),0.01,OP_BUY)==1)
if(OrdersTotal()==0)
{
buyprice=Ask;
if(CheckVolumeValue(0.01)==true)
int ticket16=OrderSend(Symbol(),OP_BUY,LotsOptimized1Mx(0.01),Ask,3,Ask-(TakeProfit*pips+Zone_Recovery_Area*pips),Ask+TakeProfit*pips,"1",MAGICNUMBER1,0,Green);
}
if(OrdersTotal()>=1)
{
for(iCount=0;iCount<OrdersTotal();iCount++)
{
for(int buy1=OrdersTotal()-1;buy1>=0;buy1--)
{
if(Count_one_trade_a<1)
if(OrderSelect(buy1,SELECT_BY_POS,MODE_TRADES))
if(OrderMagicNumber()==MAGICNUMBER1)
if(OrderSymbol()==Symbol())
if(OrderType()==OP_BUY)
if((OrderOpenPrice()-Zone_Recovery_Area*pips>Bid) && (OrderOpenPrice()>Bid))
if(CheckMoneyForTrade(Symbol(),0.02,OP_SELL)==1)
if(CheckVolumeValue(0.02)==true)
int ticket2=OrderSend(Symbol(),OP_SELL,LotsOptimized1Mx(0.02),Bid,3,OrderOpenPrice()+TakeProfit*pips,OrderOpenPrice()-(TakeProfit*pips+Zone_Recovery_Area*pips),"2",MAGICNUMBER2,0,Red);
exit();//CLOSE SELL
Count_one_trade_a++;
}
for(int buy2=OrdersTotal()-1;buy2>=0;buy2--)
{
if(Count_one_trade_b<1)
if(OrderSelect(buy2,SELECT_BY_POS,MODE_TRADES))
if(OrderMagicNumber()==MAGICNUMBER2)
if(OrderSymbol()==Symbol())
if(OrderType()==OP_SELL)
if(Ask>buyprice)
if(CheckMoneyForTrade(Symbol(),0.04,OP_BUY)==1)
if(CheckVolumeValue(0.04)==true)
int ticket3=OrderSend(Symbol(),OP_BUY,LotsOptimized1Mx(0.04),Ask,3,buyprice-(TakeProfit*pips+Zone_Recovery_Area*pips),buyprice+TakeProfit*pips,"3",MAGICNUMBER3,0,Green);
exit();//CLOSE SELL
Count_one_trade_b++;
}
for(int buy3=OrdersTotal()-1;buy3>=0;buy3--)
{
if(Count_one_trade_c<1)
if(OrderSelect(buy3,SELECT_BY_POS,MODE_TRADES))
if(OrderMagicNumber()==MAGICNUMBER3)
if(OrderSymbol()==Symbol())
if(OrderType()==OP_BUY)
if(buyprice-Zone_Recovery_Area*pips>Bid)
if(CheckMoneyForTrade(Symbol(),0.08,OP_SELL)==1)
if(CheckVolumeValue(0.08)==true)
int ticket4=OrderSend(Symbol(),OP_SELL,LotsOptimized1Mx(0.08),Bid,3,buyprice+TakeProfit*pips,buyprice-(TakeProfit*pips+Zone_Recovery_Area*pips),"4",MAGICNUMBER4,0,Red);
exit();//CLOSE SELL
Count_one_trade_c++;
}
for(int buy4=OrdersTotal()-1;buy4>=0;buy4--)
{
if(Count_one_trade_d<1)
if(OrderSelect(buy4,SELECT_BY_POS,MODE_TRADES))
if(OrderMagicNumber()==MAGICNUMBER4)
if(OrderSymbol()==Symbol())
if(OrderType()==OP_SELL)
if(Ask>buyprice)
if(CheckMoneyForTrade(Symbol(),0.16,OP_BUY)==1)
if(CheckVolumeValue(0.16)==true)
int ticket5=OrderSend(Symbol(),OP_BUY,LotsOptimized1Mx(0.16),Ask,3,buyprice-(TakeProfit*pips+Zone_Recovery_Area*pips),buyprice+TakeProfit*pips,"5",MAGICNUMBER5,0,Green);
exit();//CLOSE SELL
Count_one_trade_d++;
}
for(int buy5=OrdersTotal()-1;buy5>=0;buy5--)
{
if(Count_one_trade_e<1)
if(OrderSelect(buy5,SELECT_BY_POS,MODE_TRADES))
if(OrderMagicNumber()==MAGICNUMBER5)
if(OrderSymbol()==Symbol())
if(OrderType()==OP_BUY)
if(buyprice-Zone_Recovery_Area*pips>Bid)
if(CheckMoneyForTrade(Symbol(),0.32,OP_SELL)==1)
if(CheckVolumeValue(0.32)==true)
int ticket6=OrderSend(Symbol(),OP_SELL,LotsOptimized1Mx(0.32),Bid,3,buyprice+TakeProfit*pips,buyprice-(TakeProfit*pips+Zone_Recovery_Area*pips),"6",MAGICNUMBER6,0,Red);
exit();//CLOSE SELL
Count_one_trade_e++;
}
}
}
}
void ZONE_RECOVERY2()
{
int iCount=0;
int Count_one_trade_f=0;
int Count_one_trade_g=0;
int Count_one_trade_h=0;
int Count_one_trade_i=0;
int Count_one_trade_j=0;
int Count_one_trade_k=0;
{
if(Bars<100)
{
Print("bars less than 100");
return;
}
if(IsTradeAllowed()==false)
{
Print("Trade IS NOT Allowed");
return;
}
}
if(OrdersTotal()==0)
{
buyprice=Bid;
if(CheckMoneyForTrade(Symbol(),0.01,OP_SELL)==1)
if(CheckVolumeValue(0.01)==true)
int ticket55=OrderSend(Symbol(),OP_SELL,LotsOptimized1Mx(0.01),Bid,3,Bid+TakeProfit*pips+Zone_Recovery_Area*pips,Bid-TakeProfit*pips,"7",MAGICNUMBER7,0,Red);
}
if(OrdersTotal()>=1)
{
for(iCount=0;iCount<OrdersTotal();iCount++)
{
for(int sell1=OrdersTotal()-1;sell1>=0;sell1--)
{
if(Count_one_trade_f<1)
if(OrderSelect(sell1,SELECT_BY_POS,MODE_TRADES))
if(OrderMagicNumber()==MAGICNUMBER7)
if(OrderSymbol()==Symbol())
if(OrderType()==OP_SELL)
if(OrderOpenPrice()+Zone_Recovery_Area*pips<Ask)
if(CheckMoneyForTradПоказано первые 50% кода (символов: 11379)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.