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

oilfxprobreakouts

oilfxpro_gold_breakouts_freeversion.mq4

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

#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 1 общих теговsma crossover scalper ea for mt4.mq4MQL4 / MetaTrader 4 · 1 общих теговr15 pivot points expert advisor by @fundedmillionairess.mq4MQL4 / MetaTrader 4 · 1 общих теговnewstrader.mq5MQL5 / MetaTrader 5 · 1 общих теговmm3.0_flip_codepro_v3.1_with_cooldown@lifeindreamsworld.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Советник для платформы MetaTrader 4, предназначенный для автоматической торговли на валютном и металлическом рынке. Размещает отложенные ордера на пробой уровней в начале новых торговых сессий, используя экстремумы предыдущей сессии и заданное смещение в пунктах.

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

НастройкаОписание
BeginSession1 Начало первой сессии — Час начала первой торговой сессии для размещения ордеров
EndSession1 Окончание первой сессии — Час окончания первой торговой сессии, в который рассчитываются уровни для отложенных ордеров
BeginSession2 Начало второй сессии — Час начала второй торговой сессии для размещения ордеров
EndSession2 Окончание второй сессии — Час окончания второй торговой сессии, в который рассчитываются уровни для отложенных ордеров
Lots Объём сделки — Размер позиции в лотах
PipsForEntry Смещение для входа — Отступ в пунктах от экстремума предыдущей сессии для размещения отложенного ордера
LocalTimeZone Локальный часовой пояс — Смещение часового пояса локального сервера
DestTimeZone Часовой пояс назначения — Смещение часового пояса целевого торгового рынка
1 = yes / 0 = no (ClsOnlUnprTX) Закрытие нереализованных позиций — Признак закрытия нереализованных позиций в конце торгового дня
1 = yes / 0 = no (ProtectYourInvestments) Защита инвестиций — Признак защиты прибыли при движении цены в прибыльную сторону
1 - classic / 2 - ATR / 3 - HalfVotality (Type_TS_Calc) Тип расчёта трейлинг-стопа — Метод расчёта уровня трейлинг-стопа
FactorTSCalculation Множитель расчёта трейлинг-стопа — Коэффициент, используемый при расчёте трейлинг-стопа
TrailingStop Трейлинг-стоп — Расстояние трейлинг-стопа в пунктах
TakeProfit Тейк-профит — Уровень фиксации прибыли в пунктах
InitialStopLoss Начальный стоп-лосс — Начальный уровень стоп-лосса в пунктах
Получить полный код

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

#include <stdlib.mqh>

extern int BeginSession1=13;
extern int EndSession1=14;
extern int BeginSession2=11;
extern int EndSession2=12;
extern double Lots = 0.2;
extern int PipsForEntry= 15;

extern int LocalTimeZone= 1;
extern int DestTimeZone= 1;

extern int ClsOnlUnprTX=1; // 1 = yes / 0 = no
extern int ProtectYourInvestments=0; // 1 = yes / 0 = no
extern int Type_TS_Calc=1; // 1 - classic / 2 - ATR / 3 - HalfVotality
extern double FactorTSCalculation = 0.5;

extern double TrailingStop = 40;
extern double TakeProfit = 70;
extern double InitialStopLoss=40;

datetime bartime = 0;
double Slippage=3;

int start()
   {
      // код доступен только после оплаты
   }
   int cnt, ticket, err, i, j;
   int MagicNumber;
   double ts, tp, sl, LowestPrice, HighestPrice, Price;
   bool Order[5];
   string setup;
   datetime Validity=0;

   int TimeZoneDiff= LocalTimeZone - DestTimeZone;   

	MagicNumber = func_Symbol2Val(Symbol())*100; 

   setup="oilfxpro" + Symbol();

   if (bartime == Time[0]) {
      return(0);
   } else {
      bartime = Time[0]; 
   }

   for(cnt=OrdersTotal();cnt>=0;cnt--)
   {
      if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) {
      err = GetLastError();
  		if (err>1) { Print("Error selecting order [" + setup + "]: (" + err + ") " + ErrorDescription(err)); }

      if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && (OrderMagicNumber()==(MagicNumber+1) || OrderMagicNumber()==(MagicNumber+3))) {
      	if(TimeDay(OrderOpenTime())!=TimeDay(Time[0])) {
            if (ClsOnlUnprTX==1) {
               if(Bid-OrderOpenPrice()<Point*TrailingStop) {
                  OrderClose(OrderTicket(), Lots, Bid, 3, Red);
               }  
            } else {
         		 OrderClose(OrderTicket(), Lots, Bid, 3, Red);
         	}
            err = GetLastError();
      		if (err>1) { Print("Error closing buy order [" + setup + "]: (" + err + ") " + ErrorDescription(err)); }
			} else if (TrailingStop>0) {
			   if (ProtectYourInvestments==1 && Bid-OrderOpenPrice()>Point*TrailingStop) {
			      ts = OrderOpenPrice();
			   } else {
			      if (Type_TS_Calc==1) {
                  ts = Bid-(Point*TrailingStop);
               } else if (Type_TS_Calc==2) {
                  ts = Low[0] - FactorTSCalculation * iATR(NULL,0,14,0);
               } else if (Type_TS_Calc==3) {
                  ts = Low[0] - (FactorTSCalculation *(High[0]-Low[0]));
               }
				}
				if (OrderStopLoss()<ts && Bid-OrderOpenPrice()>Point*TrailingStop) OrderModify(OrderTicket(),OrderOpenPrice(),ts,OrderTakeProfit(),0,White);
            err = GetLastError();
      		if (err>1) { Print("Error modifying buy order [" + setup + "]: (" + err + ") " + ErrorDescription(err)); }
			}
      } else if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && (OrderMagicNumber()==(MagicNumber+2) || OrderMagicNumber()==(MagicNumber+4))) {
      	if(TimeDay(OrderOpenTime())!=TimeDay(Time[0])) {
            if (ClsOnlUnprTX==1) {
               if((OrderOpenPrice()-Ask)<(Point*TrailingStop)) {
                  OrderClose(OrderTicket(), Lots, Ask, 3, Red);
               }
            } else {
         		 OrderClose(OrderTicket(), Lots, Ask, 3, Red);
         	}
            err = GetLastError();
      		if (err>1) { Print("Error closing Sell order [" + setup + "]: (" + err + ") " + ErrorDescription(err)); }
			} else if (TrailingStop>0) {	
			   if (ProtectYourInvestments==1 && (OrderOpenPrice()-Ask)>(Point*TrailingStop)) {
			      ts = OrderOpenPrice();
			   } else {
			      if (Type_TS_Calc==1) {
                  ts = Ask+(Point*TrailingStop);
               } else if (Type_TS_Calc==2) {
                  ts = High[0] + FactorTSCalculation * iATR(NULL,0,14,0);
               } else if (Type_TS_Calc==3) {
                  ts = High[0] + (FactorTSCalculation *(High[0]-Low[0]));
               }
				}

				if (OrderStopLoss()>ts && (OrderOpenPrice()-Ask)>(Point*TrailingStop)) OrderModify(OrderTicket(),OrderOpenPrice(),ts,OrderTakeProfit(),0,White);
            err = GetLastError();
      		if (err>1) { Print("Error modifyin sell order [" + setup + "]: (" + err + ") " + ErrorDescription(err)); }
			}
		}
		}
	}

   if(AccountFreeMargin()<(1000*Lots)) return(0);  

	Validity=StrToTime(TimeYear(Time[0]) + "." + TimeMonth(Time[0]) + "." + TimeDay(Time[0]) + " 16:59")+(TimeZoneDiff*3600);

	for(i=1;i<5;i++) { Order[i]=false; }

   for(cnt=OrdersTotal();cnt>=0;cnt--) {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

		err = GetLastError();

      if(OrderSymbol()==Symbol() && OrderMagicNumber()==(MagicNumber+1)) {
      	Order[1]=true;
      } else if (OrderSymbol()==Symbol() && OrderMagicNumber()==(MagicNumber+2)) {
      	Order[2]=true;
      } else if (OrderSymbol()==Symbol() && OrderMagicNumber()==(MagicNumber+3)) {
      	Order[3]=true;
      } else if (OrderSymbol()==Symbol() && OrderMagicNumber()==(MagicNumber+4)) {
      	Order[4]=true;
      }
	}      	

	if (TimeHour(Time[0])==EndSession1+TimeZoneDiff && TimeMinute(Time[0])==0) {

		LowestPrice=Low[Lowest(NULL, 0, MODE_LOW, 240/Period(), 0)];
		HighestPrice=High[Highest(NULL, 0, MODE_HIGH, 240/Period(), 0)];

		Print("Determine Low: " + LowestPrice + " and High: " + HighestPrice + " for timephase " + T

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

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

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

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

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

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

Стоимость полного кода
788,20₽ ≈ $9.63