candlemanager))
Atom
02.02.2011


в своем старом коде ничего не менял но появились ошибки "В экземпляре объекта не задана ссылка на объект."
и candle стала null. в чем может быть проблема??? версия 1.8 ))))

Теги:


Спасибо:


<< < 2 3 4 
Mikhail Sukhov

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


avkar Перейти
Mikhail Sukhov Перейти


Мне все равно до конца не ясно. Нужно что отметить? Что она не дожидается формирования свечек?


Что функция не получает свечи из Квика, а возвращает только уже полученные свечи, и поэтому, если между RegisterTimeFrameCandles и GetTimeFrameCandles не прошло достаточно времени, возвращает пустое множество (или не все свечи).


Насчет пустого множества согласен. И я сейчас посмотрел код, там как раз пустой массив и возвращается. У вас не так?

Насчет времени... Не думаю что это имеет вообще расписывать. Потому что на этом S# целиком построен. Те же ITrader.Security, Order, MyTrades - все они будут возвращать пустые массивы, пока не придут данные по экспорту.
Спасибо:

mr leng

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


рецедив)))

происходит что-то вообще сумашедшее....

один раз запускаю получаю правильные свечи
во второй раз получаю null
в третий раз могу получить не правильную свечку(close или low не совпадпют с настоящим)

и это когда свечка уже точно сформироваться

хелп ми)
Спасибо:

Greene-nsk

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


Вы бы код привели, как вы дожидаетесь окончания формирования свечек. Было бы легче подсказывать.
Спасибо:

mr leng

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



class SmaStrategy : Strategy
{
private readonly CandleManager _candleManager;
private TimeSpan _timeFrameStra;
private double m;

private DateTime _nextTime;
private string line;
private string _ClientCode1;
private int _VOL1;
private bool _isClientChek1;

public SmaStrategy(CandleManager candleManager, ITrader trader, int vol1, LH20 lh20, string clientcode1, string account, Security security, TimeSpan TimeFrameStra, bool isChek1, TimeSpan interval)
: base(trader, account, security, interval)
{
_candleManager = candleManager;

_timeFrameStra = TimeFrameStra;
_ClientCode1 = clientcode1;
_VOL1 = vol1;
_isClientChek1 = isChek1;
this.LH20 = lh20;
}

public LH20 LH20 { get; private set; }

protected override void OnRunning()
{
// вычисляем время окончания текущей пятиминутки
_nextTime = _timeFrameStra.GetCandleBounds(base.Trader).Max;

base.OnRunned();
}

protected override bool OnProcess()
{
// если наша стратегия в процессе остановки
if (base.ProcessState == StrategyProcessStates.Stopping)
{
base.Orders.Where(o => o.State == OrderStates.Active).ForEach(base.Trader.GuarantyCancelOrder);
return false;
}



if (base.Trader.MarketTime < _nextTime)
{
return true;
}



if (base.Trader.MarketTime > _nextTime)
{
// получаем сформированную свечку
var candle = _candleManager.GetTimeFrameCandle(Security, _timeFrameStra, _nextTime - _timeFrameStra);

_nextTime += _timeFrameStra;


// if (candle == null)
// return true;
var t = candle.ClosePrice;
var t1 = candle.LowPrice ;
var t2 = candle.HighPrice;
var t3 = candle.OpenPrice;
var ty = 0;
}
return true;

}

}



ничего всехр естественного, вот этот код и выводит то нормальные свечи то ненормальные(
Спасибо:

avkar

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


Сначала нужно зарегистрировать ваш тайм-фрейм для инструмента с помощью функции RegisterTimeFrameCandles, а потом уже получать свечи, а в вашем коде я этого не вижу.
Спасибо:

avkar

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


Mikhail Sukhov Перейти

Насчет пустого множества согласен. И я сейчас посмотрел код, там как раз пустой массив и возвращается. У вас не так?


Да, при первом вызове GetTimeFrameCandles всегда возвращается пустое множество. При следующих вызовах, бывают, что свечи выходят не полностью, но это происходит только, если квик только-что загрузился, и таблица всех сделок еще до конца не заполнилась с сервака.
Спасибо:

mr leng

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


тайм фрейм регистрировал
вызывал уже после формирования свечи
все равно

перешел последнию версию
тьфу-тьфу-тьфу
Спасибо:

Mikhail Sukhov

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


mr leng Перейти

class SmaStrategy : Strategy
{

...
ничего всехр естественного, вот этот код и выводит то нормальные свечи то ненормальные(


Я так понял, что это стратегия из моего примера? Во-первых, в ней есть ошибки (я нашел их, когда тестировал ее на истории в 3.0). Во-вторых, я нашел не все.[biggrin] Все таки нужно отдавать отчет в том, что примеры - это больше популистское, чем практичное.
Спасибо:
<< < 2 3 4 

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

loading
clippy