示例#1
0
        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>();
        }
示例#2
0
        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;
        }
示例#3
0
        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;
                }
            }
        }
示例#4
0
文件: Core.cs 项目: sjdweb/lignite
        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));
        }
示例#5
0
        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);
        }
示例#6
0
        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;
        }