Не работает TakeProfitStopLossStrategy
Atom Ответить
11.02.2013


Уже в 3ий раз пишу о том что не работает TakeProfitStopLossStrategy.

Код
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using Ecng.Collections;
using Ecng.Common;

namespace StockSharp
{
    using StockSharp.Quik;
    using StockSharp.Algo;
    using StockSharp.Algo.Candles;
    using StockSharp.Algo.Strategies;
    using StockSharp.BusinessEntities;

    internal sealed class MyStrategy : Strategy
    {
        private readonly MarketDepth _depth;
        
        public MyStrategy(MarketDepth marketDepth)
        {
            _depth = marketDepth;
        }

        protected override void OnStarted()
        {
            _depth
                .WhenChanged()
                .Do(ProccesDepth)
                .Apply(this);

            base.OnStarted();
        }

        protected override void OnStopping()
        {
            try
            {
                CancelActiveOrders();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Заявки в процессе отмены {0}".Put(ex));
            }

            base.OnStopping();
        }

        private void ProccesDepth()
        {
                var bids = _depth.Bids.Max().Volume;
                var asks = _depth.Asks.Max().Volume;

                bool isBuyDirection = bids > asks;

                var order = new Order
                                {
                                    Price = isBuyDirection ? _depth.BestBid.Price : _depth.BestAsk.Price,
                                    Direction = isBuyDirection ? OrderDirections.Buy : OrderDirections.Sell,
                                    Type = OrderTypes.Limit,
                                    Volume = 1,
                                    Comment = "Вход",
                                };

                order
                    .WhenNewTrades()
                    .Do(SetProtectedOrders)
                    .Apply(this);

                RegisterOrder(order);
        }

        private void SetProtectedOrders(IEnumerable<MyTrade> myTrades)
        {
            // для каждой сделки добавляем защитную пару стратегии 
            var protectiveStrategies = myTrades.Select(t =>
                                                           {
                                                               // выставляет тейк-профит в 40 пунктов 
                                                               var takeProfit = new TakeProfitStrategy(t, 50);

                                                               // выставляет стоп-лосс в 20 пунктов 
                                                               var stopLoss = new StopLossStrategy(t, 20);

                                                               return new TakeProfitStopLossStrategy(takeProfit,
                                                                                                     stopLoss);
                                                           });

            ChildStrategies.AddRange(protectiveStrategies);
        }
    }
}


В коде использовался пример из документации, и не сработал :)

Вход и не сработавший 20пт стоп:


Позиции:


Ордера:


Т.е. ордера пытаются выставится, но сразу же отменяются, и второй раз уже не работают, т.к. срабатывание единоразовое.

В то что все работает правильно, как-то не верится :)

Теги:


Спасибо:




20 Ответов
esper

Фотография
Программист
Дата: 11.02.2013
Ответить


Без лога работы стратегий трудно что-либо сказать.
Спасибо:

yammm

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


При попытке выйти с тейком:



Попытка выйти по стопу:



Поле Security при создании объектов tp & sl я не заполнял, но в этом ошибки быть не может, т.к. заполнять не обязательно судя по документации. Неверно настроены таблицы? Настройки тоже из wnd-шника c семплами.

Остается разве что издержки работы с демо.
Автор топика
Спасибо:

Кудрев

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


Если не заплатишь хер кто поможет.Вот тебе и форум. Я по ихнему примеру спросил тоже никто не ответил.
Спасибо:

yammm

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


Кудрев Перейти
Если не заплатишь хер кто поможет.Вот тебе и форум. Я по ихнему примеру спросил тоже никто не ответил.


Да мне в принципе не критично, всегда можно собрать свой велосипед, просто в данном случае не работает семпл из доки, а это косяк :)

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

Mikhail Sukhov

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


Кудрев Перейти
Если не заплатишь хер кто поможет.Вот тебе и форум. Я по ихнему примеру спросил тоже никто не ответил.


Согласен, что-то взаимопомощь не развита среди трейдеров. Как на смартлабе так и тут, все смотрят друг на друга как на конкурентов (тот же юзер yammmm не помогает вам). Увы, но тут видимо ничего поделать нельзя.
Спасибо:

Moadip

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


yammm Перейти
При попытке выйти с тейком:



Попытка выйти по стопу:



Поле Security при создании объектов tp & sl я не заполнял, но в этом ошибки быть не может, т.к. заполнять не обязательно судя по документации. Неверно настроены таблицы? Настройки тоже из wnd-шника c семплами.

Остается разве что издержки работы с демо.


В ошибке написано что нет информации о планках.
В коде есть добавление доп. колонок DdeSecurityColumns.MaxPrice и DdeSecurityColumns.MinPrice?
В квике, в таблице "Инструменты" есть колонки Mакс. возм. цена и Мин. возм. цена?

Цитата:
Настройки тоже из wnd-шника c семплами

В wnd минимально необходимые настройки. Есть примеры которые требуют доп. настроек квика - SampleDdeExtendedInfo.

Цитата:
Да мне в принципе не критично, всегда можно собрать свой велосипед, просто в данном случае не работает семпл из доки, а это косяк :)

Подскажите в каком стандартном примере для квика используются защитные стратегии?
Если вы изменили пример и у вас что то не работает, это не косяк примера, а ваш.
Спасибо: yammm

Moadip

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


Кудрев Перейти
Если не заплатишь хер кто поможет.Вот тебе и форум. Я по ихнему примеру спросил тоже никто не ответил.

Мне показалось или вы считаете что если задали вопрос, то должны получить на него ответ?
Если не от форумян, то от создателей проекта обязательно?

Если да, то почему вы так считаете?

На вопросы даются ответы, по мере возможности. Но на все ответить нереально.

Спасибо:

yammm

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


Mikhail Sukhov Перейти
Кудрев Перейти
Если не заплатишь хер кто поможет.Вот тебе и форум. Я по ихнему примеру спросил тоже никто не ответил.


Согласен, что-то взаимопомощь не развита среди трейдеров. Как на смартлабе так и тут, все смотрят друг на друга как на конкурентов (тот же юзер yammmm не помогает вам). Увы, но тут видимо ничего поделать нельзя.


Да я бы рад, но сам пока что на неглубоком уровне понимаю.

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

yammm

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


Цитата:
Подскажите в каком стандартном примере для квика используются защитные стратегии?
Если вы изменили пример и у вас что то не работает, это не косяк примера, а ваш.


Речь идет о семпле Стратегии -> Тейк-профит и стоп-лосс

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

А насчет примеров, багов, помощи и пр. Ну вот смотрите, отловил я сегодня у вас багу в Trades, при использовании квика, при входе в лонг, OrderDirection приходит нулл, полез в сорцы, нашел почему так, решил поправить. Ну а дальше что? Форума "баги в опенсорс версии" пока нет, писать сюда, хрен знает, может у вас этой баги в природе нету в комм версии, а если есть, вы ж ее фиксить будете не для Кудрева и других, а для комм пользователей. Такой вот диссонанс получается.

В любом случае я ж без наезда написал, ответили хорошо, не ответили - ничего страшного :)



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

Mikhail Sukhov

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


yammm Перейти
OrderDirection приходит нулл, полез в сорцы, нашел почему так, решил поправить. Ну а дальше что? Форума "баги в опенсорс версии" пока нет, писать сюда


Пишите сюда.
Спасибо:

Moadip

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


Цитата:
Форума "баги в опенсорс версии" пока нет, писать сюда, хрен знает, может у вас этой баги в природе нету в комм версии, а если есть, вы ж ее фиксить будете не для Кудрева и других, а для комм пользователей. Такой вот диссонанс получается.

Почему только для комм пользователей? Бинарники вроде никуда не делись, постоянно фиксятся найденные баги и выкладываются на codeplex.
Или все теперь на сырцы перешли?Blink

Цитата:
Речь идет о семпле Стратегии -> Тейк-профит и стоп-лосс

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

В доке пример не конкретно для квика, а общий. То что нет этого нюанса именно для квика - допишу.
Спасибо:

Кудрев

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


Я не говорю, что обязаны ответить на вопрос. Просто если есть возможность, то хотя бы можно было сказать в каком направлений двигаться. В первом посте мне писали обращайся в техподдержку заплати и скажем ответ.
Можно просто сказать ошибка там, то там. А решение ищи сам. Или почитай, что ни будь.
Я не говорю, что вы бюрократы или еще кто ни будь. Или не надо у вас учиться. Учиться надо всегда. Но и если видишь, то и помочь можно как ни будь.
Спасибо:

VassilSanych

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


Кудрев Перейти
Я не говорю, что обязаны ответить на вопрос. Просто если есть возможность, то хотя бы можно было сказать, в каком направлении двигаться. В первом посте мне писали,- обращайся в техподдержку заплати, и скажем ответ.
Можно просто сказать - ошибка там, то там. А решение ищи сам. Или почитай, что-нибудь.
Я не говорю, что вы бюрократы или еще кто-нибудь. Или не надо у вас учиться. Учиться надо всему. Но и если видишь, то и помочь можно как-нибудь.

TakeProfitStopLossStrategy не использую.
Во-первых, она работает не профитами-стопами, а обыкновенными лимитками,
а во-вторых, это - просто адЪ, как и котирование, которое при первом же запуске насобирало у меня максимальную позу при том, что я вообще торговал одним контрактом. Хорошо - на demo.
Спасибо:

Mikhail Sukhov

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


VassilSanych Перейти

а во-вторых, это - просто адЪ, как и котирование, которое при первом же запуске насобирало у меня максимальную позу при том, что я вообще торговал одним контрактом. Хорошо - на demo.


Теперь есть сырцы, чтобы понять, почему так сработало, а у нас все норм. Котирование - чувствительный аппарат. Там с умом подходить нужно, а не просто взять и зарегать как дочернюю стратегию.
Спасибо:

VassilSanych

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


Mikhail Sukhov Перейти
Теперь есть сырцы, чтобы понять, почему так сработало, а у нас все норм. Котирование - чувствительный аппарат. Там с умом подходить нужно, а не просто взять и зарегать как дочернюю стратегию.

У меня и без этих "стандартных" стратегий StockSharp работает в 34 потока.
Так что отладка всего этого - то ещё увлекательное развлечение.

Спасибо:

Moadip

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


Кудрев Перейти
Просто если есть возможность, то хотя бы можно было сказать в каком направлений двигаться. В первом посте мне писали обращайся в техподдержку заплати и скажем ответ.
Можно просто сказать ошибка там, то там. А решение ищи сам. Или почитай, что ни будь.

Т.е. другими словами: Мне лень самому искать ответ на свой вопрос, найдите за меня.

Дюшес в своем посте дал вам ссылку на пост, где можно найти ответ. Как вы думаете откуда он ее взял? Не по памяти же.
Он нашел ее через поиск вместо вас.

Почему вы считаете что если вам неохота тратить свое время на поиск ответа, то кто то должен делать это за вас?
Лень шевелится? -> тех. поддержка.
На элементарные вопросы ответ можно найти самому. Надо только воспользоваться поиском.Mad

Спасибо:

Кудрев

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


Moadip Перейти
Кудрев Перейти
Просто если есть возможность, то хотя бы можно было сказать в каком направлений двигаться. В первом посте мне писали обращайся в техподдержку заплати и скажем ответ.
Можно просто сказать ошибка там, то там. А решение ищи сам. Или почитай, что ни будь.

Т.е. другими словами: Мне лень самому искать ответ на свой вопрос, найдите за меня.

Дюшес в своем посте дал вам ссылку на пост, где можно найти ответ. Как вы думаете откуда он ее взял? Не по памяти же.
Он нашел ее через поиск вместо вас.

Почему вы считаете что если вам неохота тратить свое время на поиск ответа, то кто то должен делать это за вас?
Лень шевелится? -> тех. поддержка.
На элементарные вопросы ответ можно найти самому. Надо только воспользоваться поиском.Mad



Причем тут лень. Я вот вообще не понимаю в программирований. Но охото иметь малейшее представление об этом.
Вы сразу стали во всем разбираться как будто. Тоже также по началу у кого нибудь спрашивали совета или примера.
ЕСЛИ ТЫ В ЧЕМ ТО РАЗБИРАЕШЬСЯ ЛУЧШЕ НЕ ЗНАЧИТ ЧТО ТЫ ВЫШЕ ОСТАЛЬНЫХ.
Спасибо:

Mikhail Sukhov

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


Кудрев Перейти
Я вот вообще не понимаю в программирований. Но охото иметь малейшее представление об этом.


https://stocksharp.ru/do...48-afe7-d41abc4d486b.htm Как наши материалы, так и Майкрософт. Ну и Гугл, конечно. На этом форуме, чтобы он не скатился в кашу из разнородной информации, мы держим только информацию касаемо алготрейдинга и программирования под S#. Начальные вопросы обсуждаются только в специальных форумах Обучения.
Спасибо:

Moadip

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


Цитата:
ЕСЛИ ТЫ В ЧЕМ ТО РАЗБИРАЕШЬСЯ ЛУЧШЕ НЕ ЗНАЧИТ ЧТО ТЫ ВЫШЕ ОСТАЛЬНЫХ.

Если бы считал себя выше, то вообще бы не отвечал на вопросы.
Посмотри по форуму мои посты. По мере возможности стараюсь отвечать новичкам.

Но если вижу что человек откровенно ленится элементарно почитать форум или воспользоваться поиском, и при этом обвиняет всех, кроме себя:
Цитата:
Если не заплатишь хер кто поможет.Вот тебе и форум. Я по ихнему примеру спросил тоже никто не ответил.

То желание помогать пропадает.

За сиим откланиваюсь. Не вижу смысла дальше продолжать дискуссию. Удачи в освоении C# и S#.
Спасибо:

Кудрев

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


Moadip Перейти
Цитата:
ЕСЛИ ТЫ В ЧЕМ ТО РАЗБИРАЕШЬСЯ ЛУЧШЕ НЕ ЗНАЧИТ ЧТО ТЫ ВЫШЕ ОСТАЛЬНЫХ.

Если бы считал себя выше, то вообще бы не отвечал на вопросы.
Посмотри по форуму мои посты. По мере возможности стараюсь отвечать новичкам.

Но если вижу что человек откровенно ленится элементарно почитать форум или воспользоваться поиском, и при этом обвиняет всех, кроме себя:
Цитата:
Если не заплатишь хер кто поможет.Вот тебе и форум. Я по ихнему примеру спросил тоже никто не ответил.

То желание помогать пропадает.

За сиим откланиваюсь. Не вижу смысла дальше продолжать дискуссию. Удачи в освоении C# и S#.


Я не считаю что вы ставите себя выше остальных это просто цитата.
Про заплатить так это коментарий к первому посту.
Я никого не обвиняю.
Я не ленюсь но и многое что я читаю не могу понять и пытаюсь искать где можно но многое понаучному показано и написанно а я в этом деревяный.


ЕСЛИ Я ВАС ОСКАРБИЛ ТО ПРИНОШУ СВОИ ИЗВЕНЕНИЯ.
ПРОШУ ИЗВЕНИТЬ МЕНЯ Я БЫЛ НЕ ПРАВ.
Спасибо:


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

loading
clippy