private List<KeyValuePair<int, string>> listArray; private Dictionary<int, string> dictArray;
// Переменные для замера времени выполнения sw1 = new Stopwatch(); sw2 = new Stopwatch(); // Инициализация переменных listArray = new List<KeyValuePair<int, string>>(); dictArray = new Dictionary<int, string>(); // Стартуем замер производительности sw1.Start(); for (int i = 0; i < 1000000; i++) { //Добавляем переменную в массив listArray.Add(new KeyValuePair<int, string>(i, "test")); } // Останавливаем замер производительности sw1.Stop(); // Выводим результат Print("List: " + sw1.ElapsedMilliseconds); // Очищаем список listArray.Clear(); // Стартуем второй счетчик производительности sw2.Start(); // Запускаем второй цикл for (int i = 0; i < 1000000; i++) { dictArray.Add(i, "test"); } // Останавливаем счетчик sw2.Stop(); // Выводим результат Print("Dictionary: " + sw2.ElapsedMilliseconds);
Для некоторых индикаторов необходимо по клику мыши пересчитывать данные или перерисовываться с бара, на который кликнули. Во вложении пример кода для Ninjatrader. С зажатой клавишей ALT (в коде можно переопределить) нажимаем левой кнопкой мыши на графике и получаем информацию о баре, на который кликнули. Ничего сложного нет. Если будут вопросы, пишите, отвечу.
Код индикатора.
Оригинал статьи тут.
Пример: