List<History> data = new List<History>(){
new History() {Symbol="a", Close = 1.0m, Date = new DateTime(2016, 2, 1) },
new History() {Symbol="a", Close = 1.2m, Date = new DateTime(2016, 2, 2) },
new History() {Symbol="a", Close = 1.3m, Date = new DateTime(2016, 2, 3) },
new History() {Symbol="b", Close = 1.2m, Date = new DateTime(2016, 2, 1) },
new History() {Symbol="b", Close = 1.2m, Date = new DateTime(2016, 2, 2) },
new History() {Symbol="b", Close = 1.3m, Date = new DateTime(2016, 2, 3) },
};
var StockGroupList = data
.GroupBy(o => o.Symbol)
.OrderBy(o => o.Key)
.ToList();
に対する機能に関連する新しいアイテムを作成します2016, 2, 3
でSymbol="a"
の2日間の標準偏差などVol
はの関数でありますclose
,2016, 2, 3
および2016, 2, 2
。さらに、最初の日のVol
(例えば2016, 2, 1
)は、デフォルトではVol = 0
である。C#のLINQは、私がここで</p> <pre><code>select new { Symbol, Close, Date, Vol}; </code></pre> <p><code>Vol</code>のような新しいリストを作成したい以前のデータ
予想される出力:
List<dynamic> NewData = new List<dynamic>
{
new { Symbol = "a", Close = 1.0m, Date = new DateTime(2016, 2, 1), Vol = 0 },
new { Symbol = "a", Close = 1.0m, Date = new DateTime(2016, 2, 2), Vol = SD(Close of 2016, 2, 1, Close of 2016, 2, 2) },
new { Symbol = "a", Close = 1.0m, Date = new DateTime(2016, 2, 3), Vol = SD(Close of 2016, 2, 2, Close of 2016, 2, 3) },
......
};
あなたは、単にSD(x,y) = x+y
を言って、与えられた関数としてSD(x,y)
を考えることができます。 SD
のパラメータがList
の場合はList[Close of 2016, 2, 2, Close of 2016, 2, 3)]
と表示されますが、どうすればできますか?
そしてSD
場合は、フォーム
decimal OneStdDev = (decimal)(new DescriptiveStatistics(data.Select(o => (double)o.Close)).StandardDeviation);
私は何をすべきに従っていますか?
最初の10日間の 'close'はデフォルトで0です。ありがとうございます。 – user6703592
それはフォローアップの質問です。新しい質問を投稿することをお勧めします。問題に尋ねられた以上のものを含めると、同様の問題に遭遇する人々を混乱させる可能性があります。 –