[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 679

 


Уважаемые программисты,
ответьте пожалуйста на следующий вопрос:

Выводит с 8-ю знаками после запятой. Почему не нормализуется?

double open_sss=NormalizeDouble(iOpen(Symbol(),PERIOD_M5,elapsed_bar),Digits);
Print("open_sss= "+open_sss);

http://savepic.ru/1435355.gif 

 
Hedin:


Уважаемые программисты,
ответьте пожалуйста на следующий вопрос:

Выводит с 8-ю знаками после запятой. Почему не нормализуется?

http://savepic.ru/1435355.gif 


нормализуется по любому, вопрос в том, что Вы хотите получить, если как в справке написано про функцию NormalizeDouble(), что она округляет с указанной точностью и возвращает тип double, у Вас все правильно, а если Вам надо текстовую строку с указанной точностью знаков после запятой, тогда надо использовать DoubleToStr()
 
IgorM:


наверно не так понял смысл функции int startH = Hour(); - она даст текущее серверное время - час, я бы так поискал ноль часов, или любой другой час:

 


Спасибо, теперь работает.

 А вот почему не сработало это с функцией Hour() я так и не понял.

Она дала нам текущий час  северного времени. К примеру пусть это будет 5

Соответственно когда мы вызываем open[i+5] то получаем цену открытия свечи которая открылась в начале дня т.е в 0:00 часов.

 

Объясните пожалуйста  что именно я не так понимаю ?  

 
webgreck:


Спасибо, теперь работает.

 А вот почему не сработало это с функцией Hour() я так и не понял.

Она дала нам текущий час  северного времени. К примеру пусть это будет 5

Соответственно когда мы вызываем open[i+5] то получаем цену открытия свечи которая открылась в начале дня т.е в 0:00 часов.

 

Объясните пожалуйста  что именно я не так понимаю ?  


серверное время - это время сервера ( TimeCurrent() ), у Вас на Вашем Пк ( TimeLocal(); ), а функция Hour() : 

"Возвращает текущий час (0,1,2,..23) последнего известного серверного времени на момент старта программы (в процессе выполнения программы это значение не меняется).Замечание: при тестировании последнее известное время сервера моделируется. "

сам даже не пойму что с ним делать если оно не изменяется - возможно надо только для тестера.

 
webgreck:

Подскажите пожалуйста что не так я сделал ?

Мне нужно на часовом графике найти цену открытия первой свечи т.е та что в 0:00 и от этой свечки до текущей найти максимальное значение цены.

У меня почему всегда выводит хай первой свечи на текущий день.

Вот как я делаю :

Цикл по Time[] и найдешь нужный бар, потом от этого бара цикл поиска экстремума.
 

Коллеги, кто нибудь знает, как сделать так, чтобы тестер не вычитал комиссию за совершение сделки? Может быть в МТ4 есть файл, где указана сумма комиссии за контракт по определенному инструменту?

Поясню, для чего это нужно. Меня кроме валют интересуют еще наши отечественные фьючерсы на сбер и индекс ртс. Для разработки робота квик не подходит. В МТ4 /Броко/ есть котировки CFD на русские инструменты, но у них комиссия космическая, например, один контракт - CFD на фьючерсы на индекс ртс ( как звучит, а ..:)) вот лохотрон на лохотрон... стоит 10 зеленых бумажек. Поэтому даже сделка с профитом в 250п. дает в тестере убыток в 1 $. Гадость неимоверная, инструмент и котиры есть, а протестить и оптимизировать невозможно.

Памагите!

 
Blaid73:

Коллеги, кто нибудь знает, как сделать так, чтобы тестер не вычитал комиссию за совершение сделки? Может быть в МТ4 есть файл, где указана сумма комиссии за контракт по определенному инструменту?

Поясню, для чего это нужно. Меня кроме валют интересуют еще наши отечественные фьючерсы на сбер и индекс ртс. Для разработки робота квик не подходит. В МТ4 /Броко/ есть котировки CFD на русские инструменты, но у них комиссия космическая, например, один контракт - CFD на фьючерсы на индекс ртс ( как звучит, а ..:)) вот лохотрон на лохотрон... стоит 10 зеленых бумажек. Поэтому даже сделка с профитом в 250п. дает в тестере убыток в 1 $. Гадость неимоверная, инструмент и котиры есть, а протестить и оптимизировать невозможно.

Памагите!


наверно это: https://www.mql5.com/ru/forum/119830

 

Подскажите пожалуйста, как и чем можно заменить код, чтобы делал то же самое, но работал быстрее:

if (BB_1>BB_2 && BB_2<=BB_3 && BB_1<0)                               // Найден разворот BB вверх
      {
      switch (tf)
         {
            case 1:     TrBBTurnUP_M1 =true;  TrBBTurnDN_M1=false;      // Флаг разворота вверх на М1
            case 5:     TrBBTurnUP_M5 =true;  TrBBTurnDN_M5=false;      // Флаг разворота вверх на М5
            case 15:    TrBBTurnUP_M15=true;  TrBBTurnDN_M15=false;     // Флаг разворота вверх на М15 
            case 30:    TrBBTurnUP_M30=true;  TrBBTurnDN_M30=false;     // Флаг разворота вверх на М30 
            case 60:    TrBBTurnUP_H1 =true;  TrBBTurnDN_H1=false;      // Флаг разворота вверх на H1
            case 240:   TrBBTurnUP_H4 =true;  TrBBTurnDN_H4=false;      // Флаг разворота вверх на H4
            case 1440:  TrBBTurnUP_D1 =true;  TrBBTurnDN_D1=false;      // Флаг разворота вверх на D1
            case 10080: TrBBTurnUP_W1 =true;  TrBBTurnDN_W1=false;      // Флаг разворота вверх на W1
            case 43200: TrBBTurnUP_MN =true;  TrBBTurnDN_MN=false;      // Флаг разворота вверх на MN
         }
      }

Это просто кусочек одной большой функции, где таких проверок много и это сильно сказывается на производительности. Я уже задавал здесь вопросы по оптимизации кодов, но ответов не получил и поиском ничего не нашел... Неужели это тайна за семью печатями, что никто об этом либо не знает, либо поделиться не хочет...??? Хотя бы ссылочку на статейку какую-нить ... почитать на досуге... всё-равно тестирование уже невозможно полностью...

 
Как к Вам зайти? У меня много вопросов, хотелось бы проконсультироваться.
 
artmedia70:

Подскажите пожалуйста, как и чем можно заменить код, чтобы делал то же самое, но работал быстрее: ...

Я бы свитч заменил готовым массивом, чего присваивать каждый раз предопределенные значения?
Причина обращения: