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);
                    }
                }
            }
        }
예제 #2
0
            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());
            }
예제 #3
0
        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"));
            });
        }
예제 #4
0
        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"));
            });
        }