Вопросы от "чайника" - страница 163

 

Выше Urain описал функцию.Вот ее и использовать.

Получаете время бара нужного ТФ ,исходя из даты.

 

Не подскажите, почему при расчете размера лота в разных ДЦ я получаю разные значения.

Например: 1ДЦ - свободных средств: 10000, мин.лот 0.01 вычисляем 100% от свободных средств получаем размер лота 79.37

                2ДЦ - свободных средств: 10000, мин.лот 0.01 вычисляем 100% от свободных средств получаем размер лота 7.96.

Что я не учитываю, почему размер лота разный получается?

 
pusheax:

Не подскажите, почему при расчете размера лота в разных ДЦ я получаю разные значения.

Например: 1ДЦ - свободных средств: 10000, мин.лот 0.01 вычисляем 100% от свободных средств получаем размер лота 79.37

                2ДЦ - свободных средств: 10000, мин.лот 0.01 вычисляем 100% от свободных средств получаем размер лота 7.96.

Что я не учитываю, почему размер лота разный получается?


Есть ДЦ, у которых 1 лот = 10000 ед. базовой валюты (например Инста). Смотрите спецификацию контрактов.
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
pusheax:

Не подскажите, почему при расчете размера лота в разных ДЦ я получаю разные значения.

Например: 1ДЦ - свободных средств: 10000, мин.лот 0.01 вычисляем 100% от свободных средств получаем размер лота 79.37

                2ДЦ - свободных средств: 10000, мин.лот 0.01 вычисляем 100% от свободных средств получаем размер лота 7.96.

Что я не учитываю, почему размер лота разный получается?

Количество знаков?
 
Silent:
Количество знаков?
При чём тут колл. знаков. Вопрос даже не в том, что разница на порядок. Это то как раз норма, а в разнице 0.23 лота. А пара точно одна и та же? А цена открытия?
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
 
sumkin75:
При чём тут колл. знаков. Вопрос даже не в том, что разница на порядок. Это то как раз норма, а в разнице 0.23 лота. А пара точно одна и та же? А цена открытия?

Это называется мини или микрореал.

Некоторые диллинги просто дают дробные лоты, другие меняют размер контракта, таким образом лот 0,01 на обычном счёте превращается в 1 лот на микрореале.

Это так называемые центовые счета.

Получить значение можно вот так:

SymbolInfoDouble(_Symbol,SYMBOL_TRADE_CONTRACT_SIZE);
 
sumkin75:
При чём тут колл. знаков. Вопрос даже не в том, что разница на порядок. Это то как раз норма, а в разнице 0.23 лота. А пара точно одна и та же? А цена открытия?

Да Вы правильно подсказали!

Просто дальше мне так что ли делать?

   g_d_ContractSize = SymbolInfoDouble(s_Symbol,SYMBOL_TRADE_CONTRACT_SIZE);//Размер торгового контракта 10000-Инста, 100000-другие

   g_d_ContractSizeDiv = 100000/g_d_ContractSize;//Разница

и потом g_d_ContractSizeDiv умножать на размер лота?

 
Не подскажите, есть ли готовая функция разбиения по тысячам например: из 1000000 получить 1 000 000?
 
pusheax:
Не подскажите, есть ли готовая функция разбиения по тысячам например: из 1000000 получить 1 000 000?

Так понимаю что нужно визуальное разбиение, тогда нужно перевести число в string. И уже делать со стрингом всё что нужно.

Функции которой вы хотите нет, но вы сами легко её составите используя функцию StringSubstr()

Строковые функции

Короче как то так:

string FormatInteger(ulong val)
  {
   string temp=IntegerToString(val),res="";
   int len=StringLen(temp);
   int i=len-3;   
   while(i>=0)
     {
      res=" "+StringSubstr(temp,i,3)+res;
      i-=3;      
     }
   if(len%3!=0)res=" "+StringSubstr(temp,0,len%3)+res;  
   return(res);  
  }
void OnStart()
  {
   Print(FormatInteger(10000000));   
  }
 
Urain:

Так понимаю что нужно визуальное разбиение, тогда нужно перевести число в string. И уже делать со стрингом всё что нужно.

Функции которой вы хотите нет, но вы сами легко её составите используя функцию StringSubstr()

Строковые функции

Короче как то так:

Спасибо, попробую прикрутить.