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

Рейтинг 1464



РЕКОМЕНДУЮ



Торговая панель с ММ

Андрей, прошу немного изменить торговую панель.

1. Сделать расчет объема лота от риска в деньгах и пунктов стоп лосса.
2. Если риск превышен, сделка не открывается.
3. Тейк профит выставляется автоматически например в 3 раза больше чем стоп + 1 п на комиссию. Если пункт 3 сложно делать, тогда можно без него.

Helpercent_v2.0.mq4 (41 Kb)
  • +3
  • Просмотров: 1205
  • 28 ноября 2019, 11:45
  • Wizas
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Создание советника на основе двух МА
Следующая запись в группе  
Прошу добавить Мани Менеджмент.
28 ноября 2019
29 ноября 2019

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

+
0
с чужим кодом не ко мне. с нуля другое дело :) 
avatar

  29  AM2 Сообщений: 10063 - Андрей

  • 28 ноября 2019, 17:19
+
0
Андрей, сделайте тогда панель для торговли на основе одной из ваших работ ручного тестера стратегий, так будет даже еще лучше. zakaz.opentraders.ru/38204.html
Возможно еще кому то пригодится такая модификация в виде панели с мани менеджментом.

1. Сделать расчет объема лота от риска в деньгах и пунктов стоп лосса (лот считается автоматически и при нажатие на кнопку бай или селл вход происходит уже нужным объемом.
2. Если риск превышен или не выставлен стоп, сделка не открывается.
3. Тейк профит выставляется автоматически например в 3 раза больше чем стоп + 1 п на комиссию. В настройках советника можно выставить желаемое соотношение.
Если пункт 3 сложно делать, тогда можно без него. :) 

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

avatar

  8  Wizas Автор Сообщений: 113

  • 28 ноября 2019, 20:12
+
0
МТ4 или МТ5
avatar

  29  AM2 Сообщений: 10063 - Андрей

  • 28 ноября 2019, 20:45
+
+1
на МТ 4
avatar

  8  Wizas Автор Сообщений: 113

  • 28 ноября 2019, 20:58
+
0
на 2-е
avatar

  29  AM2 Сообщений: 10063 - Андрей

  • 28 ноября 2019, 21:24
+
0
спасибо!
avatar

  8  Wizas Автор Сообщений: 113

  • 28 ноября 2019, 21:28
+
0
А это что будет? Индюк или советник?*???* 
Скорей всего советник, да?
Редактирован: 29 ноября 2019, 14:52
avatar

  10  Kuzimich Сообщений: 210 - Андрей

  • 29 ноября 2019, 14:51
+
0
Советник, индюки сделки не открывают.
avatar

  8  Wizas Автор Сообщений: 113

  • 29 ноября 2019, 15:30
+
0
Мне такой как раз и надо.А то жаба давит.*hi* :D 
avatar

  10  Kuzimich Сообщений: 210 - Андрей

  • 29 ноября 2019, 16:29
+
0
*good* 
avatar

  8  Wizas Автор Сообщений: 113

  • 30 ноября 2019, 07:03
+
0
Ещё не плохо бы добавить трал и безубыток.*hi* 
avatar

  10  Kuzimich Сообщений: 210 - Андрей

  • 30 ноября 2019, 10:56
+
0
мне пока не нужен, я пользуюсь другим советником для трала и безубытка.
Поюзаешь панель, если понравится закажешь модификацию с тралом и безубытком.
avatar

  8  Wizas Автор Сообщений: 113

  • 30 ноября 2019, 13:51
+
0
Ладно, если понравится, сам воткну.
avatar

  10  Kuzimich Сообщений: 210 - Андрей

  • 30 ноября 2019, 14:58
+
0
*good* 
avatar

  8  Wizas Автор Сообщений: 113

  • 30 ноября 2019, 16:05
+
+1
начал делать. конца не видно. так что до лучших времен
avatar

  29  AM2 Сообщений: 10063 - Андрей

  • 2 декабря 2019, 22:15
+
0
Андрей, а в чем сложность возникла?
avatar

  8  Wizas Автор Сообщений: 113

  • 3 декабря 2019, 18:28
+
0
интерфейс нужно запрограммировать, куча формул, все надо с нуля писать.

сделал для расчет для бай и селл. сейчас нужно все для отложек прописывать:




//+------------------------------------------------------------------+
//|                                                  HandTester3.mq4 |
//|                                              Copyright 2019, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

//--- Inputs
extern double KTake      = 2;        // увеличение тейка
extern int BULevel       = 150;      // уровень БУ
extern int BUPoint       = 30;       // пункты БУ
extern int TrailingStop  = 200;      // трал
extern int TrailingStep  = 20;       // шаг трала
extern int Slip          = 30;       // реквот
extern int Magic         = 123;      // магик

double lot=1;
double risk=1;
double stop=0;
double take=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   PutButton("B",140,30,"BUY");
   PutButton("S",80,30,"SELL");

   PutEdit("R",90,70,"1000");
   PutLable("LR",140,67,"RISK $");

   PutEdit("T",90,100,"");
   PutLable("LT",115,97,"TP");

   PutEdit("L",90,130,"1.1060");
   PutLable("LL",115,127,"SL");

   PutEdit("P",90,160,"");
   PutLable("LP",115,157,"PR");

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ObjectDelete(0,"B");
   ObjectDelete(0,"S");
   ObjectDelete(0,"R");
   ObjectDelete(0,"LR");
   ObjectDelete(0,"T");
   ObjectDelete(0,"LT");
   ObjectDelete(0,"L");
   ObjectDelete(0,"LL");
   ObjectDelete(0,"P");
   ObjectDelete(0,"LP");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutButton(string name,int x,int y,string text)
  {
   ObjectCreate(0,name,OBJ_BUTTON,0,0,0);

//--- установим координаты кнопки
   ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
   ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
//--- установим размер кнопки
   ObjectSetInteger(0,name,OBJPROP_XSIZE,50);
   ObjectSetInteger(0,name,OBJPROP_YSIZE,20);
//--- установим угол графика, относительно которого будут определяться координаты точки
   ObjectSetInteger(0,name,OBJPROP_CORNER,3);
//--- установим текст
   ObjectSetString(0,name,OBJPROP_TEXT,text);
//--- установим шрифт текста
   ObjectSetString(0,name,OBJPROP_FONT,"Arial");
//--- установим размер шрифта
   ObjectSetInteger(0,name,OBJPROP_FONTSIZE,10);
//--- установим цвет текста
   ObjectSetInteger(0,name,OBJPROP_COLOR,Red);
//--- установим цвет фона
   ObjectSetInteger(0,name,OBJPROP_BGCOLOR,White);
//--- установим цвет границы
   ObjectSetInteger(0,name,OBJPROP_BORDER_COLOR,Blue);
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов
   ObjectSetInteger(0,name,OBJPROP_HIDDEN,false);
//--- установим приоритет на получение события нажатия мыши на графике
   ObjectSetInteger(0,name,OBJPROP_ZORDER,0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutEdit(string name,int x,int y,string text)
  {
//--- создадим поле ввода
   ObjectCreate(0,name,OBJ_EDIT,0,0,0);
//--- установим координаты объекта
   ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
   ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
//--- установим размеры объекта
   ObjectSetInteger(0,name,OBJPROP_XSIZE,60);
   ObjectSetInteger(0,name,OBJPROP_YSIZE,20);
//--- установим текст
   ObjectSetString(0,name,OBJPROP_TEXT,text);
//--- установим шрифт текста
   ObjectSetString(0,name,OBJPROP_FONT,"Arial");
//--- установим размер шрифта
   ObjectSetInteger(0,name,OBJPROP_FONTSIZE,10);
//--- установим способ выравнивания текста в объекте
   ObjectSetInteger(0,name,OBJPROP_ALIGN,ALIGN_CENTER);
//--- установим (true) или отменим (false) режим только для чтения
   ObjectSetInteger(0,name,OBJPROP_READONLY,false);
//--- установим угол графика, относительно которого будут определяться координаты объекта
   ObjectSetInteger(0,name,OBJPROP_CORNER,3);
//--- установим цвет текста
   ObjectSetInteger(0,name,OBJPROP_COLOR,Red);
//--- установим цвет фона
   ObjectSetInteger(0,name,OBJPROP_BGCOLOR,White);
//--- установим цвет границы
   ObjectSetInteger(0,name,OBJPROP_BORDER_COLOR,Blue);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutLable(string name,int x,int y,string text)
  {
//--- создадим текстовую метку
   ObjectCreate(0,name,OBJ_LABEL,0,0,0);
//--- установим координаты метки
   ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
   ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
//--- установим угол графика, относительно которого будут определяться координаты точки
   ObjectSetInteger(0,name,OBJPROP_CORNER,3);
//--- установим текст
   ObjectSetString(0,name,OBJPROP_TEXT,text);
//--- установим шрифт текста
   ObjectSetString(0,name,OBJPROP_FONT,"Arial");
//--- установим размер шрифта
   ObjectSetInteger(0,name,OBJPROP_FONTSIZE,10);
//--- установим цвет
   ObjectSetInteger(0,name,OBJPROP_COLOR,Red);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
  {
   int r=0;
   color clr=Green;
   double sl=0,tp=0;

   if(type==1 || type==3 || type==5)
     {
      clr=Red;

      if(stop>0)
         sl=NormalizeDouble(stop,_Digits);
      if(take>0)
         tp=NormalizeDouble(take,_Digits);
     }

   if(type==0 || type==2 || type==4)
     {
      clr=Blue;

      if(stop>0)
         sl=NormalizeDouble(stop,_Digits);
      if(take>0)
         tp=NormalizeDouble(take,_Digits);
     }

   r=OrderSend(NULL,type,lot,NormalizeDouble(price,Digits),Slip,sl,tp,"",Magic,0,clr);
   return;
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(BULevel>0)
      BU();
   if(TrailingStop>0)
      Trailing();

   risk=(double)ObjectGetString(0,"R",OBJPROP_TEXT);
   stop=(double)ObjectGetString(0,"L",OBJPROP_TEXT);

   if(stop<Ask)
     {
      lot=NormalizeDouble((risk)/((Ask-stop)/_Point),2);
      take=NormalizeDouble(Bid+(Ask-stop)*KTake,_Digits);
      ObjectSetString(0,"T",OBJPROP_TEXT,(string)take);
     }

   if(stop>Bid)
     {
      lot=NormalizeDouble((risk)/((stop-Bid)/_Point),2);
      take=NormalizeDouble(Ask+(stop-Ask)*KTake,_Digits);
      ObjectSetString(0,"T",OBJPROP_TEXT,(string)take);
     }

   if(ObjectGetInteger(0,"B",OBJPROP_STATE)==1)
     {
      PutOrder(0,Ask);
      ObjectSetInteger(0,"B",OBJPROP_STATE,false);
     }

   if(ObjectGetInteger(0,"S",OBJPROP_STATE)==1)
     {
      PutOrder(1,Bid);
      ObjectSetInteger(0,"S",OBJPROP_STATE,false);
     }

   Comment("\n Lot: ",lot,
           "\n Stop: ",ObjectGetString(0,"L",OBJPROP_TEXT),
           "\n Take: ",ObjectGetString(0,"T",OBJPROP_TEXT));
  }
//+------------------------------------------------------------------+



сейчас еще чуток буду делать.
avatar

  29  AM2 Сообщений: 10063 - Андрей

  • 3 декабря 2019, 18:51
+
0
Спасибо Андрей, буду ожидать. *good* 
avatar

  8  Wizas Автор Сообщений: 113

  • 3 декабря 2019, 18:59
+
+1
avatar

  29  AM2 Сообщений: 10063 - Андрей

  • 3 декабря 2019, 19:29
+
0
avatar

  3  Slava78 Сообщений: 69

  • 3 декабря 2019, 20:52
+
0
Андрей, огромное спасибо что выделили время и так быстро сделали!
avatar

  8  Wizas Автор Сообщений: 113

  • 3 декабря 2019, 21:03
+
0
Андрей подскажите как можно отключить бу и трал?
avatar

  8  Wizas Автор Сообщений: 113

  • 3 декабря 2019, 21:05
+
0
Ставь по нолям, и будет тебе счастье.:D 
avatar

  10  Kuzimich Сообщений: 210 - Андрей

  • 3 декабря 2019, 21:08
+
0
Главное чтоб отключился, а то было дело с другой совой, везде 0 был и сделка закрылась, потому что стоп в 0 подтянулся как только цена в небольшой плюс ушла.
avatar

  8  Wizas Автор Сообщений: 113

  • 3 декабря 2019, 21:35
+
0
В смысле не 0 ставить.А просто удалить все значения.Чтобы ячейка пустая была.
avatar

  10  Kuzimich Сообщений: 210 - Андрей

  • 3 декабря 2019, 21:42
+
0
Спасибо, попробую :) 
avatar

  8  Wizas Автор Сообщений: 113

  • 3 декабря 2019, 22:15
+
0
Андрей, подскажите как открывать ордера по рынку?
avatar

  8  Wizas Автор Сообщений: 113

  • 4 декабря 2019, 15:12
+
0
Советник бомба! *good*  С отложками работает отлично, а как входить по рынку не понятно, подскажите.
avatar

  8  Wizas Автор Сообщений: 113

  • 3 декабря 2019, 21:38
+
0
по рынку если бай, то ставите стоп ниже бида, нужный риск. тейк установится сам и жмете кнопку. для села тоже но стоп ставите выше бида
avatar

  29  AM2 Сообщений: 10063 - Андрей

  • 4 декабря 2019, 17:27
+
0
Спасибо, теперь получилось, странно что на другом терминале не выставлялось. И при выставление происходит задержка секунды 3 или чуть больше и не понятно ордер выставится или нет.
Андрей, может быть можно сделать, если какая то ошибка и ордер не выставится (например риск превышен или цену не правильно поставили), чтоб в комментариях или как то по другому на экране появлялось сообщение(без алерта) об ошибке?
avatar

  8  Wizas Автор Сообщений: 113

  • 4 декабря 2019, 22:53
+
+2
кому нужна много-функциональная торговая панель, смотрите, скачивайте на здоровье, на моей страничке (в блоге)*lalala* 
Редактирован: 4 декабря 2019, 22:02
avatar

  5  volondai Сообщений: 42

  • 4 декабря 2019, 22:00
+
0
Хорошая панель, думаю многим пригодится, кто без ММ торгует, спасибо что поделились!
Теперь у людей есть на выбор 2 панели в одной теме. *good* 
avatar

  8  Wizas Автор Сообщений: 113

  • 4 декабря 2019, 23:08
+
0
спасибо что поделились!

Ну мы для того и общаемся, что бы не только для себя любимого*drinks* 
avatar

  5  volondai Сообщений: 42

  • 4 декабря 2019, 23:13
+
0
надо еще один вариант для скальпинга, чтобы SL и TP в пунктах ставить
avatar

  15  cerber04 Сообщений: 387

  • 5 декабря 2019, 00:40
+
0
В панели от volondai как раз стоп и тейк ставиться в пунктах, посмотрите ее, для скальпинга как раз подойдет.
avatar

  8  Wizas Автор Сообщений: 113

  • 5 декабря 2019, 01:22

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