У вас не стоит Flash Player
Настройки
#53656 - Thu Mar 28 2013 03:38 AM IQueueData как подключить?
Round Offline
stranger

Registered: Fri Mar 15 2013
Записи: 5
Здравствуйте!
Подскажите пожалуйста, в чем проблема:

Не удалось найти имя типа или пространства имен 'IQueueData'

кусок кода:
IList<IQueueData> buyQueue=sec.GetBuyQueue(i);



Отредактировано Round (Thu Mar 28 2013 03:51 AM)

Наверх
#53657 - Thu Mar 28 2013 04:40 AM Re: IQueueData как подключить? [Re: Round]
Round Offline
stranger

Registered: Fri Mar 15 2013
Записи: 5
IList<TSLab.DataSource.IQueueData> buyQueue=sec.GetBuyQueue(0);

написал так, вроде ошибка пропала...
Теперь трабла с:

for (int j = 0; j < buyQueue.Length; j++)

не содержит определение для Length -

Наверх
#53658 - Thu Mar 28 2013 04:51 AM Re: IQueueData как подключить? [Re: Round]
Round Offline
stranger

Registered: Fri Mar 15 2013
Записи: 5
Сделал проще пока для теста:

IList<TSLab.DataSource.IQueueData> buyQueue=sec.GetBuyQueue(0);
IList<TSLab.DataSource.IQueueData> sellQueue = sec.GetSellQueue(0);

StreamWriter tofile = new StreamWriter("buy-stakan.txt", true); // перезапись в файл
for (int j = 0; j < 1000; j++)
{
tofile.Write("Price:"+buyQueue[j].Price+"\tQuantity:"+buyQueue[j].Quantity+"\r\n");
}
tofile.Close();

текстовый файл пустой, тестю на демо Alor_FORTS, подключение происходит.

Что не так?

Наверх
#53661 - Thu Mar 28 2013 07:10 AM Re: IQueueData как подключить? [Re: Round]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
Пользуйтесь VisualStudio
Создавайте проект dll и в ней работайте. Вам студия будет подсказывать хоть где ошибки явные.
Вы похоже в блокноте пишете при этом C# знаете не профессионально, поскольку все ваши вопросы связаны с ошибками синтаксиса.

IList<TSLab.DataSource.IQueueData> buyQueue=sec.GetBuyQueue(0);
можно заменить на
var buyQueue=sec.GetBuyQueue(0);
Тогда проблема исчезнет совершенно.

buyQueue.Length не работает потому что у списков есть Count, а Length у массивов.

Code:
IList<TSLab.DataSource.IQueueData> buyQueue=sec.GetBuyQueue(0);
IList<TSLab.DataSource.IQueueData> sellQueue = sec.GetSellQueue(0);

StreamWriter tofile = new StreamWriter("buy-stakan.txt", true); // перезапись в файл
for (int j = 0; j < 1000; j++)
{
    tofile.Write("Price:"+buyQueue[j].Price+"\tQuantity:"+buyQueue[j].Quantity+"\r\n");
}
tofile.Close();

Это не работает скорее всего потому, что вы пытаетесь взять несуществующие строки стакана. Вылазит исключение и данные не сбрасываются в файл. Измените создание стрима на
var tofile = new StreamWriter("buy-stakan.txt", true) {AutoFlush = true};
Тогда строки будут появляться. Во всяком случае должны.


Отредактировано ra81 (Thu Mar 28 2013 07:10 AM)
_________________________
__


Наверх
#53668 - Thu Mar 28 2013 11:48 AM Re: IQueueData как подключить? [Re: ra81]
Round Offline
stranger

Registered: Fri Mar 15 2013
Записи: 5
Originally Posted By: ra81

Вы похоже в блокноте пишете при этом C# знаете не профессионально, поскольку все ваши вопросы связаны с ошибками синтаксиса.

Да, действительно. Я на php кодил, здесь вообще жесть ООП smile
использовал пример отсюда,
http://forum.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=4978#Post4978
http://forum.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=17932&page=2

Благодарю за помощь!

Code:
public void Execute(IContext ctx, ISecurity sec)
{
	//проверка на лабораторию-если не реальная торговля-выходим
	if (!sec.Positions.IsRealtime) return;
	//int i = sec.Bars.Count - 1;
	//if (i < 0) return;
	//получаем биржевой стакан
	var buyQueue=sec.GetBuyQueue(0);
	var sellQueue = sec.GetSellQueue(0);
	// индекс значения не имеет, всегда будет возвращаться текущий стакан
	
	var tofile = new StreamWriter("buy-stakan.txt", true) {AutoFlush = true}; // перезапись в файл 
    for (int j = 0; j < buyQueue.Count; j++)
    {
	    //tofile.Write("\r\n");
        tofile.Write("Price:"+buyQueue[j].Price+"\tQuantity:"+buyQueue[j].Quantity+"\r\n");
    }
	tofile.Close();
}


Так тоже не пишет - даже каретки "\r\n", просто пустой файл создает.

Наверх
#53671 - Thu Mar 28 2013 01:39 PM Re: IQueueData как подключить? [Re: Round]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
Ну так может быть у вас стакана нет? Я вот плохо помню есть ли стакан на свечах отличающихся от последней. Проверьте стакан приходит или нет smile

Кстати это наиболее вероятная проблема. Если бы выпадало исключение в предыдущем варианте вы бы его заметили. А раз не заметили значит его нет. Видимо у вас не приходит стакан.


Отредактировано ra81 (Thu Mar 28 2013 01:40 PM)
_________________________
__


Наверх
#53679 - Thu Mar 28 2013 04:48 PM Re: IQueueData как подключить? [Re: ra81]
Round Offline
stranger

Registered: Fri Mar 15 2013
Записи: 5
хм... вроде поддержка писала что это не влияет, ну попробую пошаманить, спс...

http://forum.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=17938#Post17938

Наверх


Moderator:  ViL, sar