[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 451
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Т.е. нужна вот такая функция F(8,5464.00) = 85464.00
MathMod() есть деление. Дальше чистая математика: если результат от TimeLocal() делить на 20 каждую секунду (или чаще), то раз в 20 сек остаток будет равен нулю.
Вывод: одну и ту же идею можно реализовать по разному.
А почему именно раз в 20 секунд ? Почему например не в 19 или 17 ?
bool flag = true;
int i=0;
int w=0;
double sum;
int t=20;
int start()
{
sum=TimeLocal() / t;
if (flag)
{
while(i<20)
{
w=w+1;
Alert(+w,"-й, Результат TimeLocal-",+sum);
i++;
sum=sum/20;
Sleep(1000);
}
flag = false;
}
return(0);
}
Тут он равен раз в 11 секунд нулю. Делили на 20, 20 раз.
Сорри за нубские вопросы, просто я это хочу понять .
А почему именно 20 раз делите на 20.
Делить то надо до победного ;)
8.5464/0.0001=85464
Спасибо.
Но я не это имел ввиду запятая это разделитель триад, а точка разделитель дробной части.
Имею строку 8,5464.00 нужно преобразовать в число. StrToDouble(8,5464.00) вренет 8.
F(8,5464.00) = 85464.00
поробуйте сделать такую функцию
{
поиск запятой через https://docs.mql4.com/ru/strings/StringFind
Собирание новой строки из двух частей: строки до зяпатой и строки после запятой https://docs.mql4.com/ru/strings/StringGetChar
Преобразование в число StrToDouble()
}
вот наглядный пример, все верно как вы говорили .
Хм...
Как так происходит, что оно точно за 20 секунд привращаеться в 0 . Видь локальное время под числом 8000000000... примерно Блин .. та в чем же тут хитрость ? Может мне просто отдахнуть нужно,эх....
int i=0;
int e;
int w=0;
int start()
{
while(true)
{
e=MathMod(TimeLocal(), 20);
w=w+1;
Alert(+w,"-й, Результат MathMod-",+e);
Sleep(1000); // Спим 1-ну секунду
return(0);
}
поробуйте сделать такую функцию
{
поиск запятой через https://docs.mql4.com/ru/strings/StringFind
Собирание новой строки из двух частей: строки до зяпатой и строки после запятой https://docs.mql4.com/ru/strings/StringGetChar
Преобразование в число StrToDouble()
}
А другого способа нет а то эта функция долго работать будет.
если MathMod(КАКОЕТОЧИСЛО, 20) = 0, то это значит (если мне не изменяет память)
что КАКОЕТОЧИСЛО делится на 20 без остатка.
20 40 60 80 100 120 140 160 и т.д.
А другого способа нет а то эта функция долго работать будет.
я не знаю как по другому выкинуть из строки запятую.
Спасибо.
Но я не это имел ввиду запятая это разделитель триад, а точка разделитель дробной части.
Имею строку 8,5464.00 нужно преобразовать в число. StrToDouble(8,5464.00) вренет 8.
F(8,5464.00) = 85464.00
По символьно, через строковые функции, убрать запятую, потом StrToDouble().