Предложение

 
Уважаемые разработчики, вот какая мысль возникла: если сделать вызов эксперта не только по приходу тика, но и по таймеру - скажем, если минуту не было тиков - это решило бы многие проблемы, например позволило бы делать действия ночью, когда тики редки, а система требует закрытия поз.
 
Тогда придется переделывать большое количество советников и индикаторов. А преимущества - мизерные.
 
Тогда придется переделывать большое количество советников и индикаторов. А преимущества - мизерные.

1. Если брать всё что понаписано всеми, то считаю что переделка в большинстве случаев не потребуется.
2. Преимущества будут огромными.

Такие дела.
 
ИМХО, переделывать вообще ничего не придется - во всяком случае, я не вижу ни одной причины.
 
На мой взгляд это важный вопрос.
Не знаю сколько может поребоваться переделок, но что-то делать нужно.

Возможно, решение может состоять в том, чтобы предоставить программистам функцию запуска экспертов?
Кроме того, такое решение обеспечило бы возможность работать с программой и в выходные дни, когда тиков нет вообще.

Я в своей программке использовал зацикленный скрипт и эксперт.
Это позволило решить большинство проблем, связанных с тиками, но породило новые ( не доступны экстерн-настройки, нет реакции на вкл/откл кнопки советника и др).

А идеальным решением , на мой взгляд, было бы создание встроенного генератора пустых тиков настраиваемой частоты с возможностью вкл/откл.
 
А вы могли бы немного поподробнее объяснить для чего нужны дополнительные пуски экспертов? Ведь я так понимаю, что по крайней мере 1 раз в минуту функция start() ведь должна запускаться даже ночью при редких тиках или я не прав? Если не прав, то пусть разработчики МТ4 поправят меня. Не понятно зачем требуется запускать советник более 1 раза в минуту, если цена за минуту вообще не изменилась? То есть показания всех индикаторов, которыми пользуется советник, останутся преждними сколько бы раз советник ни был запущен? Пускай даже если система при каком-то редком пуске посчитала, что нужно срочно закрыть позу, то что ей помешает это сделать через минуту, если никакой активности на рынке нет и цена за 1 минуту никуда не уйдёт? И при наличии простого ордера закрытия при установке проскальзывания например 3-5 пипсов, она прекрасно закроет позу в следующий же тик. Причём если вы можете возразить мне по поводу того, что цена может в следующий тик всё-таки измениться например на 1-2 пипса. То я могу с таким же успехом ответить, что цена имеет равновероятные шансы уйти на 1-2 пипса как против вас, так и в вашу же пользу! Подумайте об этом. В итоге вы ведь будете иметь ровно столько прибыли, сколько даёт используемая стратегия, а не то сколько раз в минуту выполнилась функция start() в советнике.
 
1) Во-первых, есть ситуации когда надо закрыть позу по времени - ну, скажем, хочется мне закрыться в 23:59! А если закроюсь в 00:01, то своп уже... мой. Или хочется запустить эксперт в выходные, когда тиков вообще нет.

2) А кому мешают лишние запуски? Если вы смотрите на цены или индикаторы, то, как вы правильно написали - если они не изменились, то вы и делать ничего не будете, не так ли? Да пусть хоть раз в секунду запускаеться!

3) На мой взгляд идеальным решением было бы следующее: добавить ф-ию CallExpertOnTimer( int Timeout ), после вызова которой эксперт и начнет вызываться по таймеру, а init() запускать сразу и ограничить по времени. Так, кажется, все будут довольны!
 
Причин может быть много. Вот те, кот. представляются важными мне.

1. Возможность частого запуска эксперта для постоянного вычисления коэфф. аппроксимирующей функции (например, параболы), определяющей прогноз на достижение экстремумов курса при движении в канале на малых ТФ. Здесь фактор времени имеет определяющее значение. При наличии пауз в тиковом трафике вся идея теряет смысл.

2. Осуществление торговых операций на основе данных по другим валютам. Решение следует осуществлять ровно тогда, когда оно созрело, а не тогда, когда случится тик.

3. Возможность работы в выходные дни.
 
dtv
1. Попробуйте закрываться в 23.45 Тогда 100% гарантия, что до наступления следующих суток вы закроете позу без свопа. Мне лично не понятно что могут дать лишние 15 минут удержания позы? Учитывая тот факт, что своп бывает не только отрицательный, но и положительный и если вы закрываете не только прибыльные но и убыточные сделки, то в итоге общий размер свопа будет слишком мал по сравнению с прибылью, которая даёт реально работающая стратегия. А для чего запускать эксперт в выходные, если он не сможет торговать?

2. Если у вас будут лишние запуски эксперта по таймеру (чаще чем кол-во реальных тиков), то это просто пропорционально увеличит время оптимизации на тестере. Я например специально ставлю ограничение на запуск эксперта, чтобы сократить время оптимизации. Произвожу запуск расчётной части эксперта только в случае изменения состояния рынка (например рынок из спокойного состояния перешёл в активное и нужно убирать лимитные ордера), либо при закрытии очередной свечи, по которой происходит расчёт на период следующей свечи.

SK
1. А почему нельзя запускать вычисление функции параболы во время одного и того же пришедшего тика? Сначала посчитал и тут же при необходимости торганул на том же тике? Может быть какие-то неучтённые мною особенности существуют? Я так понимаю 1 тик в минуту ведь МТ4 всё равно гарантирует? Разве этого мало?
2. А разве нельзя во время пришедшего тика по одной валюте взять информацию о другой валюте? Или же функция start() вызванная для одной валюты, будет ждать прихода тика по другой валюте для получения какой-либо информации и проведения торговли на другой паре?
3. Так ведь в выходные торговля не ведётся? Что будет делать советник?
 
1. Потому что рассчитанная парабола достигнет своего экстремума в определённое время. Тогда и надо закрыть ордер. А не ждать следующей свечи, кот. в соотв. с прогнозом будет уже против ордера.
1б. Никто не гарантирует тиков 1 раз в минуту. Скважность может быть и больше нескольких минут.
1в. Если, например, есть локальная поддержка, то при существующей медодике тики могут отображаться вблизи поддержки, хотя фактически, при большой паузе между свечами, поддержка уже давно прорвана (это было бы просто видно, если бы в МТ соблюдалась линейная шкала времени).

2. Взять можно. Но может быть уже поздно.
Есть, например, такое понятие - индекс валют. Для одной валюты он вычисляется на основе нескольких.
Например, индекс доллара может вычисляться на основе пяти основных валют. Если индексная кривая доллара пошла вверх, то надо закрыть, например, баи по евре. Но глядя в отдельности на пару евро-доллар мож и не неполучить такую инф. на закрытие. И когда индекс уже вычеслен, а по евре нет тика, то и жди пока тебе дадут тик, а момент уже упущен.

3. Торговля не ведётся. Но это же не значит, что надо всё бросить и бездельничать. Для отработки некоторых программ нужны тики (любые, просто чтоб запуститься). Например, можно было бы работать над методикой вычисления входа в рынок на эксперте, анализирующем некоторую последнюю историю, например, месяц.
 
1,2. Честно говоря данные доказательства целесообразности кажутся несколько сомнительными. Цена имеет абсолютно равновероятные шансы уйти до следующего тика как против вас, так и в вашу же пользу. При большом количестве сделок, закрытых при имеющихся уже возможностях МТ4, у вас эти равновероятные отклонения цены от рассчётного времени должны будут взаимокомпенсироваться и в итоге вы получите результат, который должен лежать в пределах рассчётного по стратегии. Конечно же если целью вашей стратегии не является получение прибыли в каждой сделке, равной 3-5 пипсам. Тогда возможно всё будет иметь влияние, в первую очередь сам спред.
Хотя было бы интересно ознакомиться поближе со стратегией, в которой используются аппроксимирующие параболы. Поделитесь, пожалуйста, результатами тестов.

Вы говорили, что используете какой-то зацикленный скрипт и эксперт. Не могли бы вы поподробнее рассказать что это такое и задачи, которые он решает? Для чего это нужно? И как это реализуется в программе?