Реклама

суббота, 6 ноября 2010 г.

Пишем робота Урок №6

Проверяем правильность работы класса индикатора (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;  
Теперь сформируем текстовый файл, конвертируем его в Excel и посмотрим график сравнения (для наглядности momentum умножен на 100)*:
AssignFile, Rewrite, Writeln, CloseFile
Если внимательно присмотреться к графику (расчет произведен для периода в три свечи), то мы увидим, что действительно, наш индикатор показывает скорость изменения котировок акций.

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

Источник: http://easyprog.ru/index.php?option=com_content&task=view&id=79&Itemid=44