← Zurück

Несколько инструментов в стратегии

Юзал поиск но не нашел как реализовать чтобы в стратегии можно было использовать несколько инструментов


_strategy = new SmaStrategy()
			{
				Volume = 1,
				Portfolio = portfolio,
				Security = RIU,
				Trader = _trader
			};


потом в самой стратегии


                    order = this.CreateOrder(direction, price + _point, base.Volume);
                    base.RegisterOrder(order);

В случае выставления заявок по 2-м инструментам, как лучше реализовать?

War dieses Thema hilfreich?

Thema teilen

Kommentare (12)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Alexander
Alexander
  1. BasketSecurity
  2. Как свойство стратегии заводите что надо
OvcharenkoVI
OvcharenkoVI

Я не использую basketSecurity.

в самом классе стратегии сначала создаю

        public Security security_2;

Потом

        public IndStrategy(Security security_2)
        {
            this.security_2 = security_2;
        }

А в MainWindow

                security_2 = (Security)SelectedSecurity_2;

                _strategy = new IndStrategy(security_2)
                {
                    Security = security,
                    security_2 = security_2,
                };

Куски кода вырезал соответственно) но так в принципе понятно)

OvcharenkoVI
OvcharenkoVI

А с заявками еще проще

            var order = new Order
            {
                Type = OrderTypes.Market,
                Volume = 1,
                Portfolio = base.Portfolio,
                Security = base.Security,
                Direction = OrderDirections.Sell,
            };

            var order1 = new Order
            {
                Type = OrderTypes.Market,
                Volume = 1,
                Portfolio = base.Portfolio,
                Security = security_2,
                Direction = OrderDirections.Buy,
            };


            Trader.RegisterOrder(order);
            Trader.RegisterOrder(order1);
foRs NattyD
foRs
foRs Autor

Спасибо, буду пробывать

foRs
foRs Autor

реализовал на тестирование по истории. так вот стата учитывается только для 1-го инструмента. выходит если использовать такой вариант нужно самому отслеживать профиты и лосы?

OvcharenkoVI
OvcharenkoVI

видимо для тестирования следует использовать корзину инструментов... я занимаюсь арбитражными роботами, мне тестирование не поможет, поэтому не могу ответить

Pantov
Pantov

Давайте вернемся к этой теме. Все-же как более правильно в рамках событийной стратегии работать по одному портфелю с двумя и более инструментами, а также с одним инструментом по разным портфелям? Хотелось бы теории и кода, спасибо.

Alexander
Alexander

Pantov: Давайте вернемся к этой теме. Все-же как более правильно в рамках событийной стратегии работать по одному портфелю с двумя и более инструментами, а также с одним инструментом по разным портфелям? Хотелось бы теории и кода, спасибо.

А мой ответ совсем-совсем не устраивает? Если стратегия 1, но несколько инструментов - используйте либо BasketSecurity, либо полями в стратегии задавайте свои инструменты.

По разным портфелям с одним инструментам - это просто разные стратегии.

Pantov
Pantov

либо полями в стратегии задавайте свои инструменты.

Это можно пояснить на примере (у стратегии ведь одно поле Security)?

Alexander
Alexander

Pantov:

либо полями в стратегии задавайте свои инструменты.

Это можно пояснить на примере (у стратегии ведь одно поле Security)?

А кто мешает в классе создавать свои собственные уникальные поля?

Pantov
Pantov

Т.е. перед постановкой заявки в стратегии присваивать полю Security нужный инструмент? Будут ли при этом для стратегии правильно считаться позиции, прибыль-убыток и др. ?

Alexander
Alexander

Pantov: Т.е. перед постановкой заявки в стратегии присваивать полю Security нужный инструмент? Будут ли при этом для стратегии правильно считаться позиции, прибыль-убыток и др. ?

OvcharenkoVI вам выше написал что такое дополнительные свойства класса. Посмотрите свой пост.

Нет, не будет. Переопределяйте классы и считайте сами. Либо, в третий раз повторяю, используйте BasketSecurity.