Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1507

 
А есть возможность запретить двигать панель созданную с помощью библиотеки <Controls\Dialog.mqh>??
 
Aleksandr Slavskii #:

Забавно, но ладно.

Самый простой вариант, добавить в OnTick() такой код.

спасибо 

 

Здравствуйте. Индикатор находит сигнал. Возможно ли написать код, чтобы индикатор мог ставить стрелки на тех барах, high которых не был пробит, где первая стрелка будет основной сигнал, а по следующие стрелки будут ставиться, если high основного сигнала(бара) не был пробит? Если это возможно, могли бы поделиться кодом

Бары

Хотелось бы, чтоб это выглядело так 

 

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

Ну или хотя бы как узнать имя этой линии, до того как она будет отпущена.

Ещё может кто знает почему при скрытии прямоугольника с последующем отображением, пропадает выделенность линии. 

Причём происходит это однократно.

//+------------------------------------------------------------------+
int OnInit()
  {
   ChartSetInteger(0, CHART_EVENT_MOUSE_MOVE, true);

   ObjectCreate(0, "_Rectangle", OBJ_RECTANGLE_LABEL, 0, 0, 0);
   ObjectSetInteger(0, "_Rectangle", OBJPROP_XDISTANCE, 150);
   ObjectSetInteger(0, "_Rectangle", OBJPROP_YDISTANCE, 50);
   ObjectSetInteger(0, "_Rectangle", OBJPROP_XSIZE, 200);
   ObjectSetInteger(0, "_Rectangle", OBJPROP_YSIZE, 200);
   ObjectSetInteger(0, "_Rectangle", OBJPROP_ZORDER, 1);

   ObjectCreate(0, "_Button", OBJ_BUTTON, 0, 0, 0);
   ObjectSetInteger(0, "_Button", OBJPROP_XDISTANCE, 200);
   ObjectSetInteger(0, "_Button", OBJPROP_YDISTANCE, 135);
   ObjectSetInteger(0, "_Button", OBJPROP_XSIZE, 100);
   ObjectSetInteger(0, "_Button", OBJPROP_YSIZE, 30);
   ObjectSetInteger(0, "_Button", OBJPROP_ZORDER, 2);

   ChartRedraw();
   EventSetMillisecondTimer(100);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ObjectsDeleteAll(0, "_");
   EventKillTimer();
  }
//+------------------------------------------------------------------+
void OnTimer()
  {
// выводим прямоугольник и кнопку на передний план
   ObjectSetInteger(0, "_Rectangle", OBJPROP_TIMEFRAMES, OBJ_NO_PERIODS);
   ObjectSetInteger(0, "_Button", OBJPROP_TIMEFRAMES, OBJ_NO_PERIODS);
   ObjectSetInteger(0, "_Rectangle", OBJPROP_TIMEFRAMES, OBJ_ALL_PERIODS);
   ObjectSetInteger(0, "_Button", OBJPROP_TIMEFRAMES, OBJ_ALL_PERIODS);
  }
//+------------------------------------------------------------------+
void OnChartEvent(const int id, const long& lparam, const double& dparam, const string& sparam)
  {
   if(id == CHARTEVENT_MOUSE_MOVE && sparam == "1")
     {
      int X = (int)lparam;
      int Y = (int)dparam;
      if(X >= 150 && X <= 150 + 200 && Y >= 50 && Y <= 50 + 200)// мыша в районе прямоугольника
        {
         //Print("Rectangle");
        }
     }
  }
//+------------------------------------------------------------------+
 

Добрый день, подскажите, как в mql5 прописать код закрытия прибыли каждой валютной пары в отдельности в процентах от баланса, если на счету одновременно работают несколько пар. 

В примере ниже закрытие привязано к общему балансу счета, а нужно чтобы каждая пара в отдельности закрывалась независимо друг от друга например при +1% от баланса, даже если остальные пары в минусе.

if(m_account.Equity()>=m_account.Balance()*equity_percent_from_balances_profit)
for(int i=PositionsTotal()-1;i>=0;i--) 
if(m_position.SelectByIndex(i)) 
{
m_trade.SetExpertMagicNumber(m_position.Magic());
m_trade.PositionClose(m_position.Ticket()); 
}


 

Кто-нибудь знает хорошую библиотеку для временных фильтров? Динамические фильтры на каждый день (новости).

Второй день ищу на сайте, всё не то. Ближе всего концепт в статье  Кроссплатформенный советник: Временные фильтры. Но там слишком много всего тащить приходится с этим.

 
R3008 #:

Добрый день, подскажите, как в mql5 прописать код закрытия прибыли каждой валютной пары в отдельности в процентах от баланса, если на счету одновременно работают несколько пар. 

В примере ниже закрытие привязано к общему балансу счета, а нужно чтобы каждая пара в отдельности закрывалась независимо друг от друга например при +1% от баланса, даже если остальные пары в минусе.

if(m_account.Equity()>=m_account.Balance()*equity_percent_from_balances_profit)
for(int i=PositionsTotal()-1;i>=0;i--) 
if(m_position.SelectByIndex(i)) 
{
m_trade.SetExpertMagicNumber(m_position.Magic());
m_trade.PositionClose(m_position.Ticket()); 
}


Считаешь "профит  по открытым позициям на символе и маджике", например в сумме сейчас  10$  по евробаксу. баланс 1100.

Если процент > 1, то закрыть все позиции на символе.

 
Denis Karavaev #:

Считаешь "профит  по открытым позициям на символе и маджике", например в сумме сейчас  10$  по евробаксу. баланс 1100.

Если процент > 1, то закрыть все позиции на символе.

От какого размера депозита 1%

 
Здравствуйте! 
Есть возможность окрасить панель созданную с помощью <Controls\Dialog.mgh>? 
Могли бы поделиться примером кода, как это можно сделать? (Если это конечно возможно) 
 
Alexey Viktorov #:

От какого размера депозита 1%

Баланс = 1100 = Депозит

1% от депозита 1100 = 1100\100*1 = 11$ 

что означает, что в примере выше,  условие закрытия ещё не исполнилось.