Бета-тестирование MetaTrader 5 началось! - страница 87

 

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

Теперь в журнале пишется только вот это:

DK	1	Network	12:42:32	'20574': connection to MetaQuotes-Demo lost
RG	0	Network	12:49:32	'20574': disconnected from MetaQuotes-Demo
NL	1	Network	12:49:53	'20574': connection to MetaQuotes-Demo lost
 
conys >>:

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

1. Сейчас уже подключилось?

2. У Вас какая ОС? XP?

 

используя PrintFormat, как вывести целое число без десятичных знаков, нулей в начале и в десятичном формате?

Ни один пример в справке не показывает исползуемые в правктике примеры, поэтому понимание не достигается.

 
gwend >>:

1. Сейчас уже подключилось?

Да, вы знаете после того как прочитал ваше сообщение, решил попробовать ещё раз запустить... На "удивление" терминал стал работать :) 

 
vasya_vasya писал(а) >>

используя PrintFormat, как вывести целое число без десятичных знаков, нулей в начале и в десятичном формате?

Ни один пример в справке не показывает исползуемые в правктике примеры, поэтому понимание не достигается.

%d

 
vasya_vasya >>:

используя PrintFormat, как вывести целое число без десятичных знаков, нулей в начале и в десятичном формате?

Ни один пример в справке не показывает исползуемые в правктике примеры, поэтому понимание не достигается.

Посмотрите для начала пример из раздела "Справочник MQL5 / Стандартные константы, перечисления и структуры / Именованные константы / Константы числовых типов"

void OnStart()
  {
//--- выведем значения констант
   printf("CHAR_MIN = %d",CHAR_MIN);
   printf("CHAR_MAX = %d",CHAR_MAX);
   printf("UCHAR_MAX = %d",UCHAR_MAX);
   printf("SHORT_MIN = %d",SHORT_MIN);
   printf("SHORT_MAX = %d",SHORT_MAX);
   printf("USHORT_MAX = %d",USHORT_MAX);
   printf("INT_MIN = %d",INT_MIN);
   printf("INT_MAX = %d",INT_MAX);
   printf("UINT_MAX = %u",UINT_MAX);
   printf("LONG_MIN = %I64d",LONG_MIN);
   printf("LONG_MAX = %I64d",LONG_MAX);
   printf("ULONG_MAX = %I64u",ULONG_MAX);
   printf("EMPTY_VALUE = %.16e",EMPTY_VALUE);
   printf("DBL_MIN = %.16e",DBL_MIN);
   printf("DBL_MAX = %.16e",DBL_MAX);
   printf("DBL_EPSILON = %.16e",DBL_EPSILON);
   printf("DBL_DIG = %d",DBL_DIG);
   printf("DBL_MANT_DIG = %d",DBL_MANT_DIG);
   printf("DBL_MAX_10_EXP =  %d",DBL_MAX_10_EXP);
   printf("DBL_MAX_EXP = %d",DBL_MAX_EXP);
   printf("DBL_MIN_10_EXP = %d",DBL_MIN_10_EXP);
   printf("DBL_MIN_EXP = %d",DBL_MIN_EXP);
   printf("FLT_MIN = %.8e",FLT_MIN);
   printf("FLT_MAX = %.8e",FLT_MAX);
   printf("FLT_EPSILON = %.8e",FLT_EPSILON);
  }
 


Кроме того, для функции "Справочник MQL5 / Получение рыночной информации / SymbolInfoInteger " дан полезный пример, который показывает как вывести значение спреда не только для символа с фиксированным спредом, но и для символа, где спред меняется динамически.

void OnTick()
  {
//---
   double Ask,Bid;
   int Spread;
   bool fixed_spread=true;
   Ask=SymbolInfoDouble(Symbol(),SYMBOL_ASK);
   Bid=SymbolInfoDouble(Symbol(),SYMBOL_BID);
   Spread=SymbolInfoInteger(Symbol(),SYMBOL_SPREAD);
   if(Spread==0) // спред плавающий
     {
      fixed_spread=false;
      Spread=(Ask-Bid)/Point();
     }
 
   string comm,format;
   if(fixed_spread)
     {
      format=StringFormat("Fixed spread = %%d points, Point = %%.%df",_Digits);
      comm=StringFormat(format,Spread,Point());
     }
   else
     {
      format=StringFormat("Floating spread = %%d points, Point = %%.%df",_Digits);
      comm=StringFormat(format,Spread,Point());
     }
   Comment(comm);
  }
 


И еще для функции "Справочник MQL5 / Информация о счете / AccountInfoDouble "

void OnStart()
  {
//--- выведем всю информацию, доступную из функции AccountInfoDouble()
   printf("ACCOUNT_BALANCE =  %G",AccountInfoDouble(ACCOUNT_BALANCE));
   printf("ACCOUNT_CREDIT =  %G",AccountInfoDouble(ACCOUNT_CREDIT));
   printf("ACCOUNT_PROFIT =  %G",AccountInfoDouble(ACCOUNT_PROFIT));
   printf("ACCOUNT_EQUITY =  %G",AccountInfoDouble(ACCOUNT_EQUITY));
   printf("ACCOUNT_MARGIN =  %G",AccountInfoDouble(ACCOUNT_MARGIN));
   printf("ACCOUNT_FREEMARGIN =  %G",AccountInfoDouble(ACCOUNT_FREEMARGIN));
   printf("ACCOUNT_MARGIN_LEVEL =  %G",AccountInfoDouble(ACCOUNT_MARGIN_LEVEL));
   printf("ACCOUNT_MARGIN_SO_CALL = %G",AccountInfoDouble(ACCOUNT_MARGIN_SO_CALL));
   printf("ACCOUNT_MARGIN_SO_SO = %G",AccountInfoDouble(ACCOUNT_MARGIN_SO_SO));
  }
 
 

Не могу сегодня вручную расставить отложенные ордера на продажу по паре AUDUSD. Все попытки заканчиваются ошибкой "No prices". По всем остальным парам ордера расставляются.

 

А автономно нельзя уже открывать график что ли? Импорт и т.д.

Или я что то упустил?

 
stringo писал(а) >>

%d

printf("проба = %d",1.23456);

выводит «проба = 01.23456000», а нужно «проба = 1»

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

Rosh писал(а) >>

Посмотрите для начала пример из раздела "Справочник MQL5 / Стандартные константы, перечисления и структуры / Именованные константы / Константы числовых типов"

Кроме того, для функции "Справочник MQL5 / Получение рыночной информации / SymbolInfoInteger " дан полезный пример, который показывает как вывести значение спреда не только для символа с фиксированным спредом, но и для символа, где спред меняется динамически.

И еще для функции "Справочник MQL5 / Информация о счете / AccountInfoDouble "

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

как сделать из "1.2345" единицу ("1")?

 
vasya_vasya >>:


как сделать из "1.2345" единицу ("1")?

Самое простое - используйте DoubleToString(1.2345,0), например:

void OnStart()
  {
//---
   double test=1.2345;
   Print("test =",DoubleToString(test,0));
  }
Причина обращения: