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

ademola.mq4

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

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

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

О программе

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

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

НастройкаОписание
ExpertID Идентификатор эксперта — Целое число, используемое как основа для формирования уникального идентификатора ордеров (magic number) в сочетании с кодом символа.
TakeProfit Тейк-профит — Числовой параметр, задающий уровень фиксации прибыли для размещаемых ордеров.
useStopLoss Использовать стоп-лосс — Переключатель, включающий или отключающий установку стоп-лосса по размещаемым ордерам.
StopLoss Стоп-лосс — Числовой параметр, задающий уровень стоп-лосса для размещаемых ордеров.
Lots Объём — Числовой параметр, определяющий базовый размер торгового объёма в лотах.
Slippage Проскальзывание — Целое число, задающее максимально допустимое отклонение цены при открытии ордера в пунктах.
useTimeFilter Использовать фильтр времени — Переключатель, включающий или отключающий временное ограничение для запуска торговых операций.
startTradeTime Время начала торговли — Целое число, задающее час суток, в который советник активирует размещение ордеров при включённом фильтре времени.
UseMoneyManagement Использовать управление денежными средствами — Переключатель, включающий автоматический пересчёт размера лота на основе свободного маржи и заданного риска.
risk in percentage % (10% of risk in this case) (Risk) Риск — Целое число, определяющее процент риска от свободного маржи, используемый при автоматическом расчёте размера лота.
Получить полный код

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

#include <stderror.mqh>
#include <stdlib.mqh>

extern int ExpertID = 108888;
extern double    TakeProfit=40;
extern bool useStopLoss = true;
extern double    StopLoss=20;
extern double    Lots=0.01;
extern int Slippage = 3;

extern bool   useTimeFilter        = true;
extern int    startTradeTime       = 1;

extern bool UseMoneyManagement = true;
extern bool AccountIsMicro = true;
extern int Risk = 10; // risk in percentage % (10% of risk in this case)

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

int deinit()
  {

   return(0);
  }

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

   int MagicNumber = MakeMagicNumber();
   if(UseMoneyManagement==true) {
      Lots = DefineLotSize(); //Adjust the lot size     total
   }
   int order_type = -1;
   double tp, sl, price = 0.0;
   if (TimeHour(TimeCurrent()) == startTradeTime) {

      datetime time = StrToTime(+Year()+"."+Month()+"."+Day()+" 00:00");
      for(int i=1; i<=Bars; i++) {
         if (Time[i] == time) {
            double day_O = Open[i];
            double day_H = High[i];
            double day_L = Low[i];
            double day_C = Close[i];
            break;
         }
      }
      ObjectDelete("Day open");
      ObjectDelete("X");
      ObjectDelete("X1");
      ObjectDelete("X2");
      ObjectDelete("X3");
      ObjectDelete("X4");
      if(!ObjectCreate("Day open", OBJ_VLINE, 0, time, Ask)) {
         Alert("Error: Day open #",ErrorDescription(GetLastError()));
      } else {
         ObjectSet("Day open", OBJPROP_STYLE, STYLE_DASH);
         ObjectSet("Day open", OBJPROP_COLOR, Red);

         double x_line=NormalizeDouble((day_H+day_L)/2, Digits);
         if(!ObjectCreate("X", OBJ_HLINE, 0, time, x_line)) {
            Alert("Error: LINE X #",ErrorDescription(GetLastError()));
         } else {
            ObjectSet("X", OBJPROP_STYLE, STYLE_SOLID);
            ObjectSet("X", OBJPROP_COLOR, Green);
         }

         double x1_line=NormalizeDouble(((day_H+day_L)/2)+40*Point, Digits);
         if(!ObjectCreate("X1", OBJ_HLINE, 0, time, x1_line)) {
            Alert("Error: LINE X1 #",ErrorDescription(GetLastError()));
         } else {
            ObjectSet("X1", OBJPROP_STYLE, STYLE_SOLID);
            ObjectSet("X1", OBJPROP_COLOR, Purple);
         }

         double x2_line=NormalizeDouble(((day_H+day_L)/2)+80*Point, Digits);
         if(!ObjectCreate("X2", OBJ_HLINE, 0, time, x2_line)) {
            Alert("Error: LINE X2 #",ErrorDescription(GetLastError()));
         } else {
            ObjectSet("X2", OBJPROP_STYLE, STYLE_SOLID);
            ObjectSet("X2", OBJPROP_COLOR, Purple);
         }

         double x3_line=NormalizeDouble(((day_H+day_L)/2)-40*Point, Digits);
         if(!ObjectCreate("X3", OBJ_HLINE, 0, time, x3_line)) {
            Alert("Error: LINE X3 #",ErrorDescription(GetLastError()));
         } else {
            ObjectSet("X3", OBJPROP_STYLE, STYLE_SOLID);
            ObjectSet("X3", OBJPROP_COLOR, Red);
         }

         double x4_line=NormalizeDouble(((day_H+day_L)/2)-80*Point, Digits);
         if(!ObjectCreate("X4", OBJ_HLINE, 0, time, x4_line)) {
            Alert("Error: LINE X4 #",ErrorDescription(GetLastError()));
         } else {
            ObjectSet("X4", OBJPROP_STYLE, STYLE_SOLID);
            ObjectSet("X4", OBJPROP_COLOR, Red);
         }
      }

      if (CountLongs(MagicNumber) == 0 || CountShorts(MagicNumber) == 0) {
         price = x1_line;
         tp = x2_line;
         if (useStopLoss) {
            sl = x4_line;
         } else {
            sl = 0;
         }

         int ticket_buy = OrderSend(Symbol(),OP_BUYSTOP,Lots,price,Slippage,sl,tp,"Ademola",MagicNumber,0,CLR_NONE);
         if(ticket_buy>0)
         {
            if(OrderSelect(ticket_buy,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
         } else {
            Alert("Ademola Error opening order : ",ErrorDescription(GetLastError()));
            return(0);
         } // fim ticket_buy

         price = x3_line;
         tp = x4_line;
         if (useStopLoss) {
            sl = x2_line;
         } else {
            sl = 0;
         }
         int ticket_sell = OrderSend(Symbol(),OP_SELLSTOP,Lots,price,Slippage,sl,tp,"Ademola",MagicNumber,0,CLR_NONE);
         if(ticket_sell>0)
         {
 

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

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

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

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

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

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

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