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

maxminwpr-mm.mq4

Вы автор или правообладатель?

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

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

О программе

Данный код представляет собой торгового советника для платформы MetaTrader 4 на языке MQL4. Советник использует индикаторы ZigZag и Williams %R (WPR) для формирования торговых сигналов, а также подключаемый файл TrailStop.mqh для управления стоп-лоссами. Включена система управления денежными средствами с несколькими режимами расчёта объёма позиции, а также отображение информационной панели на графике.

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

НастройкаОписание
MM Режим управления капиталом — Режим расчёта размера лота: -2 — микро, -1 — мини, 0 — фиксированный лот, положительные значения — расчёт с начислением.
Leverage Кредитное плечо — Множитель кредитного плеча, используемый при расчёте размера позиции в различных режимах управления капиталом.
Получить полный код

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

#define MAGICMA 111666888

extern int depth=12,
           deviation=5,
           backstep=3,
           per=14,
           mweek=5,
           mhour=23,
           slip=6,
           lots=1,
           SL=150,
           TP=50,
           TS=30;
extern double MM = -2;
extern double Leverage = 10;
int LotsMax = 100,  MarginChoke = 200;

#include <TrailStop.mqh>

int i,m,cnt;
int b,s,bloks,blokb;
double wpr,wpr1,swpr,porog,canal,MaxH,MinL,MaxHOld,MinLOld,ZZ,ZZ1,Htrend,Ltrend,bsig,ssig,LotMM;

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

void MoneyManagement() {  //-2=Micro//-1=Mini//0=Lots//1=Lots compounded

	if ( MM ==-2  ) {		
		LotMM = NormalizeDouble(MathCeil(AccountBalance()*Leverage/1000)/100,2);

   }	
	if ( MM ==-1  ) {		
		LotMM = NormalizeDouble(MathCeil(AccountBalance()*Leverage/10000)/10,1);

   }
	if ( MM == 0 ) {
		if ( AccountFreeMargin() < MarginChoke ) return(-1); 
		LotMM = lots;
	}
	if ( MM > 0 ) {

		LotMM = MathCeil(AccountBalance()*Leverage/10000/10);
 		if ( LotMM < 1 )  LotMM = 1;

	}
	if ( LotMM > LotsMax )  LotMM = LotsMax;
	return;
   }

void StartRoutine()
   {   
   if (MaxHOld!=MaxH) MaxHOld=MaxH;
   if (MinLOld!=MinL) MinLOld=MinL;

   ZZ=iCustom(Symbol(),0,"ZigZag",depth,deviation,backstep,0,0);
   ZZ1=iCustom(Symbol(),0,"ZigZag",depth,deviation,backstep,0,1);
   }

void PosCounter()
   {
   b=0;s=0;
   for (int cnt=0; cnt<=OrdersTotal(); cnt++)
      {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA) 
         {
         if (OrderType() == OP_SELL) s++;
         if (OrderType() == OP_BUY ) b++;
         }
      }
   }

void Block4()
   {
   MaxH=High[per];MinL=Low[per];
   for (int m=per; m>=0; m--)
      {
      if (High[m]>MaxH) MaxH=High[m];
      if (Low [m]<MinL) MinL=Low [m];
      }

   if (b+s==0)
      {
      porog=MathRound((0.40*(MaxH-MinL))/Point)*10;
      canal=(MaxH-MinL)/Point;
      }

   Htrend=MaxHOld-MaxH;
   Ltrend=MinLOld-MinL;

   if (b+s>0)
      {
      for (int x=0; x<OrdersTotal(); x++)
         {      
         OrderSelect(x, SELECT_BY_POS, MODE_TRADES);
         if (OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA) {

         if (OrderType() == OP_SELL) 
            {         
			   if (OrderProfit()>porog ||
			      (wpr<-85 && wpr > wpr1 && OrderProfit()>0) || 
			      (DayOfWeek()==mweek && mhour==Hour()))
			      {
			      OrderClose(OrderTicket(),OrderLots(),Ask,slip,White);
			      s--; 
			      ssig=0;
			      }
			   }

			i

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

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

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

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

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

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

Стоимость полного кода
365,10₽ ≈ $4.46