Приветствую уважаемых Михаила и всех коллег.
- После перехода на 2.6 у меня перестало срабатывать ActionStrategyConditionHelper например CurrentCandleTotalVolumeMore в 2.5.2 работало. Или у меня одного так и больше никто ничего подобного не заметил?
Делаю так
public static Func<bool> ctv;
...
_candleManager.CandlesChanged += (token, candles) =>
{
ctv= ActionStrategyConditionHelper.CurrentCandleTotalVolumeMore(token, 1);
DrawCandles(candles);
};
В DrawCandles вывожу ctv(), которое всегда false , при этом данные по свечкам ок
- Пример в документации "Тейк профит и стоп лосс" пункт 2. а) не компилируется предложение
batch.ChildStrategies.AddRange(trades.Select
AddRange не определён в ChildStrategies и непонятно откуда тут берётся trades или должно быть myTrades ?
и хотелось бы увидеть пример _takeProfit(t); и _stopLoss(t);
б) И еще последний вопрос про логику обработки NewMyTrades в этом же примере. Когда сработают защитные заявки разве не произойдет опять же событие NewMyTrades и выставятся защитные заявки на защитные же.
Спасибо и с уважением!
Comments (16)
Login or Create account, Log in or register to leave a comment
Посмотрите в обработчике, что выдает token.Manager.GetCurrentTimeFrameCandle(token.Security, timeFrame); и чему у такой свечки равен TotalVolume.
а вот token.Manager.GetCurrentTimeFrameCandle(token.Security, timeFrame); выдаёт всё врема null почему то :( хотя свечки рисуются, правда рисую я их по candles
В 2.5.2 работало 100 пудов, я ничего не менял :)
Вы вот тут что то правили, не могли задеть?
Спасибо и с уважением!
ITrader.MarketTime все корректно возвращает? Если копнуть еще поглубже, CandleManager.GetTimeFrameCandle для необходимо времени так же null возвращает?
Извиняюсь за паузу. Отъезжал. Да ITrader.MarketTime - верный , а вот CandleManager.GetTimeFrameCandle всё время даёт null :(
А свечки то вообще формируются? NewCandles CandlesChanged?
ну да, как я говорил, я же их рисую в DrawCandles по candlesиз событий NewCandles и CandlesChanged
У меня по тестам свечка выдается. Попробуйте все таки точно определить, то ли время передается в CandleManager и есть ли на тот момент свечка (получив их через GetTimeFrameCandles и сравнив, имеет ли необходимая среди нет).
А у меня нет :(
Ну вот полностью код примера c выводом
вывод
Видим что Helper всё время false Что же я всё таки делаю не так? В 2.5.2 это работало
Спасибо и с уважением!
(Update) только что собрал этот же пример не поменяв ни строчки на 2.5.2 вот вывод
Две новости, хорошая и плохая. Плохая - пока не знаю почему код не так работает. Хорошая, нашел в Вашем коде ошибку😀 Вы создаете просто нереальное количество условий. Создавайте один раз. Вместо:
Надо писать:
var tfToken = _candleManager.RegisterTimeFrameCandles(_sec, _timeFrame);
// или по вашему ctv = ActionStrategyConditionHelper.CurrentCandleTotalVolumeMore(tfToken, 1); ctv = tfToken.CurrentCandleTotalVolumeMore(1);
_candleManager.CandlesChanged += (token, candles) => { // Console(ctv()); DrawCandles(candles); };
Ошибку нашел. К след. неделе выложу фикс 2.6.1.
Супер! Фикс 2.6.1 работает подтверждаю. :) Спасибо!
Единственно небольшая помарочка. В документации в том же примере "Тейк-профит и стоп-лосс ".
Вы добавили фильтрацию по TargetOrder. Отлично! Но в конце
base.ChildStrategies.Add(batch);
будет выполняться всегда независимо от от того создалась дочерняя стратегия по или нет. И может возникнуть ошибка что "дочерняя стратегия не найдена".
Спасибо и с уважением!
Да, надо поставить проверку:
Вообщем жду резолюции. Видно что на 2.5.2 работало иначе.
А тем временем, пока роботы курят ... (не из-за новой версии, можно продолжать работать на 2.5.2, а просто курят)
РОССИЯ 2018! Ура!