| Предыдущая тема :: Следующая тема | 
	
	
		| Автор | Сообщение | 
	
		| Ilja0301 Студент
 
 
 Зарегистрирован: 07.10.2011
 Сообщения: 12
 
 
 | 
			
				|  Добавлено: Вт Дек 20, 2011 2:52 pm    Заголовок сообщения: Buy-Limit ордер в стратегии | цитата |  
				| 
 |  
				| Выставляю в стратегии buy-limit ордер на открытие длинной позиции. При прогоне на истории ордер исполняется когда до установленного limit доходит цена ПРОДАЖИ а не ПОКУПКИ.
 При переводе стратегии в автомат ордер исполняется как и положено, то есть когда limit-а достигает цена ПОКУПКИ.
 Как подправить симулятор чтоб не врал?
 |  | 
	
		| Вернуться к началу |  | 
	
		| Admin Site Admin
 
  
 Зарегистрирован: 01.01.1970
 Сообщения: 250
 
 
 | 
			
				|  Добавлено: Пт Дек 23, 2011 2:31 pm    Заголовок сообщения: | цитата |  
				| 
 |  
				| А точный вид скрипта можете привести или это "коммерческая тайна"? Если так, то может в асю или на почту, чтобы наши разработчики могли глянуть? |  | 
	
		| Вернуться к началу |  | 
	
		| Ilja0301 Студент
 
 
 Зарегистрирован: 07.10.2011
 Сообщения: 12
 
 
 | 
			
				|  Добавлено: Вс Дек 25, 2011 6:00 pm    Заголовок сообщения: | цитата |  
				| 
 |  
				| До состояния "Коммерческой тайны" пока еще не дорос   Скрипт прилагаю здесь.
 Сигнал использовался в стратегии на паре EUR/USD,15min, Спред на покупку=0, Спред на продажу=4.
 Несоответствие истории и авт.режима замечал при исполнении ордеров Buy-Limit и ExitSort-Limit. C Sell-Limit и ExitLong-Limit вроде всё в порядке.
 Если научите как это сделать - могу дополнительно прислать скриншоты.
 Спасибо за поддержку.
 
 
 
 
	
		
	 
		| Description: |  |  Download
 |  
		| Имя файла: | OFR.rar |  
		| Filesize: | 2.02 KB |  
		| Downloaded: | 0 Time(s) |  
 |  | 
	
		| Вернуться к началу |  | 
	
		| LanguageSupport разработчик языка
 
 
 Зарегистрирован: 18.08.2005
 Сообщения: 111
 
 
 | 
			
				|  Добавлено: Пн Дек 26, 2011 4:08 pm    Заголовок сообщения: | цитата |  
				| 
 |  
				| На истории система работает следующим образом пусть в 7:45 выставлен ордер Buy ("BuyRet") Next Bar At EntryLevel Limit;
 где EntryLevel равен 1.3029
 что означает купить ПРИ ПЕРВОЙ ВОЗМОЖНОСТИ на следующем баре (8:00) по цене 1.3029 или НИЖЕ
 следующий бар в истории имеет HIGH = 1.3035 и LOW = 1.3027, как менялась цена в течении 15 минут на баре неизвестно, следовательно берется худший вариант 1.3029
 следовательно на баре 8:00 будет совершена покупка по цене 1.3029 + спред на покупку(у Вас он = 0)
 |  | 
	
		| Вернуться к началу |  | 
	
		| LanguageSupport разработчик языка
 
 
 Зарегистрирован: 18.08.2005
 Сообщения: 111
 
 
 | 
			
				|  Добавлено: Пн Дек 26, 2011 4:20 pm    Заголовок сообщения: | цитата |  
				| 
 |  
				| при работе в автоматическом или полуавтоматическом режиме в качестве текущей цены ВСЕГДА берется CLOSE (совпадающий с ASK) как это и видно на графике |  | 
	
		| Вернуться к началу |  | 
	
		| LanguageSupport разработчик языка
 
 
 Зарегистрирован: 18.08.2005
 Сообщения: 111
 
 
 | 
			
				|  Добавлено: Пн Дек 26, 2011 4:23 pm    Заголовок сообщения: | цитата |  
				| 
 |  
				| те модель такая: нет отдельной цены на покупку и продажу, а есть текущая цена к которой прибавляется спред на покупку или отнимаеся спред на продажу |  | 
	
		| Вернуться к началу |  | 
	
		| Ilja0301 Студент
 
 
 Зарегистрирован: 07.10.2011
 Сообщения: 12
 
 
 | 
			
				|  Добавлено: Пн Дек 26, 2011 7:01 pm    Заголовок сообщения: | цитата |  
				| 
 |  
				| Уважаемый LanguageSupport! 
 Благодарю за подробное разъяснение работы на истории.
 Вы привели очень показательный пример, который я сейчас и продолжу рассматривать.
 
 Беда в том, что значение LOW берется по BID (а не по ASK).
 И если LOW (он же BID) = 1.3027, то в этот момент значение ASK (а следовательно и CLOSE) составит скорее всего 1.3027+0.0004=1.3031
 (В данном случае 0.0004 - стандартное значение спреда на рассматриваемой паре).
 Таким образом, в (полу)автомате при EntryLevel=1.3029 BuyLimit-ордер на данном баре 8:00 НЕ исполнится вовсе...
 
 А на графике очень странно наблюдать - как отметки входов в длинную позицию, выполненные только что в (полу)автомате - при нажатии
 клавиши F5 переезжают не только на другие уровни, но и вообще на другие бары...
 
 Такая работа симулятора делает бессмысленными любые попытки отптимизации разрабатываемой стратегии, так как на деле результаты её работы будут совершенно другими.
 |  | 
	
		| Вернуться к началу |  | 
	
		| LanguageSupport разработчик языка
 
 
 Зарегистрирован: 18.08.2005
 Сообщения: 111
 
 
 | 
			
				|  Добавлено: Вт Дек 27, 2011 11:49 am    Заголовок сообщения: | цитата |  
				| 
 |  
				| Да, в Ваших рассуждениях есть резон. При разработке симулятора у нас было несколько вариантов его реализации на истории. Предполагалось, что пользователи оценят и внесут свои предложения, но многие годы никакого фидбека не было, видать никто так глубоко в систему лезть не хотел.  В следующей версии программы мы поменяем учет спреда при торговле на истории, а именно: ордер  Buy Next Bar At Price Limit будет исполнятся ТОЧНО по цене Price (а не Price + спред) если Price >= LOW + спред на покупку. Соответсвенно изменятся и условия входа для других ордеров. Правильно ли мы поняли суть Ваших замечаний или у Вас есть другие предложения? |  | 
	
		| Вернуться к началу |  | 
	
		| Ilja0301 Студент
 
 
 Зарегистрирован: 07.10.2011
 Сообщения: 12
 
 
 | 
			
				|  Добавлено: Вт Дек 27, 2011 2:33 pm    Заголовок сообщения: | цитата |  
				| 
 |  
				| Я думаю, такая корректировка будет правильной. 
 Единственное, в чем я Вас не понял - это относительно изменения условий входа для других ордеров. Отмеченная мной неточность проявляется только в покупочных лимит-ордерах Buy и ExitShort, по крайней мере мне так показалось. В работе лимит-ордеров Sell и ExitLong на мой взгляд всё в порядке.
 
 В любом случае, тестирование новой версии я обязательно проведу и о результатах отпишу здесь.
 Еще раз благодарю Вас за оперативный отзыв на замечания пользователя.
 |  | 
	
		| Вернуться к началу |  | 
	
		| LanguageSupport разработчик языка
 
 
 Зарегистрирован: 18.08.2005
 Сообщения: 111
 
 
 | 
			
				|  Добавлено: Вт Дек 27, 2011 2:49 pm    Заголовок сообщения: | цитата |  
				| 
 |  
				| Ну ведь HIGH считается по ASK (High = max(High,Ask)) а значит цена на продажу никогда не достигнет High, максимум High - спред(на продажу) |  | 
	
		| Вернуться к началу |  | 
	
		| Ilja0301 Студент
 
 
 Зарегистрирован: 07.10.2011
 Сообщения: 12
 
 
 | 
			
				|  Добавлено: Ср Дек 28, 2011 8:35 am    Заголовок сообщения: | цитата |  
				| 
 |  
				| OK, ждем новую версию. P.S. А со стоп-ордерами у нас всё в порядке?
 |  | 
	
		| Вернуться к началу |  | 
	
		| LanguageSupport разработчик языка
 
 
 Зарегистрирован: 18.08.2005
 Сообщения: 111
 
 
 | 
			
				|  Добавлено: Ср Дек 28, 2011 10:36 am    Заголовок сообщения: | цитата |  
				| 
 |  
				| Все посмотрим-проверим |  | 
	
		| Вернуться к началу |  | 
	
		| Ilja0301 Студент
 
 
 Зарегистрирован: 07.10.2011
 Сообщения: 12
 
 
 | 
			
				|  Добавлено: Чт Май 17, 2012 12:14 pm    Заголовок сообщения: | цитата |  
				| 
 |  
				| Прошу прощения за мое долгое отсутствие, но теперь я снова в теме и, как обещал, отписываюсь о результатах. 
 Действительно, в новой версии с уровнями входа в позицию вроде бы всё нормализовалось.
 Однако теперь вызывает некоторое недоумение влияние параметра "спред" на выполнение ордеров.
 
 Прилагаю два скриншота, снятых при прогоне на истории одной и той же стратегии (скрипт см.выше), но с разными значениями спреда на покупку.
 
 Вопросов собственно (пока) два:
 1. Почему при изменении значения спреда на покупку с 0 на 4 выполнение ордера на покупку смещается всего лишь на 2 пункта вместо 4 (в данном случае с 1.2707 на 1.2709)?
 2. Почему при этом "прыгает" в сторону исполнение ордера на продажу ExitLong...Limit , которое по идее должно бы остаться на своем месте?
 
 Если по первому вопросу можно предположить относительно простую ошибку в программе (типа лишнего деления или умножения на 2 при расчете влияния спреда), то второй вопрос сбивает с толку напрочь... Ведь мы меняем покупочный спред, а не продажный, или я что-то недопонимаю?
 
 
 
 
	
		
	 
		| Description: |  |  Download
 |  
		| Имя файла: | BuySpr.rar |  
		| Filesize: | 208.95 KB |  
		| Downloaded: | 0 Time(s) |  
 |  | 
	
		| Вернуться к началу |  | 
	
		| LanguageSupport разработчик языка
 
 
 Зарегистрирован: 18.08.2005
 Сообщения: 111
 
 
 | 
			
				|  Добавлено: Вт Май 22, 2012 1:25 pm    Заголовок сообщения: | цитата |  
				| 
 |  
				| По п.1 - таки да, спред делится на два, у нас были свои соображения для этого, но похоже перемудрили  уберем |  | 
	
		| Вернуться к началу |  | 
	
		| LanguageSupport разработчик языка
 
 
 Зарегистрирован: 18.08.2005
 Сообщения: 111
 
 
 | 
			
				|  Добавлено: Вт Май 22, 2012 1:49 pm    Заголовок сообщения: | цитата |  
				| 
 |  
				| По п.2 - High бара рассчитывается по Ask, т.е. при проверке попадания цены продажи в бар(которая равна Bid и отличается от Ask на спред), от High отнимается спред на ПОКУПКУ. Для ордера Buy к Low прибавляется спред на ПРОДАЖУ. Получается универсальная формула. Ордер срабатывает если его цена P попадает в диапазон [Low + SellSpread, High - BuySpread]. А его конечная цена уже получается для покупки P' = P + BuySpread  и для продажи P" = P - SellSpread. Таким образом P' лежит в [Low + SellSpread + BuySpread, High], а P" в [Low, High - BuySpread - SellSpread]. BuySpread и SellSpread обычно равны реальному полуспреду (отсюда и деление спреда на 2 - хотя пользователь указывает привычное для пары значение - 4 в нашем случае) |  | 
	
		| Вернуться к началу |  | 
	
		|  |