Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1505

 
MakarFX:

 

благодарю за ответ. Но я не соображу все-таки нужную формульную строку, которая это вычисляет, со многим не знаком. Не могли бы ее тут прописать по типу

***

 
Порт-моне тв:

благодарю за ответ. Но я не соображу все-таки нужную формульную строку, которая это вычисляет, со многим не знаком. Не могли бы ее тут прописать по типу

***

Пожалуйста вставляйте код правильно: при редактировании сообщения нажмите кнопку      Code и во всплывающее окно вставьте свой код.
MQL5.community - Памятка пользователя
MQL5.community - Памятка пользователя
  • www.mql5.com
Вы недавно зарегистрировались и у вас возникли вопросы: Как вставить картинку в сообщение на форуме, как красиво оформить исходный код MQL5, где находятся ваши Личные сообщения? В этой статье мы подготовили для вас несколько практических советов, которые помогут быстрее освоиться на сайте MQL5.community и позволят в полной мере воспользоваться доступными функциональными возможностями.
 

я тут просчитался, мне помимо профита/лосса за день нужно баланс счета на начало дня. :((( Помогите))

Account balance() - меняет постоянно, как фиксировать его например на Hour==1 ?

 
Порт-моне тв:

благодарю за ответ. Но я не соображу все-таки нужную формульную строку, которая это вычисляет, со многим не знаком. Не могли бы ее тут прописать по типу

***

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает суммарный профит в валюте депозита                  |
//|             закрытых с определённой даты позиций                           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента             (""   - любой символ,         |
//|                                               NULL - текущий символ)       |
//|    op - операция                             (-1   - любая позиция)        |
//|    mn - MagicNumber                          (-1   - любой магик)          |
//|    dt - Дата и время в секундах с 1970 года  ( 0   - с начала истории)     |
//+----------------------------------------------------------------------------+
double GetProfitFromDateInCurrency(string sy="",int op=-1,int mn=-1,datetime dt=0)
  {
   double p=0;
   int    i,k=OrdersHistoryTotal();

   if(sy=="0") sy=Symbol();
   for(i=0; i<k; i++) 
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) 
        {
         if((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) 
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL) 
              {
               if(mn<0 || OrderMagicNumber()==mn) 
                 {
                  if(dt<OrderCloseTime()) 
                    {
                     p+=OrderProfit()+OrderCommission()+OrderSwap();
                    }
                 }
              }
           }
        }
     }
   return(p);
  }

Подсчет профита...

если нужен профит текущего дня, то

datetime dt=iTime(_Symbol,PERIOD_D1,0);
 
Порт-моне тв:

я тут просчитался, мне помимо профита/лосса за день нужно баланс счета на начало дня. :((( Помогите))

Account balance() - меняет постоянно, как фиксировать его например на Hour==1 ?

AccountBalance()-GetProfitFromDateInCurrency(.....)
 
Tatiana Zyrianova:
Добрый день. Подскажите, пожалуйста, можно ли в индикаторе принудительно запустить событие Calculate нажатием кнопки на графике, которое обрабатывается в OnChartEvent?

ChartSetSymbolPeriod с тем же символом и таймфреймом можно использовать для обновления графика (аналогично команде Refresh в терминале). Обновление графика в свою очередь запускает перерасчет индикаторов, прикрепленных к нему. Таким образом, вы можете рассчитать индикатор на графике даже при отсутствии тиков (например, в выходные дни).

 
MakarFX:

Подсчет профита...

если нужен профит текущего дня, то

Немного не то, что мне нужно. Мне нужно "если ПРОФИТ ЗА ДЕНЬ превысил некий заданный процент (уже вычислил) от БАЛАНСА СЧЕТА НА НАЧАЛО ДНЯ, то остановить торговлю или наоборот, пока НЕ ПРЕВЫСИЛ - то торговать (функция тоже уже есть). Очень надеюсь что есть идеи. 

НАДО НАЙТИ БАЛАНС СЧЕТА НА НАЧАЛО ДНЯ!!! Accountbalance меняется постоянно и поэтому его нельзя использовать, нужно формулу где задается на определенное время наверное. например на 00:01. 

 
Порт-моне тв:

вот нашел, но выдает ошибку, помогите пофиксить

ошибка

  datetime TimeCheck_sb = StrToTime("1:00");
  if(TimeCurrent()==TimeCheck_sb)
     {
      AccountBalance() = sb1; sb1 = AccountBalance();
     }
 
Порт-моне тв:

Немного не то, что мне нужно. Мне нужно "если ПРОФИТ ЗА ДЕНЬ превысил некий заданный процент (уже вычислил) от БАЛАНСА СЧЕТА НА НАЧАЛО ДНЯ, то остановить торговлю или наоборот, пока НЕ ПРЕВЫСИЛ - то торговать (функция тоже уже есть). Очень надеюсь что есть идеи. 

НАДО НАЙТИ БАЛАНС СЧЕТА НА НАЧАЛО ДНЯ!!! Accountbalance меняется постоянно и поэтому его нельзя использовать, нужно формулу где задается на определенное время наверное. например на 00:01. 

Я же тебе написал

AccountBalance()-GetProfitFromDateInCurrency(.....)

от текущего баланса отнять профит за текущий день и получится баланс на начало дня

 
MakarFX:

Я же тебе написал

от текущего баланса отнять профит за текущий день и получится баланс на начало дня

смотри, проблема в том, что процент, который я хочу задать, например (1%) в числовом выражении изменяется и если 

AccountBalance()-GetProfitFromDateInCurrency(.....)

то по итогу выйдет что при каждой новой сделке БАЛАНС также прирастет и 1% от него также, таким образом моя функция не будет работать, потому что нет ФИКСИРОВАННОГО ЗАДАННОГО ЗНАЧЕНИЯ

Причина обращения: