)); factMinerSettings=config.Element ( factMinerSettings ) ;. ChangeThreshold=(double)
factMinerSettings.Element(laquo;changeThresholdraquo;).Attribute(laquo;valueraquo;);.SecIdFrom =
(int)factMinerSettings.Element(laquo;securitiesraquo;).Attribute(laquo;fromraquo;);.SecIdTo =
(int)factMinerSettings.Element(laquo;securitiesraquo;).Attribute(laquo;toraquo;);.DateFrom =
(int)factMinerSettings.Element(laquo;datesraquo;).Attribute(laquo;fromraquo;);.DateTo =(Int) factMinerSettings.Element ( dates ). Attribute ( to ) ;. SpikeThreshold=
(double)factMinerSettings.Element(laquo;spikeThresholdraquo;).Attribute(laquo;valueraquo;);.minerDateThreshold =
(int)factMinerSettings.Element(laquo;dateThresholdraquo;).Attribute(laquo;valueraquo;);.folderForMLFiles =
(string)factMinerSettings.Element(laquo;filesForMlraquo;).Attribute(laquo;valueraquo;);copyConfigFile =ParamPass + Log Config +
curParam.fileLoggerposeDateString (mode: 0) + .xml raquo ;;. IO.File.Copy (paramPass + Config.xml raquo ;, copyConfigFile) ;. fileLogger.writeToLog ( " Config loaded, copy of loaded config
file: n" + copyConfigFile); curParam;
}
}
}
FactMiner.cs
using System;System.Collections.Generic;System.Linq;System.Text;System.Threading.Tasks;System.Reflection;FactEventAnalyzer
{class FactMiner
{ChangeType
{= 0,=1,=2,=3,=4
} FieldType
{= 0,=1,=2
} static void runFactMiner (Parameters CurParam)
{startDate=DateTime.Now; .fileLogger.writeToLog ( Mining of Facts started ); dbContext=new
FactEventAnalysisDBDataContext () ;. usp_clearFactsTables (dateFrom: CurParam.DateFrom, dateTo:
CurParam.DateTo, secIdFrom: CurParam.SecIdFrom, secIdTo:
CurParam.SecIdTo, isPrices: true, isCorax: false, isSpike: true) ;. fileLogger.writeToLog ("Price Facts and Spike Facts are cleared,
it took" + (DateTime.Now - startDate) .TotalSeconds); SecurityQuery=from security in dbContext.SecuritiesSourcessecurity.SecIdsecurity.SecId gt;=CurParam.SecIdFrom amp; amp; security.SecId lt; =
CurParam.SecIdTo amp; amp; dbContext.PricesSources.Any (p= gt; (p.SecId ==
security.SecId amp; amp; p.DateTick gt;=CurParam.DateFrom amp; amp; p.DateTick lt;=
CurParam.DateTo)) security; totalSecs=SecurityQuery.Count (); curSecNum=0; (FactEventAnalyzer.SecuritiesSource curSec in SecurityQuery)
{++ ;. fileLogger.writeToLog (curSecNum.ToString () + / +
totalSecs.ToString () + laquo ;, SecId is + CurSec.SecId); (DbContext: dbContext, CurSec: curSec, curParam:
CurParam) ;. fileLogger.writeToLog ( Price completed ); (DbContext: dbContext, CurSec: curSec, curParam:
CurParam) ;. fileLogger.writeToLog ( Ask completed ); (DbContext: dbContext, CurSec: curSec, curParam:
CurParam) ;. fileLogger.writeToLog ( Bid completed ); (CurParam.SpikeThreshold gt; 0)
{(DbContext: dbContext, CurSec: curSec, curParam:
CurParam) ;. fileLogger.writeToLog ( Spikes analyzed );
}
}. fileLogger.writeToLog ( Price Facts are produced. n Start time:
+ startDate.ToString () +
n Finish time: + System.DateTime.Now.ToString () +
n Securities processed: + TotalSecs.ToString () +
n Total runtime: + (System.DateTime.Now -) .TotalSeconds.ToString ()) ;. fileLogger.writeToLog ( Starting Corax Facts production ); (curParam: CurParam) ;. fileLogger.writeToLog ("Corax Facts are produced.Starting to
save results to file. n ); hypothesisQuery=from hypothesis in dbContext.PriceFactsHypothesishypothesis; resultsFile=CurParam.folderForMLFiles + PriceFacts_" +
CurParam.fileLoggerposeDateString (mode: 0) + .csv raquo ;; delimiter=, raquo ;; type=typeof (PriceFactsHypothesi); [] properties=type.GetProperties (); line= raquo ;; (PropertyInfo property in properties)
{+=property.Name + delimiter;
}. IO.StreamWriter file=new System.IO.StreamWriter (resultsFile,
true) ;. WriteLine (line) ;. Close (); (var hypothesis in hypo...