Разрядность обработки EURUSD в МТ5 ? - страница 2

 
shelandr:

Проблема1:   найти 5 значный источник сигнала.

если это для вас проблема №1, то сожалею...

по данным росгоскомстата практически все брокера перешли на всеобщий 5 знак в котировке.

как можно их не найти - надо обладать умением.

 
shelandr:

...

Смотрю в  Print / Comment

...

Нужно так принтить Print() и комментить Comment():

double a=1.123456789;

Print(DoubleToString(a,9);
Comment(DoubleToString(a,9);
 
IgorM:

угу, он писать только умеет, а читать еще не научился, как и примеры своего кода выкладывать на форуме программистов

вот набросал скрипт:

для EURUSD в логе:

сервер альпари, фиг его знает чего топикстартер полдня ищет

 

 

Я так понял,что выводить надо в формате с двойной точностью? А в обычном формате не получится?

Я повнимательнее поисследовал и вроде как 5 разрядов в Бид/ Аск  всё таки приходят-просто Print и Comment его почему то подрезают до 4 знаков а иногда до 3 (если последняя-ноль)

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

Может как то можно смотреть с 5 знаками? На крайний случай можно конечно преобразовать к более приглядному виду типа:

int  B= ( Bid -1 ) * 100000 ;

 
joo:

Нужно так принтить Print() и комментить Comment():

Спасибо,попробую. В МТ4-прокатит? или только в МТ5?
 
shelandr:Я так понял,что выводить надо в формате с двойной точностью? А в обычном формате не получится?
вопрос не в точности, а в особенностях работы Comment()  и Print() , для МТ4 все аналогично
 
shelandr:
Спасибо,попробую. В МТ4-прокатит? или только в МТ5?

Прокатит, стопудова, лично пробовал.

Но учтите, это только отображение числа.

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

Хотя, такая запарка актуальна только при торговых запросах. В остальных случаях - можно не забивать себе голову.

 
joo:

Но учтите, это только отображение числа. 

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

Хотя, такая запарка актуальна только при торговых запросах. В остальных случаях - можно не забивать себе голову.

Конечно учитываю,ибо обработка мне нужна для формирования торговых запросов а не просто ради процесса.

Похоже,что запросы на  открытие и закрытие ордера проходят по 4 знакам ( проверить придётся)..поэтому придётся это учитывать при разработке алгоритма

обработки и формирования стопов. Поскольку у меня основной стоп формируется по тиковому анализу Бида ( а резервный стоп по серверному стоп лоссу-для надёжности) то надо это учитывать..

Так например если мой стоп составляет 1,25817 а стоп на сервере  -4 значный.то надо как то это учитывать в алгоритме и формировать стоп либо по 1,2581 либо 1,2582..тем более что в ордере придётся задать ещё смещение в пару пунктов..

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

 
joo:

Прокатит, стопудова, лично пробовал.


Так что пожалуй проще не переходить на 2 точность переводить Бид (Аск) в более простую и наглядную форму форму :

sm=1.25800 ( вводим в таблицу констант-ближайшее  ровное число в  торгуемом диапазоне ) 

B[i] = (Bid -sm)*100000 ;   или :

B = (Bid -sm)/Point ;

Далее оперируем с модифицированным бидом в том числе и храним в массиве )

к тому же сможем видеть человеческое представление в пипсах типа : 10,15,35.-27... вместо херни типа 1,2789 

 
shelandr:

Действительно я не подумал что подрезать может Print & Comment.

Тут думать не надо, а  нужно читать справку по функции Print() в MQL4 (https://docs.mql4.com/ru/common/print):

void Print( ...)
Печатает некоторое сообщение в журнал экспертов. Параметры могут иметь любой тип. Количество параметров не может превышать 64.

Массивы нельзя передать в функцию Print(). Массивы должны быть напечатаны поэлементно.

Данные типа double выводятся с 4 десятичными цифрами после точки. Чтобы получить большую точность, следует использовать функцию
DoubleToStr().
Данные типов bool, datetime и color будут напечатаны в виде чисел.
Чтобы печатать значения datetime как строку с датой, следует использовать функцию TimeToStr().
Print - Документация на MQL4
  • docs.mql4.com
Print - Документация на MQL4
Причина обращения: