3

ここの別の投稿で Microsoft の .Net チャート コントロールを発見しましたが、今のところ気に入っています。必要な方は、こちらのリンクをご覧ください: http://code.msdn.microsoft.com/mschart

シリーズを作成してグラフ領域に叩きつけるなど、実行時にすべてを行います。X 値と 4 つの Y 値を指定することで、ローソク足チャートを正常に作成できます。チャートに追加すると、次のようになります。

// "Price" is the .Name property of this series
chart1.Series.Add(priceseries);

それはうまくいきます。次に、財務計算式のこの素敵なコントロールに付属のサンプルを詳しく調べました。サンプルでは、​​移動平均式を使用するように指示されています (これを例として使用するだけで、どれも機能させることができません)。コードは次のとおりです。

chart1.DataManipulator.FinancialFormula(FinancialFormula.MovingAverage,"5","Input","Simple");

「5」は使用する期間なので、好きなようにできます。「入力」は見かけ上のデータソース系列で、「単純」は出力系列です。これを自分のコードで動作するようにスピンするために、ボタンを作成して次のようにしました。

    private void button1_Click(object sender, EventArgs e)
    {
        chart1.DataManipulator.FinancialFormula(FinancialFormula.MovingAverage, "5", "Price", "SMA");     
    }

素敵でシンプルですね。そのボタンをクリックするとすぐに、私のチャート コントロールは大きな赤い X を表示し、移動平均系列 (私は「SMA」と名付けました) をチャート上に表示しません。

上記のコードに追加して、「SMA」シリーズを事前に作成しようとしました。financialformula 呼び出しを行った後に「SMA」シリーズをチャートに追加しようとしましたが、両方とも大きな平均の赤い X で終わりました。サンプル コードをもう一度見てみると、余分な一連のデータを生成するために必要なのは 1 行のコードだけのようですが、行き詰まっています。赤い X にデバッグ情報がまったくないことは役に立ちません:(

大きな X を取り除き、代わりに新しい一連のデータを表示する方法についてのアイデアはありますか?

更新: テストとして、系列を Chart1 に追加することに関するビットを削除し、その直後に chart1.DataManipulator ビットを追加しました。予想どおり、すべての初期データを含む最初のシリーズは表示されません (グラフに追加する部分を削除したため) が、コードの次の行で数式を適用すると、大きな赤い X は表示されません。データはありません。表示されていますが、エラーコードも表示されていません-それで改善されたと思いますか? これは、数式を適用している最初のデータセット、またはチャート コントロール自体のビュー/境界に関係する何かに何らかの問題があると私に信じさせています。そのトラックでさらに何かを見つけたら、2 番目の更新として投稿します。

4

3 に答える 3

3

問題の原因を発見しました:

priceseries.IsXValueIndexed = true;

最初にこれを行ったのは、空白のデータ ポイント (株価シナリオの週末) を省略するためです。値を false に変更すると、突然数式の適用が正常に機能しました。欠点は、データがない週末の日付に空白のスポットがあることです! しかし、それは私が自分で解決できる別の問題です。

この問題が発生している他のユーザーについては、追加情報について次の参照記事を参照してください: http://msdn.microsoft.com/en-us/library/dd456699(VS.100).aspx

最初にデータをグループ化することについての注意は冗談ではありません。データ ポイントを省略しないでください。

于 2010-02-28T21:16:48.193 に答える
2

私にも起こりました。

FinancialFormulas(特にFinancialFormula.ExponentialMovingAverage)を使用している場合、seriesChartTypeをSeriesChartType.Lineに設定する必要があります。

私のコードでは、SeriesChartType.FastLineに設定されており、System.Drawing.dllからOverflowExceptionがスローされていました。

于 2010-08-16T00:55:52.623 に答える
1

大きな赤い X は、数式の実行/解釈で問題が発生し、ゴーストをあきらめたコントロールです。数式が複雑すぎてチャート コントロールで処理できない可能性があります...おそらく、制限を解除した最新バージョンのコードが存在します。これについては、 codeplex.comに何かがあるはずです。

これは、デザイン時にも同様に発生する可能性があります。フォームをデザインし、コントロールをフォームにドラッグすると、いくつかのプロパティがあちこちに設定され、大きな赤い X が表示されます。これは、コントロールがデザイン時に誤動作する場合によく発生します。また。

これがお役に立てば幸いです。よろしくお願いします、トム。

于 2010-02-28T19:42:35.803 に答える