Программирование - это просто
Advertisement
Главная arrow Уроки программирования arrow Создаем биржевого робота уроки, статьи, идеи arrow Проверяем правильность работы класса индикатора (AssignFile, Rewrite, Writeln, CloseFile).
28.10.2020 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Статьи
Платный раздел
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Размышления
Наука для чайников
Друзья сайта
Excel-это не сложно
Все о финансах
Проверяем правильность работы класса индикатора (AssignFile, Rewrite, Writeln, CloseFile). Печать E-mail
Автор megabax   
22.08.2009 г.
New Page 1

Проверяем правильность работы класса индикатора (AssignFile, Rewrite, Writeln, CloseFile).

Все статьи по данной теме.

Сегодня мы проверим результат, который нам выдала программа на прошлом уроке. И так, вот исходные данные:

<TICKER>,<PER>,<DATE>,<TIME>,<OPEN>,<HIGH>,<LOW>,<CLOSE>
MICEX,D,19991112,000000,119.87000,119.87000,119.87000,119.87000
MICEX,D,19991115,000000,121.93000,121.93000,121.93000,121.93000
MICEX,D,19991116,000000,122.45000,122.45000,122.45000,122.45000
MICEX,D,19991117,000000,120.32000,120.32000,120.32000,120.32000
MICEX,D,19991118,000000,118.06000,118.06000,118.06000,118.06000
MICEX,D,19991119,000000,121.42000,121.42000,121.42000,121.42000
MICEX,D,19991122,000000,125.65000,125.65000,125.65000,125.65000
MICEX,D,19991123,000000,128.58000,128.58000,128.58000,128.58000
MICEX,D,19991124,000000,125.45000,125.45000,125.45000,125.45000
MICEX,D,19991125,000000,123.41000,123.41000,123.41000,123.41000

Мы рассматривали свечу с датой 24.11.1999, поле "Close" которой равно 125.45000. Это у нас значение котировки на конец периода. Значение котировки на начало периода соответствует свече 19.11.1999 (согласно матмодели, это свеча, предшествующей свече начала периода). Теперь считаем:

(125.45000-121.42000)/121.42000*100/3=1,10635260528194

Как видим, результат соответствует результату, выданному программой на предыдущем уроке.

Для верности еще сделаем графическую проверку: сформируем текстовый файл результатов расчета, конвертируем его в Excel и график индикатора сравним с графиком котировок. Добавим к форме TSaveDialog и кнопочку. Для обработчика клика по кнопке напишем такой код:

procedure TfrmMomentum.btnTestFileClick(Sender: TObject);
var VF:TextFile;
begin
  if sdTextFile.Execute then
  begin
     AssignFile(VF, sdTextFile.FileName);
     Rewrite(VF);
     if FIndicator<>nil then FreeAndNil(FIndicator);
     FIndicator:=TPASSMomentum.Create(seDT.Value,'Close');
     FPriceSource.CurrentItemIndex:=seDT.Value+2;
     FIndicator.PriceSource:=FPriceSource;
     repeat
        WriteLn(VF,DateTimeToStr(FPriceSource.GetDataByFieldName('DateTime')),', ',FIndicator.GetResultByFieldName('Value'));
     until not FPriceSource.NextItem;
     CloseFile(VF);
  end;
end;  

Теперь сформируем текстовый файл, конвертируем его в Excel и посмотрим график сравнения (для наглядности momentum умножен на 100)*:

AssignFile, Rewrite, Writeln, CloseFile

Если внимательно присмотреться к графику (расчет произведен для периода в три свечи), то мы увидим, что действительно, наш индикатор показывает скорость изменения котировок акций.


Скриншоты, помеченные знаком * , являются цитатами и иллюстрациями  в соответствии со ст. 1274 ГК РФ программного продукта "Microsoft Excel", авторское право на который принадлежит "Корпорации Microsoft" 

 

Последнее обновление ( 27.07.2013 г. )
 
« След.   Пред. »
 
© 2020 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги