Программирование - это просто
Advertisement
Главная arrow C#, Delphi, VB, F#, Web и пр. arrow Прочее программирование arrow Создаем биржевого робота уроки, статьи, идеи arrow Проверяем правильность работы класса индикатора (AssignFile, Rewrite, Writeln, CloseFile).
16.06.2019 г.
Главное меню
Главная
Системный подход
Интернет магазин
Биржевые роботы
Программные продукты
Математика и информатика
1С:Предприятие
C#, Delphi, VB, F#, Web и пр.
Искусственный интеллект
Услуги
Ча. Во. (FAQ)
Платный раздел
Наука для чайников
Разное
Размышления
Карта сайта
Друзья сайта
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 г. )
 
« След.   Пред. »
 
© 2019 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги
Мы принимаем
Банковские карты
Оплатите покупку в интернет-магазине банковскими картами VISA и Mastercard любого банка.
узнать больше
Электронный кошелек
Моментальная оплата покупок с помощью вашего электронного кошелька RBK Money.
узнать больше
Банковский платеж
Оплатите покупку в любом российском банке. Срок зачисления средств на счет - 3-5 рабочих дней.
узнать больше
Денежные переводы
Оплата покупок через крупнейшие системы денежных переводов CONTACT и Unistream.
узнать больше
Почтовые переводы
Оплатите покупку в любом отделении Почты России. Срок зачисления платежа - 3-4 рабочих дня.
узнать больше
Платежные терминалы
Оплата покупок в терминалах крупнейших платежных систем в любом городе России - быстро и без комиссии.
узнать больше