Изучаем S# под SmartCOM 2.0
Atom Ответить
20.01.2011


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

Теги:


Спасибо:




31 Ответов
1 2  >
Alexander

Фотография
Дата: 21.01.2011
Ответить


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


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

Вам нужен метод RegisterOrder у класса SmartTrader
Спасибо:

MyxaGT

Фотография
Дата: 21.01.2011
Ответить


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

MyxaGT

Фотография
Дата: 10.02.2011
Ответить


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
Автор топика
Спасибо:

MyxaGT

Фотография
Дата: 10.02.2011
Ответить


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


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 };

}
}
}Если чтот не прально прошу меня попровлять ! )))
Автор топика
Спасибо:

Greene-nsk

Фотография
Дата: 10.02.2011
Ответить


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

using System.Net;
...

IPEndPoint IP = new IPEndPoint(IPAddress.Parse("82.204.220.34"), 8090);
Trader = new SmartTrader(Account.Login, Account.Password, IP);
...
Спасибо:

MyxaGT

Фотография
Дата: 10.02.2011
Ответить


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


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 += () // Как здесь включить прослушку на события подключения ???
{

};



}
}
Автор топика
Спасибо:

Greene-nsk

Фотография
Дата: 10.02.2011
Ответить


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

MyxaGT

Фотография
Дата: 10.02.2011
Ответить


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

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

Alexander

Фотография
Дата: 10.02.2011
Ответить


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

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



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

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


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

Greene-nsk

Фотография
Дата: 10.02.2011
Ответить


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

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


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

Код

this.Trader.Connected += TraderConnected;

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


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

Greene-nsk

Фотография
Дата: 10.02.2011
Ответить


Alexander Перейти

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


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

Alexander

Фотография
Дата: 10.02.2011
Ответить


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

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


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


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

Alexander

Фотография
Дата: 10.02.2011
Ответить


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).
Спасибо: MyxaGT

MyxaGT

Фотография
Дата: 11.02.2011
Ответить


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

MyxaGT

Фотография
Дата: 11.02.2011
Ответить


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 = "Продали";
}

}

}
Автор топика
Спасибо:

MyxaGT

Фотография
Дата: 11.02.2011
Ответить


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

MyxaGT

Фотография
Дата: 11.02.2011
Ответить


Черти чего показывает млин
Автор топика
Спасибо:

Greene-nsk

Фотография
Дата: 11.02.2011
Ответить


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

MyxaGT

Фотография
Дата: 12.02.2011
Ответить


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

MyxaGT

Фотография
Дата: 12.02.2011
Ответить


Странно почемуто он мне показывает прошлую сделку а мне надо чтоб он показывал только ту что вот вот произойдёт ... Тоесть включаем прослушку и после того как произойдёт сделка он только тогда показывает а он сразу при включении прослушки уже показывает типо мол купили или там продали в зависимости от того что сделали в прошлый раз 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 = "Продали";
}

}

}
Автор топика
Спасибо:

MyxaGT

Фотография
Дата: 13.02.2011
Ответить


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

Alexander

Фотография
Дата: 13.02.2011
Ответить


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


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

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

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

MyxaGT

Фотография
Дата: 14.02.2011
Ответить


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

Mikhail Sukhov

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


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


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

Alexander

Фотография
Дата: 14.02.2011
Ответить


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


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

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

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

loading
clippy