= curPrice;=false;
}
{changeAmount=(double) (100 * (curPrice.Price - prevPrice.Price)/
prevPrice.Price); (Math.Abs ??(changeAmount) gt; curParam.SpikeThreshold)
{(changeAmount lt; 0)
{(changeType: ChangeType.NegSpike, date:
curPrice.DateTick, secId: CurSec.SecId, fieldType: FieldType.Price);
}
{(changeType: ChangeType.PosSpike, date:
curPrice.DateTick, secId: CurSec.SecId, fieldType: FieldType.Price);
}
}=(double) (100 * (curPrice.AskPrice - prevPrice.AskPrice)/
prevPrice.AskPrice); (Math.Abs ??(changeAmount) gt; curParam.SpikeThreshold)
{(changeAmount lt; 0)
{(changeType: ChangeType.NegSpike, date:
curPrice.DateTick, secId: CurSec.SecId, fieldType: FieldType.Ask);
}
{(changeType: ChangeType.PosSpike, date:
curPrice.DateTick, secId: CurSec.SecId, fieldType: FieldType.Ask);
}
}=(double) (100 * (curPrice.BidPrice - prevPrice.BidPrice)/
prevPrice.BidPrice); (Math.Abs ??(changeAmount) gt; curParam.SpikeThreshold)
{(changeAmount lt; 0)
{(changeType: ChangeType.NegSpike, date:
curPrice.DateTick, secId: CurSec.SecId, fieldType: FieldType.Bid);
}
{(changeType: ChangeType.PosSpike, date:
curPrice.DateTick, secId: CurSec.SecId, fieldType: FieldType.Bid);
}
}=curPrice;
}
}
} ChangeType determineChangeType (decimal prevPrice, decimal
curPrice, double changeThreshold)
{changeAmount=(double) (100 * (curPrice - prevPrice)/prevPrice); (Math.Abs ??(changeAmount) lt; changeThreshold)
{ChangeType.Unchanged;
}
{(changeAmount lt; 0)
{ChangeType.Decreasing;
}
{ChangeType.Growing;
}
}
}
}
}
Logger.cs
using System;System.Collections.Generic;System.Linq;System.Text;System.Threading.Tasks;FactEventAnalyzer
{class Logger
{Logger () {} logFile; Logger (string logFolder)
{. logFile=logFolder + FactMiner_ + ComposeDateString (mode: 0) +
.log raquo ;;
} string composeDateString (int mode=1)
{tempDate=System.DateTime.Now; (mode == 0)
{(tempDate.Year.ToString () + tempDate.Month.ToString ( D2 ) +
tempDate.Day.ToString ( D2 )
+ T + TempDate.Hour.ToString ( D2 ) + tempDate.Minute.ToString ( D2 )
+ tempDate.Second.ToString ( D2 )
+ _ + TempDate.Millisecond.ToString ( D3 ));
}
{(tempDate.Year.ToString () + . + tempDate.Month.ToString ( D2 ) +
. + TempDate.Day.ToString ( D2 )
+ T + TempDate.Hour.ToString ( D2 ) + : +
tempDate.Minute.ToString ( D2 ) + : + TempDate.Second.ToString ( D2 )
+ . + TempDate.Millisecond.ToString ( D3 ));
}
} void writeToLog (string logMessage)
{
. IO.StreamWriter file=new System.IO.StreamWriter (this.logFile,
true) ;. WriteLine (composeDateString () + + logMessage) ;. Close ();
}
}
}
Додаток 2. Файл конфігурації системи предобработки інформації
lt; factEventAnalyzer gt;
lt; logging gt;
lt; logFolder path= D: DiplomaProject AnalyzingWorkFolder log / gt;
lt;/logging gt;
lt; factMinerSettings gt;
lt; changeThreshold value= 0.3 / gt;
lt; securities from= 0 to= 99999999 / gt;
lt; dates from= 0 ...