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

Рейтинг 2153



РЕКОМЕНДУЮ




Лучшее от vic123



чудо! Комментариев 51
2016-10-01 08:35:13Рейтинг 0

С Новым Годом Вас ВСЕХ!!!!! Комментариев 4
2016-12-31 22:18:26Рейтинг 0

Нужна помощь
2021-08-03 09:58:14Рейтинг 0

Доработка советника Комментариев 2
2016-02-21 10:24:52Рейтинг 0

Модернизация советника Комментариев 19
2015-05-21 05:59:31Рейтинг 0

Внести изменения в советник

Уважаемые программисты!!!
Прошу внести изменения в советник согласно тех.задания.
1. Добавить TakeProfit в долларах.
2. После срабатывания по TakeProfitу советник должен прекращать работу.
3. Добавить время начала работы и время окончания.
С уважением, Виктор.
Kurat.mq4 (1 Kb)
  • 0
  • Просмотров: 3947
  • 1 апреля 2016, 07:43
  • vic123
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

Брокер для ваших роботов, 15 лет на рынке

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

+
0
Посмотрю когда поправят файлик.
avatar

  35  AM2 Сообщений: 16461 - Андрей

  • 1 апреля 2016, 08:03
+
0

// Входные параметры
extern double Lots = 0.1;
extern double MovingAvg=10;
//+------------------------------------------------------------------+
//| Функция инициализации индикатора                         |
//|------------------------------------------------------------------|
int init()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| Функция деинициализации индикатора                       |
//+------------------------------------------------------------------+
int deinit()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| Итеративная функция индикатора                              |
//+------------------------------------------------------------------+
int start()
  {
   bool    rising=false;
   bool   falling=false;
   if(AccountFreeMargin()<(1000*Lots)) {Print("У вас нет недостаточно денег");   return(0);}

   if (Open[2]<Open[1]<Open[0]) {rising=true;  falling=false;}
   if (Open[2]>Open[1]>Open[0]) {rising=true;  falling=false;}
   
   int cl = OrderClose(OrderTicket(),Lots,Ask,0,Red);
   if (rising)  
     {
      Print("Покупка",Ask);
     int op =  OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"1MA Buy",11123,0,White);
     }
   if (falling)
     {
      Print("Продажа",Bid);
     op =   OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,"1MA Sell",11321,0,Red);
     }

   return(0);
  }

ЭТО КОД СОВЕТНИКА
avatar

  19  vic123 Автор Сообщений: 98

  • 1 апреля 2016, 08:10
+
0
Настоящий первоаперльский код! :D 
avatar

  35  AM2 Сообщений: 16461 - Андрей

  • 1 апреля 2016, 08:21
+
0
в марте у меня был заказ. Поэтому так получилось, что этот я отправил 1 апреля.
Код хоть и небольшой но очень эффективный на хороших новостях.
avatar

  19  vic123 Автор Сообщений: 98

  • 1 апреля 2016, 08:25
+
0
Он сыпет неограниченное количество ордеров плюс ошибки закрытия. Опишите ТЗ целиком и я перепишу с нуля.
avatar

  35  AM2 Сообщений: 16461 - Андрей

  • 1 апреля 2016, 08:28
+
0
То, что он открывает неограниченное количество ордеров в этом и есть его преимущество. Пожалуйста!!! Добавьте в него условия тех.задания и Вы увидите, что это будет неплохо. На ошибки закрытия не стоит обращать внимание. Функцию OrderClose вообще надо убрать из него.
avatar

  19  vic123 Автор Сообщений: 98

  • 1 апреля 2016, 08:40
+
0
Этот советник я использую на небольшом депозите. Поэтому он не открывает слишком много ордеров. Он их открывает по мере увеличения депо. К примеру маржа при открытии ордера на паре audusd -1,42$. При депо 5$ советник откроет всего 3 ордера. Если цена пойдет в нужную сторону то ордера будут открываться по мере увеличения свободной маржи. Если пойдет не в ту сторону, то я просто теряю 5 баксов. Но суть в том, что при торговле на новостях (если происходит хорошее движение, то за счет большого кол-ва ордеров можно заработать от 100 до 1000%)
avatar

  19  vic123 Автор Сообщений: 98

  • 1 апреля 2016, 09:21
+
0
Все добавил:




//+------------------------------------------------------------------+
//|                                                        Kurat.mq4 |
//|                                              Copyright 2016, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict
// Входные параметры
extern double Lots         = 0.1;        // лот
extern double Profit       = 10;         // профит в валюте
extern string StartTime    = "15:25:30"; // время начала торговли
extern string EndTime      = "23:25:30"; // время окончания торговли
extern int    Slip         = 30;         // проскальзывание цены
extern int    Magic        = 123;        // магик

bool trade=true;
//+------------------------------------------------------------------+
//| Функция инициализации индикатора                                 |
//|------------------------------------------------------------------|
int init()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| Функция деинициализации индикатора                               |
//+------------------------------------------------------------------+
int deinit()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double AllProfit()
  {
   double profit=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()<2) profit+=OrderProfit()+OrderCommission()+OrderSwap();
           }
        }
     }
   return (profit);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CloseAll()
  {
   bool cl;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==0)
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),Slip,White);
              }
            if(OrderType()==1)
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),Slip,White);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| OnTick function                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   int r=0;

   if(AccountFreeMargin()<(1000*Lots)) {Print("У вас нет недостаточно денег");   return;}

   if(trade && TimeCurrent()>StringToTime(StartTime) && TimeCurrent()<StringToTime(EndTime))
     {
      if(Open[2]<Open[1]<Open[0])
        {
         Print("Покупка",Ask);
         r=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,Digits),Slip,0,0,"Kurat Buy",Magic,0,White);
        }
      if(Open[2]>Open[1]>Open[0])
        {
         Print("Продажа",Bid);
         r=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),Slip,0,0,"Kurat Sell",Magic,0,Red);
        }
     }

   if(AllProfit()>=Profit)
     {
      CloseAll(); 
      trade=false;
     }
     
   Comment("\n Profit: ",AllProfit(),
           "\n Trade: ",trade);
  }
//+------------------------------------------------------------------+

avatar

  35  AM2 Сообщений: 16461 - Андрей

  • 1 апреля 2016, 10:50
+
0
Спасибо Андрей!!!
avatar

  19  vic123 Автор Сообщений: 98

  • 1 апреля 2016, 10:52
+
0
Андрей! При работе советника должны открываться ордера лишь одного типа. Сейчас бывает, что одновременно открываются и селл и бай. Это может быть и к лучшему, при закрытии вручную все равно есть прибыль. Это я буду завтра тестировать. Но если можно все таки при открытии 1-ым ордера бай следующие тоже должны быть бай. И наоборот для селл
avatar

  19  vic123 Автор Сообщений: 98

  • 1 апреля 2016, 16:28
+
0
avatar

  19  vic123 Автор Сообщений: 98

  • 1 апреля 2016, 17:07
+
0
Поправлю чуть позже.
avatar

  35  AM2 Сообщений: 16461 - Андрей

  • 1 апреля 2016, 17:38
+
0
avatar

  19  vic123 Автор Сообщений: 98

  • 1 апреля 2016, 17:39
+
+1
Добавил также отключаемые стопы и закрытие по убытку в валюте: www.opentraders.ru/downloads/1125/


avatar

  35  AM2 Сообщений: 16461 - Андрей

  • 1 апреля 2016, 21:18
+
0
Огромное Спасибо Андрей!!!
avatar

  19  vic123 Автор Сообщений: 98

  • 2 апреля 2016, 04:52
+
0
Андрей!!! Собрался было настроить советник по времени, но в таком виде время не настроить. Прошу вынести настройки по времени в extern переменные.
avatar

  19  vic123 Автор Сообщений: 98

  • 14 апреля 2016, 16:48
+
0
Андрей!!! Собрался было настроить советник по времени, но в таком виде время не настроить. Прошу вынести настройки по времени в extern переменные.


Вынес: www.opentraders.ru/downloads/1125/


extern int    StartHour    = 0;          // час начала торговли
extern int    StartMin     = 30;         // минута начала торговли
extern int    EndHour      = 23;         // час окончания торговли
extern int    EndMin       = 30;         // минута окончания торговли
avatar

  35  AM2 Сообщений: 16461 - Андрей

  • 14 апреля 2016, 18:41
+
0
Спасибо!!!*budenov* 
avatar

  19  vic123 Автор Сообщений: 98

  • 15 апреля 2016, 08:33
+
0
Андрей!!! Последняя просьба по этому топику. Нельзя ли добавить в настройки день недели (пн, вт и т.д.)
С уважением Виктор.
avatar

  19  vic123 Автор Сообщений: 98

  • 15 апреля 2016, 09:06
+
0
скажите как у советника ограничить количество выставляемых ордеров до одного? Прошу добавить такую позицию в код.
Редактирован: 15 апреля 2016, 09:25
avatar

  14  Thunder61 Сообщений: 166 - Thunder61

  • 15 апреля 2016, 09:22
+
0
Ни в коем случае ограничивать количество выставляемых ордеров не следует!!!
avatar

  19  vic123 Автор Сообщений: 98

  • 15 апреля 2016, 10:21
+
0
Интересно, кто придумал название советника? В переводе с эстонского это означает «Чёрт» :-)
avatar

  2  hardgainer74 Сообщений: 21

  • 30 октября 2019, 11:38
+
0
Точнее «дьявол»
avatar

  12  Slava78 Сообщений: 598

  • 30 октября 2019, 16:06
+
0
В первую очередь это чёрт, а уже второе значение это дьявол
Я из Таллина
avatar

  2  hardgainer74 Сообщений: 21

  • 30 октября 2019, 16:11
+
0
Начнем эстонский изучать *friends* 
Редактирован: 30 октября 2019, 17:11
avatar

  12  Slava78 Сообщений: 598

  • 30 октября 2019, 17:10

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