PDA

View Full Version : прошу написать советник



raDio
26-01-2009, 21:52
Здравствуйте, Сергей!
Напишите, пожалуйста, советник по следующей стратегии.

Индикаторы стратегии:
От цен закрытия строится средняя, далее от этой средней строится RSI, а от
RSI строятся полосы Боллинджера.
(Индикатор, входящий в состав MetaTrader, позволяет задавать количество
стандартных отклонений полос Боллинджера только в виде целого числа.
Хотелось бы иметь возможность задавать дробное количество стандартных
отклонений отдельно для верхней и нижней полосы. Возможно ли это?)

Сигналы:
1. на покупку: RSI пересекает нижнюю полосу Боллинджера снизу вверх.
1.1. на закрытие покупки: RSI пересекает верхнюю полосу (или среднюю полосу)
Боллинджера сверху вниз. Либо цена достигает уровня стоп лос/тейк профит.
2. на продажу: RSI пересекает верхнюю полосу Боллинджера сверху вниз.
2.2. на закрытие продажи: RSI пересекает нижнюю полосу (или среднюю полосу)
Боллинджера снизу вверх. Либо цена достигает уровня стоп лос/тейк профит.

Переменные эксперта:
- тип и период средней
- период RSI
- период полос Боллинджера и количество стандартных отклонений (отдельно для
верхней и нижней границы)
- минимальная ширина канала Боллинджера для разрешения тороговли
- размер стоп лос и тейк профит
также хотелось бы иметь возможность:
- запрещать торговлю в понедельник и/или в пятницу
- задавать период перерыва в торговле после убыточной сделки
- устанавливать разрешенный для торговли промежуток времени внутри суток

Заранее благодарен

SK_
28-01-2009, 09:56
RSI и Bollinger Bands - это индикаторы, которые строятся в существенно разных координатах. Первый - в процентах, второй - в координатах цены.
Технически их можно соединить в один индикатор, отображаемый, например, в окне ценового графика. Но вряд ли это имеет смысл. Другие критерии - это просто механическая смесь случайного набора параметров.
Может быть, это когда-нибудь и напишем, если других предложений не будет.

raDio
28-01-2009, 20:31
Сергей, спасибо за ответ. Но я, видимо, не достаточно ясно описал подход, раз вы сочли
его бессмысленным. RSI и Bollinger Bands - индикаторы, которые не обязательно
строятся "в существенно разных координатах". Ведь кроме iRSI и iBands существуют
также iRSIONArray и iBandsONArray. То есть эти индикаторы могут вычисляться не только
на цене, но и на других данных хранящихся в массиве. В подходе, который я описал,
предполагается в качестве массива для вычисления RSI использовать, например,
обыкновенный iMA вычисленный на цене; а в качестве массива для вычисления Bollinger
Bands - значения этого RSI. То есть MA ->RSI ->Bands. Визуально Bollinger Bands будет
находиться в окне индикатора вместе с RSI (как на скриншоте).
Этот подход не выдуман мной в припадке гениальности или еще чего, а предложен самим
Джоном Боллинджером и описан в его книге "Боллинджер о лентах Боллинджера" - глава 21
"Нормализация индикаторов". Хочу процитировать:
"Нет необходимости ограничивать использование ленты Боллинджера ценами. Их можно
использовать на отношениях, экономических рядах, фундаментальных данных, объеме и
технических индикаторах. Не имеет значения, представлены ли эти ряды как осцилляторы
или как неограниченные ряды. В каждом случае ленты Боллинджера выполняют ту же самую
функцию, которую они выполняют с ценой: они определяют относительный максимум или
минимум. Возьмем, к примеру, индекс относительной силы RSI. Традиционные правила
диктуют интерпретацию перекупленности, когда индикатор поднимается выше 70, и
перепроданности, когда индикатор падает ниже 30. Иногда 70 и 30 работают, иногда -
нет... Хотя смещение рамки принятия решений для RSI в зависимости от условий
рынка является явным улучшением по сравнению с простой интерпретацией 30-70, мы можем
улучшить и это. Каким образом? Нанеся ленты Боллинджера на индикатор и используя
ленты для установления уровней перекупленности и перепроданности. Таким образом, мы
получаем полностью адаптивный подход". И так далее.
Этот подход я и прошу Вас реализовать.
А другие критерии - "механическая смесь случайного набора параметров" -
всего лишь дополнительное пожелание, не суть подхода и конечно могут быть отброшены.

Sedoy
28-01-2009, 22:22
Цитата(raDio @ Jan 28 2009, 09:31 PM) 16990"]
Сергей, спасибо за ответ. Но я, видимо, не достаточно ясно описал подход, раз вы сочли
его бессмысленным. RSI и Bollinger Bands - индикаторы, которые не обязательно
строятся "в существенно разных координатах". Ведь кроме iRSI и iBands существуют
также iRSIONArray и iBandsONArray. То есть эти индикаторы могут вычисляться не только
на цене, но и на других данных хранящихся в массиве. В подходе, который я описал,
предполагается в качестве массива для вычисления RSI использовать, например,
обыкновенный iMA вычисленный на цене; а в качестве массива для вычисления Bollinger
Bands - значения этого RSI. То есть MA ->RSI ->Bands. Визуально Bollinger Bands будет
находиться в окне индикатора вместе с RSI (как на скриншоте).
Этот подход не выдуман мной в припадке гениальности или еще чего, а предложен самим
Джоном Боллинджером и описан в его книге "Боллинджер о лентах Боллинджера" - глава 21
"Нормализация индикаторов". Хочу процитировать:
"Нет необходимости ограничивать использование ленты Боллинджера ценами. Их можно
использовать на отношениях, экономических рядах, фундаментальных данных, объеме и
технических индикаторах. Не имеет значения, представлены ли эти ряды как осцилляторы
или как неограниченные ряды. В каждом случае ленты Боллинджера выполняют ту же самую
функцию, которую они выполняют с ценой: они определяют относительный максимум или
минимум. Возьмем, к примеру, индекс относительной силы RSI. Традиционные правила
диктуют интерпретацию перекупленности, когда индикатор поднимается выше 70, и
перепроданности, когда индикатор падает ниже 30. Иногда 70 и 30 работают, иногда -
нет... Хотя смещение рамки принятия решений для RSI в зависимости от условий
рынка является явным улучшением по сравнению с простой интерпретацией 30-70, мы можем
улучшить и это. Каким образом? Нанеся ленты Боллинджера на индикатор и используя
ленты для установления уровней перекупленности и перепроданности. Таким образом, мы
получаем полностью адаптивный подход". И так далее.
Этот подход я и прошу Вас реализовать.
А другие критерии - "механическая смесь случайного набора параметров" -
всего лишь дополнительное пожелание, не суть подхода и конечно могут быть отброшены.

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

SK_
28-01-2009, 22:28
В таком контексте - это другое дело.

По каким данным строить RSI (по ценам закрытия - классически, или по МА) не так уж важно, в том смысле, что всё равно это цена.
А вот построить Боллинджер не по ценам, а на данных от 0 до 1 - это интересно. Хороший скриншот.
()

Вот, теперь не знаю за какой код раньше браться (или, наконец, за очередную статью:)

raDio
29-01-2009, 20:05
Цитата(Sedoy @ Jan 28 2009, 11:22 PM) 16991"]
Когда-то сам таким интересовался.Попробуйте вот это,может чего и выйдет.

спасибо! будет в чем покопаться на выходных..

raDio
29-01-2009, 20:30
Цитата(SK_ @ Jan 28 2009, 11:28 PM) 16992"]
Вот, теперь не знаю за какой код раньше браться (или, наконец, за очередную статью:)

Статья - не волк, беритесь за Боллинджера :rolleyes: :)

SK_
30-01-2009, 10:15
Цитата(raDio @ Jan 29 2009, 10:30 PM) 17026"]
Статья - не волк, беритесь за Боллинджера :rolleyes: :)
Вот, я тоже так думаю.
Мне представляется, что работа с конкретными кодами для реальных заказчиков - наиболее важная составляющая MQLabs.
Однако, есть и план выхода статей, его тоже нужно придерживаться.
(а то погонят меня в шею и будут правы..:)

ВВ напишем с Пн.

SK_
10-02-2009, 11:34
Выкладываю индикаторы.
ВВерху на картинке - стандартный RSI.
1 - ВВ "надет" на RSI. В таком исполнении линия RSI практически никогда не пересекает внешние ВВ. Индикатор представлен просто для наглядности. Средняя ВВ - жёлтая, совпадает с RSI.
2 - ВВ строится относительно уровня 50. Средняя жёлтая - прямая. Голубая и зелёная (ВВ) строятся от неё. Настраивая коэф. можно подобрать оптимальную настройку для пересечения RSI и ВВ.
[attachment=5543:MA_RSI_BB_1.mq4]
[attachment=5544:MA_RSI_BB_2.mq4]
[attachment=5545:6.png]

Параметры:
MA_period - период МА по данным RSI (на рис =1)
RSIPeriod - период усреднения для построения собственно RSI
Level_1, Level_2 = уровни 70 и 30
BandsPeriod=20 период для построения ВВ
BandsShift - смещение ВВ = 0 (он не нужен, потом уберу его)
BandsDeviations= 2.0 Коэф. усиления внешних ВВ

Подробности в статье сегодня-завтра.

Пока прошу высказать соображения по целесообразности применения MA_RSI_BB_2.mq4.

SK_
10-02-2009, 11:45
Главным недостатком ВСЕХ простых индикаторов является жёсткая настройка. Даже в пределах одного ТФ амплитуда и частота (высота горок и время между вершинами) постоянно изменяются. Поэтому для каждого локального участка требуются свои настройки. И эти настройки (например, период RSI или МА) необходимо не задавать жёстко, а вычислять.

Но это уже совсем другая задача..

SK_
16-02-2009, 13:12
По результатам создания индикатора опубликована статья Построение пользовательского индикатора на основе технических индикаторов Relative Strength Index и Bollinger Bands (http://www.forextrade.ru/?p=3251&id=140751).

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

raDio
16-02-2009, 20:32
Сергей, огромное спасибо за проделанную работу!
буду изучать..

SK_
19-02-2009, 10:21
Здесь, на форуме, уже выложено (и описано в статьях) несколько советников. В большинстве советников есть блок вычисления торговых критериев. Можно взять готовый эксперт и заменить в нём критерии. И погонять эксперт на тестере. Если будут затруднения, выкладывайте код здесь, я подскажу.

raDio
28-02-2009, 15:12
так и поступил. воспользовался шаблоном и подставил торговые критерии. оптимизировал на последнем квартале и выбрал несколько вариантов, что более-менее устойчивы в течение года. лучшее, что получил - на скриншоте. снизить просадку и поднять % прибыльных сделок, увы, пока не получается.

raDio
02-03-2009, 19:08
Цитата(SK_ @ Feb 10 2009, 12:45 PM) 17289"]
Главным недостатком ВСЕХ простых индикаторов является жёсткая настройка. ...эти настройки (например, период RSI или МА) необходимо не задавать жёстко, а вычислять.
Но это уже совсем другая задача..

а как такая задача может быть решена?

SK_
02-03-2009, 22:11
Цитата(raDio @ Mar 2 2009, 10:08 PM) 17925"]
а как такая задача может быть решена?
Подобные задачи решаются принципиально другими методами. Например, с помощью корреляционного анализа, нейросетей.

По сути - что анализирует простой индикатор? 10-15 баров. И если на этих барах что-то происходит, то принимается торговое решение. Это и есть ошибка.
Нельзя по небольшому набору параметров судить о тенденциях рынка. Для наглядности можно вырезать кусочек картинки - жёстко обрезать всё лишнее сверху, снизу и по бокам, оставить только те бары, данные которых анализируются в индикаторе. Тогда становится очевидно, что данных маловато.

Кор. анализ предполагает найти на истории похожий паттерн и считать, что теперь тоже будет так, как и раньше. Приблизительно то же делает нейросеть. Она считает какие-то коэффициенты, но в результате может выдать прогноз. Отличительной особенностью подобных методов явяется то, что в том или ином виде во внимание принимается ВСЯ история. Шансы составить правильный прогноз при этом повышаются. Если к тому же интеллектуально суммировать пргнозы с нескольких ТФ, то шансы ещё увеличиваются.

(я пока не сделал:)

russcand
04-06-2010, 05:06
Здравствуйте уважаемые госпада-программисты и просто хорошие люди. Не будет ничего плохого в том , что обращусь по старой теме?
Заинтересовался этой темой. На ручных тестах показала не плохие результаты , правда я использовал несколько других индюков и соответственно входов-выходов и т.д. Но Ваш осцилятор является в системе базовым. Возникло несколько моментов по которым хотел попросить вашей помощи , учитывая , что эксперт Ваш и Вы в теме.
Я смотрю мелкие ТФ - 15м . РСИ получается часто прыгает, соответственно не приятно при флэтах болтанка у 50-го уровня и пр. Поэтому для мелких ТФ лучше использовать сглаженные индикаторы.
1. Нельзя ли перекроить индюк по сглаженным МА и РСИ. Типа MA_RSI
2. А также внедрить туда осцилятор бб . Вот этот BandsFBA_NR_Osc.mq4 от сюда http://codebase.mql4.com/ru/6111
Я посмотрел , что сигналы пересечений именно этого осцилятора с Вашим дают лучшие входы , чем пересечения с РСИ. Хотя РСИ также использую в некоторых случаях. При этом вместо стандартного бб использую тоже бб со ст. дивиацией BandsFBA_NR в окне цен.

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

Scriptong
08-06-2010, 22:06
Здравствуйте. Попробую продолжить тему. Возможно, получится статья. Индикатор уже готов, советник в процессе.

russcand
09-06-2010, 06:21
Чес-слов не ожидал такой оперативности. Тем более приятно. Спасибо.
Попробую к вечеру ( крайняк завтра ) более подробно описать то , на что ориентируюсь.
Правда могу запарпить ( не вижу смайлов ).

russcand
09-06-2010, 06:24
Кстати , можете выложить пока индюк . Я заодно гляну насколько он отличается от предшественника и удачлевее ли он смотрится для моей системы.
С советником не торопитесь , а то придется довносить изменения. ( да где ж смайлы? )

russcand
11-06-2010, 06:43
Слегка изменил подход к системе в идеологической части , то есть обоснования. Поскольку при формализации возникли некоторые решения , которые помогли отбросить ряд не принципиальных обобщений , упростив подход в части построения и логики , что может лучше сказаться на реализации советника.
Теперь я ориентируюсь исключительно на показаниях осциляторов. На месте графика цены можно разместить портрет любимого человека ( или животного , или ....... ) . Роль в анализе и принятии решения отводится подокну с осциляторами. Неплохо было бы аллертов сюда понакрутить....
Использую осциляторы: MA_RSI_BB ( Ваш ) , BandsFBA_NR_Osc , MA_RSI , i-BB-Width ( кимовский ) , SSRC
Поскольку Вы индикатор с переделками не выложили , то опираюсь на тот , что был ранее Вами разработан MA_RSI_BB ( параметры 2-14-70-30-20-1.6 ) Уровни: 50 и полосы.
BandsFBA_NR_Osc ( 20-0-0-5-55-0 ) Уровни 5;95,пересечения с полосами и со своими же уровнями 5 и 95 .
MA_RSI - пока с параметрами и пересечениями не определился. Практически не использую ( пока ).
SSRC ( 8-14-2-6 ) Уровни (-)0,75; 0; 0,75. Определяется тренд-флэт. Похож на РСИ , но удобней и четче.
i-BB-Width ( кимовский ) . Это ширина полос бб , указывающий на волатильность. Принимаю за флэт уровень до 15 , с 15 до 30 - тренд. Выше 30 - сильный тренд. Анализ этого индикатора с SSRC позволяет точнее определить направление тренда ( флэта ) и его силу. Правда есть одна погрешность , которую , в силу полного отсутствия знаний в области программирования , разрешил грубым шагом. Но здесь , главное , что логика этого индикатора никак не пострадала , а мне позволила вписать его в одно подокно с MA_RSI_BB в границы 0-100. Точнее я поставил -10:110. Вообщем в коде кимовского индюка i-BB-Width тупо умножил результат на 3000.
В связи с этим у меня вопрос ( предложение ) к уважаемым ведущим. Можно ли i-BB-Width более "законно" ( то есть по правилам ) уместить в границы основного осцилятора ( типа как я сделал ) и вписать его прямиком в MA_RSI_BB_BandsFBA_NR_Osc_BB-Width . Сюда можно , кстати , вместить и SSRC . Для полной идилии.
Почему не в разные подокна - неудобно сопоставлять. А когда все находится в одном блоке , чиста визуально и психологически комфортно воспринимать и принимать решения. Да и аллерты удобней будет расставлять... То есть это все-таки не скрещивание землеройки и слона.
П.С. Все параметры ориентировочные и применяются мною на м15. Для 1Н уровни i-BB-Width другие.
Уровни 0 и 100 осцилятора BandsFBA_NR_Osc сместил на 5 п. до 5 и 95 , поскольку не увидел разницы между 5и0 ; 95 и 100 . А входы чуть быстрее и чаще. Можно , конечно же , это регулировать в советнике.

russcand
11-06-2010, 11:22
Ну вот , пока я сочинял , уже и статья появилась. А я хотел свои 5 копеек вставить. Может стоит продолжить? Тем более у Вас это быстро получается. Да и я описал более-менее понятно. Кстати , методика отличается от той , что в статье. Но это так , как бы сравнить еще и с тем , что я описал?

russcand
11-06-2010, 12:49
П.С. Оба типа пересечений ( уровни самого BandsFBA_NR_Osc и Крайние полосы MA_RSI_BB ) имеют место одновременно быть в работе . Кроме этого , если имеется сигнал и открыт ордер по одному типу и он еще не завершен , а поступает новый сигнал , противоположный , то имеют право быть оба одного типа , хоть десять сразу. Кутить - так на всю ивановскую. И , потом , у нас дэмократия. Гдет-там краем уха слышал. Так что плюрализм , товарищи , по всем направлениям.

russcand
11-06-2010, 13:07
НИчего не понимаю - как работает страница. Отправил личное сообшение Scriptong . В папке отправленных ничего не отображается. На всякий случай дублирую.
"Написал вам свое видение советника. А только потом обратил внимание , что Вы уже статью написали. Хотя у меня были свои мысли на этот счет. О чем просил подождать с советником. Хотя статья и советник познавательные получились. Но хотелось свою систему проверить. Вот в посте 22 детализировал стратегию . И видел , что она сохранилась на форуме. Однако сейчас зашел и не совсем понял. Пост 21 и 22 идентичны. А куда делся 22? Может сбой в системе? Нельзя ли вернуть то , что было , а то я не сохранил копии. Хотя могу заново описать. ( если не сохранилось ). Напишите о том , сделаете ли Вы советник по моим предложениям. Чтоб я знал . А то Вы 5 дней молчите , потом - раз , и статья. Спасибо за внимание.:D"

П.С. 22 пост восстановили , но повторили 24-м постом . Короче , сбои в форуме.

Scriptong
11-06-2010, 15:45
Руководствуясь принципом "все новое - хорошо забытое старое", вернемся к одной достаточно перспективной системе, начало которой было положено еще в 2009 году. Речь идет о материале Сергея Ковалева Построение пользовательского индикатора на основе технических индикаторов Relative Strength Index и Bollinger Bands. Основной целью работы было совмещение двух разноплановых индикаторов - RSI и Bollinger Bands (BB). В итоге был разработан индикатор, состоящий из RSI, рассчитанного по значениям средней скользящей, и из BB, верхняя и нижняя границы которого рассчитывались от среднего уровня RSI - 50.

Для достижения максимально возможного успеха при разработке автоматической торговой системы (АТС) на основании представленного материала, необходимо произвести доработку индикатора, добавив осциллятор BandsFBA_NR_Osc. Он основан на все том же ВВ, но состоит не из верхней и нижней линий, а, подобно добропорядочному осциллятору, из главной и сигнальной линий. Причем значения линий рассчитываются не в масштабе текущих цен, а в масштабе, больше подходящем для RSI (рис. 1).

http://www.forextrade.ru/media/Image/MQLabs/69_ag/figure1.png
Рис. 1. - Индикатор BandsFBA_NR_Osc.

Для создания нового индикатора от BandsFBA_NR_Osc будет взята лишь главная линия. Сигнальная не потребуется, так как интерес представляет пересечение главной линии с верхней и нижней границами ВВ индикатора MA_RSI_BB, созданного Сергеем Ковалевым.

Кроме добавления индикаторной линии, MA_RSI_BB претерпит изменения в двух аспектах:
Значения RSI будут сглажены при помощи линейно-взвешенной средней скользящей. Верхняя и нижняя линии ВВ будут рассчитываться по значениям сглаженного RSI, а не от его среднего уровня.

В результате получается индикатор RSI_Smoothed_BandsFBA_Osc, который можно наблюдать на рис. 2 и 3. От MA_RSI_BB оставлены верхняя (показана синим цветом) и нижняя (показана красным цветом) линии ВВ. Значения RSI не отображаются, хотя и рассчитываются в коде.

http://www.forextrade.ru/media/Image/MQLabs/69_ag/figure2.png
Рис. 2. - Сигнал к совершению покупки.

Настроечные параметры от обоих индикаторов перекочевали в объединенный индикатор. К ним добавлены две переменные: MA_Period (период средней скользящей) и MA_Mode (метод средней). С их помощью можно задавать степень сглаженности значений RSI.

Интерпретация сигналов RSI_Smoothed_BandsFBA_Osc проста. Сигналом к совершению длинной сделки выступает пересечение верхней линии ВВ линией осциллятора ВВ снизу вверх (см. рис. 2). Соответственно, сигналом к совершению короткой сделки является пересечение нижней линии ВВ линией осциллятора ВВ сверху вниз (см. рис. 3).

http://www.forextrade.ru/media/Image/MQLabs/69_ag/figure3.png
Рис. 3. - Сигнал к совершению продажи.

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

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

Недостатком статистического метода является учет всех тенденций за имеющийся период истории. Но практика показывает, что особую ценность представляют именно последние рыночные настроения как факторы более всего влияющие на дальнейший ход событий. Устранить этот недостаток просто - ограничить рассматриваемый временной отрезок новейшей историей. В эксперте RSI_Bands_FBA, реализующем описанный алгоритм торговли, история ограничивается при помощи анализа последних 10 сделок. Причем отдельно анализируются длинные сделки и отдельно короткие.

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

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

//+-------------------------------------------------------------------------------------+
//| Генерация сигналов покупки и продажи |
//+-------------------------------------------------------------------------------------+
void GetSignal(int Num)
{
Signal = 0;

// - 1 - ===== Определение значений осциллятора Боллинджера и Боллинджера от RSI ========
// Верхняя линия Боллинджера, рассчитываемого по сглаженному RSI
double UpBand = iCustom(NULL, 0, "RSI_Smoothed_BandsFBA_Osc", RSIPrice, RSIPeriod,
MA_Period, MA_Mode, BandsPeriod, K_Dev, BandsFBAPeriod,
BandsShift, OscPrice, FrontPeriod, BackPeriod, Sens, 2, Num);
// Нижняя линия Боллинджера, рассчитываемого по сглаженному RSI
double DnBand = iCustom(NULL, 0, "RSI_Smoothed_BandsFBA_Osc", RSIPrice, RSIPeriod,
MA_Period, MA_Mode, BandsPeriod, K_Dev, BandsFBAPeriod,
BandsShift, OscPrice, FrontPeriod, BackPeriod, Sens, 3, Num);
// Значение главной линии осциллятора Боллинджера
double Main = iCustom(NULL, 0, "RSI_Smoothed_BandsFBA_Osc", RSIPrice, RSIPeriod,
MA_Period, MA_Mode, BandsPeriod, K_Dev, BandsFBAPeriod,
BandsShift, OscPrice, FrontPeriod, BackPeriod, Sens, 4, Num);
// Верхняя линия Боллинджера, рассчитываемого по сглаженному RSI, на предыдущем баре
double UpBand2 = iCustom(NULL, 0, "RSI_Smoothed_BandsFBA_Osc", RSIPrice, RSIPeriod,
MA_Period, MA_Mode, BandsPeriod, K_Dev, BandsFBAPeriod,
BandsShift, OscPrice, FrontPeriod, BackPeriod, Sens, 2, Num+1);
// Нижняя линия Боллинджера, рассчитываемого по сглаженному RSI, на предыдущем баре
double DnBand2 = iCustom(NULL, 0, "RSI_Smoothed_BandsFBA_Osc", RSIPrice, RSIPeriod,
MA_Period, MA_Mode, BandsPeriod, K_Dev, BandsFBAPeriod,
BandsShift, OscPrice, FrontPeriod, BackPeriod, Sens, 3, Num+1);
// Значение главной линии осциллятора Боллинджера на предыдущем баре
double Main2 = iCustom(NULL, 0, "RSI_Smoothed_BandsFBA_Osc", RSIPrice, RSIPeriod,
MA_Period, MA_Mode, BandsPeriod, K_Dev, BandsFBAPeriod,
BandsShift, OscPrice, FrontPeriod, BackPeriod, Sens, 4, Num+1);
// - 1 - ========================== Окончание блока =====================================

// - 2 - ======================== Генерация сигнала покупки =============================
if (Main > UpBand && Main2 < UpBand2) // Главная линия пересекла верхнюю линию ББ вверх
{
Signal = 1; // Сигнал покупки
if (LastSignal == -1) // если это первый сигнал покупки
{
int Bar = iBarShift(NULL, 0, ChangeDirection); // найдем бар последнего сигнала
double Price = Open; // Цена открытия бара
double low = Low[iLowest(NULL, 0, MODE_LOW, Bar-Num+1, Num)]; // минимальное
// значение цены за время действия сигнала
double high = High[iHighest(NULL, 0, MODE_HIGH, Bar-Num+1, Num)]; // максимальное
// значение цены за время действия сигнала
for (int k = 10; k > 0; k--) // смещение значений масиива на одну позицию
SellAv[k] = SellAv[k-1]; // самая поздняя запись уничтожается
SellAv[0] = Price - low; // Новое значение максимальной потенциальной прибыли
SellSL = MathMax(SellSL, high - Price); // Формирование занчения макс. убытка
SC++; // Увеличение счетчика посчитанных коротких сделок
ChangeDirection = Time[Num]-1; // Время формирования текущего сигнала сохраняется
}
// - 2.2 - ========================= Окончание блока ================================
}
// - 2 - ========================== Окончание блока =====================================

// - 3 - ======================== Генерация сигнала продажи =============================
if (Main < DnBand && Main2 > DnBand) // Главная линия пересекла верхнюю линию ББ вниз
{
Signal = -1; // Сигнал продажи
if (LastSignal == 1) // если это первый сигнал продажи
{
Bar = iBarShift(NULL, 0, ChangeDirection); // найдем бар последнего сигнала
Price = Open[Bar]; // Цена открытия бара
low = Low[iLowest(NULL, 0, MODE_LOW, Bar-Num+1, Num)]; // минимальное
// значение цены за время действия сигнала
high = High[iHighest(NULL, 0, MODE_HIGH, Bar-Num+1, Num)]; // максимальное
// значение цены за время действия сигнала
for (k = 10; k > 0; k--) // смещение значений масиива на одну позицию
BuyAv[k] = BuyAv[k-1]; // самая поздняя запись уничтожается
BuyAv[0] = high - Price; // Новое значение максимальной потенциальной прибыли
BuySL = MathMax(BuySL, Price - low); // Формирование занчения макс. убытка
BC++; // Увеличение счетчика посчитанных длинных сделок
ChangeDirection = Time[Num-1]; // Время формирования текущего сигнала сохраняется
}
}
// - 3 - ========================== Окончание блока =====================================
}
Единственный входной параметр функции Num указывает номер бара, на котором требуется вычислить наличие и направление сигнала. Это нужно для предварительного анализа истории во время первого запуска эксперта. В результате анализа вычисляются среднее значение потенциальной прибыли и максимальный размер потенциального убытка.

Получение значений линий индикатора RSI_Smoothed_BBandsFBA_Osc производится простым и понятным методом - посредством вызова функции iCustom, которая обращается непосредственно к индикатору. Для генерации сигналов открытия сделок требуется знать значения трех линий: верхней линии ВВ, нижней линии ВВ и линии осциллятора ВВ. Но одного значения каждой из линий мало, так как по ним невозможно отследить факт пересечения. Поэтому запрашиваются значения на двух предыдущих барах. Эти действия выполняются в блоке 1.

Блок 2 отслеживает факт пересечения верхней линии ВВ линией осциллятора ВВ снизу вверх. Если подобное событие произошло, то возводится флаг открытия длинной сделки Signal, который принимает значение 1. Если пересечение является первым после предыдущего сигнала открытия короткой сделки, о чем свидетельствует отрицательное значение флага LastSignal, то производится расчет максимального и минимального значений цены за время существования предыдущей короткой сделки. Время открытия предыдущей сделки всегда хранится в переменной ChangeDirection. При помощи ChangeDirection находится номер бара, соответствующий моменту открытия сделки (Bar). На отрезке от Bar до Num находятся минимальное и максимальное значения цены. Разница между ценой открытия бара Bar и экстремумами на исследуемом отрезке являются значениями потенциального убытка и прибыли.

Новое значение максимальной потенциальной прибыли записывается в первый элемент (имеет индекс 0) массива SellAv. В последующих девяти элементах массива SellAv хранятся значения максимальной потенциальной прибыли за предыдущие девять коротких сделок. На основании этого массива впоследствии будет выведено среднее, которое станет использоваться в качестве размера профита для сделок SELL.

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

Счетчик SC в блоке 2 служит для подсчета количества найденных коротких сделок. Его величина используется при расчете среднего значения массива SellAv в тех случаях, когда не удалось заполнить массив.

Блок 3 отслеживает факт пересечения нижней линии ВВ линией осциллятора ВВ сверху вниз. Дальнейшие действия аналогичны блоку 2. Все команды блока выполняются в случае, если до пересечения был активен сигнал открытия длинной позиции, о чем свидетельствует положительное значение LastSignal. Вместо массива SellAv заполняется массив BuyAv, сохраняющий историю длинных сделок, а вычислением максимального убытка занимается переменная BuySL.

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

// - 4 - ========================== Учет истории сигналов стратегии =====================
LastSignal = 0; // Последний сигнал не определен
ArraySetAsSeries(BuyAv, True); // Массив как таймсерия
ArraySetAsSeries(SellAv, True); // Массив как таймсерия
ArrayInitialize(BuyAv, 0); // Инициализация массива длинных сделок
ArrayInitialize(SellAv, 0); // Инициализация массива коротких сделок
BuySL = 0; SellSL = 0;
BC = 0; SC = 0;
for (int i = Bars-1; i > 0; i--) // Учету подлежит вся имеющаяся история
{
GetSignal(i); // Получение значения сигнала на данном баре
if (Signal != 0) // Если сигнал есть
if (LastSignal != Signal) // и последний сигнал не равен ему
LastSignal = Signal; // то последний сигнал будет равен текщему
}

// Вывод итогов учета в журнал для контроля
Print("Среднее Buy = ", iMAOnArray(BuyAv, 0, MathMin(BC, 10), 0, MODE_SMA, 0), " из ",
BC, ", Среднее Sell = ", iMAOnArray(SellAv, 0, MathMin(SC, 10), 0, MODE_SMA, 0),
" из ", SC, "Максимальный стоп BUY = ", BuySL, ", Максимальный стоп SELL = ",
SellSL);
// - 4 - =========================== Окончание блока ====================================
Так как наиболее свежие данные содержатся в первых элементах массивов BuyAv и SellAv, то они регистрируются в качестве таймсерий. Затем при помощи цикла производится обращение к каждому бару истории, кроме текущего формирующегося. Номер бара передается в функцию GetSignal, которая формирует значение флага Signal: 0, 1 или -1. При смене направленности сигнала, флаг LastSignal принимает новое значение, чтобы расчет статистических данных впоследствии велся корректно.

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

Использование полученных данных производится при открытии сделок в функции Trade:

//+-------------------------------------------------------------------------------------+
//| Открытие позиций |
//+-------------------------------------------------------------------------------------+
bool Trade()
{
// - 1 - ==================== Открытие длинной позиции ==================================
if (Signal > 0 && LastSignal < 0)
{
int Res = CheckOrders(OP_SELL); // закрытие короткой сделки, если таковая имеется
if (Res == 0) // Открытых позиций нет, можно открывать новую
{
double SL = Bid - BuySL; // Стоп рассчитывается как максимальное значение убытка
// одной сделки, зафиксированное за всю историю
double TP = Bid + iMAOnArray(BuyAv, 0, MathMin(BC, 10), 0, MODE_SMA, 0); // Профит
// рассчитывается как средняя потенциальная прибыль за последние 10 сделок
if (OpenOrderCorrect(OP_BUY, Lots, NP(Ask), NP(SL), NP(TP)) != 0)
return(False);
}
if (Res == 1) return(False);//Существует короткая позиция, которую закрыть не удалось
LastSignal = Signal; // Сигнал обработан, теперь он в истории
}
// - 1 - ==================== Окончание блока ===========================================

// - 2 - ==================== Открытие короткой позиции =================================
if (Signal < 0 && LastSignal > 0)
{
Res = CheckOrders(OP_BUY); // закрытие длинной сделки, если таковая имеется
if (Res == 0) // Открытых позиций нет, можно открывать новую
{
SL = Ask + SellSL; // Стоп рассчитывается как максимальное значение убытка
// одной сделки, зафиксированное за всю историю
TP = Ask - iMAOnArray(SellAv, 0, MathMin(SC, 10), 0, MODE_SMA, 0); // Профит
// рассчитывается как средняя потенциальная прибыль за последние 10 сделок
if (OpenOrderCorrect(OP_SELL, Lots, NP(Bid), NP(SL), NP(TP)) != 0)
return(False);
}
if (Res == 1) return(False);// Существует длинная позиция, которую закрыть не удалось
LastSignal = Signal; // Сигнал обработан, теперь он в истории
}
// - 2 - ==================== Окончание блока ===========================================

return(True);
}
Блок 1 выполняется при наличии нового пересечения верхней линии ВВ линией осциллятора ВВ, до которого имело место пересечение нижней линии ВВ. Об этом будет свидетельствовать разнонаправленность значений флагов Signal и LastSignal. Первым делом при получении сигнала проверяется наличие короткой сделки. В случае ее нахождения производится попытка закрытия. Успешное закрытие, равно как и отсутствие сделки, приводят к выполнению следующих команд блока.

Перед открытием сделки рассчитываются уровни цели и стопа. Стоп вычисляется как разница текущей цены Bid (длинная сделка закрывается по Bid) и значения максимального убытка длинной сделки, вычисленное на всей доступной истории. Уровень профита вычисляется прибавлением к цене Bid среднего значения элементов массива BuyAv, в котором хранятся максимальные потенциальные прибыли по десяти последним длинным сделкам. После расчета стопа и профита производится открытие сделки.

Блок 2 аналогичен блоку 1. Только условием его выполнения является отрицательное значение Signal и положительное значение LastSignal. Для расчета стопа используется значение максимального потенциального убытка короткой сделки, вычисленное на всей доступной истории. А уровень профита рассчитывается при помощи среднего значения элементов массива SellAv.

Основные узлы программы рассмотрены, что позволяет перейти к тестированию стратегии.

Для тестирования системы выбран наиболее популярный в кратко- и среднесрочной торговле таймфрейм - H1. Такой шаг позволяет получить достаточное количество сделок по всем тестируемым валютным парам, а в некоторых случаях существенно превысить уровень 200 сделок на относительно коротком временном отрезке 01.01.2009 - 05.06.2010.

Большая часть настроечных параметров для всех валютных пар использовалась с одинаковыми значениями, которые установлены в эксперте по умолчанию. Исключение составили три переменные: RSIPeriod, BandsPrice и K_Dev. Их значения в каждом случае подбирались индивидуально. Результаты тестирования приведены на рис. 4 - 7.

http://www.forextrade.ru/media/Image/MQLabs/69_ag/EURUSD.gif
Рис. 4. - Результаты тестирования эксперта RSI_BBands_FBA на валютной паре EURUSD.

EURUSD. Значения изменяемых параметров были взяты такие: RSIPeriod = 19, BandsPeriod = 28, K_Dev = 3.1. Кривая баланса не показывает равномерность роста, хотя и является стабильной. Подтверждением стабильности выступает низкое значение максимальной просадки - 566 долларов, при высокой чистой прибыли - 3297 долларов. В итоге фактор восстановления получается 5.83, что очень неплохо для евро.

Подобные результаты позволяют рассуждать о перспективах применения системы на валютной паре EURUSD. Минимальный депозит для открытия сделок объемом 0.1 лота составляет 1700 долларов. Годовой прирост капитала, судя по тестам, может быть 2327 долларов. А это более 100% годовых, если точнее, то 137%.

http://www.forextrade.ru/media/Image/MQLabs/69_ag/USDCHF.gif
Рис. 5. - Результаты тестирования эксперта RSI_BBands_FBA на валютной паре USDCHF

USDCHF. Оптимальные параметры для франка такие: RSIPeriod = 15, BandsPeriod = 10, K_Dev = 4. Кривая баланса не являет собой стабильность и уж тем более не отражает равномерное течение событий. Все выражено в непонятных формах с непредсказуемыми взлетами и падениями. В цифрах тоже наблюдается большая отдаленность от совершенства. Достаточно низкое значение максимальной просадки - 650 долларов - вовсе не контрастирует с чистой прибылью - 1036 долларов. Таким образом, и по линии убытков, и по линии прибылей наблюдается слабость. В этой связи говорить о реальном применении системы на валютной паре USDCHF не приходится.

http://www.forextrade.ru/media/Image/MQLabs/69_ag/GBPUSD.gif
Рис. 6. - Результаты тестирования эксперта RSI_BBands_FBA на валютной паре GBPUSD.

GBPUSD. Входные параметры эксперта: RSIPeriod = 10, BandsPeriod = 23, K_Dev = 3.9. Кривая баланса является явно растущей и в какой-то степени даже равномерной. Но вот стабильной ее назвать язык не поворачивается. Картину портит несколько резких падений. Максимальная просадка показана наибольшая среди сегодняшних результатов, но все же достаточно небольшая - 874 доллара. Противовесом просадки выступает чистая прибыль, которая не смогла забраться слишком высоко, но все же свои 2278 долларов показала. Фактор восстановления остановился на отметке 2.6, что для фунта можно назвать скромным показателем.

Стоит попробовать рассчитать параметры для реального применения системы на валютной паре GBPUSD. Минимальный депозит для совершения сделок объемом 0.1 лота составляет 2600 долларов. То есть искомая годовая доходность будет около 60% годовых. Если быть точнее, то это значение 61.8% - любимое число приверженцев чисел Фибоначчи.


http://www.forextrade.ru/media/Image/MQLabs/69_ag/USDJPY.gif
Рис. 7. - Результаты тестирования эксперта RSI_BBands_FBA на валютной паре USDJPY.

USDJPY. Результаты показаны при параметрах: RSIPeriod = 11, BandsPeriod = 27, K_Dev = 3.6. Кривая баланса имеет самый равномерный рост из всех ранее рассмотренных и самую высокую стабильность. То же самое подсказывает значение максимальной просадки - 457 долларов, что также является наименьшей величиной среди сегодняшних просадок. Высокий уровень, заданный видом кривой баланса и низким значением максимальной просадки, подтверждает еще один показатель - чистая прибыль. Ее величина тоже наибольшая - 3538 долларов. В итоге получается значительный фактор восстановления - 7.74.

Для торговли по предложенной системе в совокупности с валютной парой USDJPY потребуется депозит 1400 долларов. Ожидаемая годовая доходность такого мероприятия составляет 178%.

Отличительной чертой описанной стратегии является реализация классического метода торговли - "расти прибыль, режь убытки". В результате убыточные сделки доминируют над прибыльными в примерном соотношении 60% к 40%. Но качественно прибыльные сделки превосходят убыточные. Так, если средняя убыточная сделка составляет 30 -70 долларов, то средняя прибыльная 40 - 130 долларов. Поэтому во время работы системы стоит запастись терпением, пережидая серии мелких убытков, на смену которым обязательно придет серия крупных прибылей, с лихвой компенсирующая потерянное.


[B]Доработка стратегии для использования в AutoGraf 4.0

Большое количество настроечных параметров эксперта RSI_BBands_FBA явилось причиной изобилия используемых в версии стратегии для AutoGraf параметров AT_. Стоит напомнить, что именно посредством настроечных параметров AT_1 ... AT_20 производится передача пользовательских параметров для функции автоматической торговли AutoGraf. На сей раз, из двадцати доступных переменных, было использовано 12. Очередность параметров в эксперте и стратегии совпадает, а именно: RSIPrice - AT_1, RSIPeriod - AT_2, MA_Period - AT_3, MA_Mode - AT_4, BandsPeriod - AT_5, K_Dev - AT_6, BandsFBAPeriod - AT_7, BandsShift - AT_8, OscPrice - AT_9, FrontPeriod - AT_10, BackPeriod - AT_11, Sens - AT_12. Параметр Lots настраивается при помощи панели настроек AutoGraf в режиме функционирования приложения при помощи панели настроек, находящейся в нижней части ценового графика.

Запуск стратегии RSI_BBands_FBA в среде AutoGraf 4.0 состоит из следующих шагов:
Получить файл по ссылке Файлы стратегий для AutoGraf 4.0 (http://www.forextrade.ru/media/Image/MQLabs/69_ag/AG_RSI_Smoothed__BandsFBA.zip) и распаковать полученный архив в папку MT4\experts\libraries (с перезаписью файлов AG_AT.ex4 и AG_AT.mq4). Запустить AutoGraf. Для работы советника в ключе приведенных результатов в окне настроек AutoGraf (закладка "Входные параметры") выставить правильные значения параметров AT_1 - AT_12 (полное повторение результатов при этом не гарантируется). Выбрать стратегию №5. Для этого необходимо передвинуть вверх значок So и среди названий стратегий найти значок S5, который также потянуть вверх. Запустить функцию автоматической торговли, передвинув значок AT в верхнее положение.

Советник RSI_BBands_FBA (http://www.forextrade.ru/media/Image/MQLabs/69_ag/RSI_BBands_FBA_Expert.mq4)

Индикатор RSI_Smoothed_BandsFBA_Osc (http://www.forextrade.ru/media/Image/MQLabs/69_ag/RSI_Smoothed_BandsFBA_Osc.mq4)

Индикатор BandsFBA NR Osc (http://www.forextrade.ru/media/Image/MQLabs/69_ag/_BandsFBA_NR_Osc.mq4)

Файлы стратегий для AutoGraf 4.0 (http://www.forextrade.ru/media/Image/MQLabs/69_ag/AG_RSI_Smoothed__BandsFBA.zip)

Развернутые результаты тестирования эксперта (http://www.forextrade.ru/media/Image/MQLabs/69_ag/Test.zip)

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

Scriptong
11-06-2010, 15:49
В статье я представил свое видение стратегии, хотя и учел многие ваши пожелания. Например, вы просили сгладить RSI при помощи МА - сделано. Вы просили показать пересечения осциллятора ВВ с ВВ, рассчитанным от RSI - сделано.

Дальше я создавал АТС, основываясь на своих личных предпочтениях, подтвержденными немалым опытом написания торговых роботов.

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

russcand
12-06-2010, 12:44
Спасибо , попробую протестить. Но в любом случае , предложение сделать советник по моей стратегии остается.

russcand
13-06-2010, 03:51
Не совсем выходы удачные. Похоже на гадания. Частенько немного не достает , чтобы цена развернулась в нужное направление , а по алгоритму закрывает в минус. Мне кажжжжж , что в моей стратегии более формализован выход.
Заодно вопрос. Хотел на оптимизацию поставить - не ставится. Почему?

Scriptong
14-06-2010, 15:12
Не совсем выходы удачные. Похоже на гадания. Частенько немного не достает , чтобы цена развернулась в нужное направление , а по алгоритму закрывает в минус.

Невозможно точно рассчитать пики и впадины цены. Такого расчеты вы никогда и нигде не найдете.



Мне кажжжжж , что в моей стратегии более формализован выход.

Как именно?



Заодно вопрос. Хотел на оптимизацию поставить - не ставится. Почему?

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

russcand
14-06-2010, 16:10
Как именно?

так пост 22. Там вродь все описано. Если что более детально описать могу. Надо?


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

Scriptong
15-06-2010, 15:04
Тестер , свойства - там свойства уже заполнены. Только сравниваю с Вашими тремя параметрами. ( можете скинуть сэт - лучше будет ) . Затем выбор периода. оптимизация. Страт. До этого на всяк случай подкачал историю .
В свойствах нужно поставить галки возле тех параметров, которые собираетесь оптимизировать, заполнить поля "Старт", "Шаг", "Стоп". Затем установить галку "Оптимизация", нажать "Старт" и ждать. Время оптимизации будет зависеть от получаемого количества комбинаций и модели тестирования (ну и конечно от производительности компьютера). В некоторых случаях продолжительность может достигать нескольких суток.

russcand
15-06-2010, 15:20
спасибо. Поля не отмечал. Щас попробую.

Nikisan
17-06-2010, 14:31
Здравствуйте!
А есть такая возможность добавить в советник RSI_BBands_FBA_Expert строки выбора тейк-профита и стоп-лосса или сопровождения позиций (трала)?

Надеюсь, автор идеи не будет в обиде?

russcand
17-06-2010, 15:34
Нет , конечно , но этот советник не по моей стратегии создан. ( лишь частично вход ) . Я жду от Scriptong , что он мне сделает то , что я просил. ( вроде обещал ). Если до понедельника не сделает , то закажу за деньги. У мня там много бы функций хотелось бы внедрить. А в этом действительно не лишним было бы именно трал прибыли. То есть. Получена прибыль по алгоритму , что Scriptong внедрил. Но , если цена двигается дальше , то зачем отказываться от прибыли. Например можно ввести функцию . Когда советник получил сигнал на закрытие сделки , автоматом включается трал в пределах риска , к примеру ( по вы бору ) 20% от полученной прибыли . Получена прибыль 200п . Активация трала запускает механизм 20% от 200п. = 40 п риска. Цена , если уйдет в обратку на 20% , значит не судьба. Закрываемся. Если идет дальше , то и прибыль растет. Типа так. Потому как входы я смотрел неплохие и движение часто продолжается. А выходы , бывает обрываются в моменте перелома негатива в позитив , но алгоритм фиксирует минус.

Nikisan
17-06-2010, 17:56
В процентах вообще теряюсь) мне б попроще, можно в прямых значениях.
про риск еще меньше, с математикой вообще беда гуманитарию.
Я, видя, положительное движение второпях включаю трейлинг-стоп)) причем по минимуму. А ведь не всегда у монитора и хотелось бы в советнике указать для каждой пары свой профит и стоп

Scriptong
18-06-2010, 09:14
Я жду от Scriptong , что он мне сделает то , что я просил. ( вроде обещал ). Если до понедельника не сделает , то закажу за деньги.
Это больше похоже на шантаж:)

Ну а если серьезно, то напишите, плз, какие именно сигналы вас интересуют. В посте 22 есть только описание применяемых индикаторов и кое-где посылы вроде "Уровни (-)0,75; 0; 0,75. Определяется тренд-флэт. Похож на РСИ , но удобней и четче." Такие формулировки необходимо более развернуто подавать, так как невозможно понять ее однозначно.

В идеале ТЗ должно быть таким:
1) Сигнал BUY: ........ Описание расчета стопа и профита
2) Сигнал SELL: ....... Описание расчета стопа и профита
3) Закрытие BUY: ......
4) Закрытие SELL: ......

По поводу вот этой фразы:

Поскольку Вы индикатор с переделками не выложили , то опираюсь на тот , что был ранее Вами разработан MA_RSI_BB ( параметры 2-14-70-30-20-1.6 ) Уровни: 50 и полосы.

я в недоумении: в статье и на форуме имеются ссылки на индикатор RSI_Smoothed_BandsFBA_Osc. А MA_RSI_BB разрабатывал не я, а SK (Сергей Ковалев).

russcand
18-06-2010, 09:35
Это больше похоже на шантаж:)

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

[QUOTE=Scriptong;25357По поводу вот этой фразы:
я в недоумении: [/QUOTE]
Эту фразу я писал до появления Вашей статьи.

Scriptong
18-06-2010, 10:33
Здравствуйте!
А есть такая возможность добавить в советник RSI_BBands_FBA_Expert строки выбора тейк-профита и стоп-лосса или сопровождения позиций (трала)?


Готово. Добавлены параметры StopLoss, TakeProfit и TrailingStop. Все они указываются в пунктах. Для отключения функции трейлинга, необходимо указать TrailingStop меньше StopLevel (0 - гарантированно)

Nikisan
18-06-2010, 12:56
Ой, так быстро!) Спасибо! Побежала пробовать!)))

Nikisan
18-06-2010, 17:17
невнимательно прочитала итоги тестов)
совершенно неадекватно ведет себя на usdchf! непонятно по какой причине закрывает позиции. ни по стопу, никак. просто посреди процесса))

