| 
Символьные константыСимволы, как элемент строки, в MQL4 - это индексы в наборе символов Unicode. Они являются 16-разрядными значениями, которые можно преобразовывать в целые числа и с которыми можно манипулировать целочисленными операциями, такими как сложение и вычитание. Любой одиночный символ, заключенный в одинарные кавычки, или шестнадцатеричный ASCII-код символа в виде '\x10' является символьной константой и имеет тип ushort. Например, запись вида '0' представляет из себя числовое значение 30, соответствующее индексу, по которому в таблице символов располагается символ ноль. Пример: 
| void OnStart(){
 //--- определим символьные константы
 int symbol_0='0';
 int symbol_9=symbol_0+9; // получим символ '9'
 //--- выведем значения констант
 printf("В десятичном виде: symbol_0 = %d,  symbol_9 = %d",symbol_0,symbol_9);
 printf("В шестнадцетеричном виде: symbol_0 = 0x%x,  symbol_9 = 0x%x",symbol_0,symbol_9);
 //--- заведем константы в строку
 string test="";
 StringSetCharacter(test,0,symbol_0);
 StringSetCharacter(test,1,symbol_9);
 //--- а вот как они выглядят в строке
 Print(test);
 }
 | Обратная косая черта является управляющим символом для компилятора при разборе константных строк и символьных констант в исходном тексте программы. Некоторые символы, например, одинарные кавычки ('), двойные кавычки ("), обратная косая черта (\) и управляющие символы можно представлять комбинацией символов, начинающейся с обратной косой черты(\), в соответствии с приводимой ниже таблицей: 
|  |  |  |  |  
| новая строка (перевод строки) | LF | '\n' | 10 |  
| горизонтальная табуляция   | HT | '\t' | 9 |  
| возврат каретки  | CR  | '\r' | 13 |  
| обратная косая черта  | \ | '\\' | 92 |  
| одинарная кавычка    | ' | '\'' | 39 |  
| двойная кавычка    | " | '\"' | 34 |  
| шестнадцатеричный код  | hhhh | '\xhhhh' | от 1до 4 шестнадцатеричных знаков |  
| десятичный код | d | '\d' | десятичное число от 0 до 65535 | Если за обратной косой чертой следует символ, отличный от перечисленных, результат не определен. Пример 
| void OnStart(){
 //--- объявим символьные константы
 int a='A';
 int b='$';
 int c='©';      // код 0xA9
 int d='\xAE';   // код символа ®
 //--- выведем константы на печать
 Print(a,b,c,d);
 //--- добавим символ в строку
 string test="";
 StringSetCharacter(test,0,a);
 Print(test);
 //--- заменим символ в строке
 StringSetCharacter(test,0,b);
 Print(test);
 //--- заменим символ в строке
 StringSetCharacter(test,0,c);
 Print(test);
 //--- заменим символ в строке
 StringSetCharacter(test,0,d);
 Print(test);
 //--- представим символы в виде числа
 int a1=65;
 int b1=36;
 int c1=169;
 int d1=174;
 //--- добавим символ в строку
 StringSetCharacter(test,1,a1);
 Print(test);
 //--- заменим символ в строке
 StringSetCharacter(test,1,b1);
 Print(test);
 //--- заменим символ в строке
 StringSetCharacter(test,1,c1);
 Print(test);
 //--- заменим символ в строке
 StringSetCharacter(test,1,d1);
 Print(test);
 }
 | Как уже говорилось выше, значение символьной константы (или переменной) представляет собой индекс в таблице символов,  а так как индекс является целым числом, то допустимо его записывать разными способами. 
| void OnStart(){
 //---
 int a=0xAE;     // код символа ® соответствует литералу '\xAE'
 int b=0x24;     // код символа $ соответствует литералу '\x24'
 int c=0xA9;     // код символа © соответствует литералу '\xA9'
 int d=0x263A;   // код символа ☺ соответствует литералу '\x263A'
 //--- выведем значения
 Print(a,b,c,d);
 //--- добавим символ в строку
 string test="";
 StringSetCharacter(test,0,a);
 Print(test);
 //--- заменим символ в строке
 StringSetCharacter(test,0,b);
 Print(test);
 //--- заменим символ в строке
 StringSetCharacter(test,0,c);
 Print(test);
 //--- заменим символ в строке
 StringSetCharacter(test,0,d);
 Print(test);
 //--- коды мастей
 int a1=0x2660;
 int b1=0x2661;
 int c1=0x2662;
 int d1=0x2663;
 //--- добавим символ пикей
 StringSetCharacter(test,1,a1);
 Print(test);
 //--- добавим символ червей
 StringSetCharacter(test,2,b1);
 Print(test);
 //--- добавим символ бубей
 StringSetCharacter(test,3,c1);
 Print(test);
 //--- добавим символ треф
 StringSetCharacter(test,4,d1);
 Print(test);
 //--- Пример символьных литералов в строке
 test="Дама\x2660Туз\x2662";
 printf("%s",test);
 }
 | Внутреннее представление символьного литерала - тип ushort. Символьные константы могут принимать значения от 0 до 65535. Смотри также StringSetCharacter(),  StringGetCharacter(), ShortToString(), ShortArrayToString(), StringToShortArray() |