139 lines
3.2 KiB
C#
139 lines
3.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using MarketData.Utils;
|
|
|
|
// Filename: Stochastic.cs
|
|
// Author:Sean Kessler
|
|
// Date:08/2013
|
|
|
|
namespace MarketData.MarketDataModel
|
|
{
|
|
public class StochasticElementsByDate : Dictionary<DateTime, StochasticElement>
|
|
{
|
|
public StochasticElementsByDate()
|
|
{
|
|
}
|
|
}
|
|
public class Stochastics : List<StochasticElement>
|
|
{
|
|
public static String GetHeader()
|
|
{
|
|
StringBuilder sb = new StringBuilder();
|
|
sb.Append("Date,Symbol,Open,High,Low,Close,LN,HN,HX,LX,%K,%D");
|
|
return sb.ToString();
|
|
}
|
|
public StochasticElementsByDate GetBollingerBandElementsByDate()
|
|
{
|
|
StochasticElementsByDate stochasticElementsByDate = new StochasticElementsByDate();
|
|
for (int index = 0; index < Count; index++)
|
|
{
|
|
StochasticElement stochasticElement = this[index];
|
|
if (!stochasticElementsByDate.ContainsKey(stochasticElement.Date)) stochasticElementsByDate.Add(stochasticElement.Date, stochasticElement);
|
|
}
|
|
return stochasticElementsByDate;
|
|
}
|
|
}
|
|
public class StochasticElement
|
|
{
|
|
private DateTime date;
|
|
private String symbol;
|
|
private double open;
|
|
private double high;
|
|
private double low;
|
|
private double close;
|
|
private double ln;
|
|
private double hn;
|
|
private double hx;
|
|
private double lx;
|
|
private double pd; // %D
|
|
private double pk; // %K
|
|
public StochasticElement()
|
|
{
|
|
}
|
|
public DateTime Date
|
|
{
|
|
get { return date; }
|
|
set { date = value; }
|
|
}
|
|
public String Symbol
|
|
{
|
|
get { return symbol; }
|
|
set { symbol = value; }
|
|
}
|
|
public double Open
|
|
{
|
|
get { return open; }
|
|
set { open = value; }
|
|
}
|
|
public double High
|
|
{
|
|
get { return high; }
|
|
set { high = value; }
|
|
}
|
|
public double Low
|
|
{
|
|
get { return low; }
|
|
set { low = value; }
|
|
}
|
|
public double Close
|
|
{
|
|
get { return close; }
|
|
set { close = value; }
|
|
}
|
|
public double LN
|
|
{
|
|
get { return ln; }
|
|
set { ln = value; }
|
|
}
|
|
public double HN
|
|
{
|
|
get { return hn; }
|
|
set { hn = value; }
|
|
}
|
|
public double HX
|
|
{
|
|
get { return hx; }
|
|
set { hx = value; }
|
|
}
|
|
public double LX
|
|
{
|
|
get { return lx; }
|
|
set { lx = value; }
|
|
}
|
|
public double PD
|
|
{
|
|
get { return pd; }
|
|
set { pd = value; }
|
|
}
|
|
public double PK
|
|
{
|
|
get { return pk; }
|
|
set { pk = value; }
|
|
}
|
|
public bool PKInRange(double lowRange, double highRange)
|
|
{
|
|
if (PK >= lowRange && PK <= highRange) return true;
|
|
return false;
|
|
}
|
|
public override String ToString()
|
|
{
|
|
StringBuilder sb = new StringBuilder();
|
|
sb.Append(Utility.DateTimeToStringMMSDDSYYYY(Date)).Append(",");
|
|
sb.Append(Symbol).Append(",");
|
|
sb.Append(Open).Append(",");
|
|
sb.Append(High).Append(",");
|
|
sb.Append(Low).Append(",");
|
|
sb.Append(Close).Append(",");
|
|
sb.Append(LN).Append(",");
|
|
sb.Append(HN).Append(",");
|
|
sb.Append(HX).Append(",");
|
|
sb.Append(LX).Append(",");
|
|
sb.Append(PK).Append(",");
|
|
sb.Append(PD);
|
|
return sb.ToString();
|
|
}
|
|
}
|
|
}
|
|
|