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

Vladimir Simakov
5045
Vladimir Simakov  
Alexey Navoykov:
inline - это пережиток, на мой взгляд.  Компилятор и сам всё прекрасно инлайнит, так что загромождать код нет необходимости. Все эти низкоуровневые примочки можно оставить в прошлом.  А в MQL данный спецификатор вообще пустышка, добавлен чисто для совместимости (не знаю только зачем, если можно было и самому объявить такой макрос)
А кто Вам даст гарантию, что компилятор заинлайнил 100500 вызовов функции GetЧтоТо() в цикле, если перед вызовом стоит if(something) и этот something бывает false раз в пятилетку?
Вот мне как-то проще inline написать, чем дизассемблерный код смотреть для проверки.
Artyom Trishkin
Модератор
121824
Artyom Trishkin  
Vladimir Simakov:
А кто Вам даст гарантию, что компилятор заинлайнил 100500 вызовов функции GetЧтоТо() в цикле, если перед вызовом стоит if(something) и этот something бывает false раз в пятилетку?
Вот мне как-то проще inline написать, чем дизассемблерный код смотреть для проверки.
Простите, вы дизассемблируете коды ex4, ex5 ?
Andrey Egorov
4924
Andrey Egorov  
Artyom Trishkin:
Простите, вы дизассемблируете коды ex4, ex5 ?

Артём, как модератор помогите мне с этим, пожалуйста, я писал ранее :

"Для администраторов сайта:

не нашел где, пишу здесь

нужно поменять реквизиты продавца в профиле.

как это сделать ?

уже давно написал сообщение в кабинете продавца, ответа нет 

может есть другой способ ?

"

Artyom Trishkin
Модератор
121824
Artyom Trishkin  
Andrey Egorov:

Артём, как модератор помогите мне с этим, пожалуйста, я писал ранее :

"Для администраторов сайта:

не нашел где, пишу здесь

нужно поменять реквизиты продавца в профиле.

как это сделать ?

уже давно написал сообщение в кабинете продавца, ответа нет 

может есть другой способ ?

"

Напишите в эту ветку (+ передал вашу просьбу администрации):

Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • 2010.03.08
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.
Vladimir Simakov
5045
Vladimir Simakov  
Artyom Trishkin:
Простите, вы дизассемблируете коды ex4, ex5 ?
Нет. А разве там какая-то принципиальная сложность есть?
Не путайте с декомпилом - это разные вещи.
Artyom Trishkin
Модератор
121824
Artyom Trishkin  
Vladimir Simakov:
Нет. А разве там какая-то принципиальная сложность есть?
Не путайте с декомпилом - это разные вещи.

Я задал конкретный же вопрос. Вы дали конкретный ответ.

А о "путать что-то с чем-то" это уже ваши измышления. Не беспокойтесь пожалуйста - я знаю, и не путаю, и ваши остальные вопросы тут уже излишни.

Alexey Navoykov
4413
Alexey Navoykov  
Vladimir Simakov:
А кто Вам даст гарантию, что компилятор заинлайнил 100500 вызовов функции GetЧтоТо() в цикле, если перед вызовом стоит if(something) и этот something бывает false раз в пятилетку?
Вот мне как-то проще inline написать, чем дизассемблерный код смотреть для проверки.

И много вам удалось оптимизировать своими инлайнами в режиме Релиз? )

p.s. Это не вы ли тут недавно с выравниваниями заморачивались?

Aleksey Vyazmikin
15165
Aleksey Vyazmikin  

