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

Рейтинг 2146



РЕКОМЕНДУЮ



Советник для баланса

Здравствуйте!
Прошу сделать советник, который будет следить за балансом счета.
Советник должен останавливать торговлю в случае если:
1) В заданых параметрах в советнике достигнут желаемый профит в валюте депозита. Все ордера закрываются, кнопка Автом торговля становится не активна, все советники должны быть не рабочими.
2) В заданых параметрах в советнике достигнут указаный убыток в валюте депозита. Все ордера закрываются, кнопка Автом торговля становится не активна, все советники должны быть не рабочими.
  • +6
  • Просмотров: 2543
  • 23 ноября 2016, 08:21
  • mecenat
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

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

+
0
Посмотрю сегодня.
avatar

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

  • 23 ноября 2016, 17:24
+
0
Тут у аналитика Shulgindv в его прогнозах постоянно присутствует вот такая фраза:
«Рекомендую использовать «Risk Manager»: Ограничение убытка на 1 день — 1% от депозита. Рекомендую по паре EUR/USD использовать SL 10-20 пунктов. Соотношение риск к профиту от 1 к 3. Все подробности и рекомендации в комментариях.
Удачи!»
Его советник не подойдет? :) 
cloud.mail.ru/public/CHrG/bkUN2c9Qa
avatar

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

  • 23 ноября 2016, 18:59
+
0
Спасибо за советник. Может и подойдет надо попробовать.
avatar

  15  mecenat Автор Сообщений: 41

  • 23 ноября 2016, 19:27
+
0
Готово: www.opentraders.ru/downloads/1395/


//+------------------------------------------------------------------+
//|                                                BalanceProfit.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

#include <WinUser32.mqh>

#define PAUSE      10
#define VK_CONTROL 0x11 //CTRL key
#define KEY_CODE   'E'

extern int    Slip      = 30;       // реквот
extern double Loss      = 10;       // убыток в валюте
extern double Profit    = 10;       // профит в валюте
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Закрытие позиции по типу ордера                                  |
//+------------------------------------------------------------------+
void CloseAll(int ot=-1)
  {
   bool cl;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol())
           {
            if(OrderType()==0 && (ot==0 || ot==-1))
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),Slip,Lime);
              }
            if(OrderType()==1 && (ot==1 || ot==-1))
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),Slip,Lime);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| Профит всех ордеров по типу ордера                               |
//+------------------------------------------------------------------+
double AllProfit(int ot=-1)
  {
   double pr=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol())
           {
            if(OrderType()==0 && (ot==0 || ot==-1))
              {
               pr+=OrderProfit()+OrderCommission()+OrderSwap();
              }

            if(OrderType()==1 && (ot==1 || ot==-1))
              {
               pr+=OrderProfit()+OrderCommission()+OrderSwap();
              }
           }
        }
     }
   return(pr);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Key()
  {
   keybd_event(VK_CONTROL,0,0,0);
   Sleep(PAUSE);
   keybd_event(KEY_CODE,0,0,0);
   Sleep(PAUSE);
   keybd_event(KEY_CODE,0,2,0);
   Sleep(PAUSE);
   keybd_event(VK_CONTROL,0,2,0);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {

   if(IsTradeAllowed() && (AllProfit()>Profit || AllProfit()<-Loss))
     {
      CloseAll();
      Key();
     }
  }
//+------------------------------------------------------------------+


Редактирован: 24 ноября 2016, 17:30
avatar

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

  • 23 ноября 2016, 22:51
+
0
Спасибо!
avatar

  15  mecenat Автор Сообщений: 41

  • 24 ноября 2016, 03:38

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