Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 451

 
Я добавил переменные типа int, в которые положил явно преобразованные datetime, и заработало. Но теперь мне нужно чтобы результат соотношения был ниже 1, то есть
формула MathMin(Time1-Time2,Time2-Time3)/MathMax(Time1-Time2,Time2-Time3)
но он опять начал выдавать 0, хотя по отдельности показывает верно
 
Roman Sharanov:
Я добавил переменные типа int, в которые положил явно преобразованные datetime, и заработало. Но теперь мне нужно чтобы результат соотношения был ниже 1, то есть
формула MathMin(Time1-Time2,Time2-Time3)/MathMax(Time1-Time2,Time2-Time3)
но он опять начал выдавать 0, хотя по отдельности показывает верно
(double)MathMin(Time1-Time2,Time2-Time3)/(double)MathMax(Time1-Time2,Time2-Time3)
 
Roman Sharanov:

Написал что так пробовал уже, ничего

принимающая переменная должна быть тоже дабл

 
Отлично, теперь все время 1 выдает
MathMin и MathMax выдают одинаковые значения, хотя их аргументы разные
 
Roman Sharanov:

Подскажите, как найти соотношение 2 периодов времени? (нужно соотношение количества баров между 2 периодами)
Я написал вот так, но что то он 0 выдает. Time1>Time>Time3 всегда

пробовал и без явного приведения типа, и (double)  пытался писать

А с примером можешь объяснить что на входе и что должно быть на выходе. Я вот уже несколько раз перечитал все советы и вопросы, но так и не могу понять от чего отталкиваемся и к чему прийти должны.

Вот например этот код

#define PRINT(A) ::Print(#A + " = " + (string)(A));
/********************Script program start function*******************/
void OnStart()
{
 datetime t1 = TimeCurrent(), t2 = TimeCurrent()-PeriodSeconds(PERIOD_M1)*7, t3 = TimeCurrent()-PeriodSeconds(PERIOD_M15);
 PRINT(t1-t2);
 PRINT(t1-t3);
 PRINT(double(t1-t2)/double(t1-t3));
 PRINT((t1-t2)/double(t1-t3));
 PRINT(double(t1-t2)/(t1-t3));
}/*******************************************************************/

даёт такой результат

2018.02.04 15:41:35.922 00 EURUSD,H1: double(t1-t2)/(t1-t3) = 0.46666667
2018.02.04 15:41:35.922 00 EURUSD,H1: (t1-t2)/double(t1-t3) = 0.46666667
2018.02.04 15:41:35.922 00 EURUSD,H1: double(t1-t2)/double(t1-t3) = 0.46666667
2018.02.04 15:41:35.922 00 EURUSD,H1: t1-t3 = 900
2018.02.04 15:41:35.922 00 EURUSD,H1: t1-t2 = 420
 
Alexey Viktorov:

А с примером можешь объяснить что на входе и что должно быть на выходе. Я вот уже несколько раз перечитал все советы и вопросы, но так и не могу понять от чего отталкиваемся и к чему прийти должны.

Вот например этот код

даёт такой результат

да, вот только оно у меня выдает 0 либо 1, но я решил это через извращение с условиями if else, но хотя бы работает

 
Roman Sharanov:

да, вот только оно у меня выдает 0 либо 1, но я решил это через извращение с условиями if else, но хотя бы работает

Вот было сказано что дожен получиться результат типа double

и вот

И даже после моего примера.... слов не хватает.

При каких делах тут if else??? Это условный оператор и никак не зависит от типа значений в условиях.

Может получиться 1 только в том случае, если числитель и знаменатель равны. Но 0 не может получиться НИКОГДА.

 

Всем доброго времени суток.

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

количества метаэдиторов в компьютере.

установленно 7 терминалов и каждый тащит за собой метаэдитор.

У 7ки плывёт крыша когда пытаешься открыть mq файл из контекстного меню

она периодически открывает их в разных метаэдиторах что доводит до нехорошего эмоционалного состояния.

Может кто то знает как решить эту проблему?

Хочется иметь только 1 настроенный мэтаэдитор.

Заранее спасибо.

 
Northwest:

Всем доброго времени суток.

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

количества метаэдиторов в компьютере.

установленно 7 терминалов и каждый тащит за собой метаэдитор.

У 7ки плывёт крыша когда пытаешься открыть mq файл из контекстного меню

она периодически открывает их в разных метаэдиторах что доводит до нехорошего эмоционалного состояния.

Может кто то знает как решить эту проблему?

Хочется иметь только 1 настроенный мэтаэдитор.

Заранее спасибо.

Я для себя решил данную проблему "символьной ссылкой/ярлыком" на папку MQL. Как таковое вообще основную папку вынес из директории программ, создал на нее ярлык и удалил эти директории, заменив их ярлыком. Теперь в любом терминале имею одинаковый набор экспертов/индикаторов/скриптов. И Открытие любого мэтаэдитора приводит к одним и тем-же файлам.

Само собой для MQL4/5 основные директории отличаются.

 
Konstantin Nikitin:

Я для себя решил данную проблему "символьной ссылкой/ярлыком" на папку MQL. Как таковое вообще основную папку вынес из директории программ, создал на нее ярлык и удалил эти директории, заменив их ярлыком. Теперь в любом терминале имею одинаковый набор экспертов/индикаторов/скриптов. И Открытие любого мэтаэдитора приводит к одним и тем-же файлам.

Само собой для MQL4/5 основные директории отличаются.

Спасибо за совет.

Но мне желательно что бы в разных терминалах отображались только "свои  советники и индикаторы".

То есть папки MQL  должны быть "свои".

Напрашивается метод грубой силы.Повыковыривать из установленных дистрибутивов файлы метаэдиторов.

Оставить в каком нибудь только один. И потом пройтись чистильщиком реестра что бы удалить пути к несуществующим файлам.

Но я не знаю как это сработает или нет. Без последствий хочется как то.