Вопросы новичка в S# (Закрыта)
Atom
01.12.2010


ttt

Фотография
Добрый день.
Очень понравилась идея использования Вашей библиотеки для реализации роботов.
Подскажите, пожалуйста:
1) Как идентифицировать заявку?
//например, выставляю заявку buy RIZ0 4 контракта по цене 160500. Каким образом далее смогу ее отслеживать?
Вариант с использованием таблицы сделок не подходит - необходимо реализовать контроль исполнения заявок пользуясь исключительно информацией из таблицы заявок.
С языком C# только начал разбираться, возможно поэтому не нашел в представленных в дистрибутиве S# проектах примеров контроля состояния заявки по ее уникальному признаку.
2) Верно ли я понимаю суть работы с Квиком: для реализации автономного робота необходимо организовать два потока на C#:
- первый: выполняет функции получения данных из Квика через DDE сервер (используя библиотеку S#);
- второй: непосредственно реализует алгоритм выставления и снятия заявок.
Можно ли обойтись одним потоком?

Теги:


Спасибо: Николай_Флёров




506 Ответов
<< < 11 12 13 14 15  > >>
Alexander

Фотография
Дата: 14.05.2011


crapulent Перейти
приветсвую
спасибо огромное за удобную библиотеку

возник вопрос:
использую квик.
регистрирую заявку через trader.registerOrder
возможно ли отследить неудачу при посылке транзакции на биржу (например если интернет падал, но квик еще не прислал Disconnected)?


OrdersFailed
Спасибо:

crapulent

Фотография
Дата: 14.05.2011


пробовал. не работае.
кусок кода:
Код
...
trader.OrdersFailed += fails =>
{
foreach (var fail in fails)
{
Console.WriteLine("E: " + fail.Error);
}
};
Security sec = trader.Securities.First(s => s.Code == "LKOH");
trader.IsAsyncMode = true;
Order order = new Order()
{
Security = sec,
Volume = 1,
Direction = OrderDirections.Buy,
Price = price,
Portfolio = port,
};

Console.Write(">");
Console.ReadKey();
trader.RegisterOrder(order);

дожидаюсь ">", отключаю интернет, жмакаю.
ордерзфэйлд не приходит.
Спасибо:

crapulent

Фотография
Дата: 14.05.2011


в догонку еще вопрос.
Код
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Ecng.Trading.Quik;
using System.IO;

namespace MultiQuikTest
{
class Program
{
static void Main(string[] args)
{
try
{
foreach (var t in QuikTerminal.Terminals)
{
File.AppendAllText("output", t.DirectoryName + "\r\n");
}
}
catch (Exception ex)
{
File.AppendAllText("output", ex.ToString());
}
Console.ReadKey();
}
}
}


если запущено больше одного квика получаю эксепшн, если 1, то все ок.
windows 7

Цитата:
System.InvalidCastException: Заданное приведение является недопустимым.
в System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
в System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(Int32 errorCode)
в System.Management.ManagementScope.InitializeGuts(Object o)
в System.Management.ManagementScope.Initialize()
в System.Management.ManagementObjectSearcher.Initialize()
в System.Management.ManagementObjectSearcher.Get()
в Ecng.Interop.WinApi.GetOwner(Process process)
в Ecng.Trading.Quik.QuikTerminal.#=qMfrcg9BqoX_SrZ_PniRSkM_HjG66XqOI62YKPEESM$8=.#=q2Ey9GcWR9id72injkpK63zAr0R9wXuqBWricx3tkazE=(Process #=qkq4$1ICccTWVLKEFpo7ccw==, Process #=qzKCUSHcFINff4MoQJ2AUZA==)
в Ecng.Collections.CollectionHelper.Comparer`1.Compare(T x, T y)
в System.Linq.EnumerableSorter`2.CompareKeys(Int32 index1, Int32 index2)
в System.Linq.EnumerableSorter`1.QuickSort(Int32[] map, Int32 left, Int32 right)
в System.Linq.EnumerableSorter`1.Sort(TElement[] elements, Int32 count)
в System.Linq.OrderedEnumerable`1.<GetEnumerator>d__0.MoveNext()
в System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
в System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
в System.Linq.Buffer`1..ctor(IEnumerable`1 source)
в System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
в Ecng.Trading.Quik.QuikTerminal.get_Terminals()
в MultiQuikTest.Program.Main(String[] args) в D:\root\workspace\rts\csharpsolutions\revision_3_2011_05_10\MultiQuikTest\MultiQuikTest\Program.cs:строка 17


не подскажете, с чем может быть связано?
Спасибо:

Stanislav121

Фотография
Дата: 16.05.2011


Mikhail Sukhov Перейти
Stanislav121 Перейти
Какова может быть максимальная скорость работы робота(выставление заявок) ?
От чего это зависит?


Если вы задаете подобные вопросы, то скорее всего идете по неправильному пути. (с) жизненный опыт.Smile

Почему?
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 16.05.2011


Stanislav121 Перейти
Mikhail Sukhov Перейти
Stanislav121 Перейти
Какова может быть максимальная скорость работы робота(выставление заявок) ?
От чего это зависит?


Если вы задаете подобные вопросы, то скорее всего идете по неправильному пути. (с) жизненный опыт.Smile

Почему?


Если вы задаете подобные вопросы, значит у вас стратегия зависит от скорости выставления заявок. Квик - это не тот терминал, который бы подобное мог обеспечить. Он конечно может выставить хоть 10000 заявок в минуту (главное чтобы брокер не зарубил), но задержка в получении маркет данных (ситуация в стакане меняется намного чаще, чем это транслирует Квик) и проскальзывание на бирже сведет на нет всю быстроту (или вы будете лепить заявки по невыгодным ценам).
Спасибо:

Stanislav121

Фотография
Дата: 16.05.2011


Mikhail Sukhov Перейти
Stanislav121 Перейти
Mikhail Sukhov Перейти
Stanislav121 Перейти
Какова может быть максимальная скорость работы робота(выставление заявок) ?
От чего это зависит?


Если вы задаете подобные вопросы, то скорее всего идете по неправильному пути. (с) жизненный опыт.Smile

Почему?


Если вы задаете подобные вопросы, значит у вас стратегия зависит от скорости выставления заявок. Квик - это не тот терминал, который бы подобное мог обеспечить. Он конечно может выставить хоть 10000 заявок в минуту (главное чтобы брокер не зарубил), но задержка в получении маркет данных (ситуация в стакане меняется намного чаще, чем это транслирует Квик) и проскальзывание на бирже сведет на нет всю быстроту (или вы будете лепить заявки по невыгодным ценам).


Да, стратегия зависит от скорости выставления заявок.
Не очень Вас понимаю.
Задержка получения данных характерна для quik или для других серверов тоже(TSLab там или TRANSAQ Connector)?
Ну и 10k заявок в минуту не нужно.
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 16.05.2011


Stanislav121 Перейти
Задержка получения данных характерна для quik или для других серверов тоже(TSLab там или TRANSAQ Connector)?


Задержка есть везде. У всех она примерно одинаковая. Если скорости Квика не хватает, переходите на прямое подключение.
Спасибо:

Alexander

Фотография
Дата: 16.05.2011


crapulent Перейти
в догонку еще вопрос.
Код
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Ecng.Trading.Quik;
using System.IO;

namespace MultiQuikTest
{
class Program
{
static void Main(string[] args)
{
try
{
foreach (var t in QuikTerminal.Terminals)
{
File.AppendAllText("output", t.DirectoryName + "\r\n");
}
}
catch (Exception ex)
{
File.AppendAllText("output", ex.ToString());
}
Console.ReadKey();
}
}
}


если запущено больше одного квика получаю эксепшн, если 1, то все ок.
windows 7

Цитата:
System.InvalidCastException: Заданное приведение является недопустимым.
в System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
в System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(Int32 errorCode)
в System.Management.ManagementScope.InitializeGuts(Object o)
в System.Management.ManagementScope.Initialize()
в System.Management.ManagementObjectSearcher.Initialize()
в System.Management.ManagementObjectSearcher.Get()
в Ecng.Interop.WinApi.GetOwner(Process process)
в Ecng.Trading.Quik.QuikTerminal.#=qMfrcg9BqoX_SrZ_PniRSkM_HjG66XqOI62YKPEESM$8=.#=q2Ey9GcWR9id72injkpK63zAr0R9wXuqBWricx3tkazE=(Process #=qkq4$1ICccTWVLKEFpo7ccw==, Process #=qzKCUSHcFINff4MoQJ2AUZA==)
в Ecng.Collections.CollectionHelper.Comparer`1.Compare(T x, T y)
в System.Linq.EnumerableSorter`2.CompareKeys(Int32 index1, Int32 index2)
в System.Linq.EnumerableSorter`1.QuickSort(Int32[] map, Int32 left, Int32 right)
в System.Linq.EnumerableSorter`1.Sort(TElement[] elements, Int32 count)
в System.Linq.OrderedEnumerable`1.<GetEnumerator>d__0.MoveNext()
в System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
в System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
в System.Linq.Buffer`1..ctor(IEnumerable`1 source)
в System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
в Ecng.Trading.Quik.QuikTerminal.get_Terminals()
в MultiQuikTest.Program.Main(String[] args) в D:\root\workspace\rts\csharpsolutions\revision_3_2011_05_10\MultiQuikTest\MultiQuikTest\Program.cs:строка 17


не подскажете, с чем может быть связано?



Потестировал у себя - всё работает, с несколькими квиками в том числе.
Все квики запускаются с локального диска, не с сетевого \ flash?
Какие права установлены для текущего пользователя?

Версия Windows и версия установленного .Net Framework?
Спасибо:

Stanislav121

Фотография
Дата: 17.05.2011


Mikhail Sukhov Перейти
Stanislav121 Перейти
Задержка получения данных характерна для quik или для других серверов тоже(TSLab там или TRANSAQ Connector)?


Задержка есть везде. У всех она примерно одинаковая. Если скорости Квика не хватает, переходите на прямое подключение.


Прямое подключение - это через Plaza 2?
А Stock# работает с Plaza 2?
Спасибо:

Stanislav121

Фотография
Дата: 17.05.2011


"Потому как на Купели HFT делать можно, но не так эффективно"
Что такое Купель?
Спасибо:

vfreeman

Фотография
Дата: 17.05.2011


Stanislav121 Перейти
"Потому как на Купели HFT делать можно, но не так эффективно"
Что такое Купель?


вероятно QPILE - встроенный язык QUIK
Спасибо:

crapulent

Фотография
Дата: 17.05.2011


Alexander Перейти
Потестировал у себя - всё работает, с несколькими квиками в том числе.
Все квики запускаются с локального диска, не с сетевого \ flash?
Какие права установлены для текущего пользователя?

Версия Windows и версия установленного .Net Framework?

окей, спасибо, буду искать проблему у себя
да, с локального. из соседних папок
админские права, UAC выключен
windows 7 ultimate
.Net 4.0
Спасибо:

Yura

Фотография
Дата: 17.05.2011


Какая проблема в 5-й строке? =(
Код
trader.SecuritiesChanged += trades =>
{
if (_depth == null && _lkoh != null)
{
_depth = trades.FirstOrDefault(d => d.Code == "LKOH").LastTrade;
if (_depth != null)
{
// если портфель уже появился, то извещаем об этом основной поток для выставления заявки
if (_portfolio != null)
waitHandle.Set();
}
}
};
Спасибо:

Alexander

Фотография
Дата: 17.05.2011


Yura Перейти
Какая проблема в 5-й строке? =(
Код
trader.SecuritiesChanged += trades =>
{
if (_depth == null && _lkoh != null)
{
_depth = trades.FirstOrDefault(d => d.Code == "LKOH").LastTrade;
if (_depth != null)
{
// если портфель уже появился, то извещаем об этом основной поток для выставления заявки
if (_portfolio != null)
waitHandle.Set();
}
}
};



depth это что, какой тип? Стакан? Тогда неправильное приведение типов.

А Visual Studio что говорит? Или это викторина для форумчан? :)
Спасибо:

Yura

Фотография
Дата: 17.05.2011


Alexander Перейти
Yura Перейти
Какая проблема в 5-й строке? =(
Код
trader.SecuritiesChanged += trades =>
{
if (_depth == null && _lkoh != null)
{
_depth = trades.FirstOrDefault(d => d.Code == "LKOH").LastTrade;
if (_depth != null)
{
// если портфель уже появился, то извещаем об этом основной поток для выставления заявки
if (_portfolio != null)
waitHandle.Set();
}
}
};



depth это что, какой тип? Стакан? Тогда неправильное приведение типов.

А Visual Studio что говорит? Или это викторина для форумчан? :)

В общем мне нужно получить информацию о последней сделке по указанной бумаге..как мне это сделать? =(
Спасибо:

Yura

Фотография
Дата: 17.05.2011


Yura Перейти
Alexander Перейти
Yura Перейти
Какая проблема в 5-й строке? =(
Код
trader.SecuritiesChanged += trades =>
{
if (_depth == null && _lkoh != null)
{
_depth = trades.FirstOrDefault(d => d.Code == "LKOH").LastTrade;
if (_depth != null)
{
// если портфель уже появился, то извещаем об этом основной поток для выставления заявки
if (_portfolio != null)
waitHandle.Set();
}
}
};



depth это что, какой тип? Стакан? Тогда неправильное приведение типов.

А Visual Studio что говорит? Или это викторина для форумчан? :)

В общем мне нужно получить информацию о последней сделке по указанной бумаге..как мне это сделать? =( Плиз если можно пример рабочий((

Спасибо:

Yura

Фотография
Дата: 17.05.2011


Yura Перейти
Yura Перейти
Alexander Перейти
Yura Перейти
Какая проблема в 5-й строке? =(
Код
trader.SecuritiesChanged += trades =>
{
if (_depth == null && _lkoh != null)
{
_depth = trades.FirstOrDefault(d => d.Code == "LKOH").LastTrade;
if (_depth != null)
{
// если портфель уже появился, то извещаем об этом основной поток для выставления заявки
if (_portfolio != null)
waitHandle.Set();
}
}
};



depth это что, какой тип? Стакан? Тогда неправильное приведение типов.

А Visual Studio что говорит? Или это викторина для форумчан? :)

В общем мне нужно получить информацию о последней сделке по указанной бумаге..как мне это сделать? =( Плиз если можно пример рабочий((я в си шарпе новичок и в стокшарпе трудно разобраться


Спасибо:

Yura

Фотография
Дата: 17.05.2011


Yura Перейти
Yura Перейти
Yura Перейти
Какая проблема в 5-й строке? =(
Код
trader.SecuritiesChanged += trades =>
{
if (_depth == null && _lkoh != null)
{
_depth = trades.FirstOrDefault(d => d.Code == "LKOH").LastTrade;
if (_depth != null)
{
// если портфель уже появился, то извещаем об этом основной поток для выставления заявки
if (_portfolio != null)
waitHandle.Set();
}
}
};



depth это что, какой тип? Стакан? Тогда неправильное приведение типов.

А Visual Studio что говорит? Или это викторина для форумчан? :)

В общем мне нужно получить информацию о последней сделке по указанной бумаге..как мне это сделать? =( Плиз если можно пример рабочий((я в си шарпе новичок и в стокшарпе трудно разобраться. А у _depth тип Security
Спасибо:

Yura

Фотография
Дата: 17.05.2011


Yura Перейти
Yura Перейти
Yura Перейти
Yura Перейти
Какая проблема в 5-й строке? =(
Код
trader.SecuritiesChanged += trades =>
{
if (_depth == null && _lkoh != null)
{
_depth = trades.FirstOrDefault(d => d.Code == "LKOH").LastTrade;
if (_depth != null)
{
// если портфель уже появился, то извещаем об этом основной поток для выставления заявки
if (_portfolio != null)
waitHandle.Set();
}
}
};



depth это что, какой тип? Стакан? Тогда неправильное приведение типов.

А Visual Studio что говорит? Или это викторина для форумчан? :)

"Ошибка 7 Неявное преобразование типа "Ecng.Trading.BusinessEntities.Trade" в "Ecng.Trading.BusinessEntities.Security" невозможно
"В общем мне нужно получить информацию о последней сделке по указанной бумаге..как мне это сделать? =( Плиз если можно пример рабочий((я в си шарпе новичок и в стокшарпе трудно разобраться. А у _depth тип Security

Спасибо:

Alexander

Фотография
Дата: 17.05.2011


Yura Перейти
Yura Перейти
Yura Перейти
Yura Перейти
Yura Перейти
Какая проблема в 5-й строке? =(
Код
trader.SecuritiesChanged += trades =>
{
if (_depth == null && _lkoh != null)
{
_depth = trades.FirstOrDefault(d => d.Code == "LKOH").LastTrade;
if (_depth != null)
{
// если портфель уже появился, то извещаем об этом основной поток для выставления заявки
if (_portfolio != null)
waitHandle.Set();
}
}
};



depth это что, какой тип? Стакан? Тогда неправильное приведение типов.

А Visual Studio что говорит? Или это викторина для форумчан? :)

"Ошибка 7 Неявное преобразование типа "Ecng.Trading.BusinessEntities.Trade" в "Ecng.Trading.BusinessEntities.Security" невозможно
"В общем мне нужно получить информацию о последней сделке по указанной бумаге..как мне это сделать? =( Плиз если можно пример рабочий((я в си шарпе новичок и в стокшарпе трудно разобраться. А у _depth тип Security




Последняя сделка - это Trade, а вы пытаетесь привести её к Security.
собственно об этом Visual Studio и сообщает.
Спасибо: Yura

Yura

Фотография
Дата: 17.05.2011


Alexander Перейти
Yura Перейти
Yura Перейти
Yura Перейти
Yura Перейти
Yura Перейти
Какая проблема в 5-й строке? =(
Код
trader.SecuritiesChanged += trades =>
{
if (_depth == null && _lkoh != null)
{
_depth = trades.FirstOrDefault(d => d.Code == "LKOH").LastTrade;
if (_depth != null)
{
// если портфель уже появился, то извещаем об этом основной поток для выставления заявки
if (_portfolio != null)
waitHandle.Set();
}
}
};



depth это что, какой тип? Стакан? Тогда неправильное приведение типов.

А Visual Studio что говорит? Или это викторина для форумчан? :)

"Ошибка 7 Неявное преобразование типа "Ecng.Trading.BusinessEntities.Trade" в "Ecng.Trading.BusinessEntities.Security" невозможно
"В общем мне нужно получить информацию о последней сделке по указанной бумаге..как мне это сделать? =( Плиз если можно пример рабочий((я в си шарпе новичок и в стокшарпе трудно разобраться. А у _depth тип Security




Последняя сделка - это Trade, а вы пытаетесь привести её к Security.
собственно об этом Visual Studio и сообщает.

О господи, ДА ДЕТКА, пашет!! спс огромное! какое же это счастье...
Спасибо:

Yura

Фотография
Дата: 17.05.2011


Yura Перейти
Alexander Перейти
Yura Перейти
Yura Перейти
Yura Перейти
Yura Перейти
Yura Перейти
Какая проблема в 5-й строке? =(
Код
trader.SecuritiesChanged += trades =>
{
if (_depth == null && _lkoh != null)
{
_depth = trades.FirstOrDefault(d => d.Code == "LKOH").LastTrade;
if (_depth != null)
{
// если портфель уже появился, то извещаем об этом основной поток для выставления заявки
if (_portfolio != null)
waitHandle.Set();
}
}
};



depth это что, какой тип? Стакан? Тогда неправильное приведение типов.

А Visual Studio что говорит? Или это викторина для форумчан? :)

"Ошибка 7 Неявное преобразование типа "Ecng.Trading.BusinessEntities.Trade" в "Ecng.Trading.BusinessEntities.Security" невозможно
"В общем мне нужно получить информацию о последней сделке по указанной бумаге..как мне это сделать? =( Плиз если можно пример рабочий((я в си шарпе новичок и в стокшарпе трудно разобраться. А у _depth тип Security




Последняя сделка - это Trade, а вы пытаетесь привести её к Security.
собственно об этом Visual Studio и сообщает.

О господи, ДА ДЕТКА, пашет!! спс огромное! какое же это счастье...

А ещё такой вопрос. я пишу такое
Код
trader.SecuritiesChanged += trades =>
{
if (_depth == null && _lkoh != null)
{
_depth = trades.FirstOrDefault(d => d.Code == "MSICH").LastTrade.Price;

if (_depth != null)
{
// если портфель уже появился, то извещаем об этом основной поток для выставления заявки
if (_portfolio != null)
waitHandle.Set();
}
}
};

Ошибка 1 Неявное преобразование типа "decimal" в "Ecng.Trading.BusinessEntities.Trade" невозможно.
пытаюсь взять цену
_depth = trades.FirstOrDefault(d => d.Code == "MSICH").LastTrade.Price;
Спасибо:

Alexander

Фотография
Дата: 17.05.2011


Yura Перейти
Yura Перейти
Alexander Перейти
Yura Перейти
Yura Перейти
Yura Перейти
Yura Перейти
Yura Перейти
Какая проблема в 5-й строке? =(
Код
trader.SecuritiesChanged += trades =>
{
if (_depth == null && _lkoh != null)
{
_depth = trades.FirstOrDefault(d => d.Code == "LKOH").LastTrade;
if (_depth != null)
{
// если портфель уже появился, то извещаем об этом основной поток для выставления заявки
if (_portfolio != null)
waitHandle.Set();
}
}
};



depth это что, какой тип? Стакан? Тогда неправильное приведение типов.

А Visual Studio что говорит? Или это викторина для форумчан? :)

"Ошибка 7 Неявное преобразование типа "Ecng.Trading.BusinessEntities.Trade" в "Ecng.Trading.BusinessEntities.Security" невозможно
"В общем мне нужно получить информацию о последней сделке по указанной бумаге..как мне это сделать? =( Плиз если можно пример рабочий((я в си шарпе новичок и в стокшарпе трудно разобраться. А у _depth тип Security




Последняя сделка - это Trade, а вы пытаетесь привести её к Security.
собственно об этом Visual Studio и сообщает.

О господи, ДА ДЕТКА, пашет!! спс огромное! какое же это счастье...

А ещё такой вопрос. я пишу такое
Код
trader.SecuritiesChanged += trades =>
{
if (_depth == null && _lkoh != null)
{
_depth = trades.FirstOrDefault(d => d.Code == "MSICH").LastTrade.Price;

if (_depth != null)
{
// если портфель уже появился, то извещаем об этом основной поток для выставления заявки
if (_portfolio != null)
waitHandle.Set();
}
}
};

Ошибка 1 Неявное преобразование типа "decimal" в "Ecng.Trading.BusinessEntities.Trade" невозможно.
пытаюсь взять цену
_depth = trades.FirstOrDefault(d => d.Code == "MSICH").LastTrade.Price;



Таже самая ошибка. Пытаетесь привести decimal к Security. 2 разных сущности, 2 разных типа.
В инете есть много учебников по C#, стоит хотя бы про типы прочитать и про приведение :)

А то ошибки ну уж совсем начальные.
Спасибо: Yura

Yura

Фотография
Дата: 17.05.2011


Alexander Перейти
Yura Перейти
Yura Перейти
Alexander Перейти
Yura Перейти
Yura Перейти
Yura Перейти
Yura Перейти
Yura Перейти
Какая проблема в 5-й строке? =(
Код
trader.SecuritiesChanged += trades =>
{
if (_depth == null && _lkoh != null)
{
_depth = trades.FirstOrDefault(d => d.Code == "LKOH").LastTrade;
if (_depth != null)
{
// если портфель уже появился, то извещаем об этом основной поток для выставления заявки
if (_portfolio != null)
waitHandle.Set();
}
}
};



depth это что, какой тип? Стакан? Тогда неправильное приведение типов.

А Visual Studio что говорит? Или это викторина для форумчан? :)

"Ошибка 7 Неявное преобразование типа "Ecng.Trading.BusinessEntities.Trade" в "Ecng.Trading.BusinessEntities.Security" невозможно
"В общем мне нужно получить информацию о последней сделке по указанной бумаге..как мне это сделать? =( Плиз если можно пример рабочий((я в си шарпе новичок и в стокшарпе трудно разобраться. А у _depth тип Security




Последняя сделка - это Trade, а вы пытаетесь привести её к Security.
собственно об этом Visual Studio и сообщает.

О господи, ДА ДЕТКА, пашет!! спс огромное! какое же это счастье...

А ещё такой вопрос. я пишу такое
Код
trader.SecuritiesChanged += trades =>
{
if (_depth == null && _lkoh != null)
{
_depth = trades.FirstOrDefault(d => d.Code == "MSICH").LastTrade.Price;

if (_depth != null)
{
// если портфель уже появился, то извещаем об этом основной поток для выставления заявки
if (_portfolio != null)
waitHandle.Set();
}
}
};

Ошибка 1 Неявное преобразование типа "decimal" в "Ecng.Trading.BusinessEntities.Trade" невозможно.
пытаюсь взять цену
_depth = trades.FirstOrDefault(d => d.Code == "MSICH").LastTrade.Price;



Таже самая ошибка. Пытаетесь привести decimal к Security. 2 разных сущности, 2 разных типа.
В инете есть много учебников по C#, стоит хотя бы про типы прочитать и про приведение :)

А то ошибки ну уж совсем начальные.

На счет типов я понял что не совпадают. Но как так сделать чтоб вывелась цена=(
Спасибо:

Yura

Фотография
Дата: 18.05.2011


Здравствуйте.
Данные для тестирования на истории должны быть заранее скачаны и сохранены в специальном S# формате.
Что это за формат, я не могу разобраться как преобразовать в этот формат..хэлп.
Спасибо:
<< < 11 12 13 14 15  > >>

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy