Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 604

 
tuner:

Народ подскажите плиз как правильно преобразовать double в int?

MatRound и остальные функции округления до целого числа возвращают, как ни странно, Double. И если int переменной присвоить значение функции MatRound, то компилятор выдает кучу предупреждений типа

double d = 123.456;
int i = int(d);
 
tuner:

Народ подскажите плиз как правильно преобразовать double в int?

MatRound и остальные функции округления до целого числа возвращают, как ни странно, Double. И если int переменной присвоить значение функции MatRound, то компилятор выдает кучу предупреждений типа



Используйте явное приведение типов.
 
tuner:

Народ подскажите плиз как правильно преобразовать double в int?

MatRound и остальные функции округления до целого числа возвращают, как ни странно, Double. И если int переменной присвоить значение функции MatRound, то компилятор выдает кучу предупреждений типа




Преобразование числовых типов
 

Zhunko, Contender, r772ra

Спасибо! Помогло :)

 

Требуется вывод текстового сообщения, который можно скопировать, содержащий кучу строк с информацией о последнем ордере.

MessageBox(), вроде, не позволяет выделить и скопировать текст.

Пробовал через ObjectCreate() создать тип OBJ_EDIT, но там перевод строки '\n' не работает, отображается в виде квадратика, и все - в одну строку.

Единственное, через Alert() в шапке выдается с переносом строк как мне нужно и выделяется текст, но журнал сообщений со временем, который ниже - это для меня лишнее.

Никто не сталкивался с таким, как кроме Алерта можно еще вывести сообщение в несколько строк и скопировать его?

 
pu6ka:

Требуется вывод текстового сообщения, который можно скопировать, содержащий кучу строк с информацией о последнем ордере.

MessageBox(), вроде, не позволяет выделить и скопировать текст.

Пробовал через ObjectCreate() создать тип OBJ_EDIT, но там перевод строки '\n' не работает, отображается в виде квадратика, и все - в одну строку.

Единственное, через Alert() в шапке выдается с переносом строк как мне нужно и выделяется текст, но журнал сообщений со временем, который ниже - это для меня лишнее.

Никто не сталкивался с таким, как кроме Алерта можно еще вывести сообщение в несколько строк и скопировать его?

Позволяет --> Ctrl-C.
 
Zhunko:
Позволяет --> Ctrl-C.


Получилось.

Выделять не дает, как в Алерте выше на скрине, из-за этого и не подумал использовать копирование.

Правда, и название из заголовка копирует и "ОК" с кнопки, ну это вроде "поотключать" можно, разберусь.

Спасибо Zhunko.

 
Сойдет ли такой код для открытия ордеров.
 if (USDCAD){
          while(Count("USDCAD")==0){
            Result[0] = OrderSend("USDCAD",OP_BUY,Lot,MarketInfo("USDCAD",MODE_ASK),slip,0,0,"USDCAD",magic[0],0,Red);
            if (Result[0]<0){
              Answer=ERRORS(GetLastError());
              if (Answer==1)continue;
              if (Answer==2)break;
            }
          }
        }


int ERRORS (int Error)  // Error - номер ошибки  
  {
  if(Error==0)
      return(0);        // Нет ошибки      
  // 4-торговый сервер занят,132-рынок закрыт,137-брокер занят
  if(Error==4||Error==132||Error==137)  
      {
      Sleep(240000);    // Пауза 240 сек.
      return(1);        // Сообщаем о преодол. ошибке
      }
  // 128,142,143 - истек срок ожидания и т.д.
  if(Error==128||Error==142||Error==143) 
      {      
      Sleep(60000);     // Пауза 60 сек.
      return(1);        // Сообщаем о преодол. ошибке 
      }    
  // 135-цена изменилась,138-цена устарела
  if(Error==135||Error==138)               
      {      
      return(1);        // Сообщаем о преодол. ошибке
      }        
  // 6-нет связи,129-неправильные цены,
  // 130-неправильные стопы,136-нет цен
  if(Error==6||Error==129||Error==130||   
  Error==136||Error==137||Error==138)    
      {
      Sleep(5000);      // Пауза 5 сек. 
      return(1);        // Сообщаем о преодол. ошибке
      }
  // 146-подсистема торговли занята
  if(Error==146)               
      {      
      // Пока подсистема занята
      while(IsTradeContextBusy())
         {
         Sleep(10);     // Пауза 0.01 сек.
         }
      return(1);        // Сообщаем о преодол. ошибке
      }         
  // Критическая ошибка
  Alert("Ошибка №",Error,". Дальнейшая работа советника невозможна."); 
  return(2);          // Сообщаем о критич. ошибке
  }
 
Здравствуйте почему у разных брокеров разные результаты оптимизации и тестирования одного и того же советника стандартной машки......все настройки включая часовые пояса брокеров идентичны и оба результата проводились через реальные счета
 
Zver4991:
Здравствуйте почему у разных брокеров разные результаты оптимизации и тестирования одного и того же советника стандартной машки......все настройки включая часовые пояса брокеров идентичны и оба результата проводились через реальные счета

Да потому что какой то из этих брокеров просто напросто кухня и результаты могут отличаться как неба и земля.Вот например инсту и девлани взять в девлани вообще все совы сливали на тестере,а в реале только и проскальзованияя были.