Оказывается, вы не можете, но мне удалось с этим поработать. Теперь можно ли написать более 4 десятичных знаков? Не уверен, как будет выглядеть синтаксис ..
Originally Posted by ;Originally Posted by ;
Оказывается, вы не можете, но мне удалось с этим поработать. Теперь можно ли написать более 4 десятичных знаков? Не уверен, как будет выглядеть синтаксис ..
Originally Posted by ;Originally Posted by ;
Извините, я только сейчас увидел ваш пост. Даты Excel представлены в виде количества дней с 01.01.1900. Даты MQL4 представлены в виде количества секунд после полуночи 01.01.1970. Следовательно, чтобы преобразовать значение MQL4 в его аналог Excel, необходимо сначала разделить его на 86400 (количество секунд в дне), а затем добавить 25569 (количество дней между 01.01.1900 и 01.01.1970). то есть синтаксис MQL4: datetime MT4DateValue = [любое значение]; int ExcelDateValue = MathFloor (MT4DateValue86400) 25569; Чтобы использовать ваш пример, значение MQL4 для 27/5/2010 составляет 1274918400. Разделите это на 86400, чтобы получить 14756, добавив 25569 к 14756, получите 40325.Originally Posted by ;
Не уверен, почему вы хотите вывести определенное количество десятичных знаков, но вы можете преобразовать любое десятичное число в выходную строку, используя функцию DoubleToStr (). Следующее скопировано из интерактивной справки MQL4: string DoubleToStr (double value, int digits) Возвращает текстовую строку с указанным числовым значением, преобразованным в указанный формат точности. Параметры: value - значение с плавающей точкой. цифры - точный формат, количество цифр после десятичной точки (0-8). Пример: строковое значение = DoubleToStr (1.28473418, 5);/значение 1.28473Originally Posted by ;
Спасибо Ганноверу. Причина в том, что когда я выполняю output_history, он округляет последние 2 цифры для 5-значных каналов. Поэтому я хотел указать плавающую точку, чтобы она по умолчанию не округлялась, как раньше. Ваш вклад очень ценится.
Originally Posted by ;Originally Posted by ;
Добрый день, например, эта строка кода: FileWrite (handle, date1, iOpen (ccy, tf, i), iHigh (ccy, tf, i), iLow (ccy, tf, i), iClose (ccy, tf, i), iVolume (ccy, tf, i)); где файл .csv записывается в. Как мне сказать, чтобы написать больше десятичных знаков? Это должно произойти во время или до этой команды, верно? Спасибо за ваше время.
Он запишет количество десятичных знаков, используемых вашим br0ker. Тем не менее, обратите внимание, что если последние цифры являются нулями, они опускаются, например, 1.43140 будет выводиться как 1.4314. Вы можете проверить это, нажав F2 в MT4 и посмотрев цены в историческом центре. Сначала я запутался в этом. Мой br0ker - это GoMarkets, и когда я выводил данные для GBPUSD, D1, все самые старые значения OHLC (вверху файла) выходили с 4 цифрами. Интересно, что, черт возьми, происходит! Но после проверки в Центре истории выясняется, что их значения OHLC до 1 мая 2009 года были только 4 цифрами. Казалось бы, после этой даты они обновили свой MT4, чтобы включить 5-ю цифру. Посмотрите, является ли это причиной вашей проблемы. Убедитесь, что самые последние значения OHLC (они будут в конце вашего файла, если вы используете восходящий порядок вывода по умолчанию) выводятся с 5 десятичными знаками. Если нет, напишите снова, и я постараюсь найти другое решение.Originally Posted by ;
Вам нужно будет использовать функцию NormalizeDouble. Вы можете сделать это встроенным, но это начинает становиться беспорядочным, поэтому лучше перемещать вызовы функций и присваивать их переменным. Примерно так ... Вставленный код double dOpen = NormalizeDouble (iOpen (ccy, tf, i), Digits); Вы сделали бы то же самое для всех цен, которые вы передаете в функцию открытия файла. Надеюсь, это поможет. Люкс
Проблема, с которой я сталкиваюсь при записи в csvтекстовые файлы, заключается в том, что, когда они становятся больше, программа не будет писать в файл достаточно быстро, гораздо лучше использовать базу данных, вы можете использовать libmysql.dll
Привет всем, может ли какой-нибудь орган предоставить мне сценарий для справочного поста № 6 MACD (12,26,9) на этой стене? Ура!