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

noah10pips2006.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 общих тегов
Вы автор или правообладатель?

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

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

О программе

noah10pips2006 — это торговый советник для MetaTrader 4, который анализирует диапазон предыдущего торгового дня и рассчитывает ключевые уровни: среднюю точку (MP), границы входной зоны (er_hi, er_lo) и проходные уровни (hi_pass, lo_pass). Эти уровни отображаются на графике в виде горизонтальных линий для наглядности.

В заданное время советник выставляет отложенные ордера Buy Stop и Sell Stop, когда цена входит в соответствующие зоны относительно рассчитанных уровней. Поддерживается как фиксированный размер лота, так и расчёт лота на основе процента риска от свободных средств.

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

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

НастройкаОписание
MAGICNUM Магический номер ордера для идентификации сделок, открытых данным советником.
Lots Фиксированный размер лота, используемый при включённом режиме FixedLot.
StopLoss Расстояние в пунктах до стоп-лосса для новых ордеров.
TakeProfit Расстояние в пунктах до тейк-профита для новых ордеров.
TrailingStop Расстояние в пунктах для трейлинг-стопа после достижения порога TrailSecureProfit. При значении 0 трейлинг отключён.
slippage Допустимое проскальгивание в пунктах при исполнении ордеров.
MaximumRisk Процент риска от свободных средств, используемый для расчёта размера лота при отключённом FixedLot.
MaxLot Максимально допустимый размер лота при расчёте на основе риска.
MinLot Минимально допустимый размер лота.
FixedLot Переключатель фиксированного размера лота. При значении true используется фиксированный лот, при false — расчёт на основе риска.
NY 7,15; (TimeZoneOfData) Сдвиг часового пояса данных в часах (например, 7 для Нью-Йорка), используется для корректировки времени расчётов и торговых событий.
9:00 PM EST (StartHour) Час начала торговой сессии в указанном часовом поясе, когда советник начинает анализ и выставление ордеров.
StartMinute Минута начала торговой сессии в указанном часовом поясе.
EndHour Час окончания торговой сессии в указанном часовом поясе, после которого все позиции закрываются.
EndMinute Минута окончания торговой сессии в указанном часовом поясе.
FridayEndHour Час окончания торгов в пятницу в местном времени.
SecureProfit Количество пунктов прибыли, после которого стоп-лосс переводится в безубыточную зону.
TrailSecureProfit Количество пунктов прибыли, которое должно быть достигнуто перед началом трейлинга стоп-лосса.
0- dont open trades on friday, 1- Trade on friday (TradeFriday) Переключатель торговли в пятницу: 0 — торговля в пятницу запрещена, 1 — торговля в пятницу разрешена.
DontReverse Переключатель разворота: при значении 1 запрещает автоматический разворот позиции после закрытия ордера в течение дня.
StartYear Год начала действия советника (торговля не осуществляется до указанной даты).
StartMonth Месяц начала действия советника (торговля не осуществляется до указанной даты).
TradesSet Количество ордеров в наборе (по умолчанию 2 — по одному на каждую сторону).
0 = NONE, 1 = SELL, 2 = BUY (TypeSet) Тип набора ордеров: 0 — нет ограничений, 1 — только продажа, 2 — только покупка.
0=False, 1=True (ReverseSet) Переключатель разворота: при значении 1 разрешает автоматический разворот позиции после закрытия ордера в течение дня.
Получить полный код

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

#include <stdlib.mqh>

extern int    MAGICNUM=1;
extern double Lots = 0.1;
extern int StopLoss = 55;
extern int TakeProfit = 100;
extern int TrailingStop = 0;
extern int slippage = 3;

extern double MaximumRisk = 7.0;
extern double MaxLot = 100.0;
extern double MinLot = 1.0;
extern bool FixedLot = true;

extern int TimeZoneOfData=0; // NY 7,15;
extern int StartHour=2; // 9:00 PM EST
extern int StartMinute=0;
extern int EndHour=23;
extern int EndMinute=0;
extern int FridayEndHour=21;
extern int SecureProfit=10;
extern int TrailSecureProfit=16; 
extern int TradeFriday=1; // 0- dont open trades on friday, 1- Trade on friday
extern int DontReverse=1;
extern int StartYear=2005;
extern int StartMonth=6;
extern int TradesSet=2;
extern int TypeSet=0; // 0 = NONE, 1 = SELL, 2 = BUY
extern int ReverseSet=0;  // 0=False, 1=True

int Today, RefDate, LastBarOfDay, FirstBarOfDay, Loop;
double pre_lo, pre_hi, myC, myO, lotsi;
int Cnt;
int OpenTrades, FilledOrders;
double BuyPrice, SellPrice;
int TimetoOpen, TimetoClose, tmp, i;
int Trades=2; string Type="NONE"; bool Reverse=False;
int mode,tr;
int myEndHour, myFridayEndHour, myStartHour;
bool FirstTime=True;
double range;
double hi_pass;
double lo_pass;
double MP;
double er_hi;
double er_lo;
double erange,erange2;
double r3;
double diffs,diffb;
int res; bool bres;

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

   if (TimeYear(Time[0])<StartYear) return;

   lotsi=LotsRisk(StopLoss);

   if (FirstTime) {
	   if (TradesSet!=2 || TypeSet!=0 || ReverseSet!=0)  {
		   Trades  = TradesSet;
		   if (TypeSet == 0) Type = "NONE";
		   if (TypeSet == 1) Type = "SELL";
		   if (TypeSet == 2) Type = "BUY";
		   if (ReverseSet ==0) Reverse = False;
		   if (ReverseSet ==1) Reverse = True;
	   }
	   FirstTime=False;
   }

   Today=MathFloor(CurTime()/86400)*86400;
   Cnt=1;
   if (Today!=RefDate) {
	   RefDate=Today;
		   while ( Cnt<(Bars-1) && (Time[Cnt]-TimeZoneOfData*3600>=RefDate) ) {
			   Cnt++;
		   }
		   LastBarOfDay=Cnt;
		   if (DayOfWeek()==1) RefDate=Today-86400*3;
		   else RefDate=Today-86400;
		   while ( Cnt<(Bars-1) && (Time[Cnt]-TimeZoneOfData*3600>=RefDate) ) {
			   Cnt++;
		   }
	   FirstBarOfDay=Cnt-1;
   }

   pre_hi=High[Highest(NULL,0,MODE_HIGH,FirstBarOfDay-LastBarOfDay+1,LastBarOfDay)];
   pre_lo=Low[Lowest(NULL,0,MODE_LOW,FirstBarOfDay-LastBarOfDay+1,LastBarOfDay)];
   myC=Close[LastBarOfDay];

   hi_pass = pre_hi + 0.002 ;
   lo_pass = pre_lo - 0.002 ;
   MP = (((pre_hi - pre_lo) / 2.0) + pre_lo);
   MP = NormalizeDouble(MP,Digits);
   hi_pass = NormalizeDouble(hi_pass,Digits);
   lo_pass = NormalizeDouble(lo_pass,Digits);

   erange = (pre_hi - pre_lo);

   if (erange <= 0.016) 
     r3 = 0.004; 
   else
     r3 = erange * 0.25;

   er_hi = (pre_hi - r3);
   er_lo = (pre_lo + r3);
   erange2= (er_hi - er_lo)*10000.0;

   if (erange <= 0.008) {
	     ObjectDelete("LT80_txt");
	     ObjectCreate("LT80_txt",OBJ_TEXT,0,Time[35],MP);
	     ObjectSetText("LT80_txt","RANGE<80 ",10,"Arial",White);

   }

   ObjectDelete("MP");
   ObjectCreate("MP", OBJ_HLINE,0,Time[25],MP);
   ObjectSetText("MP","MP Range ",8,"Arial",White);
   ObjectSet("MP",OBJPROP_COLOR,Blue);
   ObjectSet("MP",OBJPROP_STYLE,STYLE_DOT);

   ObjectDelete("ER_Hi");
   ObjectCreate("ER_Hi", OBJ_HLINE,0,Time[25],er_hi);
   ObjectSetText("ER_Hi","Below Here BUYZONE ->MP ",8,"Arial",White);
   ObjectSet("ER_Hi",OBJPROP_COLOR,Green);
   ObjectSet("ER_Hi",OBJPROP_STYLE,STYLE_DASH);

   ObjectDelete("ER_Lo");
   ObjectCreate("ER_Lo", OBJ_HLINE,0,Time[25],er_lo);
   ObjectSetText("ER_Lo","Above Here SELLZONE ->MP ",8,"Arial",White);
   ObjectSet("ER_Lo",OBJPROP_COLOR,Red);
   ObjectSet("ER_Lo",OBJPROP_STYLE,STYLE_DASH);

   ObjectDelete("Hi_Pass");
   ObjectCreate("Hi_Pass", OBJ_HLINE,0,Time[25],hi_pass);
   ObjectSetText("Hi_Pass","HiPASS ",8,"Arial",White);
   ObjectSet("Hi_Pass",OBJPROP_COLOR,Green);
   ObjectSet("Hi_Pass",OBJPROP_STYLE,STYLE_DOT);

   ObjectDelete("Lo_Pass");
   ObjectCreate("Lo_Pass", OBJ_HLINE,0,Time[25],lo_pass);
   ObjectSetText("Lo_Pass","LoPASS ",8,"Arial",White);
   ObjectSet("Lo_Pass",OBJPROP_COLOR,Red);
   ObjectSet("Lo_Pass",OBJPROP_STYLE,STYLE_DOT);

   ObjectDelete("Pre_Hi");
   ObjectCreate("Pre_Hi", OBJ_HLINE,0,Time[25],pre_hi);
   ObjectSetText("Pre_Hi","PreHI ",8,"Arial",White);
   ObjectSet("Pre_Hi",OBJPROP_COLOR,Blue);
   ObjectSet("Pre_Hi",OBJPROP_STYLE,STYLE_DASH);

   ObjectDelete("Pre_Lo");
   ObjectCreate("Pre_Lo", OBJ_HLINE,0,Time[25],pre_lo);
   ObjectSetText("Pre_Lo","PreLO ",8,"Arial",White);
   ObjectSet("Pre_Lo",OBJPROP_COLOR,Blue);
   ObjectSet("Pre_Lo",OBJPROP_STYLE,STYLE_DASH);

   if ( (Ask > MP) && (Ask < er_hi) ) { 
      Comment("Entry Price In BUYZONE");
   } else {
      if ( (Bid < MP) && (Bid > er_lo) ) {
         Comment("Entry Price In SELLZONE");
      }
   }

   OpenTrades=0;
   for (Cnt=0; Cnt<OrdersTotal(); Cnt++) {
      if (!OrderSelect(Cnt,SELECT_BY_POS,MODE_TRADES)) continue;
	   if ( OrderSymbol()==Symbol() ) {
		   OpenTrades++;
		   if (OrderType()==OP_SELL || OrderType()==OP_BUY)
			   FilledOrders++;
	   }
   }

   Cnt=0;
   i=TimeZoneOfData;
   while (Cnt<=EndHour) {
	   if (i>23) i=0;	
	   myEndHour=i;
	   i++;
	   Cnt++;
   }

   myFridayEndHour=FridayEndHour;

   if ( (Hour()==myEndHour && Minute()>=EndMinute) || (DayOfWeek()==6 && Hour()==myFridayEndHour && Minute()>=EndMinute) ) {

      for (Cnt=OrdersTotal()-1; Cnt>=0; Cnt--) {
         if (!OrderSelect(Cnt,SELECT_BY_POS,MODE_TRADES)) continue;
	      if ( OrderSymbol()==Symbol() ) {
		      mode = OrderType();
			   Trades=2;
			   Type="NONE";
			   Reverse=False;
            tr=0; while (tr<5 && !IsTradeAllowed()) { tr++; Sleep(5000); }
 			   if (mode == OP_BUYSTOP)  bres=OrderDelete(OrderTicket());
 		      if (mode == OP_SELLSTOP)  bres=OrderDelete(OrderTicket());
 			   if (mode == OP_BUYLIMIT)  bres=OrderDelete(OrderTicket());
 		      if (mode == OP_SELLLIMIT)  bres=OrderDelete(OrderTicket());
 			   if (mode == OP_BUY)  bres=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Blue); //CloseOrder(ord(cnt,VAL_TICKET),ord(cnt,VAL_LOTS),bid,Slippage,Blue);
 			   if (mode == OP_SELL) bres=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Blue); //CloseOrder(ord(cnt,VAL_TICKET),ord(cnt,VAL_LOTS),ask,Slippage,red);
   		   if (!bres) Print("Error closing or deleting order : ",ErrorDescription(GetLastError())); 
		   }
	   }
   }

   Cnt=0;
   i=TimeZoneOfData;
   while (Cnt<=StartHour) {
	   if (i>23) i=0;	
	   myStartHour=i;
	   i++;
	   Cnt++;
   }

   if (TradeFriday ==1 || DayOfWeek()!=5) {
      if (Hour()==myStartHour && Minute()>=StartMinute) {
	     if (Op

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

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

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

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

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

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

Стоимость полного кода
1 017,80₽ ≈ $12.44