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"); }
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); }