Work on Bollinger Bands.

This commit is contained in:
2026-02-18 18:21:28 -05:00
parent 7775d6caaf
commit cddf7202b1
3 changed files with 72 additions and 28 deletions

View File

@@ -15,16 +15,18 @@ namespace TradeBlotter.Model
private GainLossModel()
{
}
public static CompositeDataSource CreateCompositeDataSource(DateTime xSource,double ySource)
{
CompositeDataSource compositeDataSource;
var xData=new EnumerableDataSource<DateTime>(new DateTime[] { xSource });
xData.SetXMapping(x => (x.Ticks/10000000000.0));
var yData=new EnumerableDataSource<double>(new double[] { ySource });
yData.SetYMapping(y => y);
compositeDataSource=xData.Join(yData);
return compositeDataSource;
}
//public static CompositeDataSource CreateCompositeDataSource(DateTime xSource,double ySource)
//{
// CompositeDataSource compositeDataSource;
// var xData=new EnumerableDataSource<DateTime>(new DateTime[] { xSource });
// xData.SetXMapping(x => (x.Ticks/10000000000.0));
// var yData=new EnumerableDataSource<double>(new double[] { ySource });
// yData.SetYMapping(y => y);
// compositeDataSource=xData.Join(yData);
// return compositeDataSource;
//}
public static CompositeDataSource Price(Price price)
{
if (null == price) return null;

View File

@@ -14,6 +14,7 @@ namespace TradeBlotter.Model
private StopLimitCompositeModel()
{
}
public static CompositeDataSource CreateCompositeDataSource(StopLimits stopLimits)
{
if(null==stopLimits) return null;
@@ -25,5 +26,22 @@ namespace TradeBlotter.Model
compositeDataSource=xData.Join(yData);
return compositeDataSource;
}
public static CompositeDataSource CreateCompositeDataSource(DateTime xSource,StopLimits stopLimits)
{
if(null==stopLimits) return null;
CompositeDataSource compositeDataSource;
List<DateTime> stopLimitDates = new List<DateTime>();
foreach(StopLimit stopLimit in stopLimits)
{
stopLimitDates.Add(stopLimit.EffectiveDate);
}
var xData=new EnumerableDataSource<DateTime>(stopLimitDates.Select(x => x.Date));
xData.SetXMapping(x => (x.Ticks/10000000000.0));
var yData=new EnumerableDataSource<double>(stopLimits.Select(y => y.StopPrice));
yData.SetYMapping(y => y);
compositeDataSource=xData.Join(yData);
return compositeDataSource;
}
}
}