Вопросы от начинающих MQL4 MT4 MetaTrader 4 - страница 175

Vladislav Andruschenko
201439
Vladislav Andruschenko  
Vyacheslav Yanchenkov:
есть ли какая то команда,нужно для советника

Высчитывать с начала истории до даты. Все пополнения снятия, профит. 
Конкретной функции нет. 
Vyacheslav Yanchenkov
196
Vyacheslav Yanchenkov  

А можно часть кода,интересует как перебирать даты?Как сделать цикл перебора по датам?

//=================================================История на дату - Баланс ====================================================================================================

double Ballanc()

{

 double date=0, profithistory=0;

 for ( int trade = OrdersTotal() - 1; trade >= 0; trade-- )

      {

         if ( OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) && OrderMagicNumber() == MagicLock && OrderSymbol() == Symbol())

         {

          date=Day();

         }

      }

 for ( trade = date - 1; trade >= 0; trade--)

{

 for ( int trade = OrdersHistoryTotal() - 1; trade >= 0; trade-- )

      {

       if ( OrderSelect(trade,SELECT_BY_POS,MODE_HISTORY))

         {

          profithistory+=OrderProfit();

         }

      }

}


return(profithistory);


Vyacheslav Yanchenkov
196
Vyacheslav Yanchenkov  
или по времени использовать ,как лучше?
Vyacheslav Yanchenkov
196
Vyacheslav Yanchenkov  
Пришла мысль-надо отдельно брать день,месяц,год-и делать три цикла.В правильном направлении двигаюсь?
Vyacheslav Yanchenkov
196
Vyacheslav Yanchenkov  

Вот такая функция получилась! Условие было такое-узнать баланс счета на дату открытия локирующего ордера.Все правильно сделал?

//=================================================История на дату - Баланс ====================================================================================================

double Ballanc()

{

 int date=31,month=12,year=0;

 double  profithistory=0,swaphistory=0;

 for ( int trade = OrdersTotal() - 1; trade >= 0; trade-- )

      {

         if ( OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) && OrderMagicNumber() == MagicLock && OrderSymbol() == Symbol())

         {

           year=Year();

         }

      }

 for (int  trade=year;trade>=2018;trade--)

 {     

 for (  trade=month;trade>=1;trade--)

 {     

 for (  trade = date; trade >= 1; trade--)


{

 for (  trade = OrdersHistoryTotal() - 1; trade >= 0; trade-- )

      {

       if ( OrderSelect(trade,SELECT_BY_POS,MODE_HISTORY) && date==Day() && month==Month() && year==Year())

         {

          profithistory+=OrderProfit();

          swaphistory+=OrderSwap();

         }

      }

      }

}

}

return(profithistory+swaphistory);

}

Vyacheslav Yanchenkov
196
Vyacheslav Yanchenkov  
Вверху ссылка баланс счета как то сама появилась,левая какая то...
satorifx
50
satorifx  

В библиотеке Метаквотов, с помощью которой делаются панели, реализовано событие ON_DRAG_PROCESS.

Есть необходимость в рамках кода такой панели обработать событие ON_DRAG_PROCESS не для элементов панели, а для отдельной трендовой линии. Возможно ли это, и как это реализовать? Сколько бился - не удалось.

Anton Sobinov
236
Anton Sobinov  

Доброе время суток!

Подскажите пожалуйста, в каких ситуациях после деинициализации советника может появляться утечка памяти в виде "1 leaked strings left"?

Больше никаких объектов не остается, все динамические удаляются, это единственное сообщение об утечке памяти

mikesteb_87
3
mikesteb_87  
Здравствуйте подскажите как модифицировать расчет тейкпрофита и стоплосса с каждым новым баром?появился бар модифицируем автоматически.
Anton Sobinov
236
Anton Sobinov  
mikesteb_87:
Здравствуйте подскажите как модифицировать расчет тейкпрофита и стоплосса с каждым новым баром?появился бар модифицируем автоматически.

Собственно у вас в посте и есть ссылка как это сделать: https://www.mql5.com/ru/articles/159.

Грубо, в OnTick вызывать проверку изменения бара, и если изменился - вызывать какие нужно процедуры для изменения стоп-лосса и тейкпрофита.

Обработчик события "новый бар"
Обработчик события "новый бар"
  • www.mql5.com
Для создателей индикаторов и экспертов всегда был актуален вопрос написания экономичного кода с точки зрения времени выполнения. Можно подойти к решению этой задачи с разных сторон. Из этой обширной темы в данной статье будет затронут, казалось бы уже решенный вопрос: проверка появления нового бара. Это достаточно популярный способ ограничения...