Уточните плиз...

 

1. Если чего неординарного в этой конструкции?

int kRaz=NormalizeDouble(Lots/MaxiLot,0);

Lots - точно дабл

MaxiLot - неизвестно доподлино, но скоее тоже дабл

Вопрос вот в чём...

Обязательное требование это "округление вниз" переменной kRaz.

Из справки\учебников ясно что int преобраует double отбрасывая дробную часть,

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

NormalizeDouble там излишним... верно?



2. Имеет ли значение слиппажа если у брокера исполнение по маркету?

Будет ли какая роль если на месте будет стоять 0, 10 или скажем 100 ?

int ticket=OrderSend(Symbol(),OP_BUY,MaxiLot,Ask,3,0,0,comment);
 

1. Можно без NormalizeDouble(). Даже нужно, чтобы в меньшую сторону огруглялось

2. Не имеет значения

 

Спасибо...!


Забыл про п.3 :)


3. В параметрах допускается пропуск ненужного...

Например тут:

int ticket2=OrderSend(Symbol(),OP_BUY,ostat,Ask,0,0,ostcomm,CLR_NONE);

Убрал слиппаж.

Однако и "сместились" нули стопов...

Понятно что без него не обойтись. Оставил.


Далее комент, майджик и т.д.

На основании различия типов данных видимо не ошибёшся,

или всё таки надёжнее заполнить пустыми значениями?


Ошибок по этому поводу правда не возникало, так... для самообразования для.

 
8-ой параметр у OrderSend() это Comment, а вы туда CLR_NONE. Лучше все пишите.
 
kombat:

3. В параметрах допускается пропуск ненужного...

А если так? ... A, B, C,, E, F ...


 

Не, будет ругаццо...

',' - parameter expected D:\....mq4 (72, 60)


Да в принципе шаблон себе забил согласно справки...

Это для чужих кодОв спрашивал, бо встречались иногда.

 
Integer:

1. Можно без NormalizeDouble(). Даже нужно, чтобы в меньшую сторону огруглялось


Добавлю: обязательно !!! ненужно...

Как тока открылись торги, начал перебирать варианты.

Особо интересовало как будет открываться обьем меньше максилота.


И так.

- максилот в ДЦ равен 20 лот

- минилот 0.01 лота

- стоит "определялка точности" недавно обсуждаемая


С NormalizeDouble открывалось до 10 лот, а вот на 10.01 уже баста!

Путем нехитрых манипуляций с воспоминаниями из дааалёкого школьного прошлого,

вывело на стандартную математику, всё большее 0.5 округлять вверх.

Что и произошло в расчётах Lots/MaxiLot или в цифрах 10/20 = 0.5 нормально,

а 10.01/20 = 0.5005 уже нет...


В таком виде проблем пока не обнаружено:

int kRaz=Lots/MaxiLot;

 
Если что, еще есть функция MathFloor() - округляет вниз
 

1. Едитор ругнулся:

'...самих символов как раз ровно 256...' - too long string (255 characters maximum allowed) D:\...mq4 (42, 1)

Кавычки вроде не считаются, тогда как? 0-255 или 1-256 ???

В строке браузера ограничение такое же, но там усё проходит,

эта же ссылка и вбивается в код... и вот те нате... :(


2. Можно ли #import'вать из нескольких библиотек разные функции в одном скрипте?

Если да, то обязательно ли указывать в конце каждого импорта #import ???

2.1 Согласно справки надо, но едитор на это не ругается, а значит можно и пропустить невзначай...


// импорт из первой библиотеки
#import "win.dll"
int ...
#import
// импорт из второй библиотеки
#import "uin.dll"
int ...
#import
// импорт из третьей библиотеки
#import "bin.dll"
int ...
#import

Причина обращения: