48 lines
1.6 KiB
C#
48 lines
1.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using TradeBlotter.Views;
|
|
using MarketData.MarketDataModel;
|
|
using MarketData.Generator;
|
|
using Microsoft.Research.DynamicDataDisplay.DataSources;
|
|
using MarketData.Numerical;
|
|
|
|
namespace TradeBlotter.Model
|
|
{
|
|
public class StopLimitCompositeModel
|
|
{
|
|
private StopLimitCompositeModel()
|
|
{
|
|
}
|
|
|
|
public static CompositeDataSource CreateCompositeDataSource(StopLimits stopLimits)
|
|
{
|
|
if(null==stopLimits) return null;
|
|
CompositeDataSource compositeDataSource;
|
|
var xData=new EnumerableDataSource<DateTime>(stopLimits.Select(x => x.EffectiveDate.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;
|
|
}
|
|
|
|
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;
|
|
}
|
|
}
|
|
}
|