Scalp-M PRO 2.0
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «scalp-m pro 2.0@lifeindreamsworld.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Scalp-M PRO 2.0 — торговый советник для MetaTrader 4, написанный на MQL4. Он работает на графике выбранного инструмента, обрабатывает тики и события графика, а также использует таймер для периодического обновления котировок и повторного запуска торговой логики. Советник открывает рыночные ордера BUY и SELL, сопровождает их стоп-лоссом и трейлингом, а также предоставляет информационную панель с показателями счёта и кнопки ручной торговли.
Советник рассчитывает объём лота на основе баланса счёта и параметра Risk, ограничивая его минимальным и максимальным лотом инструмента. Стоп-лосс для открываемых позиций вычисляется от экстремума предыдущего бара и ограничивается параметрами MinStopLoss и MaxStopLoss. Трейлинг активируется при достижении заданных условий и изменяет стоп-лосс по мере движения цены. Торговые операции выполняются только при отсутствии открытых ордеров советника и при достаточной свободной марже.
Вход в рынок возможен как автоматически по изменению цены на заданное число пунктов, так и вручную с помощью кнопок BUY и SELL на информационной панели. Автоматические сделки учитывают максимально допустимый спред и разрешённый временной интервал. Все ордера помечаются заданным Magic-номером, что позволяет советнику отслеживать только свои позиции.
Информационная панель отображает текущий спред, минимальный стоп-уровень, баланс, средства и результаты по счёту за разные периоды. Внешний вид панели настраивается цветами текста, данных и фона, а также размером шрифта. Советник не является индикатором или библиотекой и предназначен для автоматической и полуавтоматической торговли на платформе MetaTrader 4.
Настройки программы
| Настройка | Описание |
|---|---|
| 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 и перейдите к оплате.