public IEnumerable <Entity> GetAll() { using (var cmd = new NpgsqlCommand()) { cmd.Connection = DBUtils.GetConnection(); cmd.CommandText = "select id," + String.Join(",", columns.Select(c => c.Name)) + " from time_of_day_pattern"; using (var dr = cmd.ExecuteReader()) { while (dr.Read()) { var pattern = new TimeOfDayPattern(); var entity = new Entity(); entity.Pattern = pattern; entity.Id = (Int64)dr[0]; pattern.CheckStartTime = new TimeOfDayPattern.Time((TimeSpan)dr[1]); pattern.CheckEndTime = new TimeOfDayPattern.Time((TimeSpan)dr[2]); pattern.IsCheckUp = (Boolean)dr[3]; pattern.TradeStartTime = new TimeOfDayPattern.Time((TimeSpan)dr[4]); pattern.TradeEndTime = new TimeOfDayPattern.Time((TimeSpan)dr[5]); pattern.TradeType = (TradeType)Enum.Parse(typeof(TradeType), (string)dr[6]); pattern.TotalVerification = (int)dr[7]; pattern.MatchVerification = (int)dr[8]; yield return(entity); } } } }
public string GetTradeDescription() { var builder = new StringBuilder(); builder.Append(Pattern.TradeType); builder.Append("-"); DateTime tradeStartDateTime = DateTime.Today.AddTicks(Pattern.TradeStartTime.Ticks); if (tradeStartDateTime > DateTime.Now) { builder.Append(TimeOfDayPattern.GetPrice(tradeStartDateTime).ToString("F3")); } else { builder.Append("???"); } builder.Append("[" + Pattern.TradeStartTime + "]"); builder.Append("→"); DateTime tradeEndDateTime = DateTime.Today.AddTicks(Pattern.TradeEndTime.Ticks); if (tradeEndDateTime > DateTime.Now) { builder.Append(TimeOfDayPattern.GetPrice(tradeEndDateTime).ToString("F3")); } else { builder.Append("???"); } builder.Append("[" + Pattern.TradeEndTime + "]"); return(builder.ToString()); }
private void USDJPY0550_0710_Click(object sender, EventArgs e) { RunTask(sender, (Report report) => { report.Version = 1; report.IsForceOverride = true; report.Comment = ""; var tradeOrders = new TradeOrders( new TimeTradeOrder() { Instrument = "USD_JPY", TradeType = TradeType.Ask, Time = new TimeSpan(5, 50, 0), }, new TimeTradeOrder() { Instrument = "USD_JPY", TradeType = TradeType.Settle, Time = new TimeSpan(7, 10, 0), } ); TradeCondition[] conditions = new TimeOfDayPattern[] { new TimeOfDayPattern() { Instrument = "USD_JPY", CheckStartTime = new TimeSpan(0, 30, 0), CheckEndTime = new TimeSpan(4, 50, 0), IsCheckUp = false, }, new TimeOfDayPattern() { Instrument = "USD_JPY", CheckStartTime = new TimeSpan(0, 20, 0), CheckEndTime = new TimeSpan(5, 40, 0), IsCheckUp = false, }, }; ReportMultiCondition(report, tradeOrders, conditions, GetM10Candles(new TimeSpan(365 * 5, 0, 0, 0), "USD_JPY")); }); }
private void EURUSD1100_1140_rev_Click(object sender, EventArgs e) { RunTask(sender, (Report report) => { report.Version = 2; report.IsForceOverride = true; report.Comment = ""; var tradeOrders = new TradeOrders( new TimeTradeOrder() { Instrument = "EUR_USD", TradeType = TradeType.Bid, Time = new TimeSpan(11, 00, 0), }, new TimeTradeOrder() { Instrument = "EUR_USD", TradeType = TradeType.Settle, Time = new TimeSpan(11, 40, 0), } ); TradeCondition[] conditions = new TimeOfDayPattern[] { new TimeOfDayPattern() { Instrument = "EUR_USD", CheckStartTime = new TimeSpan(8, 50, 0), CheckEndTime = new TimeSpan(11, 00, 0), IsCheckUp = true, }, new TimeOfDayPattern() { Instrument = "EUR_USD", CheckStartTime = new TimeSpan(6, 50, 0), CheckEndTime = new TimeSpan(7, 50, 0), IsCheckUp = false, }, }; ReportMultiCondition(report, tradeOrders, conditions, GetM10Candles(new TimeSpan(365 * 5, 0, 0, 0), "EUR_USD")); }); }