У вас не стоит Flash Player
Настройки
#800 - Sat Jan 09 2010 09:00 PM Закрытие позиции не по указанной цене
anothar Offline
journeyman

Registered: Thu Jan 07 2010
Записи: 85
Закрытие позиции осуществляется по цене на 10 пунктов( по сберу) хуже чем указана. Указанное Проскальзывание -0. Из визуального дизайнера скрипта убрано все, кроме источника и внешнего скрипта. При этом лимитированное открытие позиции осуществляется в точности по указанной цене. Далее привожу простой код кот. это демонстрирует:
double OpenPrice;
double ClosePrice;

for (int i = 2; i < sec.Bars.Count; i++)
{

OpenPrice=sec.OpenPrices[i]+0.2d;
ClosePrice = sec.OpenPrices[i] + 0.1d;
//Long
if (sec.Positions.LastLongPositionActive == null)
sec.Positions.BuyIfGreater(i, 1,OpenPrice ,"Open: "+ OpenPrice.ToString());

//Stop
if (sec.Positions.LastLongPositionActive != null && sec.Positions.LastLongPositionActive.EntryBarNum < i)
sec.Positions.LastLongPositionActive.CloseAtStop(i, ClosePrice, "Close at: " + ClosePrice.ToString());


}

Наверх
#812 - Sat Jan 09 2010 11:59 PM Re: Закрытие позиции не по указанной цене [Re: anothar]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Если был разрыв в ценах между ценой закрытия предыдущей свечи и открытием новой, то закрытие условной заявки будет по цене открытия свечи. Нельзя закрыть позицию по цене, которой не было. Проскальзывание влияет только исполнение скрипта в "живую", на лабораторию не влияет.

Наверх
#829 - Sun Jan 10 2010 11:49 AM Re: Закрытие позиции не по указанной цене [Re: Nektodron]
anothar Offline
journeyman

Registered: Thu Jan 07 2010
Записи: 85
Я правильно понимаю, что если я выбрал CloseAtStop и указал бар, то она обязательно закроется именно на этом баре или как? Потому что в приведенном примере всегда идет закрытие по цене открытия, хотя я указал другую цену( при этом закрытие по указанной цене должно по идее произойти внутри бара)

Наверх
#832 - Sun Jan 10 2010 11:58 AM Re: Закрытие позиции не по указанной цене [Re: anothar]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Нет, выбрав бар вы выставляете на нем условную заявку, и закрытие произойдет только, если диапазон цен этого бара "пересекает" цену условия. Это касается лаборатории.
В реальной жизни, на бар+1 происходит выставление заявки на сервере, и если цена дойдет до цены условия - она сработает. Скрипт об этом узнает, когда бар "закроется".

Наверх
#835 - Sun Jan 10 2010 12:10 PM Re: Закрытие позиции не по указанной цене [Re: Nektodron]
anothar Offline
journeyman

Registered: Thu Jan 07 2010
Записи: 85
Тогда вопрос остается открытым: почему закрытие в указанном выше скрипте происходит всегда по цене открытия(указанная цена почти всегда находится внутри бара!)(проверяю на сбер 30 минутки-разрывы между закрытием и открытием бара часто 0)

Наверх
#837 - Sun Jan 10 2010 12:23 PM Re: Закрытие позиции не по указанной цене [Re: anothar]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Ваш скрипт неправильно написан, BuyIfGreater и CloseAtStop должны быть всегда по i+1, иначе вы по сути смотрите в будующее. Выставляете заявку уже по закрытому (прошедшему) бару. В лаборатории будут неверные результаты.

Что касается цены открытия - у вас явно таки написано:
ClosePrice = sec.OpenPrices[i] + 0.1d;

Однако закрытие по стопу означает, что цена должна равна или ниже указанной (для лонговой позиции). Что и происходит, система видит, что цена открытия всегда НИЖЕ вашей стоп заявки и закрывает ее. Чтобы и происходило, если бы отправили такую заявку на сервер.

Поменяйте на:
ClosePrice = sec.OpenPrices[i] - 0.1d;

Но еще раз повторяю, этот скрипт смотрит в будущее, при выставлении заявок необходимо указывать i+1.

Наверх
#839 - Sun Jan 10 2010 12:41 PM Re: Закрытие позиции не по указанной цене [Re: Nektodron]
anothar Offline
journeyman

Registered: Thu Jan 07 2010
Записи: 85
Разве? Почему он смотрит в будущее. Бар открылся и при открытии я (по идее) спокойной могу выставить заявку. Например, у нас открытие рынка. Вы предлагаете ставить заявку на прошлом баре? А тогда было вчерашнее закрытие)))Где логика? То есть вместо стопа мне нужно всегда использовать лимит если я хочу закрыть по указанной цене?

Наверх
#840 - Sun Jan 10 2010 12:44 PM Re: Закрытие позиции не по указанной цене [Re: anothar]
anothar Offline
journeyman

Registered: Thu Jan 07 2010
Записи: 85
Я честно говоря, не понимаю разницы между i и i++. Разве что результаты отобразятся не так? но и тут я везде укеазываю бар на кот. должно отобразиться. Да и мы же сами пробегаем по i а не лаборатория...

Наверх
#841 - Sun Jan 10 2010 12:46 PM Re: Закрытие позиции не по указанной цене [Re: anothar]
anothar Offline
journeyman

Registered: Thu Jan 07 2010
Записи: 85
ТО есть читерства в том коде кот я написал нет, ибо подразумевается что мы ставим лимит при открытии бара. Что возможно если цена отделена на разумное расстояние от открытия

Наверх
#842 - Sun Jan 10 2010 01:04 PM Re: Закрытие позиции не по указанной цене [Re: anothar]
anothar Offline
journeyman

Registered: Thu Jan 07 2010
Записи: 85
Ооо до меня допетрило. Спасибо, Nektodron! Нужно просто разбивать отдельно на профит и лосс. Один закрывается по цене или лучше, другой по цене или хуже.

Наверх
#844 - Sun Jan 10 2010 01:53 PM Re: Закрытие позиции не по указанной цене [Re: anothar]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
читерство в том, что в момент открытия рынка (в 10.30) свечи 10.30 еще нет, она появиться только в 10.31 (для минуток).
Поэтому при тестировании, если вы используете данные из свечи 10.30, то заявку должны выставить в 10.31, если хотите получить достоверные результаты.

Наверх
#860 - Sun Jan 10 2010 03:35 PM Re: Закрытие позиции не по указанной цене [Re: Nektodron]
anothar Offline
journeyman

Registered: Thu Jan 07 2010
Записи: 85
Понятно. То есть нет даже цены открытия((( Получается что заявки выставляются в момент закрытия свечи...

Наверх
#863 - Sun Jan 10 2010 03:42 PM Re: Закрытие позиции не по указанной цене [Re: anothar]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Ну такова жизнь. Собственно, какая разница есть цена закрытия свечи или открытия новой? Если не брать перерывы между торгами, то между ними разница в один тик, на высоколиквидных бумагах - разница не существенная.

Наверх


Moderator:  ViL, sar