private void GenerateOHLCData(NStockSeries stock, double dPrevClose) { double dGrowProbability = 0.0; double open, high, low, close; stock.ClearDataPoints(); Random random = new Random(); for (int nIndex = 0; nIndex < 200; nIndex++) { open = dPrevClose; if (dPrevClose < 25) { dGrowProbability = 1.0; } else { if (((nIndex >= 20) && (nIndex <= 80)) || ((nIndex >= 120) && (nIndex <= 180))) { dGrowProbability = 0.75; } else { dGrowProbability = 0.25; } } if (Random.NextDouble() < dGrowProbability) { // upward price change close = open + (2 + (Random.NextDouble() * 20)); high = close + (Random.NextDouble() * 10); low = open - (Random.NextDouble() * 10); } else { // downward price change close = open - (2 + (Random.NextDouble() * 20)); high = open + (Random.NextDouble() * 10); low = close - (Random.NextDouble() * 10); } if (low < 1) { low = 1; } dPrevClose = close; stock.OpenValues.Add(open); stock.HighValues.Add(high); stock.LowValues.Add(low); stock.CloseValues.Add(close); } }
internal void GenerateOHLCData(NStockSeries s, double dPrevClose, int historicalDays) { DateTime now = DateTime.Now; NTimeline timeline = m_Calendar.CreateTimeline(new NDateTimeRange(now, now + new TimeSpan(360, 0, 0, 0, 0))); double open, high, low, close; s.ClearDataPoints(); int numberOfWorkingDays = historicalDays; if (ZoomModeDropDownList.SelectedIndex == 0) { numberOfWorkingDays += 7; } else { numberOfWorkingDays += 31; } for (; numberOfWorkingDays > 0; numberOfWorkingDays--) { open = dPrevClose; if (dPrevClose < 25 || Random.NextDouble() > 0.5) { // upward price change close = open + (2 + (Random.NextDouble() * 20)); high = close + (Random.NextDouble() * 10); low = open - (Random.NextDouble() * 10); } else { // downward price change close = open - (2 + (Random.NextDouble() * 20)); high = open + (Random.NextDouble() * 10); low = close - (Random.NextDouble() * 10); } if (low < 1) { low = 1; } dPrevClose = close; s.OpenValues.Add(open); s.HighValues.Add(high); s.LowValues.Add(low); s.CloseValues.Add(close); s.XValues.Add(now.ToOADate()); // advance to next working day now = timeline.AddTimeSpan(now, new NDateTimeSpan(1, NDateTimeUnit.Day)); } }
private void GenerateStockData(NStockSeries stock, int count, double dPrevClose) { DateTime dt = new DateTime(2006, 5, 15); double dGrowProbability = 0.0; double open, high, low, close; stock.ClearDataPoints(); for (int nIndex = 0; nIndex < count; nIndex++) { open = dPrevClose; if ((nIndex % 100) <= 20) { // downtrend dGrowProbability = 0.20; } else { // uptrend dGrowProbability = 0.75; } if (Random.NextDouble() < dGrowProbability) { // upward price change close = open + 2 + (Random.NextDouble() * 20); high = close + (Random.NextDouble() * 10); low = open - (Random.NextDouble() * 10); } else { // downward price change close = open - (2 + (Random.NextDouble() * 20)); high = open + (Random.NextDouble() * 10); low = close - (Random.NextDouble() * 10); } if (low < 1) { low = 1; } dPrevClose = close; stock.OpenValues.Add(open); stock.HighValues.Add(high); stock.LowValues.Add(low); stock.CloseValues.Add(close); stock.XValues.Add(dt.ToOADate()); dt += new TimeSpan(1, 0, 0, 0); } }
internal void GenerateOHLCData(NStockSeries s, double dPrevClose, int nCount, NRange1DD range) { double open, high, low, close; s.ClearDataPoints(); for (int nIndex = 0; nIndex < nCount; nIndex++) { open = dPrevClose; bool upward = false; if (range.Begin > dPrevClose) { upward = true; } else if (range.End < dPrevClose) { upward = false; } else { upward = Random.NextDouble() > 0.5; } if (upward) { // upward price change close = open + (2 + (Random.NextDouble() * 20)); high = close + (Random.NextDouble() * 10); low = open - (Random.NextDouble() * 10); } else { // downward price change close = open - (2 + (Random.NextDouble() * 20)); high = open + (Random.NextDouble() * 10); low = close - (Random.NextDouble() * 10); } if (low < 1) { low = 1; } dPrevClose = close; s.OpenValues.Add(open); s.HighValues.Add(high); s.LowValues.Add(low); s.CloseValues.Add(close); } }
private void GenerateData(NStockSeries s, NWorkCalendar calendar, double dPrevClose, int nCount) { DateTime now = DateTime.Now; NTimeline timeline = calendar.CreateTimeline(new NDateTimeRange(now, now + new TimeSpan(730, 0, 0, 0, 0))); double open, high, low, close; s.ClearDataPoints(); Random random = new Random(); for (int nIndex = 0; nIndex < nCount; nIndex++) { open = dPrevClose; if (dPrevClose < 25 || random.NextDouble() > 0.5) { // upward price change close = open + (2 + (random.NextDouble() * 20)); high = close + (random.NextDouble() * 10); low = open - (random.NextDouble() * 10); } else { // downward price change close = open - (2 + (random.NextDouble() * 20)); high = open + (random.NextDouble() * 10); low = close - (random.NextDouble() * 10); } if (low < 1) { low = 1; } dPrevClose = close; s.OpenValues.Add(open); s.HighValues.Add(high); s.LowValues.Add(low); s.CloseValues.Add(close); s.XValues.Add(now.ToOADate()); // advance to next working day now = timeline.AddTimeSpan(now, new NDateTimeSpan(1, NDateTimeUnit.Day)); } }
public static void GenerateOHLCData(NStockSeries s, double dPrevClose, int nCount, NRange1DD range) { double open, high, low, close; s.ClearDataPoints(); for (int nIndex = 0; nIndex < nCount; nIndex++) { GenerateOHLCDataPoint(dPrevClose, range, out open, out high, out low, out close); dPrevClose = close; s.OpenValues.Add(open); s.HighValues.Add(high); s.LowValues.Add(low); s.CloseValues.Add(close); } }
private void GenerateOHLCData(NStockSeries s, int nCount) { double prevclose = 300; double open, high, low, close; s.ClearDataPoints(); for (int nIndex = 0; nIndex < nCount; nIndex++) { open = prevclose; if (prevclose < 25 || Random.NextDouble() > 0.5) { // upward price change close = open + (2 + (Random.NextDouble() * 20)); high = close + (Random.NextDouble() * 10); low = open - (Random.NextDouble() * 10); } else { // downward price change close = open - (2 + (Random.NextDouble() * 20)); high = open + (Random.NextDouble() * 10); low = close - (Random.NextDouble() * 10); } if (low < 1) { low = 1; } prevclose = close; s.OpenValues.Add(open); s.HighValues.Add(high); s.LowValues.Add(low); s.CloseValues.Add(close); } }
public static void GenerateOHLCData(NStockSeries s, double dPrevClose, int nCount) { double open, high, low, close; s.ClearDataPoints(); for (int nIndex = 0; nIndex < nCount; nIndex++) { open = dPrevClose; if (dPrevClose < 25 || rand.NextDouble() > 0.5) { // upward price change close = open + (2 + (rand.NextDouble() * 20)); high = close + (rand.NextDouble() * 10); low = open - (rand.NextDouble() * 10); } else { // downward price change close = open - (2 + (rand.NextDouble() * 20)); high = open + (rand.NextDouble() * 10); low = close - (rand.NextDouble() * 10); } if (low < 1) { low = 1; } dPrevClose = close; s.OpenValues.Add(open); s.HighValues.Add(high); s.LowValues.Add(low); s.CloseValues.Add(close); } }
public void Reset( ) { m_Stock.ClearDataPoints(); }