PDA

View Full Version : Комплексный советник



Pages : 1 [2]

msm
16-05-2011, 16:09
P.S. Забыл в первом посте оговорить еще одно условие фильтрации сделок - ограничение спреда. торгуем ,если спред меньше либо равен, напимер, 4.

Scriptong
17-05-2011, 11:29
Еще раз позвольте выразить вам благодарность и надежду на вашу помощь.

Сразу расставлю все точки над "i". Некоторые моменты стратегии интересны. Скорее всего, это будет оформлено в виде статьи (четвертая статья мая (http://www.forextrade.ru/archive.php?type=mqlabs&start=1304200800&end=1306879199)). Точного соответствия не обещаю, т.к. есть некоторые свои идеи в интерпретации стратегии, хотя сама основа не пострадает.

msm
17-05-2011, 19:04
Что ж. Буду ждать и желаю удачи.
Со своей стороны хочу то ли задать вопрос, то ли высказать пожелание... Возможно ли в качестве дополнительных критериев ввести хотя быте патерны, которые предложил автор стратегии? Тут правда желательно их формализовать для облегчения написания кода
1. "Пробой ценой средней, далее небольшой откат,при этом откате, ТОЧНОЕ касание ценой И ЗИГЗАГОМ средней.
Зигзаг,может дорисовываться позже,уже после того как цена коснулась МА и пошла в обратном направлении." С пробоем все просто ,а вот с касанием... может рассмотреть это как попадание hi свечи в диапазон "значение МА33 плюс-минус дельта".
2. "Постепенное понижение свечей,иногда такое закруглённое понижение.Свечи маленькие,иногда по 2-3 пункта,без теней в противоположную сторону движения.Как правило следует хорошее движение.Входить необходимо так же как описано в главной стратегии по отложенному ордеру. Перед тем как образуется этот патерн,была не плохая волатильность." Данный патерн фактически очень сильно напоминает образование треугольника (максимумы и минимумы сближаются, уровни поддержки и сопротивления сходятся) P.S. Мне понравилась ваша статья про дивергенции. Сам пользуюсь подобным методом. Правда на маленьких ТФ применяю индикатор Трикс из кобры

Scriptong
18-05-2011, 15:57
может рассмотреть это как попадание hi свечи в диапазон "значение МА33 плюс-минус дельта".


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



2. "Постепенное понижение свечей,иногда такое закруглённое понижение.Свечи маленькие,иногда по 2-3 пункта,без теней в противоположную сторону движения.Как правило следует хорошее движение.Входить необходимо так же как описано в главной стратегии по отложенному ордеру. Перед тем как образуется этот патерн,была не плохая волатильность."

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

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


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

msm
18-05-2011, 20:43
На счет второго патерна я и написал, что он фактически является методом треугольника и в принципе может быть с успехом им заменен. Его очень легко формализовать и представить в виде кода: максимумы понижаются, минимумы повышаются и соответственно линии поддержки и сопротивления сходятся в одну точку, образуя собой треугольник (не обязательно строго так. Минимумы, например ,могут оставаться на одном уровне). Цена как бы сжимается в пружину и потом готова выстрелить. Вот только частенько бывает не ясно в какую сторону :) Но данный момент можно решить с помощью не одного, двух отложенный ордеров.
Мне кажется это гораздо проще, чем пытаться определить текущий тренд (в принципе возможно, но когда речь идет о минутном графике и малых целях это весьма неоднозначно). "Хорошее движение", "как правило", "неплохая волотильность" это вообще из разряда пристрастий. Теоретически можно попытаться брать количество свечей до события, диапазон колебания цены, потом в тестере на истории выбрать значения при помощи оптимизации, но это уже скорее будет подгонка, нежели логически правильное математическое выражение мысли.

msm
18-05-2011, 21:10
И еще несколько слов об уровнях сопротивления-поддержки, строимых по вершинам зигзага старших ТФ. Автор не обосновывал их, поэтому могу высказать свои мысли:
множество стратегий используют каналы, коридоры, диапазоны, уровни мюррея, фибоначи и тд. Как правило, уровни стоп лоса или ордера на отбой (пробой) ставятся на экстремумы, по которым построены каналы (или их аналоги). При подходе ценой к ним начинается массовое срабатывание, в результате чего существует большая вероятность отката цены. Иногда бывает очень обидно, что не дойдя несколько пунктов до цели, происходит обратное движение. Поэтому данные значения таких значимых максимумов-минимумов при ручной торговле учитываются для выставления цели. Пример: ставим отложенный ордер на покупку и видим, что тейк профит расположен немного выше ближайшего уровня сопротивления. Значит задаем цель на этом уровне.
Прощу извинить за некоторую сумбурность в изложении мыслей, сильно устал.

Scriptong
25-05-2011, 09:09
Эксперт готов - Последний вагон уходящего поезда (http://www.forextrade.ru/mqlabs/articles)

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

Step
31-05-2011, 12:16
Добрый день!
Можно ли изменить в Комплексном советнике блок формирования сигнала:

//+------------------------+
//| Формирование сигнала |
//+------------------------+
if (Use_индикатор№ 1)
{



if (условие ) // Buy Signal
Signal++;
if ( условие ) // Sell Signal
Signal--;
}

if (Use_индикатор№ N)
{



if (условие) // Buy Signal
Signal++;
if (условие) // Sell Signal
Signal--;
}

// =========================== Окончание блока =========================================

Так, что бы сигналы buy и sell не чередовались? Или как его обмануть?

Scriptong
01-06-2011, 08:42
Добрый день!
Можно ли изменить в Комплексном советнике блок формирования сигнала:
Так, что бы сигналы buy и sell не чередовались? Или как его обмануть?
Здесь, как говорится, "зрите в корень". Проблема не в подсчете сигнала, а в его применении:

if (UseInd == MathAbs(Signal))
if (Signal > 0)
{
if (LastBuySignal <= LastSellSignal)
LastBuySignal = Time[0];
}
else
if (LastSellSignal <= LastBuySignal)
LastSellSignal = Time[0];
Достаточно убрать условия проверки соотношения времени сигналов покупки и продажи.
Без внесения изменений в код можно и "обмануть" советник. После открытия очередной сделки перезагрузить советник.

Grey63
05-06-2011, 18:25
Здравствуйте Scriptong!

Спасибо за Вашу работу.

Если не трудно подскажите как задать условия входа в коде советника по индикаторам:
Scalper_MA
Heiken_Ashi_Smoothed

вход БАЙ:
- Scalper_MA синего цвета (или выдал стрелку вверх)
- Heiken_Ashi_Smoothed зеленого цвета и выше Scalper_MA

выход из БАЙ :
- Heiken_Ashi_Smoothed поменял цвет на красный

вход СЕЛЛ:
- Scalper_MA красного цвета (или выдал стрелку вниз)
- Heiken_Ashi_Smoothed красного цвета и ниже Scalper_MA

выход из СЕЛЛ :
- Heiken_Ashi_Smoothed поменял цвет на зеленый

Scriptong
06-06-2011, 17:27
По Heiken_Ashi_Smoothed - вам нужно читать значения первого (индекс 0) и второго (индекс 1) буферов индикатора. Какое значение больше, тот цвет сейчас и активен:


double _Red = iCustom(NULL, 0, "Heiken_Ashi_Smoothed", 2, 6, 3, 2, 0, 1);
double _Lime = iCustom(NULL, 0, "Heiken_Ashi_Smoothed", 2, 6, 3, 2, 1, 1);
if (_Red > _Lime)
{
// активен красный цвет
}
if (_Lime > _Red)
{
// активен зеленый цвет
}


Второй индикатор не обсуждается. Вы прикрепили декомпилированную версию ScalperMA. Удалите ее пожалуйста. Если найдете авторский исходник, то обсудим.

Grey63
07-06-2011, 18:57
Второй индикатор не обсуждается. Вы прикрепили декомпилированную версию ScalperMA. Удалите ее пожалуйста. Если найдете авторский исходник, то обсудим.

Спасибо!

как удалить вложение?
не получается.

Scriptong
08-06-2011, 10:51
как удалить вложение?
не получается.

При редактировании запустите "Расширенный режим", там нажмите "Управление вложениями". В списке вложений нажмите "Удалить" напротив соответствующего вложения.

qwerty123
29-06-2011, 05:38
такой вопрос, пишу сову на основе комплексного убал что не нужно что надо добавил, так вот такая проблемка допустим индикаторы типа WPR код как я понимаю на бай и на селл такой :


double CCI1 = iCCI(Symbol(), 0, CCIPeriod, CCIPrice, 1);
double CCI2 = iCCI(Symbol(), 0, CCIPeriod, CCIPrice, 2);
if (WPR1 > WPRLowLevel && WPR2 < WPRLowLevel && WPR1 < WPRHighLevel) // Buy Signal
Signal++;
if (WPR1 < WPRHighLevel && WPR2 > WPRHighLevel && WPR1 > WPRLowLevel) // Sell Signal
Signal--;
1 и 2 это по цене закрытия прошлого и позапрошлого бара? а если поставить 0 по будет по текущему?

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

и еще вопрос:
как сделать чтоб основной сигнал брался со старшего ТФ например с Н1, а сам вход осуществлялся по тем же правилам с младшего например М30, т.е. пример: CCI на Н1 ниже 150 уровня, только после этого мы идем на М30 и смотрим по правилу входа например когда после закрытия бара он пересекет тот же уровень 150 только на М30...

Scriptong
30-06-2011, 10:06
1 и 2 это по цене закрытия прошлого и позапрошлого бара? а если поставить 0 по будет по текущему?


Да, будет по текущему бару. Но нужно учитывать, что текущее значение будет браться только для цены открытия бара (комплексный советник производит расчет один раз за бар), а не то, которое вы увидите в истории по окончании формирования бара. А т.к. цена открытия текущего бара во многих случаях равна цене закрытия предыдущего бара, то смысла использовать данные, полученные на открытии нулевого бара, нет. Намного надежнее использовать данные ближайших двух сформированных баров - 1 и 2.



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


Приведенный вами код как раз выполняет необходимую вам задачу. Достаточно WPRLowLevel и WPRHighLevel привести к одному значению, а из обоих условий убрать третий член.



и еще вопрос:
как сделать чтоб основной сигнал брался со старшего ТФ например с Н1, а сам вход осуществлялся по тем же правилам с младшего например М30, т.е. пример: CCI на Н1 ниже 150 уровня, только после этого мы идем на М30 и смотрим по правилу входа например когда после закрытия бара он пересекет тот же уровень 150 только на М30...

У любого стандартного индикатора МТ4 есть параметр, указывающий таймфрейм. Это второй аргумент функций расчета значений индикаторов. При значении 0 используется текущий таймфрейм, а ненулевое значение указывает отличный от текущего период в минутах. Для этого в MQL4 даже существуют именованные константы: PERIOD_D1 - дневной таймрейм, PERIOD_M30 - 30 минут и т.д.:

double CCI1 = iCCI(Symbol(), PERIOD_H1, CCIPeriod, CCIPrice, 1);
В примере используется значение CCI, полученное с часового таймфрейма. При этом неважно, на каком таймфрейме сейчас работает советник.

qwerty123
30-06-2011, 11:18
У любого стандартного индикатора МТ4 есть параметр, указывающий таймфрейм. Это второй аргумент функций расчета значений индикаторов. При значении 0 используется текущий таймфрейм, а ненулевое значение указывает отличный от текущего период в минутах. Для этого в MQL4 даже существуют именованные константы: PERIOD_D1 - дневной таймрейм, PERIOD_M30 - 30 минут и т.д.:

double CCI1 = iCCI(Symbol(), PERIOD_H1, CCIPeriod, CCIPrice, 1);
В примере используется значение CCI, полученное с часового таймфрейма. При этом неважно, на каком таймфрейме сейчас работает советник.

ок, спасибо что пояснили этот момент..




Приведенный вами код как раз выполняет необходимую вам задачу. Достаточно WPRLowLevel и WPRHighLevel привести к одному значению, а из обоих условий убрать третий член.



а тут можно по подробней, насчет привести к одному значению т.е. WPRLowLevel и WPRHighLevel должны быть равны? а третье значение которое надо убрать как я понимаю это WPR1 < WPRHighLevel ?

Scriptong
01-07-2011, 18:17
а тут можно по подробней, насчет привести к одному значению т.е. WPRLowLevel и WPRHighLevel должны быть равны? а третье значение которое надо убрать как я понимаю это WPR1 < WPRHighLevel ?

Да, вы правильно поняли.

qwerty123
02-07-2011, 06:38
Да, вы правильно поняли.

Благодарю за пояснение...

bashkardinov
12-07-2011, 05:14
Здравствуйте! Скажите, можно ли написать советника по готовой ручной системе GOLDEN TREND MANAGER 2010, чобы он (советник) работал строго по этой системе и присоединить к нему трала? Если можно скажите как систему выложить

mihesin
14-07-2011, 02:53
Здравствуйте Scriptong хочу поблагодарить Вас за комплексного советника Понимаю что несколько запоздал с дифирамбами но тем не менее очень понравилась Ваша работа за 2 месяца тестов демка сначала ополовинилась, думаю все дело было в подборе параметров, сейчас депо начал расти, на сегодняшний день размер удвоился. Если так дальше пойдет думаю через месяц два прицепить реальный счет. Еще раз спасибо за Ваш труд.:)

Scriptong
18-07-2011, 13:55
Пожалуйста. Но не забывайте, что нельзя доверять автоматической системе, не разобравшись в ее правилах. Моменты, когда необходимо использовать систему, а когда - нет, должен определять трейдер. Именно в этом его роль, самая главная роль. Он же и несет ответственность за получение прибыли или убытков.
По этой причине не будет моей заслуги в том, что вы получите прибыль при использовании одной из описанных систем на реальном счете. Равно как нельзя будет обвинить меня в получении вами убытков. Все лавры и шишки - это ваше.

mihesin
19-07-2011, 08:11
Я не первый год на форексе и прекрасно понимаю что это такое. Вы создали прекрасный инструмент, и я с удовольствием учусь им пользоваться, к тому же приложена развернутая инструкция по эксплуатации. Давно пытался создать советник торгующий на индюках но как всегда не хватает времени. Используя робота снимается очень важный аспект, не нужно сидеть часами у монитора для ожидания удобной позиции для входа в рынок. А уж убыточно открытую сделку я всегда могу закрыть и вручную.

Scriptong
21-07-2011, 14:21
Я очень рад, что существуют такие сознательные пользователи программ,разрабатываемых в рамках проекта MQLabs.

mihesin
28-07-2011, 11:49
Здравствуйте Scriptong у меня возник вот такой вопрос по комплексному советнику: Если поставить советник на два разных графика например М15 и Н1, будет ли он воспринимать информацию с идюков на обоих графиках или каждая из копий будет работать только со своими индюками. То есть советник на М15 будет работать по М15, а Н1 только по Н1. Валютная пара одна и магическое число одинаковое.

Scriptong
28-07-2011, 13:15
Здравствуйте Scriptong у меня возник вот такой вопрос по комплексному советнику: Если поставить советник на два разных графика например М15 и Н1, будет ли он воспринимать информацию с идюков на обоих графиках или каждая из копий будет работать только со своими индюками. То есть советник на М15 будет работать по М15, а Н1 только по Н1. Валютная пара одна и магическое число одинаковое.
Да, каждый из советников будет работать со своим набором индикаторов, тем, который вы укажете в настройках (первая версия) или которые подсоедините к графику (вторая версия). Причем вторая версия будет индицировать в левом верхнем углу графика, какие индикаторы подключены.
Использовать же одинаковое магическое число у обоих советников, работающих на одной валютной паре, не рекомендую, т.к. ордера одного советника будут восприниматься как свои другим советником. Правда, таким способом можно добиваться эффекта принятия во внимание одним советником сигналов различных таймфреймов. Но все равно нужно внимательно смотреть, с каким набором индикаторов вы имеете дело, и как сопрягаются условия открытия/закрытия сделок.

mihesin
28-07-2011, 14:46
Использую первую версию, она тоже индицирует индюки которые включены в советнике в настоящий момент. Именно этого я и хочу добиться от КомЕкса чтобы он брал сигналы с разных таймфреймов, но М15 слишком агрессивный и сделки открываются когда движение уже закончено а Н1 порой висит по 2-3 дня изза жестко настроенной фильтрации без открытия сделок вообще. Доигрался до того что советник начал безбожно сливать. Попробую обнулить настройки и начать сначала. Жаль что не записал удачную комбинацию, хотя возможно это был лишь временный успех. Но тем не менее за три месяца тестов это первый советник показавший более менее приличный результат.
Спасибо Вам и за ответ и за техпомощь которую вы оказываете По результатам прогона отпишусь позже.

mihesin
28-07-2011, 14:49
Да забыл про набор. Используется стандартные для МТ4: alligator, parabolik, MACD Cделки закрываются либо по по профиту либо траллом на отскоке хотя тралл конечно не самый лучший вариант. Ни разу не видел что бы советник перевернулся в обратную сторону хотя может быть слишком малый стоп выставлен. (100 пунктов). Сначала ловится лось и только потом открывается ордер в обратную сторону

mihesin
29-07-2011, 12:52
22107, 22108 Пока доехал до дома с работы поймал лося, Причем сразу двумя советниками на М15 и на Н1 интересно сделан заход.

Ivanov
29-07-2011, 19:46
Добрый вечер Scriptong . Приведу цитату из вашего первого поста , так будет понятнее мой вопрос . " Отсутствие сигналов "закрыть BUY" и "закрыть SELL" без открытия противоположной сделки " - это условие так и не было реализовано в последующих версиях ? Если нет то второй вопрос , будет ли его реализация в дальнейшем ? Спасибо .

Scriptong
29-07-2011, 20:22
, Пока доехал до дома с работы поймал лося, Причем сразу двумя советниками на М15 и на Н1 интересно сделан заход.
Странно, насколько я вижу по рисункам, у вас различные валютные пары. В этом случае советники будут работать независимо.

Scriptong
29-07-2011, 20:25
Добрый вечер Scriptong . Приведу цитату из вашего первого поста , так будет понятнее мой вопрос . " Отсутствие сигналов "закрыть BUY" и "закрыть SELL" без открытия противоположной сделки " - это условие так и не было реализовано в последующих версиях ? Если нет то второй вопрос , будет ли его реализация в дальнейшем ?
Добрый вечер.
Доработка комплексного эксперта не планируется.

mihesin
30-07-2011, 02:02
Странно, насколько я вижу по рисункам, у вас различные валютные пары. В этом случае советники будут работать независимо. Странно не то слово. Я сам дико удивился от такой постановки вопроса. Да вы правы. Пока писал сообщение их оказалось уже 4 если приглядется то на первом рисунке явно видно две линии sell. Советники и стоят парами два на eur/usd, и два на gbp/usd, на втором рисунке линия sell слилась и не заметно что ордера два а на первом явно видно две линии. Буду экспериментировать, извините что отвлекаю вас. Выше Вы уже ответили на все вопросы, по поводу дальнейшей доработки. Жаль что нельзя скомбинировать сигналы с двух графиков на открытие. По закрытию в принципе вопросов нет. Есть тралл и стоп лосс, вполне достаточно для минимизации убытков.

Scriptong
01-08-2011, 08:47
Странно не то слово. Я сам дико удивился от такой постановки вопроса. Да вы правы. Пока писал сообщение их оказалось уже 4 если приглядется то на первом рисунке явно видно две линии sell. Советники и стоят парами два на eur/usd, и два на gbp/usd, на втором рисунке линия sell слилась и не заметно что ордера два а на первом явно видно две линии.

Может быть вы что-то упустили из виду? Если поставить два комплексных советника на одну валютную пару с одинаковым магиком, то они не смогут одновременно открыть две позиции.


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

mihesin
01-08-2011, 14:41
Может быть вы что-то упустили из виду? Если поставить два комплексных советника на одну валютную пару с одинаковым магиком, то они не смогут одновременно открыть две позиции.:D
Случай единичный, раньше такого не замечалось но тем не менее... Напутать с магиками я никак не мог, потому что использую один файл настроек. Выставляю индикаторы на М15, прикрепляю советника, редактирую настройки и сохраняю их в файл, потом все то же самое на Н1, индикаторы, советник, загружаю настройки и потом стартую все советники кнопкой из МТ4.

Вы не отвлекаете. Это форум, который предназначен для подобных вопросов.
Комбинирование сигналов различных таймфреймов не планируется производить в виду сложности использования конечного продукта. Даже сейчас многие пользователи испытывают трудности в понимании сути работы советника. Если добавить к нему мультипериодность, то советник будет сложно использовать даже его создателю.:D
Про трудности и понимание работы совершенно с вами согласен, потому ка прочел всю ветку, правда совершенно не согласен с тем что в середине началось обсуждение другого эксперта. Для всех полезнее было бы разделить ветви, и каждому советнику оставить свою. Использование же мультипериодности даст дополнительный фильтр предотвращающий сделки против тренда, хотя они тоже дают неплохие результаты, но реже чем в направлении общего движения цены. Пока писал вот напросилась еще информация к размышлению. Чего спрашивается ждет? На М15 все условия для SELL cоблюдены по Н1 понятно, рано еще.
22134
22135
а вот похоже он опомнился:
22136
22137
60 пунктов профита самое время открыть еще один ордер.
22138
Вот еще примерчик:
22140
22141
А Вы говорите не может быть;):confused:

Scriptong
03-08-2011, 08:32
Чего спрашивается ждет? На М15 все условия для SELL cоблюдены по Н1 понятно, рано еще.


Нет, не соблюдены. Условием генерации сигнала Sell по индикатору Alligator является расположение челюстей (синяя линия) выше зубов (красная линия) и губ (зеленая линия). На рисунке явно видно, что зубы на М15 явно не ниже челюстей. Проведите вертикальную линию и убедитесь в этом.

Scriptong
03-08-2011, 08:40
60 пунктов профита самое время открыть еще один ордер.

Вот здесь непонятно. Почему при достижении 60 пп профита должен открываться еще один ордер? Каков критерий?

По открытию двух сделок подряд все равно неясно. Чтобы разобраться в этой ситуации нужны не рисунки, а логи (общий лог - терминал\logs\файл с текущей датой.txt, лог экспертов - терминал\experts\logs\файл с текущей датой.txt). При этом нужно присоединять эксперты к графику в этот же день. Или прислать логи за тот день, когда они присоединялись к графику.

mihesin
03-08-2011, 10:42
Нет, не соблюдены. Условием генерации сигнала Sell по индикатору Alligator является расположение челюстей (синяя линия) выше зубов (красная линия) и губ (зеленая линия). На рисунке явно видно, что зубы на М15 явно не ниже челюстей. Проведите вертикальную линию и убедитесь в этом.
То есть линию вертикальную по последней свече? Прошу прощения за некорректность, видимо неправильно считывал показания аллигатора.

mihesin
03-08-2011, 10:54
Вот здесь непонятно. Почему при достижении 60 пп профита должен открываться еще один ордер? Каков критерий?
Тралл уехал вниз и было бы неплохо нарастить прибыльную сделку. К комплексному это не имеет никакого отношения просто мысли вслух. Передвинуть профит и добавить средств.


По открытию двух сделок подряд все равно неясно. Чтобы разобраться в этой ситуации нужны не рисунки, а логи (общий лог - терминал\logs\файл с текущей датой.txt, лог экспертов - терминал\experts\logs\файл с текущей датой.txt). При этом нужно присоединять эксперты к графику в этот же день. Или прислать логи за тот день, когда они присоединялись к графику.С логами сложно, время ушло уже, сейчас нет уверенности что логи остались от присоединения а отсоединять экспертов пока нет необходимости начал новый прогон жду результатов за месяц, если возникнет сбой то после нового прикрепления пришлю логи.

mihesin
05-08-2011, 07:56
Как раз грохнул винду на работе вот лог;)

13:32:20 ComEx EURUSD,M5: loaded successfully
13:32:20 ComEx EURUSD,M5 inputs: Lots=0.01; TakeProfit=200; StopLoss=300; TrailingStop1=100; TrailingStop2=150; A1="Настройки ADX"; UseADX=true; ADXPeriod=14; ADXPrice=0; A2="=========================="; A3="Настройки Bollinger Bands"; UseBollinger=false; BandsPeriod=20; BandsShift=0; BandsDeviation=2; BandsPrice=0; A4="=========================="; A5="Настройки CCI"; UseCCI=false; CCIPeriod=14; CCIPrice=0; CCIHighLevel=100; CCILowLevel=-100; A6="=========================="; A7="Настройки пересечения MA"; UseCrossMA=false; MAFastPeriod=34; MAFastPrice=0; MAFastMethod=0; MAFastShift=0; MASlowPeriod=89; MASlowPrice=0; MASlowMethod=0; MASlowShift=0; A8="=========================="; A9="Настройки индикатора Parabolic SAR"; UseSAR=false; SARStep=0.01; SARMaximum=0.03; A10="=========================="; A11="Настройки индиктора Standard Deviation"; UseStDev=false; StDevPeriod=21; StDevPrice=0; StDevMethod=0; StDevShift=0; A12="=========================="; A13="Настройки индикатора MACD"; UseMACD=true; MACDFast=12; MACDSlow=26; MACDSignal=9;
13:32:20 ComEx EURUSD,M15: loaded successfully
13:32:20 ComEx EURUSD,M15 inputs: Lots=0.01; TakeProfit=200; StopLoss=300; TrailingStop1=100; TrailingStop2=150; A1="Настройки ADX"; UseADX=true; ADXPeriod=14; ADXPrice=0; A2="=========================="; A3="Настройки Bollinger Bands"; UseBollinger=false; BandsPeriod=20; BandsShift=0; BandsDeviation=2; BandsPrice=0; A4="=========================="; A5="Настройки CCI"; UseCCI=false; CCIPeriod=14; CCIPrice=0; CCIHighLevel=100; CCILowLevel=-100; A6="=========================="; A7="Настройки пересечения MA"; UseCrossMA=false; MAFastPeriod=34; MAFastPrice=0; MAFastMethod=0; MAFastShift=0; MASlowPeriod=89; MASlowPrice=0; MASlowMethod=0; MASlowShift=0; A8="=========================="; A9="Настройки индикатора Parabolic SAR"; UseSAR=false; SARStep=0.01; SARMaximum=0.03; A10="=========================="; A11="Настройки индиктора Standard Deviation"; UseStDev=false; StDevPeriod=21; StDevPrice=0; StDevMethod=0; StDevShift=0; A12="=========================="; A13="Настройки индикатора MACD"; UseMACD=true; MACDFast=12; MACDSlow=26; MACDSignal=9;
13:32:20 ComEx EURUSD,M30: loaded successfully
13:32:20 ComEx EURUSD,M30 inputs: Lots=0.01; TakeProfit=200; StopLoss=300; TrailingStop1=100; TrailingStop2=150; A1="Настройки ADX"; UseADX=true; ADXPeriod=14; ADXPrice=0; A2="=========================="; A3="Настройки Bollinger Bands"; UseBollinger=false; BandsPeriod=20; BandsShift=0; BandsDeviation=2; BandsPrice=0; A4="=========================="; A5="Настройки CCI"; UseCCI=false; CCIPeriod=14; CCIPrice=0; CCIHighLevel=100; CCILowLevel=-100; A6="=========================="; A7="Настройки пересечения MA"; UseCrossMA=false; MAFastPeriod=34; MAFastPrice=0; MAFastMethod=0; MAFastShift=0; MASlowPeriod=89; MASlowPrice=0; MASlowMethod=0; MASlowShift=0; A8="=========================="; A9="Настройки индикатора Parabolic SAR"; UseSAR=false; SARStep=0.01; SARMaximum=0.03; A10="=========================="; A11="Настройки индиктора Standard Deviation"; UseStDev=false; StDevPeriod=21; StDevPrice=0; StDevMethod=0; StDevShift=0; A12="=========================="; A13="Настройки индикатора MACD"; UseMACD=true; MACDFast=12; MACDSlow=26; MACDSignal=9;
13:32:20 ComEx GBPUSD,M15: loaded successfully
13:32:20 ComEx GBPUSD,M15 inputs: Lots=0.01; TakeProfit=200; StopLoss=300; TrailingStop1=100; TrailingStop2=150; A1="Настройки ADX"; UseADX=true; ADXPeriod=14; ADXPrice=0; A2="=========================="; A3="Настройки Bollinger Bands"; UseBollinger=false; BandsPeriod=20; BandsShift=0; BandsDeviation=2; BandsPrice=0; A4="=========================="; A5="Настройки CCI"; UseCCI=false; CCIPeriod=14; CCIPrice=0; CCIHighLevel=100; CCILowLevel=-100; A6="=========================="; A7="Настройки пересечения MA"; UseCrossMA=false; MAFastPeriod=34; MAFastPrice=0; MAFastMethod=0; MAFastShift=0; MASlowPeriod=89; MASlowPrice=0; MASlowMethod=0; MASlowShift=0; A8="=========================="; A9="Настройки индикатора Parabolic SAR"; UseSAR=false; SARStep=0.01; SARMaximum=0.03; A10="=========================="; A11="Настройки индиктора Standard Deviation"; UseStDev=false; StDevPeriod=21; StDevPrice=0; StDevMethod=0; StDevShift=0; A12="=========================="; A13="Настройки индикатора MACD"; UseMACD=true; MACDFast=12; MACDSlow=26; MACDSignal=9;
13:33:01 ComEx EURUSD,M5: initialized
13:33:01 ComEx EURUSD,M30: initialized
13:33:01 ComEx GBPUSD,M15: initialized
13:33:01 ComEx EURUSD,M15: initialized
13:33:01 ComEx EURUSD,M5: close #127208389 buy 0.01 EURUSD at 1.41166 sl: 1.40666 tp: 1.41465 at price 1.40776
13:33:14 ComEx EURUSD,M5: open #127217096 sell 0.01 EURUSD at 1.40755 sl: 1.41055 tp: 1.40555 ok
13:35:54 ComEx EURUSD,M15: deinitialized
13:35:54 ComEx EURUSD,M15: uninit reason 4
13:35:54 ComEx EURUSD,M15: removed
13:36:00 ComEx EURUSD,M30: deinitialized
13:36:00 ComEx EURUSD,M30: uninit reason 4
13:36:00 ComEx EURUSD,M30: removed
13:41:49 ComEx EURUSD,M5: deinitialized
13:41:49 ComEx EURUSD,M5: uninit reason 5
13:41:49 ComEx EURUSD,M5 inputs: Lots=0.01; TakeProfit=300; StopLoss=500; TrailingStop1=100; TrailingStop2=150; A1="Настройки ADX"; UseADX=false; ADXPeriod=21; ADXPrice=0; A2="=========================="; A3="Настройки Bollinger Bands"; UseBollinger=false; BandsPeriod=20; BandsShift=0; BandsDeviation=2; BandsPrice=0; A4="=========================="; A5="Настройки CCI"; UseCCI=false; CCIPeriod=14; CCIPrice=0; CCIHighLevel=100; CCILowLevel=-100; A6="=========================="; A7="Настройки пересечения MA"; UseCrossMA=false; MAFastPeriod=34; MAFastPrice=0; MAFastMethod=0; MAFastShift=0; MASlowPeriod=89; MASlowPrice=0; MASlowMethod=0; MASlowShift=0; A8="=========================="; A9="Настройки индикатора Parabolic SAR"; UseSAR=true; SARStep=0.05; SARMaximum=0.2; A10="=========================="; A11="Настройки индиктора Standard Deviation"; UseStDev=false; StDevPeriod=21; StDevPrice=0; StDevMethod=0; StDevShift=0; A12="=========================="; A13="Настройки индикатора MACD"; UseMACD=true; MACDFast=12; MACDSlow=26; MACDSignal=9;
13:41:49 ComEx EURUSD,M5: initialized
13:52:20 ComEx GBPUSD,M15: deinitialized
13:52:20 ComEx GBPUSD,M15: uninit reason 1
13:52:20 ComEx GBPUSD,M15: removed
13:54:05 ComEx EURUSD,H1: loaded successfully
13:54:05 ComEx EURUSD,H1 inputs: Lots=0.01; TakeProfit=300; StopLoss=500; TrailingStop1=100; TrailingStop2=150; A1="Настройки ADX"; UseADX=false; ADXPeriod=21; ADXPrice=0; A2="=========================="; A3="Настройки Bollinger Bands"; UseBollinger=false; BandsPeriod=20; BandsShift=0; BandsDeviation=2; BandsPrice=0; A4="=========================="; A5="Настройки CCI"; UseCCI=false; CCIPeriod=14; CCIPrice=0; CCIHighLevel=100; CCILowLevel=-100; A6="=========================="; A7="Настройки пересечения MA"; UseCrossMA=false; MAFastPeriod=34; MAFastPrice=0; MAFastMethod=0; MAFastShift=0; MASlowPeriod=89; MASlowPrice=0; MASlowMethod=0; MASlowShift=0; A8="=========================="; A9="Настройки индикатора Parabolic SAR"; UseSAR=true; SARStep=0.05; SARMaximum=0.2; A10="=========================="; A11="Настройки индиктора Standard Deviation"; UseStDev=false; StDevPeriod=21; StDevPrice=0; StDevMethod=0; StDevShift=0; A12="=========================="; A13="Настройки индикатора MACD"; UseMACD=true; MACDFast=12; MACDSlow=26; MACDSignal=9;
13:54:05 ComEx EURUSD,H1: initialized

Scriptong
06-08-2011, 22:03
Как раз грохнул винду на работе вот лог;)
М-да. Параметров у советника так много, что все не могут быть записаны в лог. Самые важные как раз и не видны в нем. И, опять-таки, в логе показано открытие одной короткой позиции. Не видно добавлений, т.е. рассматриваемая ситуация не воспроизведена. В этом случае также ничего не скажешь.
Переставьте, пожалуйста строку в коде эксперта
extern int MagicNumber = 17589; перед строкой
extern double Lots = 0.1; и откомпилируйте его. Затем дождитесь воспроизведения ситуации и прикрепите файл лога (запакуйте его, а затем загрузите через управление вложениями) или нескольких файлов, если на воспроизведение уйдет несколько дней.

RITTERI
07-08-2011, 09:17
В этом индюке есть такой недостаток, но есть и преимущество, а именно его умеренная чувствительность к изменениям направления, что позволяет вовремя выйти из позиции. К тому же его чувствительность можно регулировать. Тем более ТС на нем не основывается, а его использует.

Здравствуйте, Teralex!
Недостаток индикатора Fisher, что он перерисовывается.
Я исправляю это, периодически обновляя шаблон, но на малых
таймфреймах это достаточно трудоёмкий процесс.
Можно ли его автоматизировать, дополнив программу советника
какой-нибудь функцией "Обновление" или "Восстановление" с ука-
занием наименования шаблона (например, "Teralex") и через какое
количество баров (например, "10").

RITTERI
07-08-2011, 09:33
Здравствуйте, Teralex!
Недостаток индикатора Fisher, что он перерисовывается.
Я исправляю это, периодически обновляя шаблон, но на малых
таймфреймах это достаточно трудоёмкий процесс.
Можно ли его автоматизировать, дополнив программу советника
какой-нибудь функцией "Обновление" или "Восстановление" с
указанием наименования шаблона (например, "Teralex") и через
какое количество баров (например, "10").

asid
07-08-2011, 11:57
Здравствуйте, Teralex!
Недостаток индикатора Fisher, что он перерисовывается.
Я исправляю это, периодически обновляя шаблон, но на малых
таймфреймах это достаточно трудоёмкий процесс.
Можно ли его автоматизировать, дополнив программу советника
какой-нибудь функцией "Обновление" или "Восстановление" с
указанием наименования шаблона (например, "Teralex") и через
какое количество баров (например, "10").

Советнику не страшна перерисовка... Он будет так-же четко открывать и закрывать позиции при поступлении определенного сигнала... Перерисовка дает лишь ложное ощущение совершенства фишера на истории... настоятельно не рекомендую использовать данный индикатор как основной!

Есть альтернатива, Fisher_m11, он не перерисовывает! На истории его показания, разумеется, не такие позитивные, но тем не менее они правдивы и можно смело настраивать и подгонять его под ТС на исторических данных!

mihesin
08-08-2011, 10:11
Переставьте, пожалуйста строку в коде эксперта. и откомпилируйте его. Затем дождитесь воспроизведения ситуации и прикрепите файл лога (запакуйте его, а затем загрузите через управление вложениями) или нескольких файлов, если на воспроизведение уйдет несколько дней.
Переставил, подключил, будем подождать:D:cool:

Teralex
09-08-2011, 14:37
Здравствуйте, Teralex!
Недостаток индикатора Fisher, что он перерисовывается.
Я исправляю это, периодически обновляя шаблон, но на малых
таймфреймах это достаточно трудоёмкий процесс.
Можно ли его автоматизировать, дополнив программу советника
какой-нибудь функцией "Обновление" или "Восстановление" с
указанием наименования шаблона (например, "Teralex") и через
какое количество баров (например, "10").

Что бы Вы с ним не делали, Фишер остается Фишером, и выглядит он на истории всегда лучше чем есть на самом деле. Использовать его на малых таймфреймах, а еще и с малым периодом, не советую. Я например его иногда использую с периодом "200" в паре с еще одним индикатором для определения крайней точки закрытия убыточной позиции при развороте тренда. Ну и конечно же есть много его модификаций, которые не перерисовываются, но толку не больше, у них есть свои недостатки. Для основы он не подходит.

mihesin
11-08-2011, 03:07
Здравствуйте Scriptong подскажите пожалуйста как вставить блок в комплексный советник для того что бы он наращивал открытую позицию. То есть алгоритм приблизительно такой:
-Если тралл ушел в плюс то окрываем ордер в туже сторону.
-Можно и профит передвинуть если не очень сложно.
-Шаг не меняется и у новой позиции открытие с теми же установками
P.S.
После перестановки магика вперед полет пока нормальный

Scriptong
11-08-2011, 09:46
Здравствуйте Scriptong подскажите пожалуйста как вставить блок в комплексный советник для того что бы он наращивал открытую позицию. То есть алгоритм приблизительно такой:
-Если тралл ушел в плюс то окрываем ордер в туже сторону.
-Можно и профит передвинуть если не очень сложно.
-Шаг не меняется и у новой позиции открытие с теми же установками
P.S.
После перестановки магика вперед полет пока нормальный

Простыми добавлениями этого не сделать. Придется менять логику блоков 5 и 6 функции start, которая в данном случае настроена на работу с одной позицией. В случае со множеством позиций нужно использовать функцию учета ордеров FindOrders по типу, описанному в статье Учет совокупной позиции (http://www.forextrade.ru/mqlabs/24.06.2010-mqlabs-raschet-sovokupnoy-pozicii). Но прямое ее использование тоже не подходит, придется изменять. Также нужно будет добавить функцию Trade для обработки информации, которая была подготовлена функцией FindOrders. Функция закрытия позиций тоже нуждается в доработке.

mihesin
12-08-2011, 07:30
Спасибо за ответ но похоже что своими силами мне не справится. Со статьей ознакомился очень полезная ссылка.

Scriptong
14-08-2011, 22:09
Спасибо за ответ но похоже что своими силами мне не справится. Со статьей ознакомился очень полезная ссылка.

А в комплексный советник такую возможность добавлять и нельзя. Не для того он делался. Подобная система требует тщательной отдельной проработки. Ведь у вас сигналом добавления к позиции что выступает? Положение трала? А если позиция будет открыта раньше/позже, то и трал сместится в соответствующую сторону. Отсюда следует, что новая позиция, относительно трала также будет открыта раньше или позже. Выходит, что система зависит от прихотей брокера (от того, как быстро он открыл позицию). То есть система получается зависимой от совершенно случайных факторов, при которых повторение одного и того же результата при прочих равных условиях невозможно. И как тестировать такую систему?

avmohr
21-09-2011, 15:26
Добрый вечер.
Доработка комплексного эксперта не планируется.
Здравствуйте, Scriptong. Отличная идея и реализация комплексного советника.
Жаль. Я поздно, видимо, наткнулся на этот форум.
Идея такого советника у меня давно и я рад, что нашел нечто похожее.
Но я бы хотел, чтобы он был немного изменен.
Вот в каком плане.
Сейчас советник открывает позицию, при совпадении показаний всех индикаторов, установленных на него. И соответственно чем больше индикаторов, тем сигналы поступают реже.
Можно было-бы сделать по другому.
Каждому сигналу от каждого индикатора присвоить свой весовой коэффициент. Например, при проверке стратегии по индикатору 1 получили прибыль 100% и просадку 0. Хороший результат, присваиваем коэф=1. Этому индикатору "можно верить". При проверке стратегии по индикатору 2 прибыль 100, просадка 50, присваиваем коэф=0.5, "доверия" этим показаниям меньше. Третий показал прибыль 50 просадку 50, коэф=0.1 и т.п.
Далее. От индикаторов поступают сигналы +1 -- сигнал покупки, -1 -- сигнал продажи или 0 -- нет сигнала. Рассчитываем общий сигнал как сумму (весовой коэффициент умножить на сигнал) Сделку открываем при достижении определенного уровня, например 0.8. Закрываем при уменьшении этого уровня, скажем до 0.5. Оптимизация работы: сначала подбираются параметры непосредственно каждой стратегии в отдельности, затем оптимизируется работа всех индикаторов вместе, с разными весовыми коэффициентами и разными уровнями открытия-закрытия.
В итоге получим, что при использовании одного индикатора коэф всегда равен 1 и уровень открытия 1, т.е. есть-нет сигнала. При двух уже можно будет повыбирать, например при весовых коэффициентах = 0.5 если уровень открытия=1, то позиция открывается только при совпадении показаний обоих индикаторов, если уровень открытия=0.5, то открывается позиция при положительном сигнале хотя-бы одного индикатора. Или первый индикатор с весом 1 показывает покупку, а два вторых в весом по 0.5 продажу. Итог - 0. Нет входа в рынок.
Как считаете, такой метод принесет какие-либо положительные результаты?

Scriptong
21-09-2011, 22:16
Сейчас советник открывает позицию, при совпадении показаний всех индикаторов, установленных на него. И соответственно чем больше индикаторов, тем сигналы поступают реже.
Можно было-бы сделать по другому.
Каждому сигналу от каждого индикатора присвоить свой весовой коэффициент. Например, при проверке стратегии по индикатору 1 получили прибыль 100% и просадку 0. Хороший результат, присваиваем коэф=1. Этому индикатору "можно верить". При проверке стратегии по индикатору 2 прибыль 100, просадка 50, присваиваем коэф=0.5, "доверия" этим показаниям меньше. Третий показал прибыль 50 просадку 50, коэф=0.1 и т.п.
Далее. От индикаторов поступают сигналы +1 -- сигнал покупки, -1 -- сигнал продажи или 0 -- нет сигнала. Рассчитываем общий сигнал как сумму (весовой коэффициент умножить на сигнал) Сделку открываем при достижении определенного уровня, например 0.8. Закрываем при уменьшении этого уровня, скажем до 0.5. Оптимизация работы: сначала подбираются параметры непосредственно каждой стратегии в отдельности, затем оптимизируется работа всех индикаторов вместе, с разными весовыми коэффициентами и разными уровнями открытия-закрытия.
В итоге получим, что при использовании одного индикатора коэф всегда равен 1 и уровень открытия 1, т.е. есть-нет сигнала. При двух уже можно будет повыбирать, например при весовых коэффициентах = 0.5 если уровень открытия=1, то позиция открывается только при совпадении показаний обоих индикаторов, если уровень открытия=0.5, то открывается позиция при положительном сигнале хотя-бы одного индикатора. Или первый индикатор с весом 1 показывает покупку, а два вторых в весом по 0.5 продажу. Итог - 0. Нет входа в рынок.
Как считаете, такой метод принесет какие-либо положительные результаты?
Да, такой подход существует и он имеет право на жизнь. Стоит лишь понимать, что весовые коэффициенты - это очень тонкая настройка, при помощи которой очень легко обмануть самого себя. Подбирать эти коэффициенты следует только на основании статистики, упорно избегая влияния собственных предпочтений, что, на самом деле, очень трудно.
Подобный принцип, возможно, будет рассмотрен в одной из будущих моих статей, но изложена тема будет без привязки к комплексному советнику.

avmohr
22-09-2011, 07:08
Да, такой подход существует и он имеет право на жизнь. Стоит лишь понимать, что весовые коэффициенты - это очень тонкая настройка, при помощи которой очень легко обмануть самого себя. Подбирать эти коэффициенты следует только на основании статистики, упорно избегая влияния собственных предпочтений, что, на самом деле, очень трудно.
Подобный принцип, возможно, будет рассмотрен в одной из будущих моих статей, но изложена тема будет без привязки к комплексному советнику.

Спасибо за ответ. буду ждать продолжения темы.

Насчет подбора весовых коэффициентов. Естественно их лучше подбирать при оптимизации советника, а не на глазок.
Вот в этой статье описан метод автоматического запуска тестера с другого терминала:
http://articles.mql4.com/ru/336
Там подробно описано как устанавливать и запускать такой эксперт.
Я попытался переделать все это дело немного. Во вложении файл советника Neyro_system_Expert.mq4 и три подключаемых файла. Файлы Lib1.mqh и Lib2.mqh -- файлы, подающие сигнал Buy / Sell. И файл auto_optimization_Neyron.mqh, запускающий второй терминал для тестирования и оптимизации параметров.
Lib1 и Lbb2 подают простые сигналы: один пересечение МА, второй пересечение STOH.
В Neyro_system_Expert.mq4 переменные Weigt1 и Weigt2 - весовые коэффициенты этих сигналов. При тестировании на разных участках получаем разные результаты: на тренде вес Машек больше, на флете больше вес СТОХа.
Пока автооптимизация проводится ежедневно в 00.01 час за последние 7 дней. Этот параметр в принципе в дальнейшем можно (или даже нужно) и изменить. Например, проводить автооптимизацию за N дней при получении 2 убыточных сделок, или раз в неделю, короче, кому как нравится.
Ну и соответственно в дальнейшем увеличить количество #include файлов с другими "мини-советниками".

Извините, почему-то не удалось вложить файлы правильно. Не приняты с расширением .mqh. Так что после скачивания придется в ручную переименовать первые три файла, изменив расширение с .mq4 на mqh. ну и соответственно положить их в папку \experts\include

P.s Надеюсь, что это мое сообщение остается в рамках этого форума. Если нет -- извиняйте.

Scriptong
25-09-2011, 07:22
Вот в этой статье описан метод автоматического запуска тестера с другого терминала:
http://articles.mql4.com/ru/336


Этот способ автооптимизации нужен только при требовании высокой точности (по тикам). В большинстве случаев достаточно провести оптимизацию по ценам открытия. Для этих целей не следует заходить в такие дебри. Достаточно реализовать блок самооптимизации в советнике без привлечения тестера стратегий: Советник с самотестом. Часть 1. (http://www.forextrade.ru/mqlabs/10.08.2009-sovetnik-s-samotestom-chast-1) и Советник с самотестом. Часть 2. (http://www.forextrade.ru/mqlabs/20.08.2009-sovetnik-s-samotestom-chast-2)



Извините, почему-то не удалось вложить файлы правильно. Не приняты с расширением .mqh. Так что после скачивания придется в ручную переименовать первые три файла, изменив расширение с .mq4 на mqh. ну и соответственно положить их в папку \experts\include


Можно такие файлы складывать в архив.

avmohr
26-09-2011, 12:27
Этот способ автооптимизации нужен только при требовании высокой точности (по тикам). В большинстве случаев достаточно провести оптимизацию по ценам открытия. Для этих целей не следует заходить в такие дебри. Достаточно реализовать блок самооптимизации в советнике без привлечения тестера стратегий: Советник с самотестом. Часть 1. (http://www.forextrade.ru/mqlabs/10.08.2009-sovetnik-s-samotestom-chast-1) и Советник с самотестом. Часть 2. (http://www.forextrade.ru/mqlabs/20.08.2009-sovetnik-s-samotestom-chast-2)

Согласен, можно и так.
Попробовал я реализовать функцию тестера стратегий в самой стратегии, как у Вас предложено в данных статьях. Вот с какими проблемами столкнулся.
1. Это в моем примере выше 2 стратегии, которые открывают ордера по прошедшей (же сформированной) свечи. А если добавить такую, что требует оптимизации по тикам?
Но ладно, это не суть важная проблема. Вторая, на мой взгляд, хуже:
2. громоздкость нового кода и неудобство в добавлении новых стратегий.
Например, в данный момент имеется 2 стратегии. Требуется оптимизировать их весовые коэффициенты. Имеем 4 параметра для оптимизации: Вес1 от 0 до 1, Вес2 от 0 до 1, уровень открытия ордера от 0 до 2 и уровень закрытия от 0 до 2 (для Buy, а для Sell аналогичный уровень, только со знаком минус, потому его и не считаем) Шаг каждого параметра 1. Итого имеем 4 вложенных цикла с общим количеством выполняемых операций 2*2*3*3=36. И это только для одного бара! А если оптимизировать часовой график за 5 суток, то результат будет 36*(24*5). Пока не страшно. А вот если мы соберем десяток стратегий, коэффициенты придется ставить уже от 0 до 10 и уровнем открытия от 0 до 11. Поимеем 11 вложенных циклов. Это получим количество операций 11 в одиннадцатой степени да еще умноженное на 12 два раза. (И это опять же для одного бара) Страшно считать полученную цифру. Да еще при том при всем результаты тестирования каждого параметра надо записать в массив или файл, потом выбрать из этого массива наиболее подходящие параметры (если мы, хотим выбрать не только по максимальной прибыли, но и по какому либо еще параметру, например по минимальной просадке из уже выбранных), что опять требует цикл от 1 до общего числа вариантов оптимизации, т.е. очень много. Даже если учитывать только прибыльные варианты, размер этого массива или файла будет ого-го.
Конечно, если учесть, что такая оптимизация требуется только при старте советника и далее раз с сутки (или в неделю, или как кто решит сам) все равно, зачем делать программно то, что в МТ4 и так уже реализовано? Советник сам запускает терминал-тестер и пусть он сам все оптимизирует за нас и запишет результаты в файл. Потом наш советник с него спокойно возьмет свои параметры и забудет о нем как о страшном сне до следующего времени оптимизации. Пользователю даже не придется на него отвлекаться.
И еще: если пользователю самому захочется добавить свою стратегию, ему придется добавить стратегию в подключаемом файле, добавить входные переменные для ее оптимизации (это придется делать в любом случае) но далее лезть глубоко в код, добавляя еще один вложенный цикл и меняя параметры циклов поиска уровней открытия и закрытия позиции. (Получим количество операций уже 12 в степени 12 умноженное на 13 и еще раз умноженное на 13) А при использовании дополнительного терминала для тестера достаточно добавить стратегию, ее переменные и внести изменения в файл с установками оптимизации в файле настроек .set, просто поставив галочки там, где кому хочется. Добавлять вложенный цикл уже не придется, => меньше вероятность запутаться.
И также можно в терминале-тестере задать параметр тестирования по уже завершенным барам для скорости.
Согласен, в приведенных Вами статьях идея интересная, но в данном случае она, мне кажется, не подойдет. Она подходит только для оптимизации небольшого количества параметров, например как у Вас в приведенных примерах: были ли две предыдущих сделки прибыльными: если да, то пропускаем следующий сигнал (немного я утрировал, конечно).
В моем случае такой метод, мне кажется, не подойдет.


Можно такие файлы складывать в архив.

Логично. Что-то об этом я не подумал. Но: форум посвящен программированию на MQL, а сам не принимает его файлы. Обидно просто. Где же автоматизация процесса? Алгоритм "выбрал файл -- прикрепил" проще, чем "переключился в Total Comander -- выбрал файл -- заархивировал -- переключился в браузер - опять выбрал файл-- прикрепил". Сколько лишних телодвижений. Но это вопрос уже не к Вам. Это так, лирическое отступление :)))

avmohr
27-09-2011, 13:01
Да и вообще вопрос об автоматической оптимизации стоит лишь как вопрос "тюнинга". Оптимизировать можно и вручную раз в год. Сам смысл в создании советника, который бы использовал сигналы других, скажем так, "вложенных" или "прикрепленных", советников либо сигналов от различных индикаторов, как в представленном Комплексном советнике не просто по типу "есть-нет", а по типу "(есть-нет) умножить на весовой коэффициент". Вопрос о подборе весов пока не стоит. Его пусть сам пользователь решает. Главное, чтоб ему было удобно добавить новую стратегию (или индикатор)

Scriptong
28-09-2011, 15:46
Попробовал я реализовать функцию тестера стратегий в самой стратегии, как у Вас предложено в данных статьях. Вот с какими проблемами столкнулся.
1. Это в моем примере выше 2 стратегии, которые открывают ордера по прошедшей (же сформированной) свечи. А если добавить такую, что требует оптимизации по тикам?


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



Вторая, на мой взгляд, хуже:
2. громоздкость нового кода и неудобство в добавлении новых стратегий.


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



Логично. Что-то об этом я не подумал. Но: форум посвящен программированию на MQL, а сам не принимает его файлы. Обидно просто. Где же автоматизация процесса? Алгоритм "выбрал файл -- прикрепил" проще, чем "переключился в Total Comander -- выбрал файл -- заархивировал -- переключился в браузер - опять выбрал файл-- прикрепил". Сколько лишних телодвижений. Но это вопрос уже не к Вам. Это так, лирическое отступление :)))
Раньше и mq4 файлы не принимались. Примерно год назад добавили. Попробую попросить, чтобы добавили расширение mqh.

avmohr
29-09-2011, 02:12
С нетерпением буду ждать статью. Мне кажется, что главное в ней должна быть простота в подключении новых стратегий и, на мой взгляд, все-таки использование весовых коэффициентов для каждой отдельной.
Жаль только мне сейчас придется примерно на неделю оторваться от компьютера. Бытовые проблемы.

pronto
01-10-2011, 20:19
Уважаемый Scriptong напишите пожалуйста такой советник!
Суть советника: необходимо войти в 3-ю волну. Т.е если цена падает, то на отскоке советник должен выставить Sell Stop на окончании 1-й волны, если цена растёт, то на корреции необходимо выставить Buy Stop( рисунок в пример)
Все ордера которые не сработали так и висят и ждут своего часа. т.е получится фрактальная сетка.
Каждый отложенный ордер выставляется со стопом и профитом.
Сопровождение ордеров: После того как произойдёт разворот тренда у нас начнут срабатывать ордера и строится так называемая пирамида. Когда первый ордер пройдёт пройдёт в плюс к примеру 50 п. то он должен модифицироваться выше точки входа, далее у нас срабатывает второй ордер и пройдя тоже +50 п. модифицируется чуть выше точки входа, прихватив за собой первый ордер тоже на этот же уровень и так далее, 3-й модифицирует с собой 1и 2 ордер, пока не выбьет по стоп-лоссу пачку ордеров или ордера начнут выходить по своему профиту.
В настройках должно быть: обьём позиции в % на одну сделку, тейк и стоп лосс, трейлинг-стоп, отступ от фрактала
22693
22694

Scriptong
04-10-2011, 08:18
Суть советника: необходимо войти в 3-ю волну. Т.е если цена падает, то на отскоке советник должен выставить Sell Stop на окончании 1-й волны, если цена растёт, то на корреции необходимо выставить Buy Stop( рисунок в пример)

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

Задание нуждается в серьезной конкретизации.

Scriptong
04-10-2011, 08:20
С нетерпением буду ждать статью. Мне кажется, что главное в ней должна быть простота в подключении новых стратегий и, на мой взгляд, все-таки использование весовых коэффициентов для каждой отдельной.
Жаль только мне сейчас придется примерно на неделю оторваться от компьютера. Бытовые проблемы.
Статья вышла: оригинал (http://www.forextrade.ru/mqlabs/29.09.2011-mqlabs-avtomaticheskiy-vybor-strategii) и копия на форуме (http://forum.admiralmarkets.com/showthread.php?t=8312).

pronto
04-10-2011, 10:22
Как обычно, простой вопрос: каковы критерии определения "первой волны" и "отскока"? Также из рисунка непонятно, каким образом определяется, что цена падает? Это один пункт вниз от фрактала, одна медвежья свеча вниз от фрактала или десять свечей вниз? Придумать здесь можно что угодно.

Задание нуждается в серьезной конкретизации.
Просто при появлении фрактала

avmohr
05-10-2011, 16:25
Статья вышла: оригинал (http://www.forextrade.ru/mqlabs/29.09.2011-mqlabs-avtomaticheskiy-vybor-strategii) и копия на форуме (http://forum.admiralmarkets.com/showthread.php?t=8312).

Спасибо. Буду разбираться.

Scriptong
07-10-2011, 09:13
Просто при появлении фрактала

Что это было?

pronto
07-10-2011, 12:55
Что это было?
При появлении верхнего фрактала выставляется бай-стоп, при появлении нижнего фрактала селл-стоп, так будем идентифицировать третью волну, на основании данного индикатора

Scriptong
10-10-2011, 15:42
При появлении верхнего фрактала выставляется бай-стоп, при появлении нижнего фрактала селл-стоп, так будем идентифицировать третью волну, на основании данного индикатора

Этого мало. Я ведь написал:


Задание нуждается в серьезной конкретизации.

Вы же написали одно предложение, которое не понятно, к чему относится.

pronto
10-10-2011, 16:18
На основании данного индикатора при появлении верхнего фрактала выставляется бай-стоп, при появлении нижнего фрактала селл-стоп, отступ задаётся в настройках.
Все ордера которые не сработали так и висят и ждут своего часа. т.е получится фрактальная сетка.
Каждый отложенный ордер выставляется со стопом и профитом.
Сопровождение ордеров: После того как произойдёт разворот тренда у нас начнут срабатывать ордера и строится так называемая пирамида. Когда первый ордер пройдёт пройдёт в плюс к примеру 50 п. то он должен модифицироваться выше точки входа, далее у нас срабатывает второй ордер и пройдя тоже +50 п. модифицируется чуть выше точки входа, прихватив за собой первый ордер тоже на этот же уровень и так далее, 3-й модифицирует с собой 1и 2 ордер, пока не выбьет по стоп-лоссу пачку ордеров или ордера начнут выходить по своему профиту.
В настройках должно быть: обьём позиции в % на одну сделку, тейк и стоп лосс, трейлинг-стоп, отступ от фрактала

Что тут не понятного, я не пойму:(

Scriptong
12-10-2011, 12:44
Все ордера которые не сработали так и висят и ждут своего часа.


Что непонятно? Да очень просто. Что, если отложенный ордер завис с прошлого года, когда депозит был 30 000 USD, а объем ордера, рассчитанный в процентах от депозита был равен 10 лот. Прошел год, большую часть депозита вы вывели, оставили только 1000 USD. На открытие ордера не осталось средств. Здесь необходимо додумать, при каком условии ордера должны быть удалены или ограничить время их существования (установить дату истечения).




т.е получится фрактальная сетка.


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



Сопровождение ордеров: После того как произойдёт разворот тренда у нас начнут срабатывать ордера и строится так называемая пирамида. Когда первый ордер пройдёт пройдёт в плюс к примеру 50 п. то он должен модифицироваться выше точки входа, далее у нас срабатывает второй ордер и пройдя тоже +50 п. модифицируется чуть выше точки входа, прихватив за собой первый ордер тоже на этот же уровень и так далее, 3-й модифицирует с собой 1и 2 ордер, пока не выбьет по стоп-лоссу пачку ордеров или ордера начнут выходить по своему профиту.


Трейлинг-стоп в пунктах я в советниках не устанавливаю. Это глупо, т.к. закрытие позиции зависит от цены ее открытия, которая, в свою очередь, является случайной. В крайнем случае воспользуйтесь функцией трейлинг-стопа из комплексного советника. Но я в программировании трейлинга в пунктах больше не участвую
Если же я неправильно вас понял насчет открытия позиций по фракталам и вы имели в виду, что после установки первой позиции следует установить следующий ордер на некотором расстоянии от него в пунктах, а потом еще один и т.д., то эту технология является давно известной под названием гридер. Гридеры и Мартингейлы мною также не разрабатываются. Это ущербные технологии, которые работают до поры, до времени. Свежий пример - эксперт Дмитрия Манова на АТС 2011 (http://championship.mql5.com/2011/ru/users/Manov).

Прошу не рассматривать мои вопросы как придирки. Я исхожу из своего опыта в разработке АТС. Поэтому многие заблуждения трейдеров вижу сразу, их даже не нужно программировать, чтобы сказать, что из этого ничего не выйдет. Попробуйте, во-первых, хорошенько проработать все условия своей системы, а, во-вторых, не поддаваться самообману, используя механистические системы (http://www.forextrade.ru/mqlabs/19.06.2009-mehanisticheskie-strategii).

pronto
12-10-2011, 16:42
Что непонятно? Да очень просто. Что, если отложенный ордер завис с прошлого года, когда депозит был 30 000 USD, а объем ордера, рассчитанный в процентах от депозита был равен 10 лот. Прошел год, большую часть депозита вы вывели, оставили только 1000 USD. На открытие ордера не осталось средств. Здесь необходимо додумать, при каком условии ордера должны быть удалены или ограничить время их существования (установить дату истечения).
В этом случае кроем ручками при помощи скрипта, усложнять систему не нужно. В этом случае оптимизируем под 1000$ и начинаем снова.




Разве что от старых ордеров она получится. Если же рынок пойдет в одном направлении, то будет только один ордер, для которого нет следующего, т.к. для образования фрактала в эту же сторону необходим новый фрактал.
Правильно на старых ордерах мы и едем. Если один есть значит едим на одном, потом в случае отскока у нас фиксится по стопу или в безубытке, за это время появится новый фрактал на пробой, мы войдём в него и опять поедем на одном ордере.


Трейлинг-стоп в пунктах я в советниках не устанавливаю. Это глупо, т.к. закрытие позиции зависит от цены ее открытия, которая, в свою очередь, является случайной. В крайнем случае воспользуйтесь функцией трейлинг-стопа из комплексного советника. Но я в программировании трейлинга в пунктах больше не участвую
Если же я неправильно вас понял насчет открытия позиций по фракталам и вы имели в виду, что после установки первой позиции следует установить следующий ордер на некотором расстоянии от него в пунктах, а потом еще один и т.д., то эту технология является давно известной под названием гридер. Гридеры и Мартингейлы мною также не разрабатываются. Это ущербные технологии, которые работают до поры, до времени. Свежий пример - эксперт Дмитрия Манова на АТС 2011 (http://championship.mql5.com/2011/ru/users/Manov).

Прошу не рассматривать мои вопросы как придирки. Я исхожу из своего опыта в разработке АТС. Поэтому многие заблуждения трейдеров вижу сразу, их даже не нужно программировать, чтобы сказать, что из этого ничего не выйдет. Попробуйте, во-первых, хорошенько проработать все условия своей системы, а, во-вторых, не поддаваться самообману, используя механистические системы (http://www.forextrade.ru/mqlabs/19.06.2009-mehanisticheskie-strategii).
Трейлинг в таком виде как я предлагаю работает на ура. Рынок он вообще случаен, и мне известно что обычный трал ухудшает систему, я на рынке девятый год. Поэтому трал комплексного советника здесь не пойдёт.
Нет последующие ордера выставляются при появлении фрактала, не важно через сколько он появится через 10п. или через 500п., я имел ввиду отступ над фракталом, как у Вильямса +1п., только у нас должен регулироваться оптимизацией. Да это гридер, только он не по пунктам выставляется, а за фракталами, а это меняет суть. Это не мартин, просто если у нас депозит растёт, то и лот постепенно увеличивается, если мы идём в убытках, то и лот становится меньше, значит мы не правы и должны дождаться от рынка адекватных условий на маленьких лотах.
Я на рынке девятый год, и думаю здесь Вы не правы, что я обманываюсь. У меня был такой советник уже, но слетела винда и советник к сожалению ушёл в никуда, поэтому я к Вам и обратился за помощью. И могу сказать, что из Ваших написанных здесь советников пока лучше этого я не нашёл, а скачал я их не один десяток. Советник Манова качнул, совсем др. идея
Ниже скрин ТС которую я предлагаю, после оптимизации. В цитатах тоже ответ смотрите, не получилось правильно вставить
22758

Scriptong
15-10-2011, 17:18
Трейлинг в таком виде как я предлагаю работает на ура. Рынок он вообще случаен, и мне известно что обычный трал ухудшает систему, я на рынке девятый год. Поэтому трал комплексного советника здесь не пойдёт.

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



Нет последующие ордера выставляются при появлении фрактала, не важно через сколько он появится через 10п. или через 500п., я имел ввиду отступ над фракталом, как у Вильямса +1п., только у нас должен регулироваться оптимизацией. Да это гридер, только он не по пунктам выставляется, а за фракталами, а это меняет суть.

Здесь тоже согласен. Разумная доливка это не гридер и уж тем более не Мартингейл.

Сложите задание полностью и оформите его одним постом или в виде прикрепленного текстового файла (doc или txt). Пока из разрозненных постов мне трудно сложить задание.

pronto
16-10-2011, 09:54
Собрал в текстовый файл.22779

Scriptong
18-10-2011, 08:24
Собрал в текстовый файл.22779

Отлично! Получилось образцовое ТЗ.
Думаю оформить это в виде статьи. Так что добавлю к заданному некоторые свои опции. Захотите - просто выключите их.
Единственное замечание: параметры мин. лот и макс. лот не нужны. Советник определяет их автоматически, исходя из настроек брокера. К тому же эти параметры будут конфликтовать с расчетами объема, исходя из размера стоп-лосса. Ведь если объем выходит за установленные размеры, то риск сделки будет завышен или занижен. В итоге теряется смысл расчета объема.

pronto
18-10-2011, 12:42
ОК, спасибо, будем ждать

zvzik
20-10-2011, 07:02
И я с нетерпением жду, может и для себя найду решения которых нехватает.И очень благодарен автору советника Scriptong
не столько за советник, а за те знания и науку которые я отсюда почерпнул. Не совсем согласен, но это уже моя проблема. Например гридер-при правильной математической модель основаной даже только на пипсах он у меня работает правда, с ручным выставлением сетки. Не существует абсолютных истин, а тем более на рынке.

zvzik
20-10-2011, 08:54
Очень нрвится подход Scriptong к двум понятия перестановка стоп приказа и трейлинга-верно это два разных понятия. Мое отношение к локированию тоже имеет два понятия как собственно лок и второе забываем о старой позе и начинаем новую серию.Технически одно и тоже, но в психологическом плане абсолютно разные вещи.Цена вопроса-величина депозита. И когда встает вопрос реализации сумасбродной идеи, ее реализация должна в первую очередь согласовыватся с ММ.Можно всегда на рынке быть в профите,без исключения всегда,если ваш депо позволяет работать от исторического максимума до исторического минимума.Вопросы процентной профитности советника это уже другой вопрос.Посему не всегда можно блокировать сумасбродную идею,а и согласовать с ее автором на какой ММ он ориентируется при просадках и величиной депо при определенных обьемах.Если я не прав можно пинать.И обратимся к всем известым черепашкам-на 1у позу 0.01лота запас депо был 5000доларов.Вот и вся слава системы.

Borisytch
20-10-2011, 10:18
Да, по тикам сложнее, т.к. необходимо писать алгоритм моделирования тиков. Но тоже возможно. Другое дело, что я не склонен считать стратегии, зависящие от тиков, стабильными. Это стратегии, использующие рыночный шум. На шум ориентироваться нельзя, это ошибка.

Scriptong, голубчик ... это как же рассматривать твое заявление??? ... "тики - шум!" ... ты сидишь в луже - МТ и сиди, а заявления и определения оставь при себе! ... от народ, изучат примитивную торговлю лоточника и начинают ярлыки с определениями на ВСЮ торговлю развешивать! ... Наивные чукотские мальчики!

zvzik
20-10-2011, 13:09
Scriptong, голубчик ... это как же рассматривать твое заявление??? ... "тики - шум!" ... ты сидишь в луже - МТ Наивные чукотские мальчики!
Я наверное тоже наивный чукотский мальчик и не понимаю ЛУЖА МТ.Работаю и с мт и с актрейдер и с дюком.Не вижу разницы!!! Это так как я писал одним любителям ТА и чартизма чтобы они поменяли монитор на своем компютере тогда другие фиги получат.

Scriptong
20-10-2011, 20:06
"тики - шум!"
Именно так. Даже если речь идет о торговле, при которой позиция в среднем удерживается 20-30 мин (зачастую такую торговлю называют пипсовкой), то тики относительно изменений, произошедших за эти 20-30 мин, имеют частоту явно высшую. Что уже говорить о тиках, когда позиции удерживаются часы и дни? Ультразвук да и только.
Это для бабочки-однодневки тик может быть продолжительным событием, а для людей - это шум, который необходимо усреднять и лишь потом анализировать. Для этого придуманы периоды графиков, самый мелкий из которых - минутный.
Да, и еще, не забывайте, что не существует даже двух брокеров в мире, у которых дневной набор тиков полностью идентичный.

P. S. Поумерьте пыл, пожалуйста. Оскорбляя других форумчан и "тыкая" на каждом шагу, вы мало чего добьетесь. Если есть собственное мнение, то выражайте его толерантно.

zvzik
21-10-2011, 06:48
Увыжаемый скриптонг.Решил провести доп-е эксперименты с Вашим комплексным V4. С той целью что может быть будет частичной заменой советнику который я прошу написать в ветке -вопрос к скриптонгу.Установил лиш с одным индюком CE.DSS вашей разработки.Поэтому по комплексному прошу разтолковать мне безграмотному. 1.сов открыл позу-сигнал сменился и он закрывает старую и открывает новую.Зачем? Это противоречит логике,т.к в сове предусмотрен стоп лосс. Поэтому сова медленно стремится к сливу в флете,и выглядит как перепуганый трейдер. Мартины и усреднители тоже имеют ту же слабость только там перепуг вперемешку с святой уверенностю правоты первой сделки.Попытку псевдолока т.е открытие новой без закрытия старой и отдав ее на откуп стоп приказа была бы более логичной.Лок считался бы тогда если бы работа велась без стопа. Догадываюсь- Ваш ответ-тогда мы можем войти в большое к-во сделок в разные стороны.Отвечаю во первых это не несет угрозы и во вторых можно поставить ограничение на к-во сделок.Спасибо за ответ.P.S К псевдолоку мы еще дойдем и в моей просьбе если будет необходимость.

Borisytch
21-10-2011, 14:36
Именно так. Даже если речь идет о торговле, при которой позиция в среднем удерживается 20-30 мин (зачастую такую торговлю называют пипсовкой), то тики относительно изменений, произошедших за эти 20-30 мин, имеют частоту явно высшую. Что уже говорить о тиках, когда позиции удерживаются часы и дни? Ультразвук да и только.
Это для бабочки-однодневки тик может быть продолжительным событием, а для людей - это шум, который необходимо усреднять и лишь потом анализировать. Для этого придуманы периоды графиков, самый мелкий из которых - минутный.
Да, и еще, не забывайте, что не существует даже двух брокеров в мире, у которых дневной набор тиков полностью идентичный.

P. S. Поумерьте пыл, пожалуйста. Оскорбляя других форумчан и "тыкая" на каждом шагу, вы мало чего добьетесь. Если есть собственное мнение, то выражайте его толерантно.
Где ты этого понабрался??? ... кто тебе рассказал о ТОРГОВЛЕ??? ... что значит "позиция в среднем удерживается 20-30 мин"??? ... откуда такая информация? ... ты на форуме "адмиралов" с торговлей познакомился? ... на каком семинаре-курсах тебе это рассказали? ...
Если занимаешься за оплату "постов" на форуме программированием - это не должно бы давать программисту права, собирая сплетни в среде начинающих знакомится с рынком балбесов, делать заявления как Шариков о переписке Троцкого с Каутским.
"Для этого придуманы периоды графиков, самый мелкий из которых - минутный." - ваша неосторожная "компетентность" не настраивает на деликатный стиль общения. Кто вам сказал, что "... для людей - это шум, который необходимо усреднять и лишь потом анализировать. Для этого придуманы периоды графиков, самый мелкий из которых - минутный."??? ... Вас где учили произносить подобные глупости? ... Такой плевок на всех профессионалов от торговли!!! ...
"Да, и еще, не забывайте, что не существует даже двух брокеров в мире, у которых дневной набор тиков полностью идентичный." - вы даже не знаете, что брокеры (я о нормальных, а не о тех которых вы имеете ввиду) не имею никакого отношения к подаче котировок, этим занимаются специализированные сервисы вроде ZenFire и малейшее искажение котировок у сертифицированного сервиса может вызвать отзыв лицензии! ...
Я на этот форум попал случайно и ни в коем случае не собирался оскорблять форумчан, но вашу безапелляционность пропустить просто трудновато было.

Scriptong
23-10-2011, 16:05
что значит "позиция в среднем удерживается 20-30 мин"???
Читайте внимательнее, а не по диагонали. Перед этой цитатой следуют такие слова: "даже если речь идет о торговле, при которой ..."



"Для этого придуманы периоды графиков, самый мелкий из которых - минутный." - ваша неосторожная "компетентность" не настраивает на деликатный стиль общения.

И в чем я здесь неправ? Разве что речь вести о "крестиках-ноликах", но такого типа графики, к сожалению, сейчас не пользуются популярностью.



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

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

Судя по вашим словам, они реагируют на каждый новый тик. Тик в одну сторону - Buy, тик в другую строну - Sell. Только вот что в этом случае профессионалы делают со спредом?
Большинство успешных трейдеров, о которых я слышал (если конечно этот критерий определения профессионалов вас устраивает), исповедуют долгосрочный стиль торговли. Для них не то, что тик, график Н1 - мелкий шум.



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

То есть брокеру диктуют спред, который он может устанавливать? Насколько я понимаю, это личное дело каждой организации. Отсюда следует, что цены Bid и Ask будут однозначно отличаться от тех, которые получены у поставщика котировок.
Да, и вам ли, как профессионалу, не знать, что брокеры в своей практике используют несколько поставщиков котировок, данные которых проходят фильтрацию и лишь затем передаются в клиентские терминалы. Это делается для предотвращения всевозможных шпилек, которыми изобилуют исходные котировки. Более подробно, к сожалению, не могу рассказать, т.к. никогда не работал "по ту сторону баррикад".

P.S. В целом, мне нравится, что вы к концу сообщения перешли на "вы". Возможно, дальнейшая дискуссия будет протекать в более спокойном русле. Если же нет, то я буду вынужден игнорировать ваши дальнейшие сообщения.

Scriptong
23-10-2011, 16:29
Поэтому по комплексному прошу разтолковать мне безграмотному. 1.сов открыл позу-сигнал сменился и он закрывает старую и открывает новую.Зачем? Это противоречит логике,т.к в сове предусмотрен стоп лосс. Поэтому сова медленно стремится к сливу в флете,и выглядит как перепуганый трейдер.
Не стоит посыпать голову пеплом. Это нормальный вопрос. В советнике реализована именно такая тактика: противоположный сигнал принудительно закрывает существующую позицию. О логичности такого подхода можно спорить. По крайней мере, мне такая тактика кажется более логичной.
Если же говорить о локе, то, отдаваясь на волю рынка, вы теряете контроль над ситуацией. Ведь, открывая противоположную позицию, не закрывая существующую, вы, по сути, закрываете существующую сделку, не открывая новую. А вместо этого устанавливаете два отложенных ордера: Buy Stop и Sell Stop, если стопы меньше профитов, и Buy Limit с Sell Limit, если стопы больше профитов (или вариации со стоповыми и лимитными ордерами). В этом случае уровни открытия полученных виртуальных отложенных ордеров обоснованы лишь ценой открытия позиций Buy и Sell. Никто не говорит, что это плохо, просто логика в этой ситуации уж очень тонкая, в которой тяжело разобраться сходу.

zvzik
23-10-2011, 19:20
Не стоит посыпать голову пеплом. Это нормальный вопрос. В советнике реализована именно такая тактика: противоположный сигнал принудительно закрывает существующую позицию. О логичности такого подхода можно спорить. По крайней мере, мне такая тактика кажется более логичной.
Если же говорить о локе, то, отдаваясь на волю рынка, вы теряете контроль над ситуацией. Ведь, открывая противоположную позицию, не закрывая существующую, вы, по сути, закрываете существующую сделку, не открывая новую. А вместо этого устанавливаете два отложенных ордера: Buy Stop и Sell Stop, если стопы меньше профитов, и Buy Limit с Sell Limit, если стопы больше профитов (или вариации со стоповыми и лимитными ордерами). В этом случае уровни открытия полученных виртуальных отложенных ордеров обоснованы лишь ценой открытия позиций Buy и Sell. Никто не говорит, что это плохо, просто логика в этой ситуации уж очень тонкая, в которой тяжело разобраться сходу.
Принимается.Здесь вы меня поняли и ответили полностю....тяжело разобратся с ходу...поэтому дальнейшее и не сходу по этому вопросу перенесем http://forum.admiralmarkets.com/showthread.php?t=4934&page=20 где для меня важен вопрос доливки и сопровождения.Как Вы и подметили это ОТЛОЖКИ.Мы начинаем понимать друг друга.Наши успешные купцы разписывались печатью пальца и были успешными,а я тот же торгаш только обучен грамоте.

Borisytch
24-10-2011, 09:06
"Судя по вашим словам, они реагируют на каждый новый тик. Тик в одну сторону - Buy, тик в другую строну - Sell. " ...

https://picasaweb.google.com/114597112639679373438/TS_IMHO# - нагляднее мне трудно что либо еще представить. Анализ мной производится только на тиках, объемы предложений и продаж ... Тики это и есть торговля, бары - обобщение, лишая себя полноценной информации о торгах, человек сознательно закрывает глаза на происходящее ... ТА - инструмент аналитиков , а не торгашей ... навязывание ТА как основы для принятия решений на рынке - сознательный увод в надуманности.
Брокеру спред не определяют, он определяется рыночной ситуацией ... это банально, а то во что вы играетесь - это даже не форекс ... определитесь с местом и участниками.

zvzik
24-10-2011, 10:53
"Судя по вашим словам, они реагируют на каждый новый тик. Тик в одну сторону - Buy, тик в другую строну - Sell. " ...

https://picasaweb.google.com/114597112639679373438/TS_IMHO# - нагляднее мне трудно что либо еще представить. Анализ мной производится только на тиках, объемы предложений и продаж ... Тики это и есть торговля, бары - обобщение, лишая себя полноценной информации о торгах, человек сознательно закрывает глаза на происходящее ... ТА - инструмент аналитиков , а не торгашей ... навязывание ТА как основы для принятия решений на рынке - сознательный увод в надуманности.
Один момент заинтересовал.Программы индикаторы тактики анализ хотя бы не для МТ а для актрейдер-форекс клуб и т.д В ак есть тики.Если можно ссылки архивы и др материалы.Век живи век учись. С одним не согласен-нет на рынке что то плохо или что то хорошо.Хорошо это комплекс и не существует абсолютных истин,а тем более на рынке.И ответ трейдера в споре всегда самый скучный -вроде этого ВОЗМОЖНО ТЫ И ПРАВ.

Borisytch
25-10-2011, 14:14
Один момент заинтересовал.Программы индикаторы тактики анализ хотя бы не для МТ а для актрейдер-форекс клуб и т.д В ак есть тики.Если можно ссылки архивы и др материалы.Век живи век учись. С одним не согласен-нет на рынке что то плохо или что то хорошо.Хорошо это комплекс и не существует абсолютных истин,а тем более на рынке.И ответ трейдера в споре всегда самый скучный -вроде этого ВОЗМОЖНО ТЫ И ПРАВ.
Я не торгую на русском рынке как и на форексе ... поэтому ничем помочь не могу.
В профиле есть ссылка на мой старый сайт.

Scriptong
26-10-2011, 09:33
https://picasaweb.google.com/114597112639679373438/TS_IMHO# - нагляднее мне трудно что либо еще представить. Анализ мной производится только на тиках, объемы предложений и продаж ... Тики это и есть торговля, бары - обобщение, лишая себя полноценной информации о торгах, человек сознательно закрывает глаза на происходящее ... ТА - инструмент аналитиков , а не торгашей ... навязывание ТА как основы для принятия решений на рынке - сознательный увод в надуманности.
Брокеру спред не определяют, он определяется рыночной ситуацией ... это банально, а то во что вы играетесь - это даже не форекс ... определитесь с местом и участниками.

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

Borisytch
26-10-2011, 15:55
" ... Допустим, у нас есть информация об объемах. А теперь на секундочку задумаемся, откуда эта информация появилась. Ведь не может один брокер обладать информацией об объемах сделок, совершаемых совокупно по всему миру. ..." - вы действительно ничего не знаете о торговле на бирже. Думаю вам будет полезно разобраться в правилах и особенностях торговли ... то что вы знаете - это сильно искаженная информация о торговле на форексе, а с биржевыми особенностями вы не знакомы совсем.

zvzik
28-10-2011, 07:30
Проблема в том, что мы с вами говорим о разных вещах. Ваш анализ рынка основан на анализе объемов. Я же в своей практике вовсе не использую объемы по "техническим причинам" - этих данных попросту нет.
Далее. Допустим, у нас есть информация об объемах. А теперь на секундочку задумаемся, откуда эта информация появилась. Ведь не может один брокер обладать информацией об объемах сделок, совершаемых совокупно по всему миру. Во-первых, это достаточно тяжело технически, а, во-вторых, если отбросить "во-первых", существует такая вещь как банковская тайна. Думаю, любой человек возмутится, если узнает, что его запрос на покупку или продажу какого-либо актива стал известен всему миру. То есть в пределах одного банка такая информация возможна (и ею активно пользуется сам банк), но выйти за пределы банка она не может (разве что незаконными путями).
Поэтому информация об объемах торгов всегда будет оставаться неполноценной, т.к. она описывает какую-то локальную ситуацию, характерную только для одного банка, торговой площадки, дилингового центра и т.д. Другое дело, если эта локаль достаточно объемна сама по себе (крупный банк или дилинговый центр), но и это не спасает от риска получения недостоверной информации.
Приведу простой пример. У некоего инвестора есть информация (инсайд) о близящемся повышении цен на товар Х. При этом инвестор располагает крупной суммой, которую он планирует истратить на покупку товара Х. Если он станет действовать прямолинейно, т.е. покупая товар Х большими партиями на одной торговой площадке, то это моментально вызовет панику на рынке и приведет к стремительному взлету цены на товар. В итоге инвестор не успеет освоить все планируемые средства, успев купить только малое количество товара. Поэтому инвестор будет распределять свои средства среди максимального количества торговых площадок, покупая товар Х не очень большими партиями на каждой из них, но в сумме это приведет к покупке достаточно существенного количества товара по низкой цене. Это отсрочит повышение цен, т.к. рынки не смогут быстро распознать большую закупку в серии малых.
Таким образом, имея данные по объемам сделок на одной из таких торговых площадок, вы не сможете распознать готовящуюся кампанию, т.к. в пределах площадки она будет иметь незначительное влияние. Нужно иметь информацию по всем участникам рынка всего мира, что реализовать практически очень сложно. Хотя я не говорю, что это невозможно. Скорее всего, крупные спекулянты так и делают: собирают данные по крупнейшим биржам мира и быстро анализируют ее (программно). В итоге у них получается более полноценная картина о происходящем на рынке. Но получить подобную информацию от одного брокера - нереально.
Времени мало 2 прошедших дня очень нагружены и поэтому немного задерживаюсь с выкладкой виденья индикатора ускорения.Но пропустить эти посты также трудно.Пройдусь и я по вашим спорам и подчеркиваю это мое личное мнение не с цель понтогонства без фактажа и материало а мнение с указанием на материалы.Анализ рынка по обьемам-не говорю где торгую одно важно какой програмный продукт даст нам информацию об обьемах.Для трейдера с депозитом 10к-100к вполне удовлетворяют такие програмные продукты как ниньзя и софт МакретДельта. Вы немного не правы в том что нельзя найти абьемы крупнейших банков и хеджей -можно и это не является ни инсайдом ни закрытой информацией и закрытость эта только у нас мы ж особые. Анализ обьемов и сумарного результата и создания на этой базе совы на уровне данного форума не реально.Надо просто знать как создаются советники однодневки-это работа целых аналитических отделов где каждой теории-тактике присваивается весовое значение дальше математический отдел с корекцией психологического и пошло в отдел програмистов.Работает большой штат спецов которые выдают програмный продукт высокого уровня и эта работа непосильна для програмиста одиночки даже гениального.Поэтому разсуждения на эту тему на просторах подобных форумов это флуд понтогонство и желание выделится среди всех участников желание подчеркнуть свою значимость.Любая заява высказывание предложение просьба должны подтверждатся соответственными материалами.Получение данных по тиковым обьемам и их анализ и принятие решений на их основании доступны крупных фин компания,но они на подобных форумах не присутствуют и никогда не будут.И если трейдер одиночка имею ввиду без соответственных отделов и будет получать подобную информацию то анализировать и принимать решения сможет по принцыпу -то что видит глаз и счас такой подход назвали модным словом нейро сети. Создание советника с учетом обьемов для уровня нашего форума это бред и все разговоры на эту тему пустословие и словоблудие и лучший выход прекращение этих разговоров и взаимных оскорблений.КОНСТРУКТИВ И ТОЛЬКО КОНСТРУКТИВ.С маленьких элементов конструктива мы можем создать хороший продукт для среднего трейдера. Подобные споры несут раздражение и мешают работать.

Scriptong
28-10-2011, 19:43
Пройдусь и я по вашим спорам и подчеркиваю это мое личное мнение не с цель понтогонства без фактажа и материало а мнение с указанием на материалы. Анализ рынка по обьемам-не говорю где торгую одно важно какой програмный продукт даст нам информацию об обьемах.


Я выше и утверждал, что в лучшем случае мы будем иметь дело с ограниченным стаканом.


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

Опять же - информацию по банкам достать можно. А теперь попробуйте собрать ее воедино за наиболее короткий срок, чтобы она соответствовала одному моменту времени. За вас кто-то другой это вряд ли будет делать. Разве что за хорошее вознаграждение.



Анализ обьемов и сумарного результата и создания на этой базе совы на уровне данного форума не реально.Надо просто знать как создаются советники однодневки-это работа целых аналитических отделов где каждой теории-тактике присваивается весовое значение дальше математический отдел с корекцией психологического и пошло в отдел програмистов. Работает большой штат спецов которые выдают програмный продукт высокого уровня и эта работа непосильна для програмиста одиночки даже гениального.


А вот здесь полностью соглашусь. Этот анализ необходимо проводить быстро, что человеческому мозгу пока не под силу.

Zabotage
29-10-2011, 10:43
Я не торгую на русском рынке как и на форексе ... поэтому ничем помочь не могу.
Тогда какого хрена вы пытаетесь здесь кого-то учить?

zvzik
08-11-2011, 13:07
Уважаемый скриптонг, выложил я ваш индикатор CE DSS с комплексного, на одном из форумов трейдеров. И получил такой вопрос---я тут немного более пристально пригляделся к индикатору CE_DSS (уж больно он ровные и красивые перемены цветов рисует) и теперь у меня к Вам несколько вопросов

-а как собственно именно Вы его используете? как сигнальный или как фильтр или как-то еще...

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

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

вот смотрите:
Нажмите на изображение для увеличения Название: ce_dss_24.gif Просмотров: 0 Размер: 11.9 Кб ID: 65072
горизонтальными черточками обозначен уровень цены на момент подачи сигнала через глобальную переменную, синие - бай, красные селл (код модифицирован так чтобы выставлять их в момент когда сигнал в глобальной переменной менялся)
и их оказалось гораздо больше чем изменений цвета линии

для каждой метки которая соответствовала сигналу в конце концов вызвавшему изменение цвета линии индикатора я провел вертикальные линии - и они с моментами перемены цвета линии тоже не совпали по времени

так как им все-таки пользуетесь Вы?

PS все это на минутках - ради скорости теста, но тф не принципиален в данном случае

mihesin
09-11-2011, 08:05
Здравствуйте Scriptong. Более менее стала проясняться ситуация с комплексным экспертом. Парные сделки скорее всего открываються по той же причине что вы описывали :
"По поводу открытия сделки сразу же вполне возможно. Например, индикатор CE_CrossMA всегда будет выдавать сигнал BUY, если быстрая средняя выше медленной, и сигнал SELL, если быстрая ниже медленной.
То есть нужно различать индикаторы, которые выдают сигнал "всегда" и те, которые выдают сигнал "по месту". Такой подход реализован для того, чтобы можно было комбинировать стратегию из нескольких индикаторов. Ведь если каждый индикатор будет давать сигнал только на одном баре, то получить одновременный сигнал от всех сразу станет проблематично."
Скорее всего ситуация похожая, парные ордера выставляються сразу по запуску терминала, видимо все дело всего лишь в комплекте индикаторов.

Scriptong
09-11-2011, 09:59
Ну что ж - хорошо, что разобрались.

mihesin
13-11-2011, 01:57
zvzik Вы прикрепили всего две волны на индикаторе. Как можно судить по двум результатам? получается лотерея 50/50

mihesin
13-11-2011, 02:02
Ну что ж - хорошо, что разобрались.
Периодически перечитываю ветку. Наткнулся на Ваш диалог. Попробовал. Оказалось что логи и баги совсем не при чем. Учимся вместе )))

Scriptong
13-11-2011, 10:28
Периодически перечитываю ветку. Наткнулся на Ваш диалог. Попробовал. Оказалось что логи и баги совсем не при чем. Учимся вместе )))

Как-то не понял высказывание.
Лог - это журнал событий. В МТ4 есть два лога: общий - отображение последовательности торговых операций, и лог экспертов, в котором записывается присоединение и отсоединение программ MQL4, а также все, что эксперты пишут при помощи команд Print И Alert.
Баги - неправильный, с точки зрения пользователя или программиста, ход выполнения программы.

mihesin
14-11-2011, 09:45
Как-то не понял высказывание.
Это я к тому что не потребовалось ковырять лог который сюда не впихивается никак. Оказалось виноваты индикаторы )))

Scriptong
15-11-2011, 08:47
Это я к тому что не потребовалось ковырять лог который сюда не впихивается никак. Оказалось виноваты индикаторы )))
Понятно.
А лог можно прикрепить к сообщению. Для этого достаточно запаковать его. Файлы 7z, zip и rar разрешены.

Ivan Haiduk
22-11-2011, 08:43
Предоставлю прибыльных советников, помогу разобраться, пошаговый контроль специалиста, помощь и советы преуспевающего трейдера, уникальный подход к каждому клиенту.

Заходите на сайт http://forex-good.h1.ru
С нами всё очень легко и доступно.

WEB: http://forex-good.h1.ru/
E-MAIL: haiduk@programist.ru
SKYPE: programmistrntb

asozinov
26-12-2011, 11:55
Добрый день. Вопрос по комплексному советнику: добавил ещё одну OsMA, получилось вот что:
if (UseOsMA)
{
double OsMA1 = iOsMA(Symbol(), 0, OsMAFast, OsMASlow, OsMASignal_1, OsMAPrice, 0);
double OsMA2 = iOsMA(Symbol(), 0, OsMAFast, OsMASlow, OsMASignal_2, OsMAPrice, 0);

if (OsMA2 > 0 && OsMA1 >0)
Signal++;
if (OsMA2 < 0 && OsMA1 <0)
Signal--;
}
Соответственно, прикрутил все extern int, само по себе всё работает, но как-то выборочно. Не могу понять, почему сделки идут только в последовательности buy, sell. И игнорируются сигналы. Например. Была совершена сделка на продажу (по приведённым выше условиям). После неё медленная осма продолжает висеть ниже нуля, а быстрая ушла в плюс и вернулась в минус (тут по моей тактике должна быть снова продажа). Советник молчит и повторную продажу совершать отказывается. Подскажите, пожалуйста, в чём тут дело?

Step
27-12-2011, 06:06
... почему сделки идут только в последовательности buy, sell. И игнорируются сигналы. Например. Была совершена сделка на продажу (по приведённым выше условиям). После неё медленная осма продолжает висеть ниже нуля, а быстрая ушла в плюс и вернулась в минус (тут по моей тактике должна быть снова продажа). Советник молчит и повторную продажу совершать отказывается. Подскажите, пожалуйста, в чём тут дело?

ответ на ваш вопрос в посте #259, вот здесь http://forum.admiralmarkets.com/showthread.php?t=3724&page=13

Scriptong
28-12-2011, 09:36
Выше ответ дан, но я его, все же, конкретизирую.
Проблема заключается в том, что вы применяете значение индикатора OsMA на формирующемся баре (индекс 0). В итоге советник использует в работе не те значения, которые вы впоследствии видите на истории. Можно сказать, что это некоторые случайные величины. Отсюда и имеет место расхождение.
Чтобы не возникало подобных проблем, используйте значения индикаторов только на полностью сформированных барах, вид которых уже никогда не изменится. Наиболее близкий к настоящему такой бар всегда имеет индекс 1. К нему и обращайтесь:

if (UseOsMA)
{
double OsMA1 = iOsMA(Symbol(), 0, OsMAFast, OsMASlow, OsMASignal_1, OsMAPrice, 1);
double OsMA2 = iOsMA(Symbol(), 0, OsMAFast, OsMASlow, OsMASignal_2, OsMAPrice, 1);

if (OsMA2 > 0 && OsMA1 >0)
Signal++;
if (OsMA2 < 0 && OsMA1 <0)
Signal--;
}

Cesar
29-03-2012, 11:28
Уважаемый Scriptong, большущая просьба, если это возможно конешно, написать или реализовать образцовый код советника Complex_Expert_V2 с разделением Расчета сигнала на : buy, close_buy, sell и close_sell, как описано в посте №258 ЗДЕСЬ (http://forum.admiralmarkets.com/showthread.php?t=3724&p=33268&viewfull=1#post33268)
А так же, образцовый код Выдачи сигналов индикатора СЕ_Сustom с таким же разделением, скажем индикатор с циклом 1.0(buy) и -1.0(sell), а в период перехода между циклами индикатор должен выдать сигнал закрытия buy или sell (или всех позиций) и передать его в глобальные переменные, и перейти в режим ожидания, что-ли, пока по условиям не сгенерируется другой сигнал.
У меня не получается внести подобные изменения в код Вашего исходный советника и индикатора. Буду очень признателен если Вы уделите этому немного вашего времени, пожалуйста.

Scriptong
30-03-2012, 19:57
Уважаемый Scriptong, большущая просьба, если это возможно конешно, написать или реализовать образцовый код советника Complex_Expert_V2 с разделением Расчета сигнала на : buy, close_buy, sell и close_sell, как описано в посте №258 ЗДЕСЬ (http://forum.admiralmarkets.com/showthread.php?t=3724&p=33268&viewfull=1#post33268)

Чтобы это сделать, мне потребуются критерии генерации таких сигналов. То есть чем, по вашему, будет отличаться сигнал Buy от сигнала Close_Sell и, наоборот, чем отличается Sell от Close_Buy. В посте, указанном по ссылке, критериев я не вижу. Тем более, что там речь идет о суммарной силе каждого сигнала.



А так же, образцовый код Выдачи сигналов индикатора СЕ_Сustom с таким же разделением, скажем индикатор с циклом 1.0(buy) и -1.0(sell), а в период перехода между циклами индикатор должен выдать сигнал закрытия buy или sell (или всех позиций)

Возможно, здесь под словом "цикл" имеется что-то другое, т.к. цикл исполняется в диапазоне величины переменной цикла от одного значения до другого с некоторым шагом. А здесь задано два значения (это диапазон?), но шаг не указан. Попробуйте подобрать другую формулировку.



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


Опять же, требуются критерии для этого "другого" сигнала. Хотя, в целом, эта часть понятна. Вы хотите определить направление последнего сигнала по индикатору CE_Custom (кстати, где он?) и дождаться подтверждающего сигнала от другого индикатора. Если к тому времени CE_Custom не дал противоположного сигнала, то открывается позиция. Так?

Cesar
31-03-2012, 15:54
Извините, Scriptog, я наверно не правильно сформулировал мысль.
Советнику нужно ожидать подтверждение сигнала на открытие позиции,
а другие интерпретировать как {close_buy || close_sell }, т.е
Сlose_All - закрыть все открытые позиции,
и время ожидания сигнала на открытие ордера не ограничено.
Хочу применить к немного изменённому Laguerre (http://rghost.ru/37334816),
что не исключает возможности применять в комбинации дополнительные
сигналы от других трендовых фильтров, в таком советнике.
Возможно нет необходимости прописывать все условия: на открытие и закрытие
ордеров, в самом индикаторе, для передачи в глобальные переменные,
и будет достаточно эти условия прописать в самом советнике в блоке ""Расчет сигнала"",
и соответсвенно ""Обработку сигнала...(( buy; sell; close_buy; close_sell ))""
Именно эти два блока в советнике мне не удалось правильно изменить.

Scriptong
03-04-2012, 08:50
Советнику нужно ожидать подтверждение сигнала на открытие позиции,
а другие интерпретировать как {close_buy || close_sell }, т.е
Сlose_All - закрыть все открытые позиции,
и время ожидания сигнала на открытие ордера не ограничено.
Хочу применить к немного изменённому Laguerre (http://rghost.ru/37334816),
что не исключает возможности применять в комбинации дополнительные
сигналы от других трендовых фильтров, в таком советнике.
Возможно нет необходимости прописывать все условия: на открытие и закрытие
ордеров, в самом индикаторе, для передачи в глобальные переменные,
и будет достаточно эти условия прописать в самом советнике в блоке ""Расчет сигнала"",
и соответсвенно ""Обработку сигнала...(( buy; sell; close_buy; close_sell ))""
Именно эти два блока в советнике мне не удалось правильно изменить.


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

По сути того, чего вы хотите. Возможно, вам вовсе не следует брать за основу комплексный советник. Насколько я понимаю, у вас свой набор торговых критериев, который никак не пересекается с возможностями комплексного советника. Возьмите любой другой советник из MQLabs (да хоть бы и последний - Волновая теория в действии. Часть 4 (http://www.forextrade.ru/mqlabs/02.04.2012-mqlabs-volnovaya-teoriya-v-deystvii-chast-4)) и в нем уже изменяйте условия расчета сигнала и открытия позиции.
На данный момент у меня, к сожалению, не складывается полная картина стратегии, которую вы хотите реализовать. Чтобы я помог вам в этом, сформулируйте набор торговых правил тезисно, без кода. Код будем составлять, когда появятся четкие правила.

Cesar
06-04-2012, 01:31
Возьмите любой другой советник из MQLabs (да хоть бы и последний - Волновая теория в действии. Часть 4 (http://www.forextrade.ru/mqlabs/02.04.2012-mqlabs-volnovaya-teoriya-v-deystvii-chast-4)) и в нем уже изменяйте условия расчета сигнала и открытия позиции.

Это немножко не то, пришлось поискать ответы в ваших ответах и статьях.
Этот (http://forum.admiralmarkets.com/showthread.php?t=3724&p=34473&viewfull=1#post34473) .... недостаток в Complex_Expert серьёзно влияет на эффективность советника,
своевременное закрытие позиции так-же важно как открытие, имхо.
Мне трудно представить если бы по сигналу включался день, а по обратному ночь,
и не было бы сумерек и рассвета, а между входами в рынок паузы, для осознания
происходящего: возможно необходимо закрыть позицию и подождать подходящего момента, имхо :)
В итоге мне удалось скомбинировать ваши готовые советники по моим условиям
(это Pirania Perky_V2, Teralex во всём многообразии и ForScalpers_Expert) до рабочего
состояния, но для лучшей отрисовки я использую принудительную инициализацию
индикаторов, а Complex_Expert находится в другом окне, поэтому в данном случае крайне
необходимо правильно прописать в СЕ_ индикатор блок "Выдача сигналов",
и если вам не составит большого труда помогите пожалуйста разрешить эту задачку.
p.s.: в аттаче условия прописанные напрямую в советник, пожалуйста.

Scriptong
06-04-2012, 20:55
Это немножко не то, пришлось поискать ответы в ваших ответах и статьях.


Ну почему же не то? Вы ведь сами привели ниже похожий блок.



Мне трудно представить если бы по сигналу включался день, а по обратному ночь,
и не было бы сумерек и рассвета, а между входами в рынок паузы, для осознания
происходящего: возможно необходимо закрыть позицию и подождать подходящего момента, имхо :)


В этом плане я не спорю. Это просто свойства различных торговых систем.



и если вам не составит большого труда помогите пожалуйста разрешить эту задачку.
p.s.: в аттаче условия прописанные напрямую в советник, пожалуйста.

Это то я сделаю. Но и вы поймите меня. В первом посте вы говорите об одном индикаторе, во втором - о другом, в третьем - о третьем. В такой каше трудно уловить нить рассуждений. Давайте уже доведем до конца один какой-то вопрос, а потом уже перейдем к следующим вопросам.


void GetSignal(){
if (LastBar == Time[0])
return(0);

Signal = 0;


// - 1 - ============= Значения индикатора KB =====================================
if (UseKBF)
{
double opKBF = iCustom(NULL, 0, "KB",FastF, SlowF, SignalF, Price, 0, 1); // быстрый KB
double opKBS = iCustom(NULL, 0, "KB",FastS, SlowS, SignalS, Price, 1, 1); // медленный KB
double clKBF = iCustom(NULL, 0, "KB",FastF, SlowF, SignalF, Price, 0, 0); // быстрый KB
double clKBS = iCustom(NULL, 0, "KB",FastS, SlowS, SignalS, Price, 1, 0); // медленный KB
if (opTGF == -1.0 && opTGS == -1.0) // KBF открыть sell
Signal = -1;
if (opTGF == 1.0 && opTGS == 1.0) // KBF открыть buy
Signal = 1;
if ((clTGF > -1.0 && clTGS == -1.0) || (clTGF == -1.0 && clTGS > -1.0)) // KBF закрыть sell
Signal = 2;
if ((clTGF < 1.0 && clTGS == 1.0) || (clTGS < 1.0 && clTGF == 1.0)) // KBF закрыть buy
Signal = -2;
}
// - 1 - ======================= Окончание блока ========================================
}

bool Trade()
{
FindOrders(); // Найдем свои позиции
// - 1 - == Открытие длинной позиции ====================================================
if (Signal > 0 && Type != OP_BUY) // Активен сигнал покупки и..
{ // ..отсутствует длинная позиция
if (Type == OP_SELL) // Существует короткая позиция
if (!CloseDeal(Ticket)) // Закроем позицию
return(false); // При неудаче вернем false
if (Signal == 2)
return(true);
double sl = GetLevel(UseSLInPoints, StopLoss,// Формируем значения стоп-приказа и..
SLATR, Ask, -1);
double tp = GetLevel(UseTPInPoints, TakeProfit, TPATR, Ask, 1); // ..профита
if (OpenOrderCorrect(OP_BUY, GetLots(), NP(Ask), sl, tp) != 0)
return(False);
}
// - 1 - == Окончание блока =============================================================

// - 2 - == Открытие короткой позиции ===================================================
if (Signal < 0 && Type != OP_SELL) // Активен сигнал продажи и..
{ // ..отсутствует короткая позиция
if (Type == OP_BUY) // Существует длинная позиция
if (!CloseDeal(Ticket)) // Закроем позицию
return(false); // При неудаче вернем false
if (Signal == -2)
return(true);
sl = GetLevel(UseSLInPoints, StopLoss, SLATR,// Формируем значения стоп-приказа и..
Bid, 1);
tp = GetLevel(UseTPInPoints, TakeProfit, TPATR, Bid, -1);// ..профита
if (OpenOrderCorrect(OP_SELL, GetLots(), NP(Bid), sl, tp) != 0)
return(False);
}
// - 2 - == Окончание блока =============================================================
return(True);
}

За основу взят эксперт Template_Expert (см. статью "Как создать эксперт, не обладая навыками программирования" (http://www.forextrade.ru/mqlabs/04.09.2011-mqlabs-kak-sozdat-ekspert-ne-obladaya-navykami-programmirovaniya), правильная версия эксперта в прицепе данного сообщения), в котором изменены функции GetSignal и Trade (код функций приведен выше).