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

 
Ivan Butko #:

Амм... даже не знаю, что это))

Такой строчки у меня нет в директивах

в роботе нужно указать, результат сообщить тут)

 
lynxntech #:

в роботе нужно указать, результат сообщить тут)

Тоже самое, сет пишет прибыль 210
Прогоняешь - в отчетё - 229

 
Ivan Butko #:

Тоже самое, сет пишет прибыль 210
Прогоняешь - в отчетё - 229

или в индикаторах..., когда задавал вопрос, кто-то написал что в роботе..., бардак вообщем.


Свойства программ (#property)

У каждой mql5-программы можно указать дополнительные специфические параметры #property, которые помогают клиентскому терминалу правильно обслуживать программы без необходимости их явного запуска. В первую очередь это касается внешних настроек индикаторов. Свойства, описанные во включаемых файлах, полностью игнорируются. Свойства необходимо задавать в главном mq5-файле.

в свое время проставил везде где можно)

разработчики почему-то подумали, что тут все специалисты, и по дефолту нужно кривую(оптимизацию) версию включить.
 
Ivan Butko #:

Снова началась проблема: Оптимизация показывает одни сеты, а когда их прогоняешь - другие. 

Относительно недавно похожая проблема всплывала на форуме. Там было дело во включённом в тестере режиме моделирования задержек вместо нулевой задержки:


 
lynxntech #:

или в индикаторах..., когда задавал вопрос, кто-то написал что в роботе..., бардак вообщем.


Свойства программ (#property)

У каждой mql5-программы можно указать дополнительные специфические параметры #property, которые помогают клиентскому терминалу правильно обслуживать программы без необходимости их явного запуска. В первую очередь это касается внешних настроек индикаторов. Свойства, описанные во включаемых файлах, полностью игнорируются. Свойства необходимо задавать в главном mq5-файле.

в свое время проставил везде где можно)

Имею ввиду!

Ещё один момент - я не использую индикаторы. 

IClose, iHigh, вот их использую - и всё равно - чихарда с сетами. Запускаешь тооовый сет - а он косяченный, показывает плохой график


Yuriy Bykov #:

Относительно недавно похожая проблема всплывала на форуме. Там было дело во включённом в тестере режиме моделирования задержек вместо нулевой задержки:

Имею ввиду,

А у меня - стандартно - без задержек, "идеальное исполнение"

 

Всем привет. Написал несложную функцию подсчета прибыли исторических ордеров за определенный период.

Подскажите, почему в тестере тикет не тот выдает? Что я не правильно понимаю?

double History_Profit(datetime startTime)
  {
   long nmbMagic = (long)Magic;
   double h_profit = 0.0;
   ulong ticket;
   HistorySelect(startTime, TimeCurrent()); // Выбор истории сделок в указанном диапазоне
   int total_h = HistoryDealsTotal(); // Общее количество сделок в истории

// Цикл проходит по всем сделкам в истории
   for(int i = total_h - 1; i >= 0; i--)
     {
      ticket = HistoryDealGetTicket(i); // Получение тикета сделки
      if(ticket > 0)
        {
         // Получение символа, магического числа и прибыли сделки
         string dealSymbol = HistoryDealGetString(ticket, DEAL_SYMBOL);
         long dealMagic = (long)HistoryDealGetInteger(ticket, DEAL_MAGIC);
         double dealProfit = HistoryDealGetDouble(ticket, DEAL_PROFIT);
         double dealCommission = HistoryDealGetDouble(ticket, DEAL_COMMISSION);
         double dealSwap = HistoryDealGetDouble(ticket, DEAL_SWAP);

         // Фильтрация сделок по символу и магическому числу
         if(dealSymbol == _Symbol && dealMagic == nmbMagic)
           {
            // Суммирование прибыли, комиссии и свопа
            h_profit += dealProfit + dealCommission + dealSwap;
           }
        }
     }

   return (h_profit); // Возврат общей прибыли
  }

Чат GPT уже скоро сломается из-за меня)))) 

 
Robert Sadamon #:

Всем привет. Написал несложную функцию подсчета прибыли исторических ордеров за определенный период.

Подскажите, почему в тестере тикет не тот выдает? Что я не правильно понимаю?

Чат GPT уже скоро сломается из-за меня)))) 

Может вместо 

int total_h = HistoryDealsTotal(); // Общее количество сделок в истории

нужно перебирать 

int total_h = HistoryOrdersTotal(); // Общее количество ордеров в истории

С уважением, Владимир.

 
MrBrooklin #:

Может вместо 

нужно перебирать 

С уважением, Владимир.

Ещё и ошибка с этим

// Фильтрация сделок по символу и магическому числу
         if(dealSymbol == _Symbol && dealMagic == nmbMagic)
           {
            // Суммирование прибыли, комиссии и свопа
            h_profit += dealProfit + dealCommission + dealSwap;
           }
потому что ордер не может быть ни прибыльным, ни убыточным
 
Vitaly Muzichenko #:

Ещё и ошибка с этим

потому что ордер не может быть ни прибыльным, ни убыточным

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

С уважением, Владимир.

 
Robert Sadamon #:

Всем привет. Написал несложную функцию подсчета прибыли исторических ордеров за определенный период.

Подскажите, почему в тестере тикет не тот выдает? Что я не правильно понимаю?

Чат GPT уже скоро сломается из-за меня)))) 

В вашем коде ошибок нет. В тестере работает, с тикетом проблем нет.

Профит считает правильно.

Почему вы решили, что в коде ошибка?


Рискну предположить, что эта функция выдаёт не правильный результат в конце тестирования.

Если так то попробуйте вызвать её в OnDeinit и используйте вместо TimeCurrent  - TimeTradeServer