@Shinkero
Trader, Investor, C# student

Как сделать свои запросы и обновления переменных по аналогии с имеющимся?

Благодаря ответу из моего предыдущего вопроса вот тут я научился использовать (назначать и вызывать) собственные переменные. Сейчас же столкнулся с проблемой их вызова и использования в основном классе (Program).

Софт (пока что консолька) имеет два класса. Один из них: class MyCallbacks : RCallbacks - этот класс от API.
Второй - основной, в котором используется уже метод Main.

В виде результата работы программы я хочу получать в консоли сообщения следующего вида:
Exchange - SymbolName - Ask Price - Bid Price
ESM0 - CME - 2990.00 - 2990.25

На данный момент я могу получать такие "принты", если укажу свои переменные в методах, которые указаны в классе MyCallbacks:RCallbacks. Но, вызвать эти переменные я могу всего один раз.
Сразу уточню - в данный момент эти методы вызываются с помощью следующего кода:

oEngine.subscribe(sExchange, sSymbol, SubscriptionFlags.Best, null);


Сам метод subscribe в классе REngine (oEngine):
public sealed class REngine
{
public void subscribe(string sExchange, string sSymbol, SubscriptionFlags eFlags, object oContext);
}


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

class MyCallbacks : RCallbacks
{
public string symbolName;
public string exchangeName;
public double askPrice;
public double bidPrice;
public override void BestAskQuote(AskInfo oInfo)
{
    symbolName = oInfo.Symbol;
    exchangeName = oInfo.Exchange;
    askPrice = oInfo.Price;
}
public override void BestBidQuote(AskInfo oInfo)
{
    symbolName = oInfo.Symbol;
    exchangeName = oInfo.Exchange;
    bidPrice = oInfo.Price;
}
}


Что я хочу сделать, так это назначить собственные переменные, но уже в классе Programm, которые будут обновляться с такой же частотой, как и сама "подписка" subscribe. Я обозначил собственные переменные symbolName, exchangeName, askPrice, bidPrice. Их я назначаю при каждом обращении этого subscribe, но вот как их использовать в дальнейшем - я понятия не имею. Поддержка от API к сожалению молчит.

В дальнейшем я хочу на основе такого же кода создать уже не консольное приложение, которое будет обновлять данные переменные в ячейках таблицы. Сейчас я могу вызвать эти переменные через oCallback.askPrice например, но вот сделать постоянное (динамическое) обновление с такой же частотой как oEngine.subscribe у меня не получается.
Здесь критически важно получать эти обновления мгновенно (по аналогии с используемым методом), но с возможность дальнейшего использования собственных переменных, которые будут использоваться в различных окнах приложения и там же обновляться с такой же частотой. Буду очень благодарен за решение!

p.s.: Само обновление этих переменных я могу оставить без проблем через subscribe, но вот выводить их постоянно нужно другим методом, потому как прописать всю будущую логику в методы BestAskQuote, BestBidQuote не получится. Именно поэтому мне нужно получить собственные переменные, с которыми смогу работать в любых окнах проекта.

p.p.s.: Также хотелось бы узнать, возможно есть программисты C#, которые могут проконсультировать голосом по вопросам программирования, и, скажем так, стать наставниками? Буду благодарен.

Спасибо!
С уважением, Евгений.
  • Вопрос задан
  • 50 просмотров
Пригласить эксперта
Ответы на вопрос 1
GavriKos
@GavriKos
После слов "вызов переменной" мой мозг скукожился. Почитайте, пожалуйста, что нибудь по сишарпу. И не пишите такой ереси. До познания реактивного программирования.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы