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

mgv10-block.mq4

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

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

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

О программе

Данный продукт представляет собой торговый советник для платформы MetaTrader 4, написанный на языке MQL4. Советник предназначен для автоматической работы на рынке: он размещает отложенные ордера типа BUYSTOP и SELLSTOP, управляет их параметрами и осуществляет закрытие позиций при достижении заданного уровня прибыли.

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

Торговые операции выполняются через стандартные API MetaTrader 4, включая отправку, модификацию и удаление ордеров. Советник фильтрует ордера по символу и идентификатору, обеспечивая работу только с собственными позициями. Перед началом работы выполняется проверка авторизации, привязанная к номеру торгового счёта.

Продукт не содержит встроенных библиотек и работает как автономный эксперт-советник с обработкой событий OnInit, OnDeinit и OnTick.

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

НастройкаОписание
Lot Начальный размер лота для открытия торговых позиций.
Step Расстояние между ордерами, задаваемое в пунктах базового инструмента.
Nap_strategy Стратегия увеличения лота: умножение (Мартингейл), прибавление фиксированного значения или отключение.
K Коэффициент, применяемый при расчёте размера лота в зависимости от выбранной стратегии увеличения.
TP Тейк-профит в валюте депозита, при достижении совокупной прибыли которого происходит закрытие всех позиций.
ExpertID Идентификатор советника, используемый для привязки и фильтрации торговых ордеров.
Sleeppage Допустимое прокальзывание цены при открытии ордеров.
Получить полный код

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

#property version   "1.00"
#property strict

extern double Lot = 0.01;//Первоначальный лот
extern int Step = 1000;//Расстояние между ордерами

enum Enum_strategy {num1 = 1/* Мартингейл (умножение) */, num2 = 2/* Прибавление лота */, num3 = 3/* Выключено */};
input Enum_strategy Nap_strategy = 2;//Увеличение лота
extern double K = 0.01;//Коэффициент

extern double TP = 10;//Тейк профит (в валюте депозита)
extern int ExpertID = 5551555;//Регистрационный номер
extern int Sleeppage = 30;//Прокальзывание
extern int KEY = *;//Ключ (к номеру счета)

double ssg;
int all;

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

void OnDeinit(const int reason)
  {

  }

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

int OrderOpen(int Order_Type, double Order_Lot, int Order_Slippage, int OrderSL, double OrderTP, string Order_Comment, int Order_Magic, color Order_Color,double SSGs) {

int U;
double SLbs = 0;
double TPbs = 0;
double SLss = 0;
double TPss = 0;

if(OrderSL > 0){SLbs = SSGs-OrderSL*Point; SLss = SSGs+OrderSL*Point;}
if(OrderTP > 0){TPbs = SSGs+OrderTP*Point; TPss = SSGs-OrderTP*Point;}

if(Order_Type == OP_BUYSTOP)U = OrderSend(Symbol(),Order_Type,Order_Lot,NormalizeDouble(SSGs,Digits),Order_Slippage,NormalizeDouble(SLbs,Digits),NormalizeDouble(TPbs,Digits),Order_Comment,Order_Magic,0,Order_Color);
if(Order_Type == OP_SELLSTOP)U = OrderSend(Symbol(),Order_Type,Order_Lot,NormalizeDouble(SSGs,Digits),Order_Slippage,NormalizeDouble(SLss,Digits),NormalizeDouble(TPss,Digits),Order_Comment,Order_Magic,0,Order_Color);

return(0);
}

int Orders(int type) {

int i=0, c=0;
for (i = OrdersTotal()-1; i>=0; i--) {
if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
if(OrderType()==type && OrderSymbol()==Symbol() && OrderMagicNumber() == ExpertID)
c++;
} 
return(c);
}

int DELL(){

for(int ig44=OrdersTotal()-1;ig44>=0;ig44--)
{
if(OrderSelect(ig44,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==Symbol() && OrderMagicNumber() == ExpertID)
{
if(OrderType() == OP_BUYLIMIT || OrderType() == OP_BUYSTOP)bool FD = OrderDelete(OrderTicket()); 
if(OrderType() == OP_SELLLIMIT || OrderType() == OP_SELLSTOP)bool FD = OrderDelete(OrderTicket()); 
}
}

return(0);
}

int POS(){

int res = 0;

for(int ig44=OrdersTotal()-1;ig44>=0;ig44--)
{
if(OrderSelect(ig44,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==Symbol() && OrderMagicNumber() == ExpertID)
{
if(OrderType() == OP_BUY)res = 1; 
if(OrderType() == OP_SELL)res = 2;
if(res > 0)break; 
}

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

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

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

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

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

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

Стоимость полного кода
628₽ ≈ $7.68