Ошибки, баги, вопросы - страница 1897

 
если в структуру есть строки и массивы вот так {0} лучше не инициализировать, у меня вообще выкидывало исключение.
 

Локальные агенты возвращают одно и то же значение TerminalInfoInteger(TERMINAL_DLLS_ALLOWED), пока не перезагрузишь терминал.

Например, хочешь, чтобы DLL агенты не выполняли. Снимаешь DLL-галку в терминале, а агенты продолжают "радовать".


 
Комбинатор:
если в структуру есть строки и массивы вот так {0} лучше не инициализировать, у меня вообще выкидывало исключение.
Похоже, там потенциальная уязвимость.
 
fxsaber:

Запомнилось, что разработчики говорили о возможности обмена данными между агентами. Где посмотреть пример?

Вроде, канал фреймами односторонний - от агентов в терминал, но не наоборот.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Работа с файлами из эксперта в тестере

Renat Fatkhullin, 2012.08.27 01:41

При работе с клаудом или удаленными агентами, используемые (для чтения) файлы нужно явно указывать через #property tester_file "myfile1.dat". В этом случае тестер передает эти файлы в клауд вместе с исходным экспертом, причем контролируется изменение этого файла и он кешируется на клауд серверах и агентах. 

Можно передавать большие объемы исходных данных на клауды, а в отчет получать расчеты, включая массивные данные через FrameAdd().

Могу менять tester_file-файлы в OnTesterPass и тем самым передавать нужную инфу в Облако?
 
fxsaber:

В стандартном советнике MQL5\Experts\Examples\Moving Average\Moving Average.mq5

в TradeSizeOptimized пропущена Magic-проверка.

Посмотрите этот вариант, пожалуйста.

Со своей стороны я запустил 9 экземпляров этого советника с разными настройками и магиками для торговли в онлайне на встроенном VPS - буду наблюдать https://www.mql5.com/ru/signals/305333.

Торговые сигналы для MetaTrader 5: Standard Moving Average 9 instances
Торговые сигналы для MetaTrader 5: Standard Moving Average 9 instances
  • Rashid Umarov
  • www.mql5.com
Торговый Сигнал Standard Moving Average 9 instances для MetaTrader 5: копирование сделок, мониторинг счета, автоматическое исполнение сигналов и социальный трейдинг
Файлы:
 
Rashid Umarov:

Посмотрите этот вариант, пожалуйста.

Со своей стороны я запустил 9 экземпляров этого советника с разными настройками и магиками для торговли в онлайне на встроенном VPS - буду наблюдать https://www.mql5.com/ru/signals/305333.

На выбор лота данным советником влияет любая сторонняя торговля (включая другие экземпляры) на исходном символе.

В этом куске это происходит

      HistorySelect(0,TimeCurrent());
      //---
      int    orders=HistoryDealsTotal();  // total history deals
      int    losses=0;                    // number of losses orders without a break

      for(int i=orders-1;i>=0;i--)
        {
         ulong ticket=HistoryDealGetTicket(i);
         if(ticket==0)
           {
            Print("HistoryDealGetTicket failed, no trade history");
            break;
           }
         //--- check symbol
         if(HistoryDealGetString(ticket,DEAL_SYMBOL)!=_Symbol)
            continue;
         //--- check profit
         double profit=HistoryDealGetDouble(ticket,DEAL_PROFIT);
         if(profit>0.0)
            break;
         if(profit<0.0)
            losses++;
        }
      //---
      if(losses>1)
         lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
 
fxsaber:

На выбор лота данным советником влияет любая сторонняя торговля (включая другие экземпляры) на исходном символе.

В этом куске это происходит

Забыл приложить файл, теперь добавил в . Там 

double TradeSizeOptimized(void)
  {
   double price=0.0;
   double margin=0.0;
//--- select lot size
   if(!SymbolInfoDouble(_Symbol,SYMBOL_ASK,price))
      return(0.0);
   if(!OrderCalcMargin(ORDER_TYPE_BUY,_Symbol,1.0,price,margin))
      return(0.0);
   if(margin<=0.0)
      return(0.0);

   double lot=NormalizeDouble(AccountInfoDouble(ACCOUNT_MARGIN_FREE)*MaximumRisk/margin,2);
//--- calculate number of losses orders without a break
   if(DecreaseFactor>0)
     {
      //--- select history for access
      HistorySelect(0,TimeCurrent());
      //---
      int    orders=HistoryDealsTotal();  // total history deals
      int    losses=0;                    // number of losses orders without a break

      for(int i=orders-1;i>=0;i--)
        {
         ulong ticket=HistoryDealGetTicket(i);
         if(ticket==0)
           {
            Print("HistoryDealGetTicket failed, no trade history");
            break;
           }
         //--- check symbol
         if(HistoryDealGetString(ticket,DEAL_SYMBOL)!=_Symbol)
            continue;
         //--- check Expert Magic number
         if(HistoryDealGetInteger(ticket,DEAL_MAGIC)!=MA_MAGIC)
            continue;
         //--- check profit
         double profit=HistoryDealGetDouble(ticket,DEAL_PROFIT);
         if(profit>0.0)
            break;
         if(profit<0.0)
            losses++;
        }
      //---
      if(losses>1)
         lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
     }
 
Rashid Umarov:

Забыл приложить файл, теперь добавил в . Там 

Да, об этом шла речь. Так верно.

Правда, я бы написал иначе (не компилировал)

//--- calculate number of losses orders without a break
   if((DecreaseFactor>0) && HistorySelect(0,TimeCurrent()))
   {
      int    losses=0;                    // number of losses orders without a break

      for(int i=HistoryDealsTotal()-1;i>=0;i--)
      {
         ulong ticket=HistoryDealGetTicket(i);

         if((HistoryDealGetString(ticket,DEAL_SYMBOL)!=_Symbol) &&
            (HistoryDealGetInteger(ticket,DEAL_MAGIC)!=MA_MAGIC))
         {
           double profit=HistoryDealGetDouble(ticket,DEAL_PROFIT);
           if(profit>0.0)
              break;
           else if(profit<0.0)
              losses++;
         }
      }
      //---
      if(losses>1)
         lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
   }


Воспользуюсь случаем, спрошу у Вас и у других участников, какие есть MT5-советники в кодобазе, которые используют историю в своей торговой логике?

 

Устал от MT5 - тормозит жутко - открыто 11 окон всего индикаторы стандартные.

Что делать - на крупных движениях просто зависает....


2017.05.24 18:02:43.549 Terminal Открытие Брокер x64 build 1596 started (АО ''Открытие Брокер'')
2017.05.24 18:02:43.550 Terminal Windows 7 Ultimate (x64 based PC), IE 10.00, AMD Processor Model Unknown, RAM: 9782 / 16357 Mb, HDD: 22385 / 114470 Mb, GMT+03:00

В Квике открыто более 100 окон и стаканов штук 50 - там нагрузка на процессор 1-5%
[Удален]  

AMD Processor Model Unknown

При старте ПК и в Windows так же определяется проц ?