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

Scalp-M PRO 2.0

scalp-m pro 2.0.mq4
Вы автор или правообладатель?

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

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

О программе

Scalp-M PRO 2.0 — торговый советник для MetaTrader 4, написанный на MQL4. Советник работает на текущем графике и использует рыночные и торговые события платформы. В коде подтверждены обработчики OnTick, OnTimer, OnDeinit и OnChartEvent, а также торговые операции через OrderSend и OrderModify.

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

На графике отображается информационная панель с данными о счёте, спреде, минимальном стопе и результатах по паре, счёту, за сегодня, вчера, неделю и месяц. Также доступны кнопки ручного открытия ордеров BUY и SELL. Внешний вид панели настраивается цветами и размером шрифта.

Советник предназначен для работы на счёте, номер которого может быть привязан в коде; при несовпадении номера счёта выводится предупреждение. Точные торговые правила и внутренние расчёты в описании не раскрываются.

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

НастройкаОписание
Risk Риск — Параметр риска, используемый при расчёте объёма лота.
StopLoss Стоп-лосс — Базовый размер стоп-лосса в пунктах.
MaxStopLoss Максимальный стоп-лосс — Максимальный размер стоп-лосса в пунктах.
MinStopLoss Минимальный стоп-лосс — Минимальный размер стоп-лосса в пунктах.
Tral Трал — Размер трала в пунктах для сопровождения ордеров.
TralStart Начало трала — Расстояние в пунктах до начала трала.
TimeStart Час начала — Час начала торгового интервала.
TimeEnd Час окончания — Час окончания торгового интервала.
MaxSpread Максимальный спред — Максимально допустимый спред в пунктах для открытия ордера; 0 отключает проверку.
PipsStep Шаг в пунктах — Шаг в пунктах для определения точки входа по изменению цены.
Magic Магический номер — Идентификатор ордеров советника для их выбора и учёта.
SpeedEA Скорость советника — Период таймера в миллисекундах для вызова обработки.
Info Показывать информацию — Включает или отключает отображение информационной панели на графике.
TextColor Цвет текста — Цвет текста подписей на информационной панели.
InfoDataColor Цвет данных информации — Цвет текста числовых данных на информационной панели.
FonColor Цвет фона — Цвет фона информационной панели и предупреждающего блока.
FontSizeInfo Размер шрифта информации — Размер шрифта текста информационной панели и кнопок.
Получить полный код

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

#property version   "2.00"
#property strict

extern double    Risk             =0.01;  
extern double    StopLoss         =1;   
extern double    MaxStopLoss      =20;
extern double    MinStopLoss      =5;
extern double    Tral             =6;  
extern double    TralStart        =4;  
extern int       TimeStart        =0;   
extern int       TimeEnd          =1;
extern int       MaxSpread        =5; 
extern int       PipsStep         =22;
extern int       Magic            =2020;
extern int       SpeedEA          =50;
extern bool      Info             =true;  
extern color     TextColor        =White;   
extern color     InfoDataColor    =DodgerBlue; 
extern color     FonColor         =Black;   
extern int       FontSizeInfo     =7;      

string           Commemt          ="Scalp-M PRO 2.0 by www.mforex.pro";
int              D,o;
double           Lot              =0;
static double    price            =0;
double           Slb,Sls;
double           spread;
int              dig;
color            FonButtonBuy     =Blue;
color            FonButtonSell    =Red;
color            TextButtonBS     =White; 
color            ButtonBorder     =Blue;
color            ClickButton      =Black;
int              AccNumber        =0;

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

void OnDeinit(const int reason)
{
EventKillTimer();
ObjectsDeleteAll(0,OBJ_LABEL);
ObjectsDeleteAll(0,OBJ_RECTANGLE_LABEL);
}

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

void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam)
{

if(ObjectGetInteger(0,"TRADEs_B",OBJPROP_STATE))
 {ObjectSetInteger(0,"TRADEs_B",OBJPROP_BGCOLOR,ClickButton);}
else 
 {ObjectSetInteger(0,"TRADEs_B",OBJPROP_BGCOLOR,FonButtonBuy);}

if(ObjectGetInteger(0,"TRADEs_S",OBJPROP_STATE))
 {ObjectSetInteger(0,"TRADEs_S",OBJPROP_BGCOLOR,ClickButton);}
else 
 {ObjectSetInteger(0,"TRADEs_S",OBJPROP_BGCOLOR,FonButtonSell);}

if(id==CHARTEVENT_OBJECT_CLICK)
{string clickedChartObject=sparam;

if(clickedChartObject=="TRADEs_B")
  {o=OrderSend(Symbol(),OP_BUY,Lot,Ask,10,0,0,Commemt,Magic,0,Green);       
   ObjectSetInteger(0,"TRADEs_B",OBJPROP_STATE,false);}
if(clickedChartObject=="TRADEs_S")
  {o=OrderSend(Symbol(),OP_SELL,Lot,Bid,10,0,0,Commemt,Magic,0,Red);
   ObjectSetInteger(0,"TRADEs_S",OBJPROP_STATE,false);}

ChartRedraw();
}}

int CountHistBar(int type)
{
int count=0;
for(int i=OrdersHistoryTotal()-1;i>=0;i--)
 if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
  {
  if(Symbol()==OrderSymbol() && OrderMagicNumber()==Magic && OrderCloseTime()>=iTime(Symbol(),0,0) && (type==-1 || OrderType()==type)) 
  {
  count++;
  }
  }
return(count);}

void ModOrder()
{int tic;
 bool mod;
for(int i=OrdersTotal()-1;i>=0;i--)
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
tic=OrderTicket();

if (OrderType()==OP_BUY && OrderStopLoss()==0)
{mod=OrderModify(tic,OrderOpenPrice(),Slb,OrderTakeProfit(),0);}

if (OrderType()==OP_SELL && OrderStopLoss()==0)
{mod=OrderModify(tic,OrderOpenPrice(),Sls,OrderTakeProfit(),0);}
}}}

void Traling()
{int tic;
 double Price;
 double Stop;
 bool mod;
for(int i=OrdersTotal()-1;i>=0;i--)
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
tic=OrderTicket();
Price=OrderOpenPrice();
Stop=OrderStopLoss();

if (OrderType()==OP_BUY && Tral!=0)
   {if(Stop<Price && Bid-(Tral+TralStart)*Point>=Price)
      {mod=OrderModify(tic,OrderOpenPrice(),Price+TralStart*Point,OrderTakeProfit(),0);}
    if(Stop>=Price && Bid-Tral*Point>Stop)
      {mod=OrderModify(tic,OrderOpenPrice(),Bid-Tral*Point,OrderTakeProfit(),0);}}

if (OrderType()==OP_SELL && Tral!=0)

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

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

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

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

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

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

Стоимость полного кода
1 347,60₽ ≈ $16.47