Scriptong
18-06-2010, 18:17
невнимательно прочитала итоги тестов)
совершенно неадекватно ведет себя на usdchf! непонятно по какой причине закрывает позиции. ни по стопу, никак. просто посреди процесса))
Скорее всего, срабатывает противоположный сигнал. Хотя в таком случае должно происходить не просто закрытие, а открытие противоположной позиции.
Попробуйте описать ситуацию более подробно: с какими значениями параметров запускаете, на каком таймфрейме, на каком историческом периоде.

Nikisan
18-06-2010, 19:31
Да. это так. сигнал и открытие противоположного ордера закрывает открытую позицию, создавая непрерывный убыток.
Параметры советника не меняла, только лот.
ТФ 15 мин. не на истории. на демо. 14 июня (15-17 не применяла) и сегодня.
Не знаю, понятно написала?

Scriptong
18-06-2010, 19:57
Да. это так. сигнал и открытие противоположного ордера закрывает открытую позицию, создавая непрерывный убыток.
Параметры советника не меняла, только лот.
ТФ 15 мин. не на истории. на демо. 14 июня (15-17 не применяла) и сегодня.
Не знаю, понятно написала?
Ну если противоположный ордер открывается тогда все понятно, так как стратегия основана как раз на трех сигналах закрытия: обратный сигнал, стоп и профит. Об этом написано в статье.

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

Nikisan
20-06-2010, 06:46
Здравствуйте!
Странно, почему на этой паре стратегия именно так работает? На других такого не замечала. Ведь все ордера закрываются только в минус.
Было б здорово, когда обрабатывались новые сигналы,то по ним открывался бы новый ордер, который не закрывал открытого (но только один, противоположный). Если открыт ордер bay, то смог бы открыться только sell и наоборот).
Потому, что бывает, что рынок внезапно побежал против ордера, а потом также стремительно корректируется.
Есть такая возможность?

Nikisan
21-06-2010, 11:05
Такое поведение было замечено по паре usdchf, теперь полетела пара usdjpy :(

Scriptong
21-06-2010, 11:52
Такое поведение было замечено по паре usdchf, теперь полетела пара usdjpy :(

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

Scriptong
21-06-2010, 13:23
Вообщем можно ли доработать Ваш неплохой эксперт с учетом вновь возникших обстоятельств:eek:.


В ТЗ очень многие понятия для меня остались загадкой. Понял лишь то, что сигнал формируется от пересечения уровней 5 и 95 индикатором BandsFBA_NR_Osc. Это, как я понимаю, основной сигнал, который действует 5 свечей (тут снова вопрос - зачем, если мы по нему сразу же открываем позицию?).

Затем формулировка "Сигнал подтверждения действует 3 свечи". Что это за сигнал подтверждения?

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

"Сетка выставляется , если условие выхода дает минус" - что за сетка и как условие выхода может давать минус? Условие может быть истинно или ложно, но не "+" или "-".

"Выход – по условию выхода при первой плюсовой возможности" - плюсовая возможность - это прибыльное значение сделки? Тогда эксперт все время будет закрывать позиции в +1 пункт прибыли.

Таблица сама по себе неплоха, но воспринимается абстрактно. Поэтому объяснения к ней очень нужны, так как неясна сама суть эксперта.

Nikisan
21-06-2010, 13:58
если можно, то отключить. А потом ордера будут открываться?

russcand
21-06-2010, 14:27
основной сигнал, который действует 5 свечей (тут снова вопрос - зачем, если мы по нему сразу же открываем позицию?).
Не сразу. Основной сигнал активирует сделку , но пока не открывает. Открытие происходит только после подтверждения двумя другими индикаторами. Сам основной сигнал действует 5 свечей. Если после активации сигнала прошло 5 свечей включительно , но подтверждения от 2-х других ( или хотя бы одного из них ) не поступило , - вход не производится и сигнал аннулируется. Я писал : " Вход сразу , не дожидаясь закрытия свечи, как только прошло касание. " Но это при условии выполнения условий подтверждения.


Затем формулировка "Сигнал подтверждения действует 3 свечи". Что это за сигнал подтверждения?
Это сигналы подтверждения - iBBWidth и SSRC. Условия по ним.


"Вход- сразу не дожидаясь закрытие свечи , как только прошло касание." - насколько точным должно быть касание? Интересуют области допуска +/-,
Касание , имеется в виду завершенное касание . То есть , _BandsFBA_NR_Osc должен быть закрыт выше уровня 95 ( типа <=95 , больше или равно 95 ) . После этого вход ( с учетом сигналов подтверждений ). Осцилятор может в моменте пересечь уровень и закрыться прям на уровне 95 или чуть выше , а затем вернуться ниже . Но , если было закрытие выше 95 ( пересечение ) или прямо на 95 ( касание ) , то входим. Не зависимо от того , что цена слегка отступила. Просто есть основание полагать , что поход на уровень 95 ( и выше ) есть сильная заявка на продолжение движения , если волатильность iBBWidth высокая и SSRC высокая . Но , как только волатильность уменьшается и SSRC также пошла вниз , а _BandsFBA_NR_Osc повернула и , тем более , пересекла уровень , то большая вероятность обратного движения . По схеме где-то закрываемся , где-то открываемся.


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

Условие может быть истинно или ложно, но не "+" или "-".
Проверка на результат : если больше 0 , то истина и закрытие ордера. Если меньше 0 или равно 0 , то ложно и активируется сетка. Мож я что не понимаю , но все равно можно найти некую функцию , сравнивающую результат.


"Выход – по условию выхода при первой плюсовой возможности" - плюсовая возможность - это прибыльное значение сделки? Тогда эксперт все время будет закрывать позиции в +1 пункт прибыли.
Да это больше +1. Но насчет закрытия "на +1 все время" - если условия выхода это позволяют , то да. Но вероятнее всего , что прибыль должна накапливаться , прежде чем наступит условие выхода. Там ведь основное условие выхода - SSRC>0 или SSRC<0. с периодом 10. Т.е. оно не наступает сразу , как цена пошла в обратку , а накопительно уменьшается или увеличивается . До момента , пока не закрепится на уровне выхода. Здесь также , как и для _BandsFBA_NR_Osc , касающего или пересекающего уровень 95 , важен факт закрепления.


суть эксперта.
Суть в сигналах при пересечениях уровней 5 и 95 самого _BandsFBA_NR_Osc , а также крайних полос этим _BandsFBA_NR_Osc индикатора MA_RSI_BB.
При наличии подтверждающих сигналов ( уровни ) от iBBWidth и SSRC. Выходы обозначены.

russcand
21-06-2010, 18:24
Scriptong , обращаю внимание , что подкорректировал ответ на Ваш пост 50 в посте 52

Scriptong
22-06-2010, 10:45
Касание , имеется в виду завершенное касание . То есть , _BandsFBA_NR_Osc должен быть закрыт выше уровня 95 ( типа <=95 , больше или равно 95 ) . После этого вход ( с учетом сигналов подтверждений ). Осцилятор может в моменте пересечь уровень и закрыться прям на уровне 95 или чуть выше , а затем вернуться ниже . Но , если было закрытие выше 95 ( пересечение ) или прямо на 95 ( касание ) , то входим. Не зависимо от того , что цена слегка отступила. Просто есть основание полагать , что поход на уровень 95 ( и выше ) есть сильная заявка на продолжение движения , если волатильность iBBWidth высокая и SSRC высокая . Но , как только волатильность уменьшается и SSRC также пошла вниз , а _BandsFBA_NR_Osc повернула и , тем более , пересекла уровень , то большая вероятность обратного движения . По схеме где-то закрываемся , где-то открываемся.


Все равно, не хватает четкости в ТЗ. Попробуйте описать следующим образом:
1) Сигнал BUY: ......
2) Сигнал SELL: .....
3) Закрытие BUY: ....
4) Закрытие SELL: .....

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



Сетка это сетка с шагом цены.


К сожалению, это тоже мне ничего не объясняет. Что с этой сеткой делать?



Проверка на результат : если больше 0 , то истина и закрытие ордера. Если меньше 0 или равно 0 , то ложно и активируется сетка. Мож я что не понимаю , но все равно можно найти некую функцию , сравнивающую результат.


Так вот - что это за условие? Какой результат проверяется?



важен факт закрепления.


Такие выражения тоже требуют четкого объяснения. Что такое факт закрепления? Я, допустим, понимаю, что индикатор должен на двух последних (закрытых) барах быть выше уровня 95. Но это лишь мое суждение.

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

russcand
22-06-2010, 10:57
ок , . сеня немного занят , но к утру завтра детализирую.

Scriptong
22-06-2010, 12:52
ок , . сеня немного занят , но к утру завтра детализирую.

Да вы не спешите. У меня ведь тоже дел полно. И нужно не детализировать, так как ТЗ уже довольно объемное. Главное - правильно скомпоновать задание, чтобы в нем было понятно, что и как должно работать.

Nikisan
22-06-2010, 15:35
отключите обратный сигнал, пожалуйста, пока открыты ордера. не на шутку разбушевался советник! :(

Scriptong
23-06-2010, 11:41
отключите обратный сигнал, пожалуйста, пока открыты ордера. не на шутку разбушевался советник! :(

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

Nikisan
23-06-2010, 12:47
простите за торопливость) спасибо!!! Побежала менять)

Scriptong
24-06-2010, 09:08
Побежала менять
Видимо, не эргономично у вас расположены компьютеры - слишком далеко друг от друга;)

Nikisan
24-06-2010, 16:13
Синьор, Скриптонг :) есть такое дело!
Вот бы к золотишку приручить советника) какие настройки Вы посоветуете? пробовала с валютными, закрывает ордера по стоп-лоссу.

conceptor
24-06-2010, 19:02
Здравствуйте Scriptong! Можно ли написать советника по такой стратегии.
10 pips + Martingail

Взята с сайта strategy4you.ru

http://strategy4you.ru/strategii-foreks-po-metodu-martingejla/strategiya-foreks-10-pips-martingail.html

За основу Стратегии форекс 10 pips + Martingail взята Торговая стратегия форекс “10 пунктов по EURUSD”: вход в рынок точно так же происходит на пробое максимума и минимума предыдущего торгового дня, но в данной стратегии есть еще и дополнительные условия входа в рынок в случаи разворота цены при использовании метода Мартингейла (хотя и не в чистом его виде, но с увеличением объема последующей открываемой сделки).

Валютные пары для стратегии подходят следующие: USDJPY, USDCAD, NZDUSD, GBPJPY, EURUSD, CHFJPY, AUDUSD

1. Самый часто встречающийся и самый надежный сценарий развития, это когда при пробое экстремума срабатывают стоп-лоссы трейдеров, работающие на дневных графиках. Вообще считаю что многие ставят свои стопы на экстремумах дневных графиках, т.к. эти уровни считаются достаточно сильными пробойными уровнями. Благодаря этому, при срабатывании стопов или при открытии новых ордеров, при пробое этого уровня, цена по инерции должна пройти еще какое-то количество пунктов в этом направлении, обычно от 10 до 30 все зависит от волатильности валютной пары. Но мы не будем жадничать и будем брать исключительно 10 пунктов.

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

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

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

Если брать волновую теорию, то мы знаем что при развороте рынка образуется сначала первая волна, после которой бывает значительный откат в противоположную сторону, и этот откат бывает, по величине, сравнимый с первой волной (вторая волна как правило перекрывает 61% первой волны). Либо если брать графический анализ рынка, то на разворота обычно образуются фигуры, такие как: двойная вершина, двойное дно, голова и плечи. Все это доказывает, что на первых стадиях разворота, рынок обязательно вернется на значительное расстояние обратно, в данном случае к экстремуму или приближается к нему на близкое расстояние.

Исходя из вышеперечисленных рассуждений, предлагаю такую СТРАТЕГИЮ торговли на пробое дневных экстремумов “10 pips + Martingail”:

1. Точно так же как и в стратегии “10 пунктов по EURUSD” будем входить в рынок при пробое ДНЕВНЫХ экстремумов, с фильтром в несколько пунктов (для EURSD - 0 пунктов, а для других валютных пар в пределах 0-15 пунктов).

2. Лот выбираем исходя из ММ данной стратегии 0.01 лот на 1000$ депозита - максимальный лот (так же смотрите примечание в конце данной стратегии форекс !)

3. Устанавливаем TakeProfit на уровне 10 пунктов от входа в рынок.

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

5. Если цена закрылась по профиту, больше на пробитие этого дневного экстремума не работаем (в большинстве случаев так и бывает) - т.е. в этот день сделки больше не открываем!

6. Если цена отбилась от экстремума, зацепив его, то мы ждем пока она уйдет вниз на некоторый уровень и открываем еще одну сделку лотом в 1,6-2 раза больше предыдущего в том же направлении. Таким образом мы переносим уровень безубыточности с экстремума ниже на N количество пунктов.

7. Зная уровень безубыточности по этим 2 ордерам мы переносим уровень TakeProfit первого ордера в точку, уровень безубыточности по двум ордерам + TakeProfit = 10 пунктов. TakeProfit второго ордера ставим на эту же точку.

8. Как рассчитать расстояние на котором следует открывать еще один ордер:

Нам нужно создать такую ситуацию, что бы при открытии второго ордера наш TakeProfit переместился на 2-5 пунктов ниже открытия первого Buy ордера.

То есть если первый ордер мы открыли по цене 1.3000 лотом 0.1, следовательно при открытии второго ордера нам нужно будет установить TakeProfit примерно на 1.2995.

Таким образом получается что уровень безубыточности по 2 ордерам должен быть на уровне 1.2985.

Считаем: Лот1*Цену1 + Лот2*Цену2 = Общий лот*Уровень безубыточности

0.1*1.3000 + 0.2*X = 0.3*1.2985

X= (0.3*1.2985 - 1.3000*0.1)/0.2

X = 1.29775

Таким образом следующую позицию мы должны открыть на уровне 1.29775, а профиты ордеров выставить на уровне 1,2995. По сути один из ордеров у вас закроется минусом, но если посчитать, то при закрытии обоих ордеров мы получи 10 пунктов, с общим лотом 0.3, то есть 30$.

9. Далее если цена идет не в нашу сторону, мы начинаем рассчитывать цену для открытия следующего ордера, с одним отличием, уровень следующего TP должен находиться на уровне открытия 2 ордера плюс несколько пунктов.

