4

C# で構築されたスクリプト言語を持つ NinjaTrader 内でカスタム インジケーターを作成しています。異なる株価チャート間でデータを共有したいのですが、固有の方法がありません。各インジケーターは Indicator クラスから継承し、もちろん各チャートは適用されたインジケーターの一意のインスタンスを実行します。

たとえば、IBM の現在の価格を AAPL のチャートに「送信」できるようにしたいと考えています。概念的には、「送信」チャートで次のようなことができる必要があります。

静的二重 IBM = 190.72;

ただし、たとえばユーザーがチャート ティッカーを IBM から DELL に変更すると、次のようなものが必要になります。

静的ダブル DELL = 9.25;

「受信」チャートで、Print(DELL); のようなことができるようにしたいと考えています。

したがって、ユーザーがチャート用に選択したティッカー シンボルに基づいて動的に割り当てられる変数名が必要になる傾向がありますが、C# ではこれが不可能であることはわかっています。では、潜在的なティッカー値のセットが事実上無制限である場合に、ティッカー名でインデックスを作成する必要があるデータを保存および取得するための優れた代替アプローチは何でしょうか?

4

2 に答える 2

7

辞書のようなものを使ってみませんか? 例えば:

var stocks = new Dictionary<string, double>();
stocks.Add("appl", 1234.56);
Print(stocks["appl"]);

ティッカーの名前と値を必要に応じて動的に追加したり、ティッカーごとに検索したり、その他の便利な機能を多数提供したりできます。コレクションではなく個々の変数が必要な理由はありますか?

于 2012-10-24T20:24:08.810 に答える
0

オブジェクトを作成します。

public class Stock {
  public string Ticker{get; set;}
  public double Price {get; set;}
}

次に、リスト内のすべての可能な株を参照します。

  List<Stock> allStocks = new List<Stock>();
   allStocks.Add(new Stock() { Ticker = "Dell", Price = 9.25 });

   allStocks.ForEach(stock => Print(string.Format("{0} : {1}", stock.Ticker, stock.Price) );
于 2012-10-24T20:27:02.397 に答える