Если я хочу получить дробное число, то обязательно добавлять 0 после запятой?
PS И главное - это баг или особенность mql4?
Деля целое на целое - целое и получаем.
Если хотим получить плавающее (float/double) - хотя бы одно из исходных чисел должно быть приведено к плавающему. Иначе к нему приводится уже результат деления целых чисел.
сильно насыщены дополнительными функциями и обращениями к индикаторам. Во-вторых тебе надо готовый советник или просто куски кода как это сделать. там обращения к индикаторам, которых я вообще не могу понять
Если хотим получить плавающее (float/double) - хотя бы одно из исходных чисел должно быть приведено к плавающему. Иначе к нему приводится уже результат деления целых чисел.
Если я хочу получить дробное число, то обязательно добавлять 0 после запятой?
PS И главное - это баг или особенность mql4?
Ндя, бывает и на старуху))) Приведение типов еще раз перечитайте. У Вас делимое целое, результат деления тоже целый. Вообще лучше явно все типы в формулах приводить к нужному, предупреждений не будет))) И цифры в формулах лучше не мешать целые с дробными, что бы не перепроверять результат.
Ндя, бывает и на старуху))) Приведение типов еще раз перечитайте. У Вас делимое целое, результат деления тоже целый. Вообще лучше явно все типы в формулах приводить к нужному, предупреждений не будет))) И цифры в формулах лучше не мешать целые с дробными, что бы не перепроверять результат.
вот даже теряюсь, что и как на такое ответить... сказать что это просто основы программирования?
но вы-же массово консультируете новичков в темах про разработку
уже есть лёгкое подозрение, что кто-то завладел аккаунтом Ростислава :-)
Вообще-то это именно особенность языков программирования. В некоторых языках (например Паскаль) в этом случае будет именно корректное число с плавающей точкой.
через день два открывает терминал а у него непонятные сработанные сделки. что сделка будет выполнена не в тестере а на счете. С точки зрения человека, который знает терминал вдоль и поперек. спецом открыл терминал 2013 года нет такой фишки
Запускаю этот код в тестере, на кастомном символе. Почему в тестере CopyTicksRange() копирует по одному нарастающему объекту? А в терминале возвращает все доступные.
//+------------------------------------------------------------------+//| TestTicks.mq5 |//| Copyright 2021, MetaQuotes Ltd. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2021, MetaQuotes Ltd."#property link"https://www.mql5.com"#property version"1.00"MqlTick tick[];
int T = 0;
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
T = CopyTicksRange("LJ", tick, COPY_TICKS_TRADE, 0, 0);
Print("Скопировано тиков: ", T);
}
//+------------------------------------------------------------------+
2022.08.2619:17:58.672 LJ,M1: testing of Experts\TestTicks.ex5 from 2022.08.2200:00 to 2022.08.2300:00 started
2022.08.2619:17:58.714 LJ : real ticks begin from 2022.08.2200:00:002022.08.2619:17:58.7152022.08.2200:00:44 Скопировано тиков: 12022.08.2619:18:01.1142022.08.2200:01:15 Скопировано тиков: 22022.08.2619:18:03.5152022.08.2200:01:44 Скопировано тиков: 32022.08.2619:18:05.9162022.08.2200:02:12 Скопировано тиков: 42022.08.2619:18:08.3162022.08.2200:02:32 Скопировано тиков: 52022.08.2619:18:10.7162022.08.2200:02:52 Скопировано тиков: 62022.08.2619:18:13.1172022.08.2200:04:05 Скопировано тиков: 72022.08.2619:18:15.5172022.08.2200:04:21 Скопировано тиков: 8
Странно, что до сих пор никто не поднимает вопрос почему на MT5 во вкладке "History" есть столбик "Commission", а во вкладке "Trade" нету.
При ручной торговле это очень не хватает, особенно когда слишком большая комиссия. Тем более когда надо отдельно подсчитать в обе стороны: открытие/закрытие.
Во вкладке Trade, когда Profit в плюсе, то никак не определить когда надо закрыть ордер, чтобы не выйти с минусом.
Почему то столбик "Change %" есть и наверно многие даже не знают для чего он, а более важный показатель как Комиссия, нету.
Но в Ваших словах есть доля правды
если добавляю 0 после запятой
то все ок
Отсюда вопрос:
Если я хочу получить дробное число, то обязательно добавлять 0 после запятой?
ЗЫ И главное - это баг или особенность mql4?
вот даже теряюсь, что и как на такое ответить... сказать что это просто основы программирования?
но вы-же массово консультируете новичков в темах про разработку
уже есть лёгкое подозрение, что кто-то завладел аккаунтом Ростислава :-)
Но в Ваших словах есть доля правды
если добавляю 0 после запятой
то все ок
Отсюда вопрос:
Если я хочу получить дробное число, то обязательно добавлять 0 после запятой?
PS И главное - это баг или особенность mql4?
Деля целое на целое - целое и получаем.
Если хотим получить плавающее (float/double) - хотя бы одно из исходных чисел должно быть приведено к плавающему. Иначе к нему приводится уже результат деления целых чисел.
Число с десятичной точкой - это плавающее.
вот даже теряюсь, что и как на такое ответить... сказать что это просто основы программирования?
но вы-же массово консультируете новичков в темах про разработку
уже есть лёгкое подозрение, что кто-то завладел аккаунтом Ростислава :-)
Я не программист, для меня это увлечение. А с подобной ситуацией столкнулся впервые.
Деля целое на целое - целое и получаем.
Если хотим получить плавающее (float/double) - хотя бы одно из исходных чисел должно быть приведено к плавающему. Иначе к нему приводится уже результат деления целых чисел.
Число с десятичной точкой - это плавающее.
Я понял
так тоже работает.
Но в Ваших словах есть доля правды
если добавляю 0 после запятой
то все ок
Отсюда вопрос:
Если я хочу получить дробное число, то обязательно добавлять 0 после запятой?
PS И главное - это баг или особенность mql4?
Ндя, бывает и на старуху))) Приведение типов еще раз перечитайте. У Вас делимое целое, результат деления тоже целый. Вообще лучше явно все типы в формулах приводить к нужному, предупреждений не будет))) И цифры в формулах лучше не мешать целые с дробными, что бы не перепроверять результат.
Ндя, бывает и на старуху))) Приведение типов еще раз перечитайте. У Вас делимое целое, результат деления тоже целый. Вообще лучше явно все типы в формулах приводить к нужному, предупреждений не будет))) И цифры в формулах лучше не мешать целые с дробными, что бы не перепроверять результат.
вот даже теряюсь, что и как на такое ответить... сказать что это просто основы программирования?
но вы-же массово консультируете новичков в темах про разработку
уже есть лёгкое подозрение, что кто-то завладел аккаунтом Ростислава :-)
Вообще-то это именно особенность языков программирования. В некоторых языках (например Паскаль) в этом случае будет именно корректное число с плавающей точкой.
Я не программист, для меня это увлечение. А с подобной ситуацией столкнулся впервые.
Просто надо не только учить кого-то, но и читать форум. Этот вопрос уже неоднократно обсуждался… А по вопросам mql4 лучше писать в этой теме.
b3391
Запускаю этот код в тестере, на кастомном символе.
Почему в тестере CopyTicksRange() копирует по одному нарастающему объекту?
А в терминале возвращает все доступные.
Странно, что до сих пор никто не поднимает вопрос почему на MT5 во вкладке "History" есть столбик "Commission", а во вкладке "Trade" нету.
При ручной торговле это очень не хватает, особенно когда слишком большая комиссия. Тем более когда надо отдельно подсчитать в обе стороны: открытие/закрытие.
Во вкладке Trade, когда Profit в плюсе, то никак не определить когда надо закрыть ордер, чтобы не выйти с минусом.
Почему то столбик "Change %" есть и наверно многие даже не знают для чего он, а более важный показатель как Комиссия, нету.