Что означает запись в журнале - страница 5

 
Несколько смущает тот факт, что на 37 постов этой ветки приходится только один от разработчиков...

зачем вмешиваться в и без того продуктивное обсуждение


Разработчики не хотят нас вспугнуть, вдруг че интересное для них нароем... :)
 
Несколько смущает тот факт, что на 37 постов этой ветки приходится только один от разработчиков...

зачем вмешиваться в и без того продуктивное обсуждение


По следующим причинам:
1. Сказать, ребята, мы признаем (или не признаем), что есть проблема и будем ее лечить.
2. Сказать, Кварк (и Компостер, так как он воспроизвел ошибку на своем эксперте), мы посмотрели твой код, ошибка в нем, лечится так-то.

А то получается, что вам это не интересно. Резвитесь, детки...

Повторю свои аргументы:
1. Ордера на открытие и закрытие позиции иногда возвращают ошибки.
2. Коды этих ошибок не имеют с реальной жизнью ничего общего (например, "неправильная цена", при том, что цена - правильная).
3. Повторением попытки с теми же параметрами можно заставить систему принять ордер. Но нигде в ваших руководствах не сказано, что один и тот же ордер надо открывать (закрывать) в цикле с контролем ошибок на каждом шагу и выводом в файл для последующей ручной проверки.
4. Коды ошибок иногда не возвращаются, то есть, программа ведет себя так, словно операция удалась. А она - провалилась.

5. Самое главное. Поскольку проблема возникает при взаимодействии с демо сервером (Альпари, в моем случае), то достаточно велика вероятность, что найдя обходной путь сейчас, на демо, мы снова окажемся в той же ситуации, перейдя на реал. И тогда за отладку по новой придется платить. Своими деньгами.

6. Это НЕ локальная проблема одного эксперта. Я утверждаю, что все, или по крайней мере, многие эксперты, могут этого просто не ловить, поскольку там нет системы отлова ошибок, приделанной мной к моим экспертам. Отсюда следует, что оптимизация НЕ может быть перенесена в реал, так как ордера будут открываться и закрываться не так и не всегда. Отсюда следует, что народ будет терять время и деньги.

7. Я не очень верю, что это проблема эксперта. Укажите, где она, если я не прав. Логику эксперта можете менять, дело не в логике.

Вот.
 
Кварк, мы запустили на тестовой машине с терминалом, подключённым к альпари, Вашего эксперта. повесили его на 11 разных пятиминуток. готовы ждать результата до упора. как только возникнет описанная ситуация, мы нажмём кнопочку debug. так что, отсутствие ответа вовсе не означает отсутствия внимания. я повторяю, мы читаем, ВСЕ сообщения на нашем форуме и ВСЕ сообщения анализируем. и мы не мейл-роботы, тупо отвечающие "ваше сообщение прочитано и принято к сведению". уж извините.
 
Насчет trade context - если посмотрите на код эксперта, то он сначала ждет nMagic * 10 секунд, что гарантирует ему эксклюзивные 10 секунд, затем устанавливает глобальный семафор (что гарантирует, что другие эксперты будут подвешены). И только потом торгует.

Рош, вот логи за сегодня, с задержкой внутри цикла после OrderSend и OrderClose на 10000 мс. Это, вроде, снимает подозрения с конфликта за счет тайминга и контекста (которых и так не должно было быть):

Attempting to close short position, ticket: 1827283
9.9.2005 10:13:20 Order with this ticket still present, trying again
9.9.2005 10:13:48 No more orders with this ticket No

Со второй попытки :(

9.9.2005 0:14:54 Trying to buy, attempt 0
Bid: 1.24490000, StopLoss: 0.00700000, TakeProfit: 0.00000000 failed, error 6
9.9.2005 0:15:4 Trying to buy, attempt 1
Bid: 1.24470000, StopLoss: 0.00700000, TakeProfit: 0.00000000 successfull

Со второй попытки :(

9.9.2005 13:0:22 Trying to buy, attempt 0
Bid: 1.23900000, StopLoss: 0.00600000, TakeProfit: 0.00000000 failed, error 6
9.9.2005 13:0:48 Trying to buy, attempt 1
Bid: 1.23900000, StopLoss: 0.00600000, TakeProfit: 0.00000000 successfull

Со второй попытки :(

Не помогли паузы...
Обращаю ваше внимание, что ошибка 6 (самая информативная на свете) появлялась только при покупке, при закрытии же, ошибок не было. Правда, был ping error в журнале, но эксперт-то об этом не знает...
 
Кварк, мы запустили на тестовой машине с терминалом, подключённым к альпари, Вашего эксперта. повесили его на 11 разных пятиминуток. готовы ждать результата до упора. как только возникнет описанная ситуация, мы нажмём кнопочку debug. так что, отсутствие ответа вовсе не означает отсутствия внимания. я повторяю, мы читаем, ВСЕ сообщения на нашем форуме и ВСЕ сообщения анализируем. и мы не мейл-роботы, тупо отвечающие "ваше сообщение прочитано и принято к сведению". уж извините.


Говорят, если человек разговаривает с Богом, это нормально. А вот если Бог начинает отвечать, это уже проблема :) Но я все равно рад :)

Напоминаю, что по умолчанию эксперт на 5-минутках торговать не будет. Там часы зашиты, надо поменять.
Также я понятия не имею, как легко это отловить на 5-минутках. Кроме того :) если тестировать так, как вы описали, то циклы надо запретить, так как они призваны гасить ошибку. В логах запись, конечно, будет, но нажимать кнопку может быть поздно.

Наконец, можно, наверное, привинтить ту же логику (вызов моих функций вместо OrderSend и OrderClose) к другим экспертам. Для кучности. Я думаю, тоже получится что-то поймать.

Удачи,
Кварк
 
Кварк, мы запустили на тестовой машине с терминалом, подключённым к альпари, Вашего эксперта. повесили его на 11 разных пятиминуток. готовы ждать результата до упора. как только возникнет описанная ситуация, мы нажмём кнопочку debug. так что, отсутствие ответа вовсе не означает отсутствия внимания. я повторяю, мы читаем, ВСЕ сообщения на нашем форуме и ВСЕ сообщения анализируем. и мы не мейл-роботы, тупо отвечающие "ваше сообщение прочитано и принято к сведению". уж извините.
я, наверное, тоже вам код вышлю - кроме этого бага у меня ещё и istradeallowed не даёт работать...
 
я, наверное, тоже вам код вышлю - кроме этого бага у меня ещё и istradeallowed не даёт работать...

присылайте. мы как раз эту ситуацию и ловим
 
Я ранее упоминал, что не ставил задачу поймать проблемы с отложенными ордерами. Но простенький ловец проблем :) у меня есть, и одну он таки поймал (ошибка 6). Код привожу ниже.

Особо отмечу, что этот код ни от каких условий, кроме срабатывания второго из двух отложенных ордеров, не зависит. Соответственно, через час (меня дома не было) этот код вызвался снова, и отложенный ордер был таки удален. Алерт остался висеть.

То есть, в этот раз система заработала через некоторое время, БЕЗ перезапуска терминала. Не исключаю, что остальные случаи (с неотложенными ордерами) тоже связаны с временным выходом терминала из рабочего состояния, просто логика экспертов такова, что, раз не сработав, на следующем баре этот код уже может не вызваться.

Это согласуется с тем фактом, что повторяя запрос на проведение операции в цикле, можно добиться успеха со второй, третьей и т.д. попытки.

	if(nNumOfOpenedOrders > 0)
	{
		for(nCnt = OrdersTotal() - 1; nCnt >= 0; nCnt--)
		{
			OrderSelect(nCnt, SELECT_BY_POS, MODE_TRADES);
			if(OrderMagicNumber() == nMagic && 
				(OrderType() == OP_BUYSTOP || OrderType() == OP_SELLSTOP))
			{
				bool bResult = OrderDelete(OrderTicket());
				if(bResult == false)
				{
					int nError = GetLastError();
					Alert("SimpleBreak " + Symbol() + " error: " + nError);
				}
			}	
		}	
	}
 
Quark, свершилось чудо =)
Твой эксперт открыл позицию =)))

Все 8 висят на часовках уже давно, и никто не торгует... И вот в 15:00 по Альпари открылась позиция. Это нормально?)
 
Quark, свершилось чудо =)
Твой эксперт открыл позицию =)))

Все 8 висят на часовках уже давно, и никто не торгует... И вот в 15:00 по Альпари открылась позиция. Это нормально?)


И у меня открыл, и тоже в 15 :)
Предыдущая позиция, и тоже успешно, была открыта по USDCAD 23.08.

Вообще-то, это хороший эксперт, и большую часть времени он сбоев не дает. Как и любой другой. Судя по логам, дело не в логике торговли, а в самом факте, так что можно переписать эксперта, например, чтобы он переворачивал позицию каждый час - сделок будет больше :) И сбоев тоже.
Этот эксперт - просто пример, разработчикам показать. А так они ВСЕ время от времени дают сбои. Да и у тебя, как я понимаю, тоже, так что дело не в нашем коде...
Причина обращения: