void marketOrder_onOrderSend(object sender, MarketOrder.OrderSendEvent e)
        {
            if (e.Success)
            {
                EmailMsg msg = new EmailMsg();
                msg.Title = "New Trade";
                msg.Body = "an Order was generated and sucessfully send to the Market. \n" + e.Trade.ToString() +
                  "go to " + @"http://www.alsitm.com/Trades.aspx" + " to view trade history\n"
                            + @"http://www.alsitm.com/charts/Statssummary.html" + " to view profit summary chart\n"
                            + @"http://www.alsitm.com/charts/TradeHistory.html" + " to view trade history chart\n"
                            + @"http://www.alsitm.com/charts/TradeDifference.html" + " to view actual trade difference chart";

                SmsMsg sms = new SmsMsg()
                {
                    text="New Order",
                };
                DoStuff.Email.SendEmail(e.Trade, msg, false);
                DoStuff.SMS.SendSms(e.Trade,sms , false);
                WebUpdate.SendOrder(e.Trade, false);
                WebUpdate.SendOrderToWebDB(e.Trade);
            }
            else
            {
                EmailMsg msg = new EmailMsg();
                msg.Title = "Trade input Failed";
                msg.Body = "an Order was generated but could not be send to Excel. \n" + e.Trade.ToString();

                SmsMsg sms = new SmsMsg()
                {
                    text = "Order Submission Failed",
                };                
                DoStuff.SMS.SendSms(e.Trade, sms, true);
                DoStuff.Email.SendEmail(e.Trade, msg, true);
            }
        }
        private void MainForm_Load(object sender, EventArgs e)
        {
            WebSettings.GetSettings();
            var start = new LoadingStartupEvent();
            start.Progress = 10;
            onStartupLoad(this, start);

            CheckForIllegalCrossThreadCalls = false;
           //  Debug.WriteLine("Time Synched " + DoStuff.SynchronizeTime());
            _Interval = GlobalObjects.TimeInterval.Minute_5;

            start.Progress = 10;
            onStartupLoad(this, start);
            PopulateControls();

            start.Progress = 20;
            onStartupLoad(this, start);

            U5 = new UpdateTimer(_Interval);
            p = new PrepareForTrade(_Interval, WebSettings.General.HISAT_INST, GetParameters(), WebSettings.General.LIVE_START_DATE);
            marketOrder = new MarketOrder();


            p.onPriceSync += new PrepareForTrade.PricesSynced(p_onPriceSync);
            U5.onStartUpdate += new UpdateTimer.StartUpdate(U5_onStartUpdate);
            U5.OnManualCloseTrigger += new UpdateTimer.ManualCloseTrigger(U5_OnManualCloseTrigger);
            U5.OnConnectionExpired += new UpdateTimer.ConnectionExpired(U5_OnConnectionExpired);
            marketOrder.onOrderSend += new MarketOrder.OrderSend(marketOrder_onOrderSend);
            marketOrder.onOrderMatch += new MarketOrder.OrderMatch(marketOrder_onOrderMatch);
            _Stats.OnStatsCaculated += new Statistics.StatsCalculated(_Stats_OnStatsCaculated);


            start.Progress = 30;
            onStartupLoad(this, start);

            feed = new AlsiTrade_Backend.HiSat.LiveFeed(WebSettings.General.HISAT_INST);

            start.Progress = 60;
            onStartupLoad(this, start);

            BuildListViewColumns();

            start.Progress = 70;
            onStartupLoad(this, start);


            p._LastTrade = DoStuff.GetLastTrade(GetParameters(), _Interval);

            start.Progress = 80;
            onStartupLoad(this, start);


          
            Debug.WriteLine("LAST TRADE : " + p._LastTrade.TimeStamp + "   " + p._LastTrade);
            service = new WebUpdate();


            start.Progress = 100;
            onStartupLoad(this, start);

            WebUpdate.SetManualTradeTrigger(false);


            //test
            comboBox1.Items.Add(Trade.Trigger.None);
            comboBox1.Items.Add(Trade.Trigger.OpenLong);
            comboBox1.Items.Add(Trade.Trigger.OpenShort);
            comboBox1.Items.Add(Trade.Trigger.CloseLong);
            comboBox1.Items.Add(Trade.Trigger.CloseShort);

            comboBox2.Items.Add(Trade.BuySell.None);
            comboBox2.Items.Add(Trade.BuySell.Buy);
            comboBox2.Items.Add(Trade.BuySell.Sell);

           //Genetic plugin
            gb = GeneticBackend.GetSingletonGB();
            gb.Mf = this;
            gb.onUpdate += gb_onUpdate;
            gf.Show();
        }
        void marketOrder_onOrderMatch(object sender, MarketOrder.OrderMatchEvent e)
        {
            EmailMsg msg = new EmailMsg();
            msg.Title = "Order Matched";
            msg.Body = e.Trade.ToString();
            WebUpdate.SendOrder(e.Trade, true);
            SmsMsg sms = new SmsMsg()
            {
                text = "Order Matched",
            };
            DoStuff.SMS.SendSms(e.Trade, sms, true);
            DoStuff.Email.SendEmail(e.Trade, msg, true);
            WebUpdate.SendOrderToWebDB(e.Trade);

        }