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

Рейтинг 2157



РЕКОМЕНДУЮ



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

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

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

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

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

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

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

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

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

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

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

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

avatar

  9  Wizas Автор Сообщений: 146

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

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

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

  9  Wizas Автор Сообщений: 146

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

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

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

  9  Wizas Автор Сообщений: 146

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

  11  Kuzimich Сообщений: 246 - Андрей

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

  9  Wizas Автор Сообщений: 146

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

  11  Kuzimich Сообщений: 246 - Андрей

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

  9  Wizas Автор Сообщений: 146

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

  11  Kuzimich Сообщений: 246 - Андрей

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

  9  Wizas Автор Сообщений: 146

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

  11  Kuzimich Сообщений: 246 - Андрей

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

  9  Wizas Автор Сообщений: 146

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

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

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

  9  Wizas Автор Сообщений: 146

  • 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

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

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

  9  Wizas Автор Сообщений: 146

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

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

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

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

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

  9  Wizas Автор Сообщений: 146

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

  9  Wizas Автор Сообщений: 146

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

  11  Kuzimich Сообщений: 246 - Андрей

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

  9  Wizas Автор Сообщений: 146

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

  11  Kuzimich Сообщений: 246 - Андрей

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

  9  Wizas Автор Сообщений: 146

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

  9  Wizas Автор Сообщений: 146

  • 4 декабря 2019, 15:12
0
Андрей, подскажите в какой строчке в коде можно риск поменять?
avatar

  9  Wizas Автор Сообщений: 146

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

  9  Wizas Автор Сообщений: 146

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

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

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

  9  Wizas Автор Сообщений: 146

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

  9  volondai Сообщений: 155

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

  9  Wizas Автор Сообщений: 146

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

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

  9  volondai Сообщений: 155

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

  16  cerber04 Сообщений: 409

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

  9  Wizas Автор Сообщений: 146

  • 5 декабря 2019, 01:22
0
при переключения тамфрейма, сбрасывает значения на дефолтные которые вбиты вначале.
может кто знает как сделать чтоб запоминались
avatar

  16  cerber04 Сообщений: 409

  • 13 мая 2020, 01:43

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