Каталог роботов

Основы реализации таблицы символов ASCII в MQL4

Wednesday, 14 February 2018 00:00
The fundamentals of the ASCII table implementation in MQL4

ASCII или Американский стандарт кодирования для передачи информации – это таблица символов, которая содержит коды для каждой буквы алфавита (латинского и русского), десятичных цифр, знаков препинания и управляющих символов. Она была создана в 1963 году с целью стандартизировать кодировки основных символов, которые используются для выведения текстовой информации на компьютере и прочих коммуникационных устройствах.

Талица ASCII используется в различных языках программирования, но в MQL4 она пока не реализована. Однако выход есть. Написать подобную библиотеку для MetaTrader 4 можно, используя строковые переменные.

Что такое строковые переменные 

Строковые переменные или переменные типа String – это вид данных, которые представляет собой произвольную последовательность символов (строку). В человеческом понимании это простые слова и предложения, однако для компьютера они являются не более, чем набором символов, поэтому строковые переменные заключаются в кавычки.  При этом, вовсе необязательно использовать исключительно буквы или цифры. Если необходимо добавить в строку какой-либо специальный символ, достаточно поставить перед ним «\».

В памяти компьютера строковые символы хранятся в массиве в определенной последовательности. Нумерация строк начинается с нуля, а в конце каждой из них ставится символ NULL.  В таблице ASCII этот символ соответствует числу «0». Количество символов в строке ограничено. В MQL4 размер строки может составлять не более 255 символов. Каждая строка кода, содержащая строковые переменные, идентифицируется по ключевому слову «string».

pict 1

Для того, чтобы реализовать таблицу ASCII в MQL4, необходимо определить, какие строковые переменные мы будем использовать. В данном случае их три:

pict 2

  • s1 – строка, значение которой будет обрабатываться;
  • s2 – строка, в которой будет выводится результат вычислений;
  • symbol – строка для временного хранения символов.

Функции для работы со строковыми переменными

Для работы со строковыми переменными используются специальные функции MQL4, которые позволяют реализовать возможности таблицы ASCII в MetaTrader 4.

  • StringConcatenate() – создает строку из имеющихся параметров, после чего возвращает ее.
  • StringUpperCase() и StringLowerCase() – переводят строки в верхний или нижний регистр соответственно.
  • StringSetChar() и StringGetChar() – выводит символ, соответствующий коду в указанную позицию строки.
  • StringLen() – определяет число символов в строке.
  • StringSubstr() – извлекает подстроку и выводит ее копию, если это возможно, в противном случае выводит пустую строку.
  • StringIsDigit() – идентифицирует содержимое строки. Если строка содержит только цифры, функция возвращает значение true, в противном случае - false.
  • StringIsAlpha() – действует аналогично StringIsDigit(), только объектом проверки являются не цифры, а буквы.
  • StringCompare() – сравнивает две разные строки, не учитывая регистр.

Применив некоторые из этих функций, получим скрипт, который вначале выводит строку с входящими параметрами, а затем ее обработанную копию, где каждый символ разделяет пробел. 

pict 3

В этом случае мы использовали цикл: for (int x = 0; x < leight; x++), в ходе которого будет выполнять посимвольная обработка данных каждой строки, начиная с нулевой.

Скрипт для определения кода каждого символа таблицы ASCII будет выглядеть следующим образом:

pict 4

Строковые функции широко используются для построения библиотеки и реализации возможностей таблицы ASCII. К примеру, с помощью этого инструмента можно разработать систему отчетности для торгового советника или систематизировать результаты торговли за определенный период. Непосредственно для торговли таблица ASCII вряд ли окажется полезной, однако скрипты на ее основе часто используются в качестве вспомогательного инструмента для анализа.

Оцените статью:
5 из 5 на основе 1 оценок
Ami	Phelps
Ami Phelps

Бизнес-аналитик. Сотрудничаю с частными инвесторами. Пишу для аналитических изданий. Моя специальность - диаграммные индексы с основным набором технических характеристик

Поделиться