Изучаем S# под SmartCOM 2.0


Изучаем S# под SmartCOM 2.0
Atom Reply
1/20/2011


Уважаемые форумчане подскажите пожалста. Пытаюсь изучить язык. Помогите пожалста если не трудно как сделать обычную кнопку под SmartCOM 2.0 чтобы покупала или продовала мне конкретный инструмент. Спасиб.

Tags:


Thanks:




31 Answers
1 2  >
Alexander

Avatar
Date: 1/21/2011
Reply


MyxaGT Перейти
Уважаемые форумчане подскажите пожалста. Пытаюсь изучить язык. Помогите пожалста если не трудно как сделать обычную кнопку под SmartCOM 2.0 чтобы покупала или продовала мне конкретный инструмент. Спасиб.


В архиве со Stock# идут множество примеров, где всё хорошо расписано.
Уверен, после детального просмотра 2х примеров SampleSmart и SampleSmartSMA вопросов станет на порядок меньше.

Вам нужен метод RegisterOrder у класса SmartTrader
Thanks:

MyxaGT

Avatar
Date: 1/21/2011
Reply


Пробую разбираюсь. Первую работу свою если получиться выложу. Спасибо за направление ! )))
Topic starter
Thanks:

MyxaGT

Avatar
Date: 2/10/2011
Reply


private void button1_Click(object sender, RoutedEventArgs e)
{

this.Trader = new SmartTrader(this.Login.Text, this.Password.Text, this.Address.SelectedAddress);


}
Пытаюсь ввести IP сервера смарта this.Address.SelectedAddress --- подчёркивает и пишет ошибку, подскажите как прально как прально прописать Confused
Topic starter
Thanks:

MyxaGT

Avatar
Date: 2/10/2011
Reply


Вообщем вроде подключение Настроил . Вот что получилось


namespace Stock_Myxa_2._0
{
/// <summary>
/// Логика взаимодействия для MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{

public SmartTrader Trader;


System.Net.IPAddress ip = System.Net.IPAddress.Parse("82.204.220.34");

public MainWindow()

{
InitializeComponent();
}

private void button1_Click(object sender, RoutedEventArgs e)
{

this.Trader = new SmartTrader(this.Login.Text, this.Password.Text, ip)
{ IsAutoSaveOrders = false };

}
}
}Если чтот не прально прошу меня попровлять ! )))
Topic starter
Thanks:

Greene-nsk

Avatar
Date: 2/10/2011
Reply


Порт забыли. Можно написать:
Код

using System.Net;
...

IPEndPoint IP = new IPEndPoint(IPAddress.Parse("82.204.220.34"), 8090);
Trader = new SmartTrader(Account.Login, Account.Password, IP);
...
Thanks:

MyxaGT

Avatar
Date: 2/10/2011
Reply


Спасиб исправил Терь другая проблемка не могу включить прослушку на событие подключения


namespace Stock_Myxa_2._0
{
/// <summary>
/// Логика взаимодействия для MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{

public SmartTrader Trader;



public MainWindow()
{
InitializeComponent();
}

private void button1_Click(object sender, RoutedEventArgs e)
{

IPEndPoint IP = new IPEndPoint(IPAddress.Parse("82.204.220.34"), 8090);
Trader = new SmartTrader(Login.Text, Password.Text, IP);



this.Trader.Connected += () // Как здесь включить прослушку на события подключения ???
{

};



}
}
Topic starter
Thanks:

Greene-nsk

Avatar
Date: 2/10/2011
Reply


В примерах же все есть. Возьмите любой SampleSmart...
Thanks:

MyxaGT

Avatar
Date: 2/10/2011
Reply


Так в том то и дело как то не понятно с лямдо выражениями толи дело в с# подписался включил появилось отобразилось а тут во как
// подписываемся на событие успешного соединения
this.Trader.Connected += () =>
{
// возводим флаг, что соединение установлено
_isConnected = true;

// разблокируем кнопку Экспорт
this.GuiAsync(() => ChangeConnectStatus(true));
}; А мне допустим достаточно вывести в Лабел подключения успешно выполнено и как тут ето осуществить ???
Topic starter
Thanks:

Alexander

Avatar
Date: 2/10/2011
Reply


MyxaGT Перейти
Так в том то и дело как то не понятно с лямдо выражениями толи дело в с# подписался включил появилось отобразилось а тут во как
// подписываемся на событие успешного соединения
this.Trader.Connected += () =>
{
// возводим флаг, что соединение установлено
_isConnected = true;

// разблокируем кнопку Экспорт
this.GuiAsync(() => ChangeConnectStatus(true));
}; А мне допустим достаточно вывести в Лабел подключения успешно выполнено и как тут ето осуществить ???



Лямбда выражения и есть возможность C#.
Тут S# никак не влияет - я сегодня ведь в ЛИСе ответил.
Код

                    this.Trader.Connected += () =>
                        this.GuiAsync(() => Label.Text = "Подключение выполнено");


Почитайте на msdn про лямбда выражения.
А то вопросы возникают не по библиотеке, а по стандартным вещам C#.
Thanks:

Greene-nsk

Avatar
Date: 2/10/2011
Reply


MyxaGT Перейти
Так в том то и дело как то не понятно с лямдо выражениями толи дело в с# подписался включил появилось отобразилось а тут во как
// подписываемся на событие успешного соединения
this.Trader.Connected += () =>
{
// возводим флаг, что соединение установлено
_isConnected = true;

// разблокируем кнопку Экспорт
this.GuiAsync(() => ChangeConnectStatus(true));
}; А мне допустим достаточно вывести в Лабел подключения успешно выполнено и как тут ето осуществить ???


На самом деле тут даже лучше не использовать лябда. Это в примере просто так сделано, как проще. А стандартно это будет так:

Код

this.Trader.Connected += TraderConnected;

private void TraderConnected()
{
this.GuiAsync(() => Label.Text = "Подключение выполнено");
}


Так даже более правильно, потому что от лямбды не отпишешься. А от функции можно.
Thanks:

Greene-nsk

Avatar
Date: 2/10/2011
Reply


Alexander Перейти

Тут S# никак не влияет - я сегодня ведь в ЛИСе ответил.


Alexander, Вы даете консультации в ЛИСе? ) Есть какой-то отдельный канал для S#?
Thanks:

Alexander

Avatar
Date: 2/10/2011
Reply


Greene-nsk Перейти
Alexander Перейти

Тут S# никак не влияет - я сегодня ведь в ЛИСе ответил.


Alexander, Вы даете консультации в ЛИСе? ) Есть какой-то отдельный канал для S#?


Да я просто зашёл в ЛИСу, смотрю - вопрос по Stock# в общем чате. и ответил.
Раньше просто, когда был аналитиком АйтиИнвеста, активно советовал всем писать роботов именно на Stock#, т.к. сам это делаю :)
Несколько человек точно перешли на библиотеку после моих советов :)
Thanks:

Alexander

Avatar
Date: 2/10/2011
Reply


Greene-nsk Перейти
MyxaGT Перейти
Так в том то и дело как то не понятно с лямдо выражениями толи дело в с# подписался включил появилось отобразилось а тут во как
// подписываемся на событие успешного соединения
this.Trader.Connected += () =>
{
// возводим флаг, что соединение установлено
_isConnected = true;

// разблокируем кнопку Экспорт
this.GuiAsync(() => ChangeConnectStatus(true));
}; А мне допустим достаточно вывести в Лабел подключения успешно выполнено и как тут ето осуществить ???


На самом деле тут даже лучше не использовать лябда. Это в примере просто так сделано, как проще. А стандартно это будет так:

Код

this.Trader.Connected += TraderConnected;

private void TraderConnected()
{
this.GuiAsync(() => Label.Text = "Подключение выполнено");
}


Так даже более правильно, потому что от лямбды не отпишешься. А от функции можно.



Поддерживаю.
Тут главное - использование this.GuiAsync, которое позволяет обращаться в другом потоке.
Всё это хорошо описано в документации (раздел Gui).
Thanks: MyxaGT

MyxaGT

Avatar
Date: 2/11/2011
Reply


Спасиб большое Очень помогаете !))) Работаю Дальше над Робокопом ! ))) Smile
Topic starter
Thanks:

MyxaGT

Avatar
Date: 2/11/2011
Reply


private void button8_Click(object sender, EventArgs e) // включаем прослушку на заявку и на сделку
{
SmartCom.ListenPortfolio(textBox3.Text);
// SmartCom.ListenTicks(textBox6.Text);
}
Не могу определить Купил или продал
void SmartCom_AddTrade(string Globalportfoli, string GlobalKod_Evro, string GlobalLD, double price, double amount, System.DateTime datetime, string tradeno)// Находим ID Сделки
{
{
double amount1 = amount;
label29.Text = tradeno;

Global_amount = amount1;

if (Global_amount == 1)
{
label35.Text = "Купили";
}

if (Global_amount == -1)
{
label36.Text = "Продали";
}

}

}
Topic starter
Thanks:

MyxaGT

Avatar
Date: 2/11/2011
Reply


Разобрался забыл назначить обработчика
SmartCom.AddTrade += new _IStClient_AddTradeEventHandler(SmartCom_AddTrade);
Topic starter
Thanks:

MyxaGT

Avatar
Date: 2/11/2011
Reply


Черти чего показывает млин
Topic starter
Thanks:

Greene-nsk

Avatar
Date: 2/11/2011
Reply


а зачем напрямую со SmartCOM? Решили S# не пользоваться?
Thanks:

MyxaGT

Avatar
Date: 2/12/2011
Reply


Просто почемуто не могу я в ети библиотеки вехать.
Topic starter
Thanks:

MyxaGT

Avatar
Date: 2/12/2011
Reply


Странно почемуто он мне показывает прошлую сделку а мне надо чтоб он показывал только ту что вот вот произойдёт ... Тоесть включаем прослушку и после того как произойдёт сделка он только тогда показывает а он сразу при включении прослушки уже показывает типо мол купили или там продали в зависимости от того что сделали в прошлый раз private void SmartCom_AddTrade(string Globalportfoli, string GlobalKod_Evro, string GlobalLD, double price, double amount, System.DateTime datetime, string tradeno)// Находим ID Сделки
{
{
// double amount1 = amount;
label29.Text = tradeno;

// Global_amount = amount1;

if (Global_amount == 1)
{
label35.Text = "Купили";
}

if (Global_amount == -1)
{
label36.Text = "Продали";
}

}

}
Topic starter
Thanks:

MyxaGT

Avatar
Date: 2/13/2011
Reply


Заметил интерестную вещь в чём отличие double от Double => Price - double - Цена Лимит, для заявок типа Лимит и Стоп-Лимит) и Amount - Double - Объем, ЦБ в приказе
Topic starter
Thanks:

Alexander

Avatar
Date: 2/13/2011
Reply


MyxaGT Перейти
Заметил интерестную вещь в чём отличие double от Double => Price - double - Цена Лимит, для заявок типа Лимит и Стоп-Лимит) и Amount - Double - Объем, ЦБ в приказе


System.Double - CLR тип
double - alias для System.Double

они одно и тоже

P.S. По таким вопросам стоит хотя бы в msdn заглядывать. Это основы C# :)
Thanks:

MyxaGT

Avatar
Date: 2/14/2011
Reply


Так я про тоже почему они в мануале так написали то double от Double . Лано ето всё не по теме . Вообщем робота я написал сегодня был тестовый режим работы заработал аж 66 рублей. Что хачу отметить как я не старался его сделать на S# один фиг написал на C#. Прям как в анекдоте ... Что если снести завод АвтоВАЗа и на его месте построить завод БМВ что будут выпускать? ОТВЕТ что что ЖИГУЛИ. Так и у меня как ни крутил,а блин опять написал на С#.
Topic starter
Thanks:

Mikhail Sukhov

Avatar
Date: 2/14/2011
Reply


MyxaGT Перейти
Так я про тоже почему они в мануале так написали то double от Double . Лано ето всё не по теме . Вообщем робота я написал сегодня был тестовый режим работы заработал аж 66 рублей. Что хачу отметить как я не старался его сделать на S# один фиг написал на C#. Прям как в анекдоте ... Что если снести завод АвтоВАЗа и на его месте построить завод БМВ что будут выпускать? ОТВЕТ что что ЖИГУЛИ. Так и у меня как ни крутил,а блин опять написал на С#.


и лишились замечательной возможности - тестирования на истории.
Thanks:

Alexander

Avatar
Date: 2/15/2011
Reply


MyxaGT Перейти
Так я про тоже почему они в мануале так написали то double от Double . Лано ето всё не по теме . Вообщем робота я написал сегодня был тестовый режим работы заработал аж 66 рублей. Что хачу отметить как я не старался его сделать на S# один фиг написал на C#. Прям как в анекдоте ... Что если снести завод АвтоВАЗа и на его месте построить завод БМВ что будут выпускать? ОТВЕТ что что ЖИГУЛИ. Так и у меня как ни крутил,а блин опять написал на С#.


Вы чего-то совсем путаете.
S# - библиотека.
C# - язык программирования.

Нельзя писать на S#.
Thanks:
1 2  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy