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

Multi Lot Scalper

multi lot scalper.mq4

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

#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 2 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 2 общих теговgeniusv101-ecn.mq4MQL4 / MetaTrader 4 · 2 общих теговmarket crusher ea guidlines.txtMQL · 2 общих тегов2 to 1 strategy with signals.pineTradingView · 2 общих теговfresh algo signals & overlays v25_6334471093901859175.pineTradingView · 2 общих тегов
Вы автор или правообладатель?

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

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

О программе

Торговый советник для платформы MetaTrader 4, предназначенный для работы на дневных графиках (D1). Рассчитывает уровни пивота и направление текущего тренда на основе данных свечных графиков, определяя точки входа в сделки BUY и SELL.

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

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

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

НастройкаОписание
HoursStart Час начала торговой сессии. Советник открывает позиции только в указанный временной интервал.
HoursEnd Час окончания торговой сессии. Вне этого часа советник не открывает новые позиции.
Lots Начальный размер лота для открытия позиций.
MaxLots Максимально допустимый размер лота для одной позиции.
MaxSpread Максимально допустимый спред в пунктах. При превышении советник не открывает позиции.
StopLoss Расстояние стоп-лосса в пунктах от цены открытия позиции.
TakeProfit Расстояние тейк-профита в пунктах от цены открытия позиции.
TrailingStop Расстояние трейлинг-стопа в пунктах от цены открытия позиции.
MaxTrades Максимальное количество одновременно открытых позиций на символе.
Pips Расстояние в пунктах для размещения нового ордера относительно последней цены.
SecureProfit Уровень прибыли, при достижении которого срабатывает защита аккаунта и закрываются позиции.
OrderstoProtect Количество позиций, при достижении которого активируется механизм защиты аккаунта.
ReverseCondition Параметр обратного условия, влияющий на логику открытия позиций.
EURUSDPipValue Значение пункта для валютной пары EURUSD, используемое для расчёта прибыли и убытков.
EURGBPPipValue Значение пункта для валютной пары EURGBP, используемое для расчёта прибыли и убытков.
GBPUSDPipValue Значение пункта для валютной пары GBPUSD, используемое для расчёта прибыли и убытков.
USDCHFPipValue Значение пункта для валютной пары USDCHF, используемое для расчёта прибыли и убытков.
USDJPYPipValue Значение пункта для валютной пары USDJPY, используемое для расчёта прибыли и убытков.
mm Параметр управления денежным риском. При ненулевом значении размер лота рассчитывается автоматически на основе баланса и параметра risk.
risk Процент риска от баланса счёта, используемый для автоматического расчёта размера лота при активном mm.
TimeZoneofData Настройка часового пояса данных для корректного определения торговых часов.
Получить полный код

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

#include <stdlib.mqh>

extern int HoursStart = 20;
extern int HoursEnd = 7;
extern double Lots = 0.1;
extern double MaxLots=100;
extern double MaxSpread = 3;
extern double StopLoss = 100;
extern double TakeProfit = 10.00;
extern double TrailingStop = 5.00;

extern double MaxTrades = 5;
extern double Pips = 5;
extern double SecureProfit = 10;
extern double AccountProtection = 1;
extern double OrderstoProtect = 3;
extern double ReverseCondition = 0;
extern double EURUSDPipValue = 10;
extern double EURGBPPipValue = 10;
extern double GBPUSDPipValue = 10;
extern double USDCHFPipValue = 7.94;
extern double USDJPYPipValue = 9.03;
extern double mm = 0;
extern double risk = 12;
extern double AccountisNormal = 0;
extern double TimeZoneofData = 0;

double OpenOrders = 0;
int cnt = 0;
double slippage = 5;
double sl = 0;
double tp = 0;
double BuyPrice = 0;
double SellPrice = 0;
double lotsi = 0;
double mylotsi = 0;
double mode = 0;
double MyOrderType=0;
bool ContinueOpening = True;
double LastPrice = 0;
double PreviousOpenOrders = 0;
double Profit = 0;
double LastTicket = 0;
double LastType = 0;
double LastClosePrice = 0;
double LastLots = 0;
double Pivot = 0;
double PipValue = 0;
bool Reversed = False;
string text = "";
string text2 = "";
double myl = 0;
double myh = 0;
double myC = 0;
double myO = 0;
double mypivot = 0;
double Today = 0;
double RefDate = 0;
double LastBarOfDay = 0;
double FirstBarOfDay = 0;
double Loop = 0;
double myyh = 0;
double myyl = 0;
double myyc = 0;
double p = 0;
double flp = 0;
double feh = 0;
double fel = 0;
double ph = 0;
double pl = 0;
double gap = 0;
double spread = 0;
bool permit=false;
string day, trend, start_hours, end_hours;

bool SetObjectText(string name, string text, string font, int size, color Acolor)
{
   return(ObjectSetText(name, text, size, font, Acolor));
}

bool MoveObject(string name, int type, datetime Atime, double Aprice, datetime Atime2 = 0, double Aprice2 = 0, color Acolor = CLR_NONE, int Aweight = 0, int Astyle = 0)
{
   if (ObjectFind(name) != -1) {
      int OType = ObjectType(name);

      if ((OType == OBJ_VLINE) ||
         (OType == OBJ_HLINE) ||
         (OType == OBJ_TRENDBYANGLE) ||
         (OType == OBJ_TEXT) ||
         (OType == OBJ_ARROW) ||
         (OType == OBJ_LABEL)) {
         return(ObjectMove(name, 0, Atime, Aprice));
      }

      if ((OType == OBJ_GANNLINE) ||
         (OType == OBJ_GANNFAN) ||
         (OType == OBJ_GANNGRID) ||
         (OType == OBJ_FIBO) ||
         (OType == OBJ_FIBOTIMES) ||
         (OType == OBJ_FIBOFAN) ||
         (OType == OBJ_FIBOARC) ||
         (OType == OBJ_RECTANGLE) ||
         (OType == OBJ_ELLIPSE) ||
         (OType == OBJ_CYCLES) ||
         (OType == OBJ_TREND) ||
         (OType == OBJ_STDDEVCHANNEL) ||
         (OType == OBJ_REGRESSION)) {
         return(ObjectMove(name, 0, Atime, Aprice) && ObjectMove(name, 1, Atime2, Aprice2));
      }
   }
   else {
      return(ObjectCreate(name, type, 0, Atime, Aprice, Atime2, Aprice2, 0, 0) && ObjectSet(name, OBJPROP_COLOR, Acolor));
   }
}

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

if( AccountisNormal == 1 ) {
   if( mm != 0 ) lotsi = MathCeil(AccountBalance() * risk / 10000) ; else lotsi = Lots;
}
else {
   if( mm != 0 ) lotsi = MathCeil(AccountBalance() * risk / 10000) / 10 ; else lotsi = Lots;
}

if( lotsi > 100 ) lotsi = 100;

OpenOrders = 0;
for( cnt = 0; cnt < OrdersTotal(); cnt++ ) {
   OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
   if( OrderSymbol() ==  Symbol() ) OpenOrders++;
}
myh = High[0];
myl = Low[0];
myC = Close[0];
myO = Open[0];
myyh = High[1];
myyl = Low[1];
myyc = Close[1];
p  = (myyh + myyl + myyc + myO) / 4;
ph = (myyh + myh + myyc + myO) / 4;
pl = (myyl + myl + myyc + myO) / 4;
flp = (myh + myl + myC) / 3;
gap = MathAbs(p - flp) / Point;

MoveObject("P",OBJ_HLINE,Time[0],p,Time[0],p,Gold,1,STYLE_SOLID);
SetObjectText("P_txt","Pivot Zone","Arial",7,White);
MoveObject("P_txt",OBJ_TEXT,Time[0],p,Time[0],p,White);

if( Ask > p && Ask > flp ) {
   MoveObject("FLP",OBJ_HLINE,Time[0],flp,Time[0],flp,LimeGreen,1,STYLE_SOLID);
   SetObjectText("FLP_txt","Floating Trend Direction - LONG","Arial",7,White);
   MoveObject("FLP_txt",OBJ_TEXT,Time[0],flp,Time[0],flp,White);
   trend = "LONG";
}

if( Bid < p && Bid < flp ) {
   MoveObject("FLP",OBJ_HLINE,Time[0],flp,Time[0],flp,Red,1,STYLE_SOLID);
   SetObjectText("FLP_txt","Floating Trend Direction - SHORT","Arial",7,White);
   MoveObject("FLP_txt",OBJ_TEXT,Time[0],flp,Time[0],flp,White);
   trend = "SHORT";
}

  if(DayOfWeek()==0) day="Sun";
  if(DayOfWeek()==1) day="Mon";
  if(DayOfWeek()==2) day="Tue";
  if(DayOfWeek()==3) day="Wed";
  if(DayOfWeek()==4) day="Thu";
  if(DayOfWeek()==5) day="Fri";
  if(DayOfWeek()==6) day="Sat";

  start_hours=HoursStart;
  if(StringLen(start_hours)==1) start_hours="0"+start_hours;
  end_hours=HoursEnd;
  if(StringLen(end_hours)==1)   end_hours="0"+end_hours;

  Comment("\n","Account: ",AccountNumber()," - ",AccountName(),"\n",
          "Platform''s Day: ",day,"  Date & Time: ",TimeToStr(TimeCurrent()),"\n",
          "Start Hours: ",start_hours,"  End Hours: ",end_hours,"\n",
          "Lots:  Initial = ",DoubleToStr(Lots,2),"  Maximum =",DoubleToStr(MaxLots,2),"\n",
          "Balance: ",DoubleToStr(AccountBalance(),2),"  Equity: ",DoubleToStr(AccountEquity(),2),"\n",
          "Max Spread = ",DoubleToStr(MaxSpread,0),"  Stop Loss = ",DoubleToStr(StopLoss,0),"\n",
          "Take Profit = ",DoubleToStr(TakeProfit,0),"  Trailing Stop = ",DoubleToStr(TrailingStop,0),"\n",
          "'#10' Last Price = ",LastPrice,"  Previous Open Orders = ",PreviousOpenOrders,"\n",
          "'#10' Continue Opening = ",ContinueOpening,"  Order Type = ",MyOrderType,"  '#10' ",text2,"\n",     
          "'#10' Lots = ",lotsi,"  '#10' ",text,"  Trend Bias: ",trend );

   PipValue = 5;
   if (Symbol()== "EURUSDm") PipValue = EURUSDPipValue;
   if (Symbol()== "EURGBPm") 

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

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

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

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

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

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

Стоимость полного кода
895,80₽ ≈ $10.95