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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.