Други мои, подскажите, что же это делается, месяц все работало хорошо, а осмелился я загрузить депозит и вот словил ошибку - карма черная уже замучала :(

Вот вызов индикатора из советника

//+------------------------------------------------------------------+
//|значение Regressor Номера буферов: 0 - Up, 1 - Center, 2 - Low    |
//+------------------------------------------------------------------+
double Regressorf(int Bufer,int index)
  {
   double MA[1];
   ResetLastError();
   if(CopyBuffer(handle_Regressor,Bufer,index,1,MA)<0)
     {
      Print("handle_Regressor: Bufer=",Bufer," index=",index);
      PrintFormat("Failed to copy data from the handle_Regressor indicator, error code %d",GetLastError());
      return(0.0);
     }
   Print("handle_Regressor: Bufer=",Bufer," index=",index," arr=",MA[0]);
   return MA[0];
  }

С июля активно все тестировалось на реальном счете под моим чутким контролем, ошибки не было, и тут вывалилась :(

2019.08.15 20:51:11.827 TZ_Sky_and_Ground_V_04_test (Si-9.19,M1)        Failed to copy data from the handle_Regressor indicator, error code 4806
2019.08.15 20:51:58.329 TZ_Sky_and_Ground_V_04_test (Si-9.19,M1)        handle_Regressor: Bufer=1 index=627
2019.08.15 20:51:58.329 TZ_Sky_and_Ground_V_04_test (Si-9.19,M1)        Failed to copy data from the handle_Regressor indicator, error code 4806
2019.08.15 20:52:44.840 TZ_Sky_and_Ground_V_04_test (Si-9.19,M1)        handle_Regressor: Bufer=0 index=627
2019.08.15 20:52:44.840 TZ_Sky_and_Ground_V_04_test (Si-9.19,M1)        Failed to copy data from the handle_Regressor indicator, error code 4806
2019.08.15 20:53:31.350 TZ_Sky_and_Ground_V_04_test (Si-9.19,M1)        handle_Regressor: Bufer=2 index=627
2019.08.15 20:53:31.350 TZ_Sky_and_Ground_V_04_test (Si-9.19,M1)        Failed to copy data from the handle_Regressor indicator, error code 4806
2019.08.15 20:54:17.867 TZ_Sky_and_Ground_V_04_test (Si-9.19,M1)        handle_Regressor: Bufer=1 index=627

Что это может быть? При этом индикатор сам визуально работает, переинициализация советника решила проблему.

Kelser05
39
Kelser05  

Добрый день!

Наверно у меня глупый вопрос, но не могу понять, что делаю не так. Начал обучаться языку MQL5 и возникла первая же проблема. Не получается запустить скрипт на немедленное открытие ордера (продажа\покупка, хоть какой-нибудь). Прям взял готовый код из справочника MQL5 и попробовал запустить (прикрепить скрипт к окошку графика). Не вышло. При компиляции естественно ошибок нет. А присоединить к графику не могу..всю голову сломал. Может все очевидно, но я в растерянности. 

#define EXPERT_MAGIC 123456   // MagicNumber эксперта
//+------------------------------------------------------------------+
//| Открытие позиции Buy                                             |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- объявление и инициализация запроса и результата
   MqlTradeRequest request={0};
   MqlTradeResult  result={0};
//--- параметры запроса
   request.action   =TRADE_ACTION_DEAL;                     // тип торговой операции
   request.symbol   =Symbol();                              // символ
   request.volume   =0.1;                                   // объем в 0.1 лот
   request.type     =ORDER_TYPE_BUY;                        // тип ордера
   request.price    =SymbolInfoDouble(Symbol(),SYMBOL_ASK); // цена для открытия
   request.deviation=5;                                     // допустимое отклонение от цены
   request.magic    =EXPERT_MAGIC;                          // MagicNumber ордера
//--- отправка запроса
   if(!OrderSend(request,result))
      PrintFormat("OrderSend error %d",GetLastError());     // если отправить запрос не удалось, вывести код ошибки
//--- информация об операции
   PrintFormat("retcode=%u  deal=%I64u  order=%I64u",result.retcode,result.deal,result.order);
  }

Подскажите, пожалуйста, что не так? Или код верный и просто я криворукий?

Vladislav Andruschenko
216495
Vladislav Andruschenko  
Kelser05:

Добрый день!

Наверно у меня глупый вопрос, но не могу понять, что делаю не так. Начал обучаться языку MQL5 и возникла первая же проблема. Не получается запустить скрипт на немедленное открытие ордера (продажа\покупка, хоть какой-нибудь). Прям взял готовый код из справочника MQL5 и попробовал запустить (прикрепить скрипт к окошку графика). Не вышло. При компиляции естественно ошибок нет. А присоединить к графику не могу..всю голову сломал. Может все очевидно, но я в растерянности. 

Подскажите, пожалуйста, что не так? Или код верный и просто я криворукий?


Ну а в журнале то сто пишет ?