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

Запись в файл.

Рассмотрим запись значений переменных в текстовый файл.

Создадим новый скрипт с именем «012 Чтение и запись в файл.lua».

Для записи значений в файл, с начала файл необходимо открыть. Создадим переменную содержащую ссылку на местоположение файла на жестком диске. Файл будет находиться на диске С: в папке Lua, иметь имя TestWrite и расширение txt (текстовый файл).

Обратите внимание для записи знака обратный слеш используется символ \\.Далее создадим переменную, которая будет содержать ссылку на открытый, для записи файл, назовем ее FileWrite.

Далее, у нас есть ссылка на местоположение файла на жестком диске, обратимся по ней к файлу и откроем его следующей командой:

В этой строке кода в переменную FileWrite присваивается ссылка на открытый для записи файл. Оператор io.open открывает файл по ссылке, содержащейся в переменной FileNameWrite, после ссылки на местоположение файла следует параметр «a», который указывает на режим открытия файл.

Режимы открытия файла:
«r» – режим чтения файла;
«w» – режим записи в файл с удалением содержимого файла (перезапись);
«a» – режим записи в файл с добавлением к содержимому файла.

Если открываемого файла не существует, то Lua автоматически создаст его в указанной папке.

Запишем в наш файл текстовую строку. Для записи в файл используем команду write применимо к переменной FileWrite, которая содержит ссылку на открытый для записи файл.

Этой строкой мы записали в файл строку с текстом «Тест записи в файл» и выполнили перевод на следующую строку символом «\n». Теперь если мы запишем в данный файл еще какую-то информацию, она будет записана на новой строке.После операции записи в файл, закроем его командой:

FileWrite:close()

Выполним скрипт. После выполнения скрипта перейдем в папку C:\Lua. В папке откроем файл с именем TestWrite.txt, файл откроется в блокноте и мы увидим строку «Тест записи в файл».

Используя запись в файл, мы можем записать любые действия, которые совершались торговым роботом, с указанием параметров, при котором произошло, действие. Также можно записать любые доступные значения из терминала QUIK например, значения с графика цены инструмента или значения индикатора технического анализа.

Чтение из файла.

Чтение данных из файла нам потребуется в нескольких случаях, например: когда мы будем тестировать системы на исторических данных или в случае, когда понадобиться рассчитать какой-то индикатор технического анализа, использующий исторические данные, по объему превышающие доступный объем в терминале QUIK. Также чтение из файла может использоваться для возобновления работы торгового робота после закрытия терминала QUIK. Если в алгоритме торгового робота прописаны определенные действия, зависящие от действий робота в прошлом, то для возобновления корректной работы, роботу необходимо «вспомнить», что он делал для этого, с помощью чтения данных из файла, робот сможет восстановить потерянные значения. Откроем стандартное приложение Windows – Блокнот, напишем в нем одну строку с текстом «Тест чтение из файла» и сохраним на диске C:\ в папку Lua, под именем TestRead.

В коде программы создадим строковую переменную с указанием на местоположения файла на жестком диске:

Для того чтобы прочитать данные из файла, необходимо предварительно открыть файл и поместить ссылку на открытый файл в переменную. Создадим переменную FileRead.

Откроем заранее подготовленный файл TestRead.txt и поместим ссылку на открытый файл в переменную FileRead, указав режим открытия файла «r» – режим чтения.

Прочитанную строку из файла необходимо, куда-то сохранить, создадим переменную Read, в которую запишем прочитанную строку. Для чтения из файла используем команду read с указанием параметра, чтения.

Это ознакомительная часть курса, что бы просмотреть полный курс, пожалуйста оплатите подписку, подписка действует 2 года. Помимо доступа к полному тексту курса, предоставляются все коды скриптов и вспомогательные файлы. Первые три раздела предоставляются бесплатно в полном объеме. Всем кто ранее покупал коды скриптов доступ будет предоставлен бесплатно, пожалуйста пришлите запрос с Email на который Вам были направлены коды.