internal MarketProcessor(string id, Market market, StrategyLoadPatern strategy) { this.id = id; this.market = market; this.strategy = strategy; raceCourseAbreviations = new RaceCourseAbreviations(); run = false; asyncResponsesWaiting = new Dictionary <string, DateTime>(); }
private void btnCreateNewDataLoadPatern_Click(object sender, EventArgs e) { var strategyItem = new StrategyLoadPatern { Name = "New", Key = Guid.NewGuid().ToString(), Version = "", OnMarketLoadActions = new DataLoadActions(), CustomLibrary = "", DataLoadPaterns = new DataLoadPaterns() }; /*** Strategy Data Loader Paterns Config Tree Node ***/ var node = new TreeNode(strategyItem.Name) { Name = strategyItem.Name }; var StrategyLoadPaternsViewObject = new StrategyLoadPaternsView(strategyItem); StrategyLoadPaternsViewObject.DataChanged += strategyLoadPaternsView1_DataChanged; node.Tag = StrategyLoadPaternsViewObject; nodeStrategyDataLoaderPaterns.Nodes.Add(node); var node4 = new TreeNode { Name = "DataLoadPaterns", Text = "Data Load Paterns", Tag = node.Tag }; node.Nodes.Add(node4); var tempStrategyLoadPaterns = new StrategyLoadPatern[MySettings.StrategyLoadPaterns.Length + 1]; for (int x = 0; x < tempStrategyLoadPaterns.Length; x++) { tempStrategyLoadPaterns[x] = x >= MySettings.StrategyLoadPaterns.Length ? strategyItem : MySettings.StrategyLoadPaterns[x]; } MySettings.StrategyLoadPaterns = tempStrategyLoadPaterns; CreateDataLoadpaternTreeItems(node4, StrategyLoadPaternsViewObject); treeView.SelectedNode = node; }
private void btnDeleteDataLoadPatern_Click(object sender, EventArgs e) { if (treeView.SelectedNode.Tag.GetType() == typeof(StrategyLoadPaternsView)) { var removeMe = (StrategyLoadPaternsView)treeView.SelectedNode.Tag; DialogResult result = MessageBox.Show( "Are sure you want to delete " + removeMe.strategyLoadPatern.Name, "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation); if (result == DialogResult.Yes) { string keyToRemove = removeMe.strategyLoadPatern.Key; if (treeView.SelectedNode.Name == "DataLoadPaterns") { treeView.SelectedNode = treeView.SelectedNode.Parent; } treeView.SelectedNode.Remove(); var tempStrategyLoadPaterns = new StrategyLoadPatern[MySettings.StrategyLoadPaterns.Length - 1]; int count = 0; for (int x = 0; x < MySettings.StrategyLoadPaterns.Length; x++) { if (MySettings.StrategyLoadPaterns[x].Key != keyToRemove) { tempStrategyLoadPaterns[count] = MySettings.StrategyLoadPaterns[x]; count++; } } MySettings.StrategyLoadPaterns = tempStrategyLoadPaterns; } } }
private void StartMarketProcessorThread(int exchangeId, int marketId, StrategyLoadPatern strategy) { // Create the ID to use for this item var processId = String.Format("MARKET_PROCESSOR:{0}:{1}", exchangeId, marketId); if (LigniteEngineThreads.ContainsKey(processId)) { return; } var market = new Market { exchangeId = exchangeId, marketId = marketId }; // Make sure the requested strategy is complete, if not replace empty elements with the default config var defaultPatern = settings.GetDefaultStrategyLoadPatern(); if (strategy.OnMarketLoadActions == null) { strategy.OnMarketLoadActions = defaultPatern.OnMarketLoadActions; } if (strategy.DataLoadPaterns.Default == null) { strategy.DataLoadPaterns.Default = defaultPatern.DataLoadPaterns.Default; } if (strategy.DataLoadPaterns.HasBets == null) { strategy.DataLoadPaterns.HasBets = defaultPatern.DataLoadPaterns.HasBets; } if (strategy.DataLoadPaterns.HasUnmatchedBets == null) { strategy.DataLoadPaterns.HasUnmatchedBets = defaultPatern.DataLoadPaterns.HasUnmatchedBets; } if (strategy.DataLoadPaterns.Inactive == null) { strategy.DataLoadPaterns.Inactive = defaultPatern.DataLoadPaterns.Inactive; } if (strategy.DataLoadPaterns.InPlay == null) { strategy.DataLoadPaterns.InPlay = defaultPatern.DataLoadPaterns.InPlay; } if (strategy.DataLoadPaterns.Suspended == null) { strategy.DataLoadPaterns.Suspended = defaultPatern.DataLoadPaterns.Suspended; } // Declare the MarketLoader class to be threaded var marketProcessor = new MarketProcessor(processId, market, strategy); // Create the thread and start it var marketProcessorThread = new Thread(marketProcessor.Start); marketProcessorThread.Start(); // Now lets store the thread so that we can access it later LigniteEngineThreads.Add(processId, marketProcessorThread); // Notify the user SendMessage(String.Format("New market submitted for processing. ID = {0}", processId)); }
private static StrategyLoadPatern[] GetStrategyLoadPaterns() { var StrategyLoadPaterns = new StrategyLoadPatern[3]; StrategyLoadPaterns[0] = new StrategyLoadPatern { CustomLibrary = null, DataLoadPaterns = GetDataLoadPaterns(), FilterGetAllMarketsResults = null, Key = "Default", Name = "Default", OnMarketLoadActions = new DataLoadActions { GetBets = true, GetCompleteMarketTradedVolume = false, GetExtendedRunnerInfo = false, GetMarketPrices = true, GetMarketPricesComplete = false, TerminateMarketThread = false }, Version = "1.0.0.0" }; StrategyLoadPaterns[1] = new StrategyLoadPatern { CustomLibrary = "ExampleStrategy.dll", DataLoadPaterns = GetDataLoadPaterns(), FilterGetAllMarketsResults = new GetAllMarketsResultsFilter[1] }; StrategyLoadPaterns[1].FilterGetAllMarketsResults[0] = new GetAllMarketsResultsFilter("name", QueryOperator.CONTAINS, "Placed", null); StrategyLoadPaterns[1].Key = "GBPlaceMarketExample"; StrategyLoadPaterns[1].Name = "GB Place Market Example"; StrategyLoadPaterns[1].OnMarketLoadActions = new DataLoadActions { GetBets = true, GetCompleteMarketTradedVolume = false, GetExtendedRunnerInfo = true, GetMarketPrices = true, GetMarketPricesComplete = false, TerminateMarketThread = false }; StrategyLoadPaterns[1].Version = "1.0.0.0"; StrategyLoadPaterns[2] = new StrategyLoadPatern { CustomLibrary = "ExampleStrategy.dll", DataLoadPaterns = GetDataLoadPaterns(), FilterGetAllMarketsResults = new GetAllMarketsResultsFilter[1] }; StrategyLoadPaterns[2].FilterGetAllMarketsResults[0] = new GetAllMarketsResultsFilter ( "name", QueryOperator.NOT_CONTAINS, "Placed", /*AND*/ new GetAllMarketsResultsFilter ( "menuPath", QueryOperator.NOT_CONTAINS, "Win", /*AND*/ new GetAllMarketsResultsFilter ( "menuPath", QueryOperator.NOT_CONTAINS, "ANTEPOST", /*AND*/ new GetAllMarketsResultsFilter ( "menuPath", QueryOperator.NOT_CONTAINS, "RFC", /*AND*/ new GetAllMarketsResultsFilter ( "menuPath", QueryOperator.NOT_CONTAINS, "F/C", /*AND*/ new GetAllMarketsResultsFilter ( "menuPath", QueryOperator.NOT_CONTAINS, "AvB", /*AND*/ new GetAllMarketsResultsFilter ( "menuPath", QueryOperator.NOT_CONTAINS, "Without", /*AND*/ new GetAllMarketsResultsFilter ( "type", QueryOperator.EQUAL, "O", null ) ) ) ) ) ) ) ); StrategyLoadPaterns[2].Key = "GBWinMarketExample"; StrategyLoadPaterns[2].Name = "GB Win Market Example"; StrategyLoadPaterns[2].OnMarketLoadActions = new DataLoadActions { GetBets = true, GetCompleteMarketTradedVolume = false, GetExtendedRunnerInfo = false, GetMarketPrices = true, GetMarketPricesComplete = false, TerminateMarketThread = false }; StrategyLoadPaterns[2].Version = "1.0.0.0"; return(StrategyLoadPaterns); }
private static StrategyLoadPatern[] GetStrategyLoadPaterns() { var StrategyLoadPaterns = new StrategyLoadPatern[3]; StrategyLoadPaterns[0] = new StrategyLoadPatern { CustomLibrary = null, DataLoadPaterns = GetDataLoadPaterns(), FilterGetAllMarketsResults = null, Key = "Default", Name = "Default", OnMarketLoadActions = new DataLoadActions { GetBets = true, GetCompleteMarketTradedVolume = false, GetExtendedRunnerInfo = false, GetMarketPrices = true, GetMarketPricesComplete = false, TerminateMarketThread = false }, Version = "1.0.0.0" }; StrategyLoadPaterns[1] = new StrategyLoadPatern { CustomLibrary = "ExampleStrategy.dll", DataLoadPaterns = GetDataLoadPaterns(), FilterGetAllMarketsResults = new GetAllMarketsResultsFilter[1] }; StrategyLoadPaterns[1].FilterGetAllMarketsResults[0] = new GetAllMarketsResultsFilter("name", QueryOperator.CONTAINS, "Placed", null); StrategyLoadPaterns[1].Key = "GBPlaceMarketExample"; StrategyLoadPaterns[1].Name = "GB Place Market Example"; StrategyLoadPaterns[1].OnMarketLoadActions = new DataLoadActions { GetBets = true, GetCompleteMarketTradedVolume = false, GetExtendedRunnerInfo = true, GetMarketPrices = true, GetMarketPricesComplete = false, TerminateMarketThread = false }; StrategyLoadPaterns[1].Version = "1.0.0.0"; StrategyLoadPaterns[2] = new StrategyLoadPatern { CustomLibrary = "ExampleStrategy.dll", DataLoadPaterns = GetDataLoadPaterns(), FilterGetAllMarketsResults = new GetAllMarketsResultsFilter[1] }; StrategyLoadPaterns[2].FilterGetAllMarketsResults[0] = new GetAllMarketsResultsFilter ( "name", QueryOperator.NOT_CONTAINS, "Placed", /*AND*/ new GetAllMarketsResultsFilter ( "menuPath", QueryOperator.NOT_CONTAINS, "Win", /*AND*/ new GetAllMarketsResultsFilter ( "menuPath", QueryOperator.NOT_CONTAINS, "ANTEPOST", /*AND*/ new GetAllMarketsResultsFilter ( "menuPath", QueryOperator.NOT_CONTAINS, "RFC", /*AND*/ new GetAllMarketsResultsFilter ( "menuPath", QueryOperator.NOT_CONTAINS, "F/C", /*AND*/ new GetAllMarketsResultsFilter ( "menuPath", QueryOperator.NOT_CONTAINS, "AvB", /*AND*/ new GetAllMarketsResultsFilter ( "menuPath", QueryOperator.NOT_CONTAINS, "Without", /*AND*/ new GetAllMarketsResultsFilter ( "type", QueryOperator.EQUAL, "O", null ) ) ) ) ) ) ) ); StrategyLoadPaterns[2].Key = "GBWinMarketExample"; StrategyLoadPaterns[2].Name = "GB Win Market Example"; StrategyLoadPaterns[2].OnMarketLoadActions = new DataLoadActions { GetBets = true, GetCompleteMarketTradedVolume = false, GetExtendedRunnerInfo = false, GetMarketPrices = true, GetMarketPricesComplete = false, TerminateMarketThread = false }; StrategyLoadPaterns[2].Version = "1.0.0.0"; return StrategyLoadPaterns; }