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); }
public PrepareForTrade(GlobalObjects.TimeInterval Interval, string ContractName, Parameter_EMA_Scalp Parameter, DateTime StartPeriod) { _Interval = Interval; _ContractName = ContractName; _Start = StartPeriod; _Param = Parameter; }
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); }
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]); }
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(); }
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; }
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; } }
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(); }
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); }
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(); }
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)); }
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)); }