Algorithmischer Handel für .NET und Python✦86+ Konnektoren · Börsen · Broker · Krypto✦S#.Designer · Backtest · optimieren · live gehen✦Eine Community von 31,445+ Tradern und Entwicklern✦Algorithmischer Handel für .NET und Python✦86+ Konnektoren · Börsen · Broker · Krypto✦S#.Designer · Backtest · optimieren · live gehen✦Eine Community von 31,445+ Tradern und Entwicklern✦
ILogSource это источник данных, например шлюз к терминалу или своя стратегия.
public QuikTrader trader;
MyStrategy myStrat;
...
monitor = new MonitorWindow();
monitor.Show();
logManager = new LogManager();
logManager.Listeners.Add(new GuiLogListener(monitor));
...
trader = new QuikTrader(Path.Text);
logManager.Sources.Add(trader);// добавили шлюз как источник данных
...
myStrat = new myStrategy();
logManager.Sources.Add(myStrat);// добавили стратегию как источник данных
class MyStrategy : Strategy
{
//
}
Если я правильно понял вопрос. То вы хотите чтобы допустим в окно с логами можно было добавлять произвольное сообщение.
Если так. То есть класс LoggingHelper и метод AddInfoLog.
чтобы допустим в окно с логами можно было добавлять произвольное сообщение.
Если так. То есть класс LoggingHelper и метод AddInfoLog.
А AddInfoLog требует в свою очередь LogReceiver, который как правильно делать вообще не понятно :(
А AddInfoLog требует в свою очередь LogReceiver, который как правильно делать вообще не понятно :(
Как работать с справкой.
Открываем справку с описанием AddInfoLog и видим
public static void AddInfoLog(
this ILogReceiver receiver,
string message,
params Object[] args
)
Если перейти по ссылке ILogReceiver, то попадем в описание, в котором написано что это интерфейс(также это видно из названия ILogReceiver ).
Из этого делается вывод, что в качестве параметра в AddInfoLog должен передаваться объект реализующий интерфейс ILogReceiver.
Далее посмотрим описание двух классов QuikTrader и Strategy
public class QuikTrader : BaseTrader
Ничего интересного, переходим по ссылке BaseTrader
public abstract class BaseTrader : Disposable, ITrader, IDisposable, ILogReceiver, ILogSource, IPersistable
BaseTrader реализует интерфейс ILogReceiver, а т.к. QuikTrader является его наследником то его можно использовать в качестве передаваемого параметра для AddInfoLog.
Аналогично и для Strategy
public class Strategy : Equatable<Strategy>, INotifyPropertyChanged, ILogReceiver, ILogSource, IPersistable
Пример:
_trader = new QuikTrader();
_myStrat = new MyStrategy();
....
LoggingHelper.AddInfoLog(_trader, "Comment");
LoggingHelper.AddInfoLog(_myStrat, "Comment");
class MyStrategy : Strategy
{
LoggingHelper.AddInfoLog(this, "Comment");
}
Или короче
_trader = new QuikTrader();
_myStrat = new MyStrategy();
....
_trader.AddInfoLog("Comment");
_myStrat.AddInfoLog("Comment");
class MyStrategy : Strategy
{
this.AddInfoLog("Comment");
}
Большое спасибо!
Я бы сам не разобрался - у меня с ООП большие проблемы.
Wir verwenden Cookies, um die beste Erfahrung auf unserer Website zu gewährleisten. Durch die weitere Nutzung unserer Seite stimmen Sie der Verwendung von Cookies zu.
Kommentare (14)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
если речь именно о логировании,то MonitorWindow
Ну MonitorWindow создается как отдельное окно, а хотелось бы в виде таблички как в вашем примере
Сейчас получилось что то вроде:
В xaml файле написал:
Ну файл естественно не компилится, ругается, но ошибки не выдает.
EcngTradingXaml:LogControl/ попробуйте это вставить.
Лучше просто Monitor.
Огромное спасибо всем за столь быстрые ответы:) с logcontrol получилось
А как создать ILogSource?
ILogSource это источник данных, например шлюз к терминалу или своя стратегия.
Это я в курсе, мне нужно чтобы в логгере просто появлялись сообщения допустим о сделках. Но при этом там стратегия не задействована
Если я правильно понял вопрос. То вы хотите чтобы допустим в окно с логами можно было добавлять произвольное сообщение. Если так. То есть класс LoggingHelper и метод AddInfoLog.
Спасибо!
Как работать с справкой.
Открываем справку с описанием AddInfoLog и видим
Если перейти по ссылке ILogReceiver, то попадем в описание, в котором написано что это интерфейс(также это видно из названия ILogReceiver ). Из этого делается вывод, что в качестве параметра в AddInfoLog должен передаваться объект реализующий интерфейс ILogReceiver.
Далее посмотрим описание двух классов QuikTrader и Strategy
Ничего интересного, переходим по ссылке BaseTrader
BaseTrader реализует интерфейс ILogReceiver, а т.к. QuikTrader является его наследником то его можно использовать в качестве передаваемого параметра для AddInfoLog.
Аналогично и для Strategy
Пример:
Или короче
Большое спасибо! Я бы сам не разобрался - у меня с ООП большие проблемы.