У вас не стоит Flash Player
Настройки
#24291 - Tue Mar 29 2011 11:58 AM StopLoss работает не корректно. XXX.
Sherman81 Offline
enthusiast

Registered: Mon Jan 10 2011
Записи: 251
В реальной торговле появились какие-то невероятные глюки.

Скрипт купил лот rim1 по цене 199550.

Далее в нем есть некоторое условие, и если оно выполняется, выставляется stoploss заявка.

Цена заявки для лонга: position.EntryPrice - stopLossPrice.

stopLossPrice - это умножение двух положительных чисел. Поэтому результат положительный.

Скрипт же исполнил stoploss по цене 199935 !!

Как такое может быть?

p.s. На исторических данных такого нету.


Отредактировано Sherman81 (Tue Mar 29 2011 11:59 AM)

Наверх
#24292 - Tue Mar 29 2011 12:00 PM Re: StopLoss работает не корректно. XXX. [Re: Sherman81]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Для начала можно увидеть логи с указанием номера заявки стопа? Присылайте на contact@tslab.ru

Наверх
#24294 - Tue Mar 29 2011 12:20 PM Re: StopLoss работает не корректно. XXX. [Re: Nektodron]
Sherman81 Offline
enthusiast

Registered: Mon Jan 10 2011
Записи: 251
Да. У меня есть одна мысль. Мой код stoploss:

Code:
IPosition position = source.Positions.LastPositionActive;


Code:
double stopLossPrice = stopLossBase * koeff;
						
			if (position.IsShort) {
				stopLossPrice = position.EntryPrice + stopLossPrice;
			} else {
				stopLossPrice = position.EntryPrice - stopLossPrice;
			}
			
			position.CloseAtStop(
				barIndex,
				stopLossPrice,
				SignalUtils.STOP_LOSS_CLOSE
			);


Может ли быть такое, что position.IsShort вернул true для позиции типа лонг?


Как у вас вообще дела с многопотчоностью? Если выполняются два скрипта, надо ли думать о том, чтобы все что внутри было thread-safe?


Отредактировано Sherman81 (Tue Mar 29 2011 12:28 PM)

Наверх
#24295 - Tue Mar 29 2011 12:37 PM Re: StopLoss работает не корректно. XXX. [Re: Sherman81]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Многопоточность тут не причем, меня вот смущает barIndex... вы выставляете стоп на том же баре где и сигнал, т.е. выставляете его на 1 бар в прошлое. Отсюда и ошибка.

Наверх
#24296 - Tue Mar 29 2011 12:41 PM Re: StopLoss работает не корректно. XXX. [Re: Nektodron]
Sherman81 Offline
enthusiast

Registered: Mon Jan 10 2011
Записи: 251
Нет. Выставление идет так:

Code:
StopLoss stopLoss;
for (int barIndex = 0; barIndex < barsCount; barIndex++) {
int nextBarIndex = barIndex + 1;
IPosition position = source.Positions.LastPositionActive;
...
stopLoss = new StopLoss(stopLossBaseList, koeff); // both are positive
stopLoss.createOn(position, nextBarIndex);
}


StopLoss
Code:
public class StopLoss {
		private IList<double> stopLossBaseList;
		double koeff = 0;
			
		public StopLoss(IList<double> stopLossBaseList, double koeff) {
			this.stopLossBaseList = stopLossBaseList;
			this.koeff = koeff;
		}
		
		public void createOn(IPosition position, int barIndex) {
			double stopLossPrice = stopLossBaseList[barIndex - 1] * koeff;
						
			if (position.IsShort) {
				stopLossPrice = position.EntryPrice + stopLossPrice;
			} else {
				stopLossPrice = position.EntryPrice - stopLossPrice;
			}
			
			position.CloseAtStop(
				barIndex,
				stopLossPrice,
				SignalUtils.STOP_LOSS_CLOSE
			);
		}
	}


Отредактировано Sherman81 (Tue Mar 29 2011 12:42 PM)

Наверх
#24297 - Tue Mar 29 2011 12:42 PM Re: StopLoss работает не корректно. XXX. [Re: Sherman81]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
т.е. position.CloseAtStop(barIndex, ...
там на самом деле barIndex+1? или нет?

Наверх
#24298 - Tue Mar 29 2011 12:43 PM Re: StopLoss работает не корректно. XXX. [Re: Nektodron]
Sherman81 Offline
enthusiast

Registered: Mon Jan 10 2011
Записи: 251
Выше привел полный код класса StopLoss.

Наверх
#24299 - Tue Mar 29 2011 12:47 PM Re: StopLoss работает не корректно. XXX. [Re: Sherman81]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
логи с указанием номера заявки все же можно прислать?

Наверх
#24301 - Tue Mar 29 2011 12:53 PM Re: StopLoss работает не корректно. XXX. [Re: Nektodron]
Sherman81 Offline
enthusiast

Registered: Mon Jan 10 2011
Записи: 251
Я выслал уже на contact@tslab.ru

В теме письма указал ссылку на эту ветку.

Для верности перешлю еще раз.

Наверх
#24303 - Tue Mar 29 2011 12:56 PM Re: StopLoss работает не корректно. XXX. [Re: Sherman81]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Да, лог пришел, номер заявки не указан

Наверх
#24307 - Tue Mar 29 2011 01:00 PM Re: StopLoss работает не корректно. XXX. [Re: Nektodron]
Sherman81 Offline
enthusiast

Registered: Mon Jan 10 2011
Записи: 251
В повторном письме я указал строчки входа и выхода, в них и номера заявок наверное есть? Если нет, то где их посмотреть?

Наверх
#24308 - Tue Mar 29 2011 01:03 PM Re: StopLoss работает не корректно. XXX. [Re: Nektodron]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
я нашел заявку.
Ваш скрипт сгенерировал закрытие по рынку.


10:09:58.78[4]DEBUG:-665,208262469027
10:09:58.78[4]INFO :-665,208262469027
10:09:58.78[4]INFO :RIM1:FORTS: Add command for Close by market aproved: True
10:09:58.78[4]DEBUG:Added command approve='True' comment='Выход по рынку'
10:09:58.78[4]INFO :RIM1:FORTS: Orders has been updated for sherman2-rim-beta. 0 active orders, 5 total
10:09:58.78[4]INFO :RIM1:FORTS: NewByMarketOrder buy=False SL$Close$102246723 count=1
10:09:58.78[4]INFO :RIM1:FORTS: NewCloseOrder SL$Close$102246723, B/S=False, Price=, Type=Market, Comment=sherman2-rim-beta.SL$Close$102246723


-665,208262469027 - это число что означает?

Наверх
#24311 - Tue Mar 29 2011 01:08 PM Re: StopLoss работает не корректно. XXX. [Re: Nektodron]
Sherman81 Offline
enthusiast

Registered: Mon Jan 10 2011
Записи: 251
Да в общем-то ничего особенного не означает. Меня другое смущает. Пусть по рынку, но почему тогда сигнал:

sherman2-rim-beta.SL$Close$

Если закрывается по рынку, то сигнал должен быть:

sherman2-rim-beta.C$Close$

Других сигналов closeAtMarket нету в скрипте.

Наверх
#24317 - Tue Mar 29 2011 01:37 PM Re: StopLoss работает не корректно. XXX. [Re: Sherman81]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Информации не достаточно. Очень похоже, что ве закрытие идет по прошлой свече и у вас выставлен параметр автозакрытие. Поэтому идет заявка по рынку.

Наверх
#24320 - Tue Mar 29 2011 01:46 PM Re: StopLoss работает не корректно. XXX. [Re: Nektodron]
Sherman81 Offline
enthusiast

Registered: Mon Jan 10 2011
Записи: 251
Действия по автозакрытию: 0.

Может быть это связано с неправильным блоком, который мы обсужадли тут:

http://www.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=24315#Post24315

Добавил условие на проверку бара в обоих скриптах.

Наверх


Moderator:  ViL, sar