Программирование - это просто
Advertisement
Главная
10.06.2026 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
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 г. )
 
« След.   Пред. »
 
© 2026 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги