#38101 - Fri Mar 02 2012 03:07 PM
Вопрос по CompressTo
|
newbie
Registered: Fri Feb 24 2012
Записи: 36
|
Здравствуйте. Запускаю скрипт в лаборатории на 15-ти минутных свечах и имею некоторый набор сделок. После этого меняю свечи на 5-ти минутные, внутри скрипта делаю CompressTo(15) и работаю уже по новому инструменту с 15-ти минутными свечами, по тому же алгоритму, что и в первом случае. При этом набор сделок во втором случае отличается от первого случая (сделок всего 2 вместо 30), причем рассчитываемые мною сигналы совпадают, а позиции не открываются. Позицию открываю через SellIfGreater, BuyIfGreater. Смотрел в debug-е, в одном случае при выполнении SellIfGreater появляется новая позиция, а в другом - нет. В чем может быть проблема?
|
|
Наверх
|
|
|
|
#38157 - Fri Mar 02 2012 08:07 PM
Re: Вопрос по CompressTo
[Re: livrrr]
|
journeyman
Registered: Mon Nov 21 2011
Записи: 88
|
мне тоже интересно, в чем причина такого расхождения. оно проявляется не только при сжатии, но если например прогнать скрипт на 60 сек и затем на 1 мин - к-во сделок (и рез-тат) могут сильно отличаться...
|
|
Наверх
|
|
|
|
#38208 - Mon Mar 05 2012 11:18 AM
Re: Вопрос по CompressTo
[Re: ViL]
|
newbie
Registered: Fri Feb 24 2012
Записи: 36
|
Декомпрессия по методу 3 не помогает, да и при чем тут декомпрессия, она в моем скрипте даже не используется, по моему, я достаточно полно описал проблему, я рассчитываю сигналы по 15-ти минутным свечам и в первом и во втором случае и заявки выставляю тоже по 15-ти минутным, но в одном случае заявки проходят, а в другом - нет. Есть ли другие варианты решения проблемы?
Отредактировано livrrr (Mon Mar 05 2012 12:52 PM)
|
|
Наверх
|
|
|
|
#38237 - Mon Mar 05 2012 05:28 PM
Re: Вопрос по CompressTo
[Re: Nektodron]
|
newbie
Registered: Fri Feb 24 2012
Записи: 36
|
Я выставляю заявки через ISecurity.Positions у инструмента, полученного методом CompressTo(). 1) Этого нельзя делать, нужно выставлять на исходном ISecurity, но ведь заявки выставляются и на новом? 2) Если нельзя, то где об этом можно прочитать? 3) Как мне найти соответствие между номерами свечей для исходного ISecurity и для нового ISecurity, если я должен выставлять заявки на исходном? 4) Должен ли я использовать Decompress<TK>(IList<TK> candles, DecompressMethodWithDef method) для декомпрессии свечей и что такое TK?
Отредактировано livrrr (Mon Mar 05 2012 05:29 PM)
|
|
Наверх
|
|
|
|
#38261 - Tue Mar 06 2012 11:51 AM
Re: Вопрос по CompressTo
[Re: Nektodron]
|
newbie
Registered: Fri Feb 24 2012
Записи: 36
|
Большое спасибо за ответы. Поставлю вопрос несколько по другому. Есть код:
public OptimProperty v_in = new OptimProperty(1, 1, 100, 1);
public OptimProperty ATR_Period = new OptimProperty(2, 1, 100, 1);
public void Execute(IContext ctx, ISecurity sec)
{
ISecurity newSec = sec.CompressTo(15);
IList<double> atr = ctx.GetData("ATR", new string[]{ATR_Period.ToString()},
delegate {return Series.AverageTrueRange(newSec.Bars, ATR_Period);});
IList<Bar> bars = newSec.Bars;
for(int i = 0; i < bars.Count - 1; i++)
{
if(...)
{
if(bars[i].Close > ... && bars[i].Close > ...)
newSec.Positions.SellIfGreater(i + 1, double.Parse(v_in.ToString()), bars[i].Close, "sellUp" + sellNumUp);
if(bars[i].Close < ... && bars[i].Close > ...)
newSec.Positions.BuyIfGreater(i + 1, double.Parse(v_in.ToString()), bars[i].Close, "buyUp" + buyNumUp);
}
else if(...)
{
if(bars[i].Close > ... && bars[i].Close < ...)
newSec.Positions.SellIfLess(i + 1, double.Parse(v_in.ToString()), bars[i].Close, "sellDown" + sellNumDown);
if(bars[i].Close < ... && bars[i].Close < ...)
newSec.Positions.BuyIfLess(i + 1, double.Parse(v_in.ToString()), bars[i].Close, "buyDown" + buyNumDown);
}
}
}
В котором сигналом на покупку/продажу является ATR, рассчитанный по newSec. Я имею разные результаты (количество сделок) на 5-ти и 15-ти минутных таймфреймах (на 15-ти минутных сделок больше), почему?
|
|
Наверх
|
|
|
|
#38268 - Tue Mar 06 2012 01:12 PM
Re: Вопрос по CompressTo
[Re: Nektodron]
|
newbie
Registered: Fri Feb 24 2012
Записи: 36
|
Прекрасно, как мне выставить заявки на нужных свечах? Где написано, что код не рабочий и так писать нельзя? Вы хотите сказать, что нужно сделать Decompress и в цикле идти по свечам от исходного ISecurity и смотреть на сигналы?
Отредактировано livrrr (Tue Mar 06 2012 01:22 PM)
|
|
Наверх
|
|
|
|
#38272 - Tue Mar 06 2012 01:32 PM
Re: Вопрос по CompressTo
[Re: Nektodron]
|
newbie
Registered: Fri Feb 24 2012
Записи: 36
|
Вы так и не ответили на вопрос где можно прочитать, что так делать нельзя. Почему разные результаты для 15 минут и 900 секунд, уже без CompressTo и Decompress?
|
|
Наверх
|
|
|
|
#38279 - Tue Mar 06 2012 01:49 PM
Re: Вопрос по CompressTo
[Re: Nektodron]
|
newbie
Registered: Fri Feb 24 2012
Записи: 36
|
Нет, не одинаковая, спасибо. Дата первой 15 минутной свечи 23.01.2012, а 900 секундной 16.02.2012.
|
|
Наверх
|
|
|
|
|
|