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

 

Неверный текст ошибки

void f( int &[] ) {}

class A
{
public:
  int Array[];
  
  void f2() const
  {
    f(this.Array); // 'Array' - constant variable cannot be passed as reference
  }
};
 
Вроде, не должен ругаться
Print(NULL); // 'NULL' - expression of 'void' type is illegal
 
Kirill Belousov:

Верно.

Но почему не выдается шибка 139 при попытке закрывать ордер, по которому уже был отправлен приказ на закрытие?

Ведь мы скорее имеем ситуацию 139-й ошибки. Разве не так?

Не знаю. Но это и багом сложно назвать.

 
Andrey Khatimlianskii:

Не знаю. Но это и багом сложно назвать.

2017.11.10 16:29:01.266 '8615385': order was opened : #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000
2017.11.10 20:37:38.949 '8615385': close order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 at price 0.00000
2017.11.10 20:37:39.277 '8615385': close order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 at price 0.00000
2017.11.10 20:37:39.745 '8615385': order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 closed at price 1.68356
2017.11.10 20:37:39.745 '8615385': order #4448742 sell 0.02 EURNZD closing at 0.00000 failed [Invalid parameters]

Если смотреть на журнал терминала, то сообщение об ошибке 3 выдается после закрытия позиции, а не в момент когда блокировка на сервере должна была обнаружиться.

Сообщение об ошибке 139 можно было выдать почти на 0,5 сек раньше. Все это время советник "висит", чтобы получить ошибку 3 после закрытия ордера.

И, кстати, ошибка 3 Invalid Parameters есть в журнале терминала, а 4108 только благодаря выводу его и только во вкладке эксперта. Похоже, что 4108 - это обработка на стороне клиента.

Просто хочется знать/понять логику, чтобы закладывать ее в код, а не нащупывать методом научного тыка.. )

В какой же еще ситуации получать ошибку 139 как не в данной...?

 
Kirill Belousov:

В какой же еще ситуации получать ошибку 139 как не в данной...?

В момент срабатывания отложенного ордера/СЛ/ТП или закрытия позиции по стоп-ауту (тоже на сервере).

По 4108 не подскажу.
Но, повторюсь, не вижу смысла разбираться — если 2 советника одновременно отдают приказ на закрытие, у одного из них точно будет ошибка (какая разница - какая?).
Обрабатывать очень просто — делаем OrderSelect и проверяем OrderCloseTime.

 
Ilnur Khasanov:

wtf?
от модератора:
К сожалению, из-за технического сбоя текст описания был удален. Пожалуйста, напишите его еще раз и отправьте продукт на проверку.
Приносим извинения за доставленные неудобства.

Это не просто неудобство, это парить мозг несколько раз (каждый раз - это ожидание в 10 суток), а потом удалить и сказать: ой, извини, мы стерли, сам там как нить восстанови, потом подожди еще 10 суток. - и при попытке сделать это еще падает сайт..

Что это за лажа? Какой такой сбой должен произойти, чтобы это потерялось? что нет истории для восстановления? Сообщение описания находилось на хранении несколько суток.
Почему сообщение от модератора не всплыло на этот раз?

Я точно знаю, что это проблема со стиранием данных происходит не разово. Этот якобы сбой, на самом деле это не сбой (Возможно затягивание сроков), потому что такое происходит не только у меня и не в одно и то же время (проблема существует более полугода)! - прошу прокомментировать..

И прошу починить. Если не способны, наймите меня. Сделаю за неделю, за 2000 евро.

Как так то.. фиаско прям..

Вообще, восстановят ли стертое? Пропала половина переписки с модератором. Пропали сообщения с форума. А еще модераторы в догонку поудаляли ставшие пустыми сообщения.
Почему нет режима - проводятся тех работы? - вернее порядок такой- сначала включается режим - потом проводятся работы, потом режим восстанавливается.

Как только запостил - сайт упал. Решил обновить - сайт лежит...

wtf во второй раз. замечание выше писал 4 дня назад. теперь опять вернули с замечанием, которое я уже исправлял. я выкладывал новую версию продукта. теперь ее нет. куда делась новая версия?
так работать нельзя - ну несерьезно..
в новом комментарии к модератору я продублировал описание которое пропало, чтобы не терял больше.
а как быть с продуктом? высылать на емейл? прикреплять в комментарии? или попробовать еще раз и ждать сутками?
 

TimeTradeServer

Возвращает расчетное текущее время торгового сервера. В отличие от функции TimeCurrent(), расчет значения времени производится в клиентском терминале и зависит от настроек времени на компьютере пользователя. Существует 2 варианта функции.

Не понятно, о каких настройках идет речь! У меня брокер открытие, транслирует время 13 часов, компьютер стационарный показывает 13 часов, а функция возвращает 12 часов - как так?

Соответственно не ясно, почему такая функция

int Shift=Bars(Symbol(),PERIOD_CURRENT,Open_Time,NowTime);

Производит вообще расчет, если Open_Time - 13 часов, а NowTime - 12 часов.

 

не могу понять в чем глюк

   double Bid=SymbolInfoDouble(Symbol(),SYMBOL_BID);
   double Ask=SymbolInfoDouble(Symbol(),SYMBOL_ASK);
  
         Print("Symboll="+ Symbol()+" Bid="+DoubleToString(Bid,8)+" StringFind="+StringFind(Bid,".",0));

выводит постоянно 1

2017.11.19 11:04:02.073 (EURJPY,M1)     Bid=132.14200000 StringFind=1
2017.11.19 11:04:06.900 (EURUSD,M1)     Bid=1.17884000 StringFind=1
2017.11.19 11:04:20.942 (AUDJPY,M1)     Bid=84.78500000 StringFind=1

2017.11.19 11:10:18.531 (USDMXN,M1) Symboll=USDMXN Bid=18.91427000 StringFind=1


точку всегда находит как 2 элемент в строке. хотя до точки еще 3 или 2 символа


Билд 1653

 
Vladislav Andruschenko:

не могу понять в чем глюк

выводит постоянно 1


точку всегда находит как 2 элемент в строке. хотя до точки еще 3 или 2 символа

Попробуй так

Print("Symboll="+ Symbol()+" Bid="+DoubleToString(Bid,8)+" StringFind="+StringFind(string(Bid),".",0));

или так

Print("Symboll="+ Symbol()+" Bid="+DoubleToString(Bid,8)+" StringFind="+StringFind((string)Bid,".",0));
что в принципе абсолютно одинаково.
 
Alexey Viktorov:

Попробуй так

или так

что в принципе абсолютно одинаково.


Спасибо,

согласен. 

не привел к одному типу.