Группа "Стол заказов MQL"

Рейтинг 2081



РЕКОМЕНДУЮ




Лучшее от axe44



Крутые памм-счета Комментариев 6
2017-10-24 11:58:58Рейтинг 0

БКС Комментариев 8
2017-08-11 02:57:12Рейтинг 0

торги
2017-01-26 00:01:37Рейтинг 0

HelloDual v3.0 Комментариев 3
2017-11-19 02:21:03Рейтинг 0

Создание советников бесплатно Комментариев 2
2017-07-16 22:54:20Рейтинг 0

Простой робот под мт5

Здравия.

Я мт5 только изучаю и всех тонкостей пока не понимаю, что бы сделать даже простого робота. Прошу понять и простить.
Заранее спасибо, если поможете.



Суть простого робота простая как круглый и сладкий апельсин.
Нужно найти на графике аномальные бары (размер устанавливается в ручную) и ждать на экстремумах + 2 спреда момент на покупку и продажу в плане на продолжение. Если пробили сверху — покупки, если снизу — продажи.
Закрытие убыточных ордеров по обратному сигналу + мартин или стопу.
Открытие нового ордера в любом случае проверяет как закрылся последний ордер, если в плюс — обычный лот, если в минус — то мартин.
Последний найденный бар отменяет предыдущее ожидание и создаёт новое.
Если ордер не отрылся по заявке, то ждём минуту и отправляем заявку повторно.
В пятницу последний час работы закрывает все ордера и не работает до понедельника.
  • 0
  • Просмотров: 1887
  • 2 марта 2021, 12:00
  • axe44
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
Следующая запись в группе  
Доработка
01 марта 2021
05 марта 2021

Комментарии (8)

+
0
Если не получится выполнить всех условий по тех.заданию, то ничего страшного. Я понимаю как иногда тяжело следовать по всем условиям.
Андрей, как получится, значит так получится.
avatar

  13  axe44 Автор Сообщений: 1149 - Алек

  • 2 марта 2021, 12:06
+
0
на 10-е
avatar

  34  AM2 Сообщений: 15869 - Андрей

  • 2 марта 2021, 17:53
+
0
avatar

  34  AM2 Сообщений: 15869 - Андрей

  • 6 марта 2021, 09:37
+
0
Спасибо. Андрей, а не подскажешь как мне скачать исходник в формате mt5? Там исходник только в мт 4.
avatar

  13  axe44 Автор Сообщений: 1149 - Алек

  • 6 марта 2021, 10:49
+
0
в папке есть исходник mq5:


//+------------------------------------------------------------------+
//|                                                       ProBoy.mq5 |
//|                                              Copyright 2021, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"

#include <Trade\Trade.mqh>             // Подключаем торговый класс CTrade

input double LT       = 0.01; // лот
input double KL       = 2;    // увеличение лота
input double ML       = 10;   // максимальный лот
input double Coef     = 3;    //
input int    Stop     = 200;  // стоплосс
input int    Take     = 300;  // тейкпрофит
input int    CloseOn  = 1;    // 1-закрытие в пятницу
input int    CloseSig = 1;    // 1-закрытие по сигналу
input int    Slip     = 100;  // проскальзывание
input ulong  Magic    = 123;  // магик

CTrade trade;                // Используем торговый класс CTrade
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   trade.SetExpertMagicNumber(Magic);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=LT;

   if(HistorySelect(0,TimeCurrent()))
     {
      double profit=HistoryDealGetDouble(HistoryDealGetTicket(HistoryDealsTotal()-1),DEAL_PROFIT);
      double LastLot=HistoryDealGetDouble(HistoryDealGetTicket(HistoryDealsTotal()-1),DEAL_VOLUME);
      if(profit>0)
         lot=LT;
      if(profit<0)
         lot=LastLot*KL;
     }

   if(lot>ML)
      lot=LT;
   return(lot);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CloseAll(int type=-1)
  {
   for(int i=PositionsTotal()-1; i>=0; i--)
     {
      if(PositionSelectByTicket(PositionGetTicket(i)))
        {
         if(PositionGetInteger(POSITION_MAGIC)==Magic)
           {
            if(PositionGetInteger(POSITION_TYPE)==type)
              {
               trade.PositionClose(PositionGetTicket(i));
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   MqlDateTime tm;
   double sl=0,tp=0;
   double cl1=iClose(NULL,0,1),op1=iOpen(NULL,0,1);
   double cl2=iClose(NULL,0,2),op2=iOpen(NULL,0,2);
   double ASK=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
   double BID=SymbolInfoDouble(_Symbol,SYMBOL_BID);
   bool buy=cl1>op1 && MathAbs(cl2-op2)>0 && (cl1-op1)/MathAbs(cl2-op2)>Coef;
   bool sell=cl1<op1 && MathAbs(cl2-op2)>0 && (op1-cl1)/MathAbs(cl2-op2)>Coef;

   if(PositionsTotal()<1)
     {
      if(buy)
        {
         sl=NormalizeDouble(BID-Stop*_Point,_Digits);
         tp=NormalizeDouble(BID+Take*_Point,_Digits);
         trade.PositionOpen(_Symbol,0,Lot(),ASK,sl,tp);
        }

      if(sell)
        {
         sl=NormalizeDouble(ASK+Stop*_Point,_Digits);
         tp=NormalizeDouble(ASK-Take*_Point,_Digits);
         trade.PositionOpen(_Symbol,1,Lot(),BID,sl,tp);
        }
     }

   if(PositionsTotal()>0 && CloseSig>0)
     {
      if(buy)
         CloseAll(1);
      if(sell && PositionGetInteger(POSITION_TYPE)==0)
         CloseAll(0);
     }

   if(tm.day_of_week==5 && tm.hour==23 && CloseOn>0)
     {
      CloseAll();
     }

   Comment("\n Day: ",(string)tm.day_of_week,
           "\n Hour: ",(string)tm.hour);
  }
//+------------------------------------------------------------------+

avatar

  34  AM2 Сообщений: 15869 - Андрей

  • 6 марта 2021, 11:19
+
0
Я в коде мт4 ( пока ещё там умею программировать ) изменил бы некоторые параметры.
Можешь сравнить со своими )
<code>
void OnTick()
  {
  int spread=(int)MarketInfo(NULL,MODE_SPREAD);
  if MathAbs(Low[Shift] - High[Shift]) > Level * Point
     {
     double low = Low[Shift]-2*spread*Point
     double up = High[Shift]+2*spread*Point
     }
   

   if(CountTrades()<1 && Hour()==StartHour)
     {
      if(CountOrders(0)<1 && Bid>up) PutOrder(0,Ask);
      if(CountOrders(1)<1 && Ask<low) PutOrder(1,Bid);
     }

   if(DayOfWeek(5) && TimeCurrent()==StringToTime(CloseTime))
     {
      CloseAll();
      DelOrder();
     }
  }
</code>

Редактирован: 6 марта 2021, 11:04
avatar

  13  axe44 Автор Сообщений: 1149 - Алек

  • 6 марта 2021, 11:02
+
0
в папку случайно затесался исходник mq4, убрал его.
www.opentraders.ru/downloads/2949/
avatar

  34  AM2 Сообщений: 15869 - Андрей

  • 6 марта 2021, 11:24
+
0
Я успел качнуть ;)  погоняю в МТ4
avatar

  22  poker Сообщений: 801

  • 6 марта 2021, 12:48

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий
Начать торговлю с Альпари