Растолкуйте пож. по работе экспертов

 
Растолкуйте пож. по работе экспертов
1. В какой момент времени выставляется ордер (при выполнении необходимых условий) ? По бару 0?
Если да, то есть ли возможность выставить отложенный ордер по OHLC предыдущего бара?
2. Могу ли я в программе явно установить в ордере стоп-лосс > 0? При тестировании при > 0 ордера не устанавливаются (хотя прогресс-бар движется).
3. Почему при тестировании в какой-то момент, задолго до настоящего времени, перестают устанавливаться ордера ?
Бывает, что ордер выставляется и зависает. Почему? Прогресс-бар - движется.
4. На форме отладчика - что такое:
- включить сигналы?
- только первый сигнал?
- модель?
Заранее признателен за ответ.
 
имейте в виду, что эксперт должен работать по тем же правилам, по которым работаете Вы "вручную"
поэтому задайтесь вопросом, как Вы сами можете выставлять отложенный ордер?
на вопросы 2 и 3 Вы можете ответить самостоятельно, изучив лог-файл после тестирования эксперта. для упрощения этого процесса Вам поможет SetDebugMode(MODE_FILE)

4. "включить сигналы" и "только первый сигнал" относится не к тестированию, а к настройкам работы эксперта и касается отработки функции Alert
"модель" - это способ моделирования тиков внутри бара при тестировании
 
работа экспертов
Мой вопрос: 1. В какой момент времени выставляется ордер (при выполнении необходимых условий) ? По бару 0?
Если да, то есть ли возможность выставить отложенный ордер по OHLC предыдущего бара?
-
Ваш ответ: имейте в виду, что эксперт должен работать по тем же правилам, по которым работаете Вы "вручную. Поэтому задайтесь вопросом, как Вы сами можете выставлять отложенный ордер?
*
А для чего, кроме имитации ручной раборы, нужен эксперт?
Я спрашивал о времени открытия ордера вообще - в том числе - и в рельном времени. А отложенный ордер - это частный случай.
+
Мой вопрос: 2. Могу ли я в программе явно установить в ордере стоп-лосс > 0? При тестировании при > 0 ордера не устанавливаются (хотя прогресс-бар движется).
Мой вопрос: 3. Почему при тестировании в какой-то момент, задолго до настоящего времени, перестают устанавливаться ордера ?
Бывает, что ордер выставляется и зависает. Почему? Прогресс-бар - движется.
-
Ваш ответ: на вопросы 2 и 3 Вы можете ответить самостоятельно, изучив лог-файл после тестирования эксперта. для упрощения этого процесса Вам поможет SetDebugMode(MODE_FILE)
*
Спасибо, обязательно воспользуюсь. Но мы с вами говорим об, эксперте, написанном MQ. Поэтому хотелось бы получить прямой ответ - в чём дело?
+
Мой вопрос: 4. На форме отладчика - что такое:
- включить сигналы?
- только первый сигнал?
- модель?
-
Ваш ответ: 4. "включить сигналы" и "только первый сигнал" относится не к тестированию, а к настройкам работы эксперта и касается отработки функции Alert "модель" - это способ моделирования тиков внутри бара при тестировании
*
Вам не трудно объяснить, каким образом сигналы касаются отработки функции Alert ? И вообще, алерт - то работает? При вызове из МТ имею кучу проблем.
Хотелось бы знать, как в "модели" моделируются тики внутри бара при тестировании.
И опять мне, чайнику, не понятно - почему нельзя запомнить реальный процесс, например, для 200-500 баров для базовых валют на определённом графике и потом на этой основе тестировать эксперты?
По-моему, это - намного реальнее, чем моделирование.
А ещё лучше - дать возможность делать то и другое, по желанию клиента.
Извините, если что не так.

--------------------------------------------------------------------------------
 
по вопросам
1. в реальной работе время открытия ордера зависит от того, когда брокер(либо его компьютер, автоматически) удовлетворит запрос на открытие позиции. при тестировании время открытия ордера будет проставлено смоделированное (то есть время начала текущего бара плюс соответствующий квант, зависящий от того, на каком тике моделируемого бара выдана команда SetOrder). да, отложенный ордер - это частный случай, только изначально у него не будет времени открытия. оно появится, когда возникнут условия для срабатывания такого ордера.

2. вы можете установить стоплосс, больший 0. только следуйте правилам установки стопов. к тому же стоп не должен стоять ближе 10 пунктов от рыночной цены.
как Вы определили, что ордер не выставился?
это - ответ на прямой вопрос "в чём дело?". только изучив лог-файл (или файл отладки), можно точно сказать, почему не открылась позиция. это может быть "no money", это может быть "invalid price", это может быть "bad stops" или вообще "invalid data"!

4. алерты работают. какую кучу проблем Вы имеете? опубликуйте кусок эксперта, в котором у Вас не отработал алерт. может, кто-то даже раньше меня объяснит Вам проблему. у меня большая просьба внимательно ознакомиться со ВСЕМИ материалами, опубликованными на нашем сайте. несколько ранее, на этом форуме Вы говорили, что прочитали описание mql от корки до корки. почитайте всё, а не только про mql.
про моделирование тиков здесь неоднократно писалось. и то, что Вы предлагаете про реальный процесс мы не раз обсуждали. но в текущем поколении MetaTrader мы не сможем внести столь кардинальные изменения из-за ограничений, заложенных при проектировании. но это - совсем другой разговор.
 
об экспертах и алерте
как Вы определили, что ордер не выставился?
Предыдущий закрылся, нового нет, прогресс-бар идёт.

это - ответ на прямой вопрос "в чём дело?". только изучив лог-файл (или файл отладки), можно точно сказать, почему не открылась позиция:
- это может быть "no money" - НЕТ
- это может быть "invalid price" - НЕТ
- это может быть "bad stops" - НЕТ
или вообще "invalid data"- ЭТО ИНТЕРЕСНО. ПОЧЕМУ!

4. алерты работают. какую кучу проблем Вы имеете? опубликуйте кусок эксперта, в котором у Вас не отработал алерт. может, кто-то даже раньше меня объяснит Вам проблему.

Это я направлял Славе Старкову, но ответа не получил:
Я никак не могу сладить с алертом.

Хочу элементарного -

1. чтобы он (в идеале) звонил при появлении нового бара:

/*[[
Name := TimerAlertNewBar
Author := Copyright © 2002
Link := mail@eliart.net
Separate Window := No
First Color := Yellow
First Draw Type := Line
First Symbol := 217
Use Second Data := No
Second Color := Black
Second Draw Type := Line
Second Symbol := 218
]]*/

Variables : prevBars (0);

If prevBars = Bars Then
{
Alert("ПОРА!!!");
};
prevTime = Bars;

SetIndexValue(shift, 0);
// Без этого таймер у меня ВООБЩЕ не стартует. И другие индикаторы - тоже. Почему???

Таймер звонит раз-другой, а потом трейдер повисает. Приходится выбрасывать задачу. Иначе - никак.
При запуске трейдера с включенным таймером звон стоит в процессе загрузки, потом - МТ завис, опять выбросил задачу, удалил файлы таймера - только после этого трейдер запустился.

Что бы это значило? Я что-то не так сделал?

2. Используя "Сигналы" терминала периодически подавать сигнал. Заявлено, что может быть до 1000 повторов. Реально получаю сигнал при заявке 30 мин - через 50 мин, при заявке 1 час - через 1ч 40мин. Первый сигнал - при запуске. Зачем?

у меня большая просьба внимательно ознакомиться со ВСЕМИ материалами, опубликованными на нашем сайте. несколько ранее, на этом форуме Вы говорили, что прочитали описание mql от корки до корки. почитайте всё, а не только про mql.

Уверяю вас, что я с полной ответственностью изучаю то, что вы СОИЗВОЛИТЕ мне дать. Согласен, я только учусь. Но информации - то маловато будет! И охота вам отвечать на идиотские вопросы вместо того, чтобы дать описание, а потом только по делу корректировать?
Или вам делать больше нечего?

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

Я не понимаю, чего здесь обсуждать? Если вы даёте возможность программировать свои эксперты, БУДЬТЕ ЛЮБЕЗНЫ дать возможность реально их отладить.
Если это невозможно - так и надо сказать клиенту - НЕ ЖИЛ ХОРОШО, НЕЧЕГО И НАЧИНАТЬ. Большинство площадок так и делает.
Т.е. мне кажется, сначала надо сделать систему отладки, а уж потом дать народу возможность изобретать. Ясно, что при этом вы должны иметь то, на чём отлаживаете :))

Можеть, конечно, я чего-то не так понимаю. Извиняйте дядьку!
 
отвечаю на что могу
> или вообще "invalid data"- ЭТО ИНТЕРЕСНО. ПОЧЕМУ!
например, отрицательная цена или неопознанный код операции

то есть, я так понимаю, что строчки типа
20:03:58 Expert 'XXX': buy 1.00 EURUSD at 1.1229 [slippage 10], sl: 1.1218 tp: 1.1729
в Вашем логе не было?
то есть команда SetOrder не запустилась, то есть для её запуска не были сформированы условия. а Вы не пытались распечатывать значения, фигурирующих в условии для визуального контроля? а ведь все эти вопросы здесь неоднократно обсуждались. пользователи приводили куски логов и показывали пальцем на конкретное несоответствие. архивы форума - это тоже материалы, которые мы соизволяем предоставить.

теперь про предоставленный Вами текст индикатора. этот текст просто-напросто не пройдёт компиляцию. я не знаю, как Вы его запускали. я вижу, что Вы читали про то, как определить начало бара. а там написана такая строка
If prevbars = Bars Then exit;
почему Вы использовали собственную конструкцию при том, что не умеете программировать?

>SetIndexValue(shift, 0);
>// Без этого таймер у меня ВООБЩЕ не стартует. И другие индикаторы - тоже. Почему???
пользовательский индикатор имеет в своём распоряжении 2 массива данных. и если нет функции SetIndexValue и\или SetIndexValue2, то это уже не индикатор, так как нет заполнения индикаторных массивов. вы читали "особенности написания пользовательских индикаторов и функций"?

>Уверяю вас, что я с полной ответственностью изучаю то, что вы СОИЗВОЛИТЕ мне дать.
не верю.

Ваша проблема заключается в Вашей невнимательности и Вашей неусидчивости
> Это я направлял Славе Старкову, но ответа не получил
к Вашему сведению Слава Стариков (а не Старков) - это я. и адрес stringo@metaquotes.ru - мой

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

для того, чтобы получить алерт индикатор не нужен! или Вам нужен алерт из давно ушедшего времени? если Вы работаете с текущими барами, то Вам нужен эксперт, а не индикатор

/*[[
Name := alert
Author := Copyright © 2003, MetaQuotes Software Corp.
Link := https://www.metaquotes.net/
]]*/
variable: PrevTime(0);

if PrevTime=Time then exit;
PrevTime=Time;
Alert(TimeToStr(Time));


попробуйте запустить этого эксперта на минутке и обдумайте результат.

Best regards. Slawa Starikoff.
MetaQuotes Software Corp.

 
Слава Стариков! Извините за неточность и Спасибо!
Причина обращения: