コード例 #1
0
        private DateTime ConvertTime(GlobalObjects.TimeInterval Interval)
        {
            DateTime _Now = DateTime.UtcNow.AddHours(2);
            DateTime t    = new DateTime();

            // int tenmin = (_Now.Minute / 10) * 10;
            //int onemin = _Now.Minute - tenmin;

            switch (Interval)
            {
            case GlobalObjects.TimeInterval.Minute_1:
                break;

            case GlobalObjects.TimeInterval.Minute_2:
                t = _Now.AddMinutes(-2);
                break;

            case GlobalObjects.TimeInterval.Minute_5:
                t = _Now.AddMinutes(-5);
                break;

            case GlobalObjects.TimeInterval.Minute_10:
                break;
            }

            return(t);
        }
コード例 #2
0
 public PrepareForTrade(GlobalObjects.TimeInterval Interval, string ContractName, Parameter_EMA_Scalp Parameter, DateTime StartPeriod)
 {
     _Interval = Interval;
     _ContractName = ContractName;
     _Start = StartPeriod;
     _Param = Parameter;
 }
コード例 #3
0
 public PrepareForTrade(GlobalObjects.TimeInterval Interval, string ContractName, Parameter_EMA_Scalp Parameter, DateTime StartPeriod)
 {
     _Interval     = Interval;
     _ContractName = ContractName;
     _Start        = StartPeriod;
     _Param        = Parameter;
 }
コード例 #4
0
ファイル: DoStuff.cs プロジェクト: vishu57/NinjaTrader
            public static List <Trade> DoYourThing(string Instrument, Parameter_EMA_Scalp Param, DateTime StartPeriod)
            {
                Statistics _Stats = new Statistics();

                GlobalObjects.TimeInterval t  = GlobalObjects.TimeInterval.Minute_5;
                DataBase.dataTable         dt = DataBase.dataTable.MasterMinute;
                var _tempTradeList            = AlsiTrade_Backend.RunCalcs.RunEMAScalp(Param, t, false, StartPeriod, DateTime.Now.AddHours(5), dt);
                var _trades = _Stats.CalcBasicTradeStats_old(_tempTradeList);

                return(_trades);
            }
コード例 #5
0
ファイル: DoStuff.cs プロジェクト: vishu57/NinjaTrader
        public static Trade GetLastTrade(Parameter_EMA_Scalp Parameter, GlobalObjects.TimeInterval t)
        {
            var _Stats = new AlsiUtils.Statistics();
            var dt     = DataBase.dataTable.MasterMinute;

            var _tempTradeList = AlsiTrade_Backend.RunCalcs.RunEMAScalp(Parameter, t, true, DateTime.Now.AddMonths(-1), DateTime.Now.AddHours(12), dt);
            var _trades        = _Stats.CalcBasicTradeStats_old(_tempTradeList);

            _trades.Reverse();

            return(_trades[0]);
        }
コード例 #6
0
 public UpdateTimer(GlobalObjects.TimeInterval interval)
 {
     _Businessday = CheckBusinessDay();
     _interval = interval;
     _timer.Interval = 500;
     _timer.Elapsed += new ElapsedEventHandler(_timer_Elapsed);
     _UpdateStatus.Elapsed += new ElapsedEventHandler(_UpdateStatus_Elapsed);
     _UpdateStatus.Interval = 5000;
     _UpdateStatus.Start();
     if (_Businessday) _timer.Start();
     service = new WebUpdate();
 }
コード例 #7
0
        private void start()
        {
            Cursor = Cursors.WaitCursor;
            GlobalObjects.TimeInterval t  = GlobalObjects.TimeInterval.Minute_5;
            DataBase.dataTable         dt = DataBase.dataTable.MasterMinute;
            //_FullTradeList = AlsiTrade_Backend.RunCalcs.RunEMAScalp(GetParametersSAR_EMA(), t, false, new DateTime(2012, 01, 01), new DateTime(2014, 01, 01), dt);
            _FullTradeList = AlsiTrade_Backend.RunCalcs.RunMAMAScalp(GetParametersMAMA(), t, false, new DateTime(2005, 01, 01), new DateTime(2014, 12, 31), dt);
            _FullTradeList = _Stats.CalcBasicTradeStats_old(_FullTradeList);
            NewTrades      = AlsiUtils.Strategies.TradeStrategy.Expansion.ApplyRegressionFilter(11, _FullTradeList);
            NewTrades      = _Stats.CalcExpandedTradeStats(NewTrades);
            _TradeOnlyList = CompletedTrade.CreateList(NewTrades);

            Cursor = Cursors.Default;
        }
コード例 #8
0
        public static void MergeTempWithHisto(GlobalObjects.TimeInterval T)
        {
            var dc = new AlsiDBDataContext();

            switch (T)
            {
            case (GlobalObjects.TimeInterval.Minute_5):
                //Must be 2000 prices in db for accurate calcs
                if (dc.OHLC_5_Minutes.Count() < 20100)
                {
                    throw new IndexOutOfRangeException();
                }
                var last1000Prices = dc.OHLC_5_Minutes.Skip(Math.Max(0, dc.OHLC_5_Minutes.Count() - 20000)).Take(20000);
                dc.Clean_OHLC_Temp_2();


                DataTable MinData = new DataTable("MinData");
                MinData.Columns.Add("Stamp", typeof(DateTime));
                MinData.Columns.Add("O", typeof(int));
                MinData.Columns.Add("L", typeof(int));
                MinData.Columns.Add("H", typeof(int));
                MinData.Columns.Add("C", typeof(int));


                foreach (var p in last1000Prices)
                {
                    MinData.Rows.Add(p.Stamp, p.O, p.H, p.L, p.C);
                }


                #region BulkCopy

                DataSet minuteDataSet = new DataSet("minuteDataset");
                minuteDataSet.Tables.Add(MinData);
                SqlConnection myConnection = new SqlConnection(AlsiUtils.Data_Objects.GlobalObjects.CustomConnectionString);
                myConnection.Open();
                SqlBulkCopy bulkcopy = new SqlBulkCopy(myConnection);
                bulkcopy.DestinationTableName = "OHLC_Temp_2";
                bulkcopy.WriteToServer(MinData);
                Debug.WriteLine("Tick Bulk Copy Complete");
                MinData.Dispose();
                myConnection.Close();

                #endregion

                dc.MergeTemp();
                Debug.WriteLine("Merged Data");
                break;
            }
        }
コード例 #9
0
ファイル: UpdateTimer.cs プロジェクト: vishu57/NinjaTrader
 public UpdateTimer(GlobalObjects.TimeInterval interval)
 {
     _Businessday           = CheckBusinessDay();
     _interval              = interval;
     _timer.Interval        = 500;
     _timer.Elapsed        += new ElapsedEventHandler(_timer_Elapsed);
     _UpdateStatus.Elapsed += new ElapsedEventHandler(_UpdateStatus_Elapsed);
     _UpdateStatus.Interval = 5000;
     _UpdateStatus.Start();
     if (_Businessday)
     {
         _timer.Start();
     }
     service = new WebUpdate();
 }
コード例 #10
0
        static public List <Price> readDataFromDataBase(GlobalObjects.TimeInterval T, dataTable TD, DateTime Start, DateTime End, bool reverseList)
        {
            List <Price> prices = new List <Price>();

            AlsiDBDataContext dc = new AlsiDBDataContext();


            if (TD == dataTable.Temp)
            {
                var result = from q in dc.OHLC_Temps
                             where q.Stamp > Start && q.Stamp < End
                             select new { q.Stamp, q.O, q.H, q.L, q.C, };

                foreach (var v in result)
                {
                    Price p = new Price();
                    p.Close     = v.C;
                    p.Open      = v.O;
                    p.High      = v.H;
                    p.Low       = v.L;
                    p.TimeStamp = v.Stamp;
                    prices.Add(p);
                }
                dc.Clean_OHLC_Temp();
                if (reverseList)
                {
                    prices.Reverse();
                }
                return(prices);
            }

            if (TD == dataTable.AllHistory)
            {
                if (T == GlobalObjects.TimeInterval.Minute_2)
                {
                    var firstinDB = dc.OHLC_2_Minutes.AsEnumerable().First().Stamp;
                    var lastinDB  = dc.OHLC_2_Minutes.AsEnumerable().Last().Stamp;
                    if (firstinDB > Start)
                    {
                        dc.OHLC_2_AllHistory();
                    }
                    if (lastinDB > End)
                    {
                        dc.OHLC_2_AllHistory();
                    }
                }
                if (T == GlobalObjects.TimeInterval.Minute_5)
                {
                    try
                    {
                        var firstinDB = dc.OHLC_5_Minutes.AsEnumerable().First().Stamp;
                        var lastinDB  = dc.OHLC_5_Minutes.AsEnumerable().Last().Stamp;
                        if (firstinDB > Start)
                        {
                            dc.OHLC_5_AllHistory();
                        }
                        if (lastinDB < End)
                        {
                            dc.OHLC_5_AllHistory();
                        }
                    }
                    catch { dc.OHLC_5_AllHistory(); }
                }
                if (T == GlobalObjects.TimeInterval.Minute_10)
                {
                    var firstinDB = dc.OHLC_10_Minutes.AsEnumerable().First().Stamp;
                    var lastinDB  = dc.OHLC_10_Minutes.AsEnumerable().Last().Stamp;
                    if (firstinDB > Start)
                    {
                        dc.OHLC_10_AllHistory();
                    }
                    if (lastinDB < End)
                    {
                        dc.OHLC_10_AllHistory();
                    }
                }
            }
            if (TD == dataTable.MasterMinute)
            {
                if (T == GlobalObjects.TimeInterval.Minute_2)
                {
                    var min2 = dc.OHLC_2_Minutes;
                    if (min2.Count() == 0)
                    {
                        dc.OHLC_2();
                    }
                    else
                    {
                        var firstinDB = dc.OHLC_2_Minutes.AsEnumerable().First().Stamp;
                        var lastinDB  = dc.OHLC_2_Minutes.AsEnumerable().Last().Stamp;
                        if (firstinDB > Start)
                        {
                            dc.OHLC_2();
                        }
                        if (lastinDB < End)
                        {
                            dc.OHLC_2();
                        }
                    }
                }

                if (T == GlobalObjects.TimeInterval.Minute_5)
                {
                    var min5 = dc.OHLC_5_Minutes;
                    if (min5.Count() == 0)
                    {
                        dc.OHLC_5();
                    }
                    else
                    {
                        var firstinDB = min5.AsEnumerable().First().Stamp;
                        var lastinDB  = min5.AsEnumerable().Last().Stamp;
                        if (firstinDB > Start)
                        {
                            dc.OHLC_5();
                        }
                        if (lastinDB < End)
                        {
                            dc.OHLC_5();
                        }
                    }
                }

                if (T == GlobalObjects.TimeInterval.Minute_10)
                {
                    var min10 = dc.OHLC_10_Minutes;
                    if (min10.Count() == 0)
                    {
                        dc.OHLC_10();
                    }
                    else
                    {
                        var firstinDB = dc.OHLC_10_Minutes.AsEnumerable().First().Stamp;
                        var lastinDB  = dc.OHLC_10_Minutes.AsEnumerable().Last().Stamp;
                        if (firstinDB > Start)
                        {
                            dc.OHLC_10();
                        }
                        if (lastinDB < End)
                        {
                            dc.OHLC_10();
                        }
                    }
                }

                if (T == GlobalObjects.TimeInterval.Hour_1)
                {
                    dc.OHLC_Hour_1();
                }
            }



            if (T == GlobalObjects.TimeInterval.Minute_2)
            {
                var result = from q in dc.OHLC_2_Minutes
                             where q.Stamp > Start && q.Stamp < End
                             select new { q.Stamp, q.O, q.H, q.L, q.C, q.Instrument };

                foreach (var v in result)
                {
                    Price p = new Price();
                    p.Close          = v.C;
                    p.Open           = v.O;
                    p.High           = v.H;
                    p.Low            = v.L;
                    p.TimeStamp      = v.Stamp;
                    p.InstrumentName = v.Instrument;
                    prices.Add(p);
                }
            }

            if (T == GlobalObjects.TimeInterval.Minute_5)
            {
                var result = from q in dc.OHLC_5_Minutes
                             where q.Stamp > Start && q.Stamp < End
                             select new { q.Stamp, q.O, q.H, q.L, q.C, q.Instrument };

                foreach (var v in result)
                {
                    Price p = new Price();
                    p.Close          = v.C;
                    p.Open           = v.O;
                    p.High           = v.H;
                    p.Low            = v.L;
                    p.TimeStamp      = v.Stamp;
                    p.InstrumentName = v.Instrument;
                    prices.Add(p);
                }
            }
            if (T == GlobalObjects.TimeInterval.Minute_10)
            {
                var result = from q in dc.OHLC_10_Minutes
                             where q.Stamp > Start && q.Stamp < End
                             select new { q.Stamp, q.O, q.H, q.L, q.C, q.Instrument };

                foreach (var v in result)
                {
                    Price p = new Price();
                    p.Close          = v.C;
                    p.Open           = v.O;
                    p.High           = v.H;
                    p.Low            = v.L;
                    p.TimeStamp      = v.Stamp;
                    p.InstrumentName = v.Instrument;
                    prices.Add(p);
                }
            }

            if (T == GlobalObjects.TimeInterval.Hour_1)
            {
                var result = from q in dc.OHLC_1_Hours
                             where q.Stamp > Start && q.Stamp < End
                             select new { q.Stamp, q.O, q.H, q.L, q.C, q.Instrument };

                foreach (var v in result)
                {
                    Price p = new Price();
                    p.Close          = v.C;
                    p.Open           = v.O;
                    p.High           = v.H;
                    p.Low            = v.L;
                    p.TimeStamp      = v.Stamp;
                    p.InstrumentName = v.Instrument;
                    prices.Add(p);
                }
            }



            if (reverseList)
            {
                prices.Reverse();
            }
            return(prices);
        }
コード例 #11
0
        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();
        }
コード例 #12
0
ファイル: RunCalcs.cs プロジェクト: vishu57/NinjaTrader
 public static List <Trade> RunMAMAScalp(Parameter_MAMA Parameter, GlobalObjects.TimeInterval Interval, bool TradesOnly, DateTime Start, DateTime End, DataBase.dataTable Table)
 {
     GlobalObjects.Points = AlsiUtils.DataBase.readDataFromDataBase(Interval, Table, Start, End, false);
     return(AlsiUtils.Strategies.MAMA_Scalp.MAMAScalp(Parameter, GlobalObjects.Points, TradesOnly));
 }
コード例 #13
0
ファイル: RunCalcs.cs プロジェクト: vishu57/NinjaTrader
        public static List <Trade> RunEMAScalpLiveTrade(Parameter_EMA_Scalp Parameter, DateTime StartDate, GlobalObjects.TimeInterval Interval)
        {
            //  DateTime START = new DateTime(2012,06,02);//NB must be set periodically
            DateTime e = DateTime.UtcNow.AddHours(5);

            UpdateDB.MergeTempWithHisto(Interval);
            GlobalObjects.Points = AlsiUtils.DataBase.readDataFromDataBase(Interval, AlsiUtils.DataBase.dataTable.Temp, StartDate, e, false);
            var sp = GlobalObjects.Points.First();
            var l  = GlobalObjects.Points.Last();

            return(AlsiUtils.Strategies.EMA_Scalp.EmaScalp(Parameter, GlobalObjects.Points, false));
        }