Проверяем правильность работы класса индикатора (AssignFile, Rewrite, Writeln, CloseFile).
Сегодня мы проверим результат, который нам выдала программа на прошлом уроке. И так, вот исходные данные:
Мы рассматривали свечу с датой 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; |
Если внимательно присмотреться к графику (расчет произведен для периода в три свечи), то мы увидим, что действительно, наш индикатор показывает скорость изменения котировок акций.
Скриншоты, помеченные знаком * , являются цитатами и иллюстрациями в соответствии со ст. 1274 ГК РФ программного продукта "Microsoft Excel", авторское право на который принадлежит "Корпорации Microsoft"
Источник: http://easyprog.ru/index.php?option=com_content&task=view&id=79&Itemid=44