Уже в 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)
ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください
Без лога работы стратегий трудно что-либо сказать.
При попытке выйти с тейком:
Попытка выйти по стопу:
Поле Security при создании объектов tp & sl я не заполнял, но в этом ошибки быть не может, т.к. заполнять не обязательно судя по документации. Неверно настроены таблицы? Настройки тоже из wnd-шника c семплами.
Остается разве что издержки работы с демо.
В ошибке написано что нет информации о планках. В коде есть добавление доп. колонок DdeSecurityColumns.MaxPrice и DdeSecurityColumns.MinPrice? В квике, в таблице "Инструменты" есть колонки Mакс. возм. цена и Мин. возм. цена?
Речь идет о семпле Стратегии -> Тейк-профит и стоп-лосс
Если бы там было указанно что при использовании тейк-профит и стоп-лосс стратегий, требуются доп колонки, это сэкономило бы кучу времени, и мне и другим юзерам.
А насчет примеров, багов, помощи и пр. Ну вот смотрите, отловил я сегодня у вас багу в Trades, при использовании квика, при входе в лонг, OrderDirection приходит нулл, полез в сорцы, нашел почему так, решил поправить. Ну а дальше что? Форума "баги в опенсорс версии" пока нет, писать сюда, хрен знает, может у вас этой баги в природе нету в комм версии, а если есть, вы ж ее фиксить будете не для Кудрева и других, а для комм пользователей. Такой вот диссонанс получается.
В любом случае я ж без наезда написал, ответили хорошо, не ответили - ничего страшного :)
Пишите сюда.
Если не заплатишь хер кто поможет.Вот тебе и форум. Я по ихнему примеру спросил тоже никто не ответил.
Да мне в принципе не критично, всегда можно собрать свой велосипед, просто в данном случае не работает семпл из доки, а это косяк :)
Согласен, что-то взаимопомощь не развита среди трейдеров. Как на смартлабе так и тут, все смотрят друг на друга как на конкурентов (тот же юзер yammmm не помогает вам). Увы, но тут видимо ничего поделать нельзя.
Если да, то почему вы так считаете?
На вопросы даются ответы, по мере возможности. Но на все ответить нереально.
Да я бы рад, но сам пока что на неглубоком уровне понимаю.
Я не говорю, что обязаны ответить на вопрос. Просто если есть возможность, то хотя бы можно было сказать в каком направлений двигаться. В первом посте мне писали обращайся в техподдержку заплати и скажем ответ. Можно просто сказать ошибка там, то там. А решение ищи сам. Или почитай, что ни будь. Я не говорю, что вы бюрократы или еще кто ни будь. Или не надо у вас учиться. Учиться надо всегда. Но и если видишь, то и помочь можно как ни будь.
Теперь есть сырцы, чтобы понять, почему так сработало, а у нас все норм. Котирование - чувствительный аппарат. Там с умом подходить нужно, а не просто взять и зарегать как дочернюю стратегию.
Дюшесв своем посте дал вам ссылку на пост, где можно найти ответ. Как вы думаете откуда он ее взял? Не по памяти же. Он нашел ее через поиск вместо вас.
Почему вы считаете что если вам неохота тратить свое время на поиск ответа, то кто то должен делать это за вас? Лень шевелится? -> тех. поддержка. На элементарные вопросы ответ можно найти самому. Надо только воспользоваться поиском.😡
Причем тут лень. Я вот вообще не понимаю в программирований. Но охото иметь малейшее представление об этом. Вы сразу стали во всем разбираться как будто. Тоже также по началу у кого нибудь спрашивали совета или примера. ЕСЛИ ТЫ В ЧЕМ ТО РАЗБИРАЕШЬСЯ ЛУЧШЕ НЕ ЗНАЧИТ ЧТО ТЫ ВЫШЕ ОСТАЛЬНЫХ.
http://stocksharp.com/doc/?topic=html/a594740e-58f1-4148-afe7-d41abc4d486b.htm Как наши материалы, так и Майкрософт. Ну и Гугл, конечно. На этом форуме, чтобы он не скатился в кашу из разнородной информации, мы держим только информацию касаемо алготрейдинга и программирования под S#. Начальные вопросы обсуждаются только в специальных форумах Обучения.
Но если вижу что человек откровенно ленится элементарно почитать форум или воспользоваться поиском, и при этом обвиняет всех, кроме себя:
За сиим откланиваюсь. Не вижу смысла дальше продолжать дискуссию. Удачи в освоении C# и S#.
Но если вижу что человек откровенно ленится элементарно почитать форум или воспользоваться поиском, и при этом обвиняет всех, кроме себя:
За сиим откланиваюсь. Не вижу смысла дальше продолжать дискуссию. Удачи в освоении C# и S#.
Я не считаю что вы ставите себя выше остальных это просто цитата. Про заплатить так это коментарий к первому посту. Я никого не обвиняю. Я не ленюсь но и многое что я читаю не могу понять и пытаюсь искать где можно но многое понаучному показано и написанно а я в этом деревяный.
ЕСЛИ Я ВАС ОСКАРБИЛ ТО ПРИНОШУ СВОИ ИЗВЕНЕНИЯ. ПРОШУ ИЗВЕНИТЬ МЕНЯ Я БЫЛ НЕ ПРАВ.