Пример #1
0
        static void Main(string[] args)
        {
            Config.Settings                    = new Dictionary <string, string>();
            Config.Settings["APP_NAME"]        = "Midax";
            Config.Settings["IG_KEY"]          = "8d341413c2eae2c35bb5b47a594ef08ae18cb3b7";
            Config.Settings["IG_USER_NAME"]    = "ksbitlsoftdemo";
            Config.Settings["IG_PASSWORD"]     = "******";
            Config.Settings["DB_CONTACTPOINT"] = "192.168.1.25";
            var startDate = DateTime.Now;

            Config.Settings["PUBLISHING_CSV"]        = string.Format("..\\..\\..\\TradingActivity\\trading_{0}_{1}_{2}.csv", startDate.Day, startDate.Month, startDate.Year);
            Config.Settings["PUBLISHING_START_TIME"] = string.Format("{0}:{1}:{2}", 0, 0, 50);
            Config.Settings["PUBLISHING_STOP_TIME"]  = string.Format("{0}:{1}:{2}", 23, 59, 59);
            Config.Settings["TRADING_START_TIME"]    = string.Format("{0}:{1}:{2}", 0, 1, 0);
            Config.Settings["TRADING_STOP_TIME"]     = string.Format("{0}:{1}:{2}", 23, 59, 50);
            Config.Settings["TRADING_CLOSING_TIME"]  = string.Format("{0}:{1}:{2}", 23, 59, 55);
            Config.Settings["TRADING_MODE"]          = "PRODUCTION";
            Config.Settings["TRADING_SIGNAL"]        = "Rob_1_48_20_15_CS.D.GBPUSD.TODAY.IP,Rob_1_48_20_15_CS.D.EURUSD.TODAY.IP,Rob_60_48_20_15_IX.D.DAX.DAILY.IP,Rob_60_48_20_15_IX.D.FTSE.DAILY.IP,Rob_60_48_20_15_CS.D.USCSI.TODAY.IP";
            Config.Settings["TRADING_LIMIT_PER_BP"]  = "5";
            Config.Settings["TRADING_CURRENCY"]      = "GBP";
            Config.Settings["INDEX_DOW"]             = "DOW:IX.D.DOW.DAILY.IP";
            Config.Settings["INDEX_DAX"]             = "DAX:IX.D.DAX.DAILY.IP";
            Config.Settings["INDEX_FTSE"]            = "FTSE:IX.D.FTSE.DAILY.IP";
            Config.Settings["FX_EURUSD"]             = "EURUSD:CS.D.EURUSD.TODAY.IP";
            Config.Settings["FX_GBPUSD"]             = "GBPUSD:CS.D.GBPUSD.TODAY.IP";
            Config.Settings["COM_SILVER"]            = "SIL:CS.D.USCSI.TODAY.IP";
            Config.Settings["INDEX_ICEDOW"]          = "DOW:IceConnection.DJI";
            Config.Settings["CALENDAR_PATH"]         = "C:\\Shared\\MidaxTester\\Calendar";
            Config.Settings["TIME_GMT_CALENDAR"]     = "1";

            var index            = IceStreamingMarketData.Instance;
            var models           = new List <Model>();
            var dax              = new MarketData(Config.Settings["INDEX_DAX"]);
            var dow              = new MarketData(Config.Settings["INDEX_DOW"]);
            var ftse             = new MarketData(Config.Settings["INDEX_FTSE"]);
            var gbpusd           = new MarketData(Config.Settings["FX_GBPUSD"]);
            var eurusd           = new MarketData(Config.Settings["FX_EURUSD"]);
            var silver           = new MarketData(Config.Settings["COM_SILVER"]);
            var robinhood_eurusd = new ModelRobinHood(eurusd, 1);
            var robinhood_gbpusd = new ModelRobinHood(gbpusd, 1);
            var robinhood_silver = new ModelRobinHood(silver);
            var robinhood_dax    = new ModelRobinHood(dax);
            var robinhood_ftse   = new ModelRobinHood(ftse);

            models.Add(robinhood_eurusd);
            //models.Add(robinhood_gbpusd);
            //models.Add(robinhood_dax);
            //models.Add(robinhood_ftse);
            //models.Add(robinhood_silver);
            Console.WriteLine("Starting signals...");
            var trader = new Trader(models, onShutdown);

            trader.Init(Config.GetNow);
            Console.WriteLine("Trading...");
            _stopEvent = new AutoResetEvent(false);
            _stopEvent.WaitOne();
            Console.WriteLine("Trading stopped");
        }
Пример #2
0
        public override int run(string[] args)
        {
            try
            {
                if (args.Length != 0)
                {
                    throw new ApplicationException("starting: too many arguments in application call.");
                }

                Log.APPNAME = Midax.Properties.Settings.Default.APP_NAME;

                Dictionary <string, string> dicSettings = new Dictionary <string, string>();
                List <string> stockList = new List <string>();
                foreach (SettingsPropertyValue prop in Midax.Properties.Settings.Default.PropertyValues)
                {
                    if (prop.Name == "STOCKS")
                    {
                        string[] stockArray = new string[100];
                        ((StringCollection)prop.PropertyValue).CopyTo(stockArray, 0);
                        foreach (string stock in stockArray)
                        {
                            if (stock != null && stock != "")
                            {
                                stockList.Add(stock);
                            }
                        }
                    }
                    else
                    {
                        dicSettings.Add(prop.Name, (string)prop.PropertyValue);
                    }
                }
                Config.Settings = dicSettings;

                Ice.ObjectAdapter adapter    = communicator().createObjectAdapter("MidaxIce");
                Ice.Properties    properties = communicator().getProperties();
                Ice.Identity      id         = communicator().stringToIdentity(properties.getProperty("Identity"));

                //Thread.Sleep(10000);

                /*
                 * List<string> rsiRefMappingGBP = new List<string> { dicSettings["FX_GBPEUR"], dicSettings["FX_GBPUSD"] };
                 * List<string> rsiRefMappingUSD = new List<string> { dicSettings["FX_USDJPY"], dicSettings["FX_EURUSD"] };
                 * List<decimal> volcoeffsGBP = new List<decimal> { 1m, 0.8m };
                 * List<decimal> volcoeffsUSD = new List<decimal> { 0.75m, 0.7m };*/

                var index  = IceStreamingMarketData.Instance;
                var dax    = new MarketData(dicSettings["INDEX_DAX"]);
                var dow    = new MarketData(dicSettings["INDEX_DOW"]);
                var cac    = new MarketData(dicSettings["INDEX_CAC"]);
                var ftse   = new MarketData(dicSettings["INDEX_FTSE"]);
                var icedow = new MarketData(dicSettings["INDEX_ICEDOW"]);
                var gbpusd = new MarketData(dicSettings["FX_GBPUSD"]);
                var eurusd = new MarketData(dicSettings["FX_EURUSD"]);
                var btcusd = new MarketData(dicSettings["FX_BTCUSD"]);
                var silver = new MarketData(dicSettings["COM_SILVER"]);

                /*
                 * List<MarketData> otherIndices = new List<MarketData>();
                 * otherIndices.Add(new MarketData(dicSettings["INDEX_CAC"]));
                 * otherIndices.Add(icedow);
                 * otherIndices.Add(gbpusd);
                 * otherIndices.Add(eurusd);
                 * otherIndices.Add(silver);*/
                var models = new List <Model>();
                //var macD_10_30_90_dax = new ModelMacD(dax, 10, 30, 90);
                var robinhood_eurusd = new ModelRobinHood(eurusd);
                var robinhood_gbpusd = new ModelRobinHood(gbpusd);
                //var robinhood_btcusd = new ModelRobinHood(btcusd);
                var robinhood_silver = new ModelRobinHood(silver);
                var robinhood_dax    = new ModelRobinHood(dax);
                //var robinhood_cac = new ModelRobinHood(cac);
                var robinhood_ftse = new ModelRobinHood(ftse);
                var robinhood_dow  = new ModelRobinHood(dow, 60, 48, 0, 20, 15, new IndicatorVolume(icedow, 60));
                //models.Add(macD_10_30_90_dax);
                models.Add(robinhood_eurusd);
                models.Add(robinhood_gbpusd);
                //models.Add(robinhood_btcusd);
                //models.Add(robinhood_silver);
                models.Add(robinhood_dax);
                //models.Add(robinhood_cac);
                //models.Add(robinhood_dow);
                //models.Add(robinhood_ftse);
                //models.Add(new ModelANN("WMA_5_2", macD_10_30_90_dax, null, null, otherIndices));
                _trader = new Trader(models, communicator().shutdown);
                _trader.Init(Config.GetNow);

                adapter.add(new MidaxIceI(_trader, properties.getProperty("Ice.ProgramName")), id);
                adapter.activate();
                communicator().waitForShutdown();
            }
            catch (SEHException exc)
            {
                Log.Instance.WriteEntry("Midax server interop error: " + exc.ToString() + ", Error code: " + exc.ErrorCode, EventLogEntryType.Error);
            }
            catch (Exception exc)
            {
                Log.Instance.WriteEntry("Midax server error: " + exc.ToString(), EventLogEntryType.Error);
            }

            return(0);
        }