Страница 2 из 813 FirstFirst 123 ПоследняяПоследняя
Results 11 to 20 of 27

Thread: Как получить данные индикатора?

  1. #11
    Оказывается, вы не можете, но мне удалось с этим поработать. Теперь можно ли написать более 4 десятичных знаков? Не уверен, как будет выглядеть синтаксис ..
    Quote Originally Posted by ;
    Ганновер, Если я хотел экспортировать дату в виде серийного номера (например, 27 мая 2010 года = GT; 40325), каков синтаксис в MQL? Спасибо за вашу помощь.
    Quote Originally Posted by ;
    Ганновер, Если я хотел экспортировать дату в виде серийного номера (например, 27 мая 2010 года = GT; 40325), каков синтаксис в MQL? Спасибо за вашу помощь.

  2. #12

    Quote Originally Posted by ;
    Ганновер, Если я хотел экспортировать дату в виде серийного номера (например, 27 мая 2010 года = GT; 40325), каков синтаксис в MQL? Спасибо за вашу помощь.
    Извините, я только сейчас увидел ваш пост. Даты 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.

  3. #13

    Quote Originally Posted by ;
    Оказывается, вы не можете, но мне удалось с этим поработать. Теперь можно ли написать более 4 десятичных знаков? Не уверен, как будет выглядеть синтаксис ..
    Не уверен, почему вы хотите вывести определенное количество десятичных знаков, но вы можете преобразовать любое десятичное число в выходную строку, используя функцию DoubleToStr (). Следующее скопировано из интерактивной справки MQL4: string DoubleToStr (double value, int digits) Возвращает текстовую строку с указанным числовым значением, преобразованным в указанный формат точности. Параметры: value - значение с плавающей точкой. цифры - точный формат, количество цифр после десятичной точки (0-8). Пример: строковое значение = DoubleToStr (1.28473418, 5);/значение 1.28473

  4. #14
    Спасибо Ганноверу. Причина в том, что когда я выполняю output_history, он округляет последние 2 цифры для 5-значных каналов. Поэтому я хотел указать плавающую точку, чтобы она по умолчанию не округлялась, как раньше. Ваш вклад очень ценится.
    Quote Originally Posted by ;
    Не уверен, почему вы хотите вывести определенное количество десятичных знаков, но вы можете преобразовать любое десятичное число в выходную строку, используя функцию DoubleToStr (). Следующее скопировано из справки MQL4: ...
    Quote Originally Posted by ;
    Не уверен, почему вы хотите вывести определенное количество десятичных знаков, но вы можете преобразовать любое десятичное число в выходную строку, используя функцию DoubleToStr (). Следующее скопировано из справки MQL4: ...

  5. #15
    Добрый день, например, эта строка кода: FileWrite (handle, date1, iOpen (ccy, tf, i), iHigh (ccy, tf, i), iLow (ccy, tf, i), iClose (ccy, tf, i), iVolume (ccy, tf, i)); где файл .csv записывается в. Как мне сказать, чтобы написать больше десятичных знаков? Это должно произойти во время или до этой команды, верно? Спасибо за ваше время.

  6. #16

    Quote 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 десятичными знаками. Если нет, напишите снова, и я постараюсь найти другое решение.

  7. #17
    Спасибо за ваш проницательный вклад.

  8. #18
    Вам нужно будет использовать функцию NormalizeDouble. Вы можете сделать это встроенным, но это начинает становиться беспорядочным, поэтому лучше перемещать вызовы функций и присваивать их переменным. Примерно так ... Вставленный код double dOpen = NormalizeDouble (iOpen (ccy, tf, i), Digits); Вы сделали бы то же самое для всех цен, которые вы передаете в функцию открытия файла. Надеюсь, это поможет. Люкс

  9. #19
    Проблема, с которой я сталкиваюсь при записи в csvтекстовые файлы, заключается в том, что, когда они становятся больше, программа не будет писать в файл достаточно быстро, гораздо лучше использовать базу данных, вы можете использовать libmysql.dll

  10. #20
    Привет всем, может ли какой-нибудь орган предоставить мне сценарий для справочного поста № 6 MACD (12,26,9) на этой стене? Ура!

Действующие разрешения

  • Вы не можете создавать новые темы
  • Вы не можете размещать ответы
  • Вы не можете использовать вложения
  • Вы не можете редактировать ваши записи
  •  
  • BB-код - Вкл.
  • Смайлики - Вкл.
  • Код [IMG] - Вкл.
  • Код [VIDEO] - Вкл.
  • HTML-код - Выкл.
Веб-сайт использует cookies
Веб-сайт использует cookies, в настоящее время некоторые из них уже установлены. Вы можете ознакомиться с более подробной информацией об использовании нами cookies здесь. Чтобы принять условия использования cookies, пожалуйста, нажмите на кнопку справа. Если вы продолжаете пользоваться веб-сайтом, вы по умолчанию принимаете условия использования cookies.