Рассчитаем:

Уровень открытия второго ордера 1.29775, округлим 1.2978. Что бы поставить TP на этом уровне надо что бы уровень безубыточности по 3 ордерам был на уровне 1.2968.

Лот1*Цену1 + Лот2*Цену2 + Лот3*Цену3 = Общий лот*Уровень безубыточности

0.1*1.3000 + 0.2*1.29775 + 0.4*X = 0.7*1.2968

X= (0.7*1.2968 - 1.3000*0.1 – 1.29775*0.2)/0.4

X = 1.29553

Таким образом следующую позицию мы должны открыть на уровне 1.29553, а профиты ордеров выставить на уровне 1,2978. Таким образом при закрытии обоих ордеров мы получи 10 пунктов, с общим лотом 0.7, то есть 70$.

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

10. Далее мы опять рассчитываем следующий уровень, дожидаясь отката цены. Фактически выставляя таким образом ордера мы открываем не более 6 ордеров в одну сторону.

Сразу может вознкнуть вопрос “Почему 6 ордеров, а что если и 6-й ордер не закроется с прибылью…?“

Отвечаю:

Кол-во открытых ордеров может быть и большим, но по сатистике, за 2,5 последних года (с 2008 года) кол-во максимальных серий открытия ордеров следующие:

*
5 ордеров были открыты всего около 15 раз
*
6 ордеров были открыты всего 4-5 раз за 2,5 года
*
7 ордеров открыто не было ни одного раза !!!

Фактически все большинство сделок закрывается по первому ордеру.

Если сделать подсчет, то что бы “слить” депозит нужно движение более чем на 250 пунктов абсолютно без всяких коррекций, что бывает значительно редко, и то во время этого движения вероятнее всего будет открыт ордер в сторону этого движения.
**************************************************************

Советник на этом сайте предлагается платный. Начальная цена была 25$, после каждой покупки цена увеличивалась на 0.5$ и сейчас его стоимость составляет 43$. Для меня это уже большие деньги и я не могу себе позволить такой подарок. Поэтому прошу помощи у Вас.

russcand
25-06-2010, 18:01
Для Scriptong.
Только к концу след недели могу освободиться. Сейчас не смогу уделить внимание вопросу. Думаю , время ждет?

Scriptong
25-06-2010, 20:00
Синьор, Скриптонг :)

Если уж на то пошло то я скорее пан:), даже не господин. А то, что тут пишут у меня над аватаром - временно.



Вот бы к золотишку приручить советника) какие настройки Вы посоветуете? пробовала с валютными, закрывает ордера по стоп-лоссу.

Что значит приручить? Подобрать настройки? Так оптимизатор стратегий на то и дан. Или какие-то технические проблемы в работе советника на золоте?

Scriptong
25-06-2010, 20:05
Здравствуйте Scriptong! Можно ли написать советника по такой стратегии.
10 pips + Martingail

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

Это все или я все же что-то упустил?

Scriptong
25-06-2010, 20:11
Для Scriptong.
Только к концу след недели могу освободиться. Сейчас не смогу уделить внимание вопросу. Думаю , время ждет?

Да мне-то спешить некуда...

conceptor
25-06-2010, 21:54
Столько всего... Видимо, вы просто копипастили, без проработки. Суть, насколько я понимаю в том, чтобы на пробитие дневного максимума и минимума поставить отложенные ордера, а при срабатывании одного из них удалить противоположный и заниматься спасением имеющейся позиции доливкой, пока не получим заветные 10 пунктов.

Это все или я все же что-то упустил?

Да, автор стратегии много всего написал, что в ней много чего не понятно, особенно расчет открываемых ордеров.
У него представлен реальный счет в ДЦ с торговлей по этому советнику.
Только по сделкам там алгоритм открытия совсем другой.
Я так понял что:
1. При открытии ордера в любую сторону, другой ордер не удаляется, участвует тоже в торговле.
2. Второй ордер открывается через 22 пункта. И второй ордер не удваивается, а утраивается. т.е. допустим первый ордер лотом 0.10, второй уже через 22 пункта лотом 0.30.
3. Тейк профит по первому ордеру должен составлять 10 п, если открывается второй ордер, то по первому ордеру тейк передвигается на 5 п ниже открытия, а по второму тейк ставится ниже на 5 пунктов открытия первого ордера. т.е. будет составлять 17 п. т.е. прибыль уже составит не 10$, а 46$ с вычетом убытка по первому ордеру.
4. Третий ордер ставится через 17 п и тейк профит уже подтягивается по всем ордерам на 2-3п выше открытия второго ордера. Лот открываемого третьего ордера составляет 0.60.
5. четвертый ордер ставиться через 20-22 п. и тейк опять же ставиться на 2-3 п выше открытия третьего ордера.
Пятый и шестой ставим точно также и через такое же расстояние.

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

Kilgur
26-06-2010, 13:14
:rolleyes: В такой советник надо фильтр какой нибудь вставлять. Например Линию Ишимоку. Пошла цена выше линии и бычьи свечи - то покупаем. А если ниже то продаём. Для затравки можно ещё некоторые свечи не использовать, или использовать комбинацию свечей. :rolleyes: или алигатора подключить с его челюстями. :rolleyes: И будет как в сказке. За день не надоишь устанет рука.:rolleyes:

Nikisan
26-06-2010, 17:08
Пан? забавно! :) Пан Скриптонг!
Все дело в том, что я не умею оптимизировать. Честно пыталась. И с визуализацией и без нее(((
ведь чтобы их подгонять, знать надо, ну хоть чуток, а я полный минус в этом. На данном этапе.
Или может не там делаю? я про тестер, который в платформе МТ4.

Scriptong
28-06-2010, 09:58
Да, еще в отзывах в магазине на плати ру сейчас прочитал что, один покупатель написал о том что, советник бывает сделки закрывает не дожидаясь отметки тейк профита и что говорит не зря.

И как мы будем поступать с такими догадками?

Все остальное реализуемо и является очередной вариацией тактики Мартингейла. Я даже больше скажу - уже реализовано в советнике Ilan (см. соседнюю ветку (http://forum.fxservice.com/showthread.php?t=2798)), кроме самого условия открытия.

Кстати, не задумывались, что делать в случае, когда движение все же безоткатно пошло против сделки? Ведь нельзя быть настолько уверенным в том, что рынок не может двигаться 200-300 без возвратов. Такое при нынешнем рынке случается довольно часто и не замедлит случится вновь, чтобы полакомится нашим горемычным депозитом.

Scriptong
28-06-2010, 10:06
Пан? забавно! :) Пан Скриптонг!
Все дело в том, что я не умею оптимизировать. Честно пыталась. И с визуализацией и без нее(((
ведь чтобы их подгонять, знать надо, ну хоть чуток, а я полный минус в этом. На данном этапе.
Или может не там делаю? я про тестер, который в платформе МТ4.

Оптимизация производится непосредственно в тестере стратегий МТ4. Если умеете пользоваться тестером, то оптимизатором научиться пользоваться не составит большого труда.

В свойствах эксперта ставите галочки напротив тех параметров, которые хотите подобрать и заполняете напротив них поля "Старт", "Шаг" и "Стоп". Это интервал значений, в которых будет изменяться данный параметр. Затем ставите галку возле надписи "Оптимизация" (главное окно тестера) и жмете Старт.
Учтите, что оптимизация может быть довольно продолжительным процессом. Время оптимизации зависит от многих факторов:
1) Исторический период (не стоит выбирать период больше одного года, так как вся доступная история на данный момент ограничена всего лишь десятью годами)
2) Модель тестирования (при оптимизации в режиме "Все тики" результат будет наиболее достоверный, но оптимизация наиболее продолжительная)
3) Количество выбранных для оптимизации параметров. Чем больше - тем дольше. Я обычно выбираю не более четырех параметров
4) Интервал значений от "Старт" до "Стоп". Чем больше диапазон каждого параметра, тем дольше.

Nikisan
28-06-2010, 13:59
Выходит по всему, не умею тестером пользоваться, совсем(( Шаг, стоп? Что они означают? не знаю, какие параметры индикаторов менять ((

Scriptong
29-06-2010, 11:31
Выходит по всему, не умею тестером пользоваться, совсем(( Шаг, стоп? Что они означают? не знаю, какие параметры индикаторов менять ((

Мы же говорим об оптимизации советников. Индикаторы тестировать и оптимизировать невозможно.

Тестер стратегий активируется при помощи пункта меню "Вид" - "Тестер стратегий" или комбинацией клавиш Ctrl+R.
В появившемся окне выбираете имя советника, инструмент тестирования (символ), модель (цены открытия, контрольные точки, все тики), ставите галку "использовать дату" и выбираете нужный исторический период тестирования.

Если нажать кнопку "Свойства эксперта", то можно изменить параметры, а также выбрать настройки оптимизатора, о котором я писал выше. Тестирование или оптимизация (в зависимости от состояния галки "Оптимизация") запускаются при помощи кнопки "Старт".

Результаты тестирования появятся в закладках "Результаты", "График" и "Отчет" после окончания тестирования. Результаты оптимизации в закладках "Результат оптимизации" и "График оптимизации" после окончания оптимизации.