• Тинькофф Банк-лучшие банковские продукты еще выгоднее
    Выбирайте продукт от банка Тинькофф
  • Уважаемые форумчане, друзья и посетители!
    Поступило предложение ( ссылка на обсуждение ) на сбор средств поддержания форума в рабочем состоянии с 1 июня ( оплата хостинга, бэкап ежедневный на другой хостинг и тд), отчетность будет предоставляться ежемесячно. Пока на ЮMoney ( яндекс деньги), доступно картой перевод, далее добавлю другие способы. Сумму перевода указывайте на ваш выбор исходя из своих возможностей.
    Форум продолжает свою работу благодаря Вашим пожертвованиям.

Считать символы из .txt в индикаторе

Schielend

New Member
NinjaTrader
Делаю индикатор, чтобы можно было считывать символы или с чарта или из текстового файла и добавлять их через Add(symbol,....)

При переключении режимов возникает ошибка в блоке инициализации и окно становится серым.
Чтобы работало, опытным путем сделал третий режим, пустой

protected override void Initialize()
{
if (пустой)
{
ничего не делать
}
if (чарт)
{
Add(symbol,....)
}
if (файл)
{
Add (symbol
}

Чтобы переключить с "чарт" на "файл" или наоборот нужно делать промежуточное переключение на "пустой".
Как это можно исправить?
 
Сейчас немного модернизировал, чтобы функцию Add вызывать один раз и печатать в нее один список, который в зависимости от условий заранее заполняю нужными символами.
protected override void Initialize()
{
if ( R == read.Chart)
{
symbols.Clear();
foreach (string s in Symbols_chart)
{
symbols.Add(s);
}

} else
if (R == read.File)
{
symbols.Clear();
foreach (string s in Symbols_file)
{
symbols.Add(s);
}

foreach( string s in symbols)
{
Add(s, BarsPeriod.Id, BarsPeriod.Value, MarketDataType.Last);
Print(s);
}
}
Теперь серый экран только при переключении с "файл" на "график" если на графике меньше инструментов, чем в файле т.е. функция Add сначала выполнялась 3 раза, потом 2. Никаких ошибок не печатает. В OnBarUpdate() не доходит, ставил там Print() он не исполняется.
Как я понимаю, при переключении нужно каким-то образом сбрасывать добавленные инструменты или сделать два индикатора.

PS Нашел ответ на забугорном сайте.
http://ninjatrader.com/support/forum/showthread.php?t=44797
Ничего не поделаешь, добавленную серию никак не удалить. Нужно разделять индикатор на 2 индикатора.
 
Последнее редактирование:
Назад
Верх Низ