Не работает 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пт стоп:


Позиции:


Ордера:


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

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

Теги:


Спасибо:


1 2  >
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

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


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


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


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

Спасибо:

yammm

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


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


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

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

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

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



Спасибо:

Mikhail Sukhov

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


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


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

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

loading
clippy