Введение в Octave для трейдера

GNU Octave — свободная система для математических вычислений, использующая язык программирования, совместимый с MATLAB.

Octave в браузере

В Интернет существуют онлайн-сервисы, позволяющие выполнять ваши скрипты Octave и отображать полученные результаты в браузере. Мы рекомендуем www.tutorialspoint.com, но также существуют и другие альтернативы, например, octave-online.net.

Разумеется, пользуясь этими онлайн-сервисами, вы не можете установить те дополнительные пакеты, какие захотите, а вынуждены довольствоваться теми, что уже имеются на сервере, к тому же иногда можно столкнуться с какими-либо ограничениями, например, сервис octave-online.net не позволяет скриптам загружать котировки и любую другую информацию из Интернет.

Установка Octave 4 для Microsoft Windows

Готовую сборку Octave 4 для Microsoft Windows можно скачать отсюда или отсюда. Доступен инсталлятор (installer) или portable-версия (портативная, запускающаяся без установки).

Если скачали портативную версию в архиве zip, то распакуйте её в любую папку (лучше использовать только символы латинского алфавита и избегать пробелов) и запустите файл octave.bat.

При первом запуске может открыться диалог, в котором придётся несколько раз нажать кнопку Next (Далее), оставив все опции по умолчанию.

Установка Octave 3.8 для Ubuntu

Нажмите комбинацию клавиш Ctrl+Alt+T, чтобы открыть терминал. Введите последовательно команды:

sudo apt-add-repository ppa:octave/stable
sudo apt-get update
sudo apt-get install octave
sudo apt-get install liboctave-dev

После первой команды придётся ввести свой пароль и нажать Enter; а после третьей — ответить y для подтверждения и снова нажать Enter.

В результате установки пункт для запуска GNU Octave появится в главном меню в разделе Наука. По умолчанию скорее всего будет открываться консольный вариант программы. Чтобы запустить графическую оболочку, выполните в терминале команду:

octave --force-gui

Установка дополнительных пакетов

Для установки пакетов в Ubuntu необходимо запустить Octave с правами суперпользователя:

sudo octave

и в командном окне Octave выполнить:

pkg -verbose install -forge ИмяПакета

Например, для установки пакета financial (сначала устанавливаем требуемый для него пакет io):

pkg install -forge io
pkg install -forge financial

После установки не забудьте перезапустить Octave в обычном режиме. Для выхода из командной строки Octave можно использовать команду:

exit()

или комбинацию клавиш Ctrl+D.

Для установки пакета из локального архива на диске:

pkg install ИмяАрхива

Чтобы использовать установленный пакет, надо в командном окне Octave выполнить его загрузку:

pkg load ИмяПакета

Пользователи Microsoft Windows должны делать всё то же самое, только необходимо опускать sudo.

Пути поиска файлов

Когда в программе встречается вызов некоторой функции, Octave ищет файл с её определением в каталогах, которые ему известны. Список этих каталогов можно вывести на экран, выполнив команду path.

Чтобы добавить нужный каталог в список доступных путей, надо выполнить команду:

addpath("ДобавляемыйПуть")

Например, в системе Microsoft Windows:

addpath("D:/MyWork/MyFiles")

или в Linux/Ubuntu:

addpath("~/MyWork/MyFiles")

Для удаления пути используется команда:

rmpath("УдаляемыйПуть")

В обеих командах можно указывать сразу несколько каталогов, разделяя их точкой с запятой ; в системе Windows или двоеточием : в Linux. Нужный символ-разделитель можно узнать, вызвав в программе или в командной строке функцию pathsep().

Чтобы сохранить список путей до следующего сеанса работы, используется команда savepath.

Загрузка котировок с сайта Yahoo Finance

Для получения котировок с сервера Yahoo Finance надо в командной строке Octave или в тексте скрипта последовательно выполнить следующие команды:

pkg load financial   % Загружаем пакет financial (он должен быть установлен, см. выше).
c = yahoo;           % Создаём соединение
d = fetch(c, '^GSPC', '1/7/2014', now); % Получаем котировки (указываем имя соединения, тикер и диапазон дат).

Будет получен массив котировок в формате Date, Open, High, Low, Close, Volume, Adjusted Close. Все варианты использования функции fetch() можно прочитать в документации. Доступ к отдельным столбцам можно получить следующим образом:

open = d(:, 2);
high = d(:, 3);
low = d(:, 4);
close = d(:, 5);

Для сохранения данных в файл:

save ИмяФайла d

Скорее всего у вас не получится выполнить код, приведённый в этом подразделе, с помощью каких-либо онлайн-сервисов, подобных www.tutorialspoint.com или octave-online.net.

Построение графиков

Для построения графиков функций в Matlab/Octave используется универсальная функция plot. Например, мы можем построить график тригонометрической функции синус (рис.1а):

x = -10:0.1:10;
plot (x, sin (x));
../_images/OctaveSinPlot.png

Рис. 1. График функции sin в Octave

Как видим, в качестве первого аргумента указывается вектор абсцисс, в качестве второго – соответствующий вектор ординат.

Если указать только один параметр, то по умолчанию абсциссами будут считаться номера элементов указанного вектора (рис.1б):

y = sin(x);
plot (y);

Если опустить точку с запятой в конце оператора, то результат его выполнения сразу отобразится в командном окне:

>> x = -5:1:5
x =
  -5  -4  -3  -2  -1   0   1   2   3   4   5

Чтобы построить финансовый график в виде баров, проще всего использовать функцию highlow из пакета financial:

highlow(high, low, close, open);

Список литературы

  1. Алексеев Е.Р., Чеснокова О.В. Введение в Octave для инженеров и математиков. — М.: ALT Linux, 2012. — 368 с.

Ссылки



Комментарии (1)

Вы просматриваете: OctaveIntro
Facebookdel.icio.usStumbleUponDiggGoogle+Twitter
Gravatar
Петр говорит...
Добрый день, благодарю за полезный материал. Я столкнулся со следующей проблемой - есть два массива данных (две акции) но данные не совпадают по времени (один массив больше другого, где-то пропущены одни даты, где-то другие) как мне соединить эти два массива в один на основании даты, чтобы все пропуски были учтены?
24th July 2015 7:18pm
Страница 1 из 1

* Обязательные поля
(Не публикуется)
 
Жирный Курсив Подчеркнутый Перечеркнутый Степень Индекс Код PHP Код Кавычки Вставить линию Вставить маркированный список Вставить нумерованный список Вставить ссылку Вставить e-mail Вставить изображение Вставить видео
 
Улыбка Печаль Удивление Смех Злость Язык Возмущение Ухмылка Подмигнуть Испуг Круто Скука Смущение Несерьёзно Шокирован
 
1000
Captcha
Refresh
 
Введите код:
 
Запомнить информацию введенную в поля формы.