Автор | Сообщение |
Anatoliy
|
| |
Сообщение: 2
Зарегистрирован: 13.07.14
Репутация:
0
|
|
Отправлено: 21.07.14 21:22. Заголовок: Я новичок.
Пишу пользовательский индикатор на основе пересечение уровни 20 и 80. Если главная линия Stochastic пересекла уровень 80 (сверху - вниз), то выводит стрелка Sell на ценовых графиках, а если главная линия Stochastic пересекла уровень 20 (снизу - верх), то стрелка Buy на ценовых графиках. #property strict #property indicator_chart_window #property indicator_buffers 2 //--- plot Buy #property indicator_type1 DRAW_ARROW #property indicator_color1 clrGreen #property indicator_style1 STYLE_SOLID #property indicator_width1 1 //--- plot Sell #property indicator_type2 DRAW_ARROW #property indicator_color2 clrRed #property indicator_style2 STYLE_SOLID #property indicator_width2 1 //--- input parameters //--- indicator buffers double BuyBuffer[]; double SellBuffer[]; //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж //+------------------------------------------------------------------+ //| Функция инициализации пользовательского индикатора | //+------------------------------------------------------------------+ int init() { //--- SetIndexBuffer(0,BuyBuffer); SetIndexArrow(0,233); SetIndexStyle(0,DRAW_ARROW); //--- SetIndexBuffer(1,SellBuffer); SetIndexArrow(1,234); SetIndexStyle(1,DRAW_ARROW); //--- SetIndexEmptyValue(0,80.0); SetIndexEmptyValue(1,20.0); //--- return(0); } //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж //+------------------------------------------------------------------+ //| Функция пользовательского индикатора итерации | //+------------------------------------------------------------------+ int start() { //--- int i, Counted_bars; double mainStoc_1 = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,1); // бар 1 double mainStoc_2 = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,2); // бар 2 Counted_bars=IndicatorCounted(); // Количество просчитанных баров i=Bars-Counted_bars-1; for(i=0;i>=0;i--) { if (mainStoc_2 > 80.0 && mainStoc_1 < 80.0) SellBuffer = Low-5*Point; else SellBuffer = 0.0; if (mainStoc_2 < 20.0 && mainStoc_1 > 20.0) BuyBuffer = High+5*Point; else BuyBuffer = 0.0; } //--- return(0); } И в результатах индикатор вообще не работает. Как его исправит?
| |
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
All
[только новые]
|
|
Scriptong
|
| |
Сообщение: 1250
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация:
3
|
|
Отправлено: 03.03.15 18:52. Заголовок: Balbesik пишет: На ..
Balbesik пишет: цитата: | На мой взгляд в индикаторе BearBullBalance при построении отсутствует точка отсчета (база), т.е. построение на каждом баре происходит, как бы в «воздухе» (без привязки к соседям). |
| Привязка производится ко времени открытия бара. Как только открылся новый бар, то происходит обнуление счетчика тиков быков и медведей. Это же очевидно. В новом индикаторе будет точно такая же точка отсчета - время открытия бара. Изменится лишь алгоритм подсчета тиков. К быкам будут относиться тики с ценой bid выше цены открытия, а к медведям - ниже цены открытия. Тики, равные цене открытия свечи, в учет не пойдут.
| |
|
Balbesik
|
| |
Сообщение: 182
Зарегистрирован: 13.03.13
Репутация:
0
|
|
Отправлено: 03.03.15 19:13. Заголовок: Scriptong пишет: Пр..
Scriptong пишет: цитата: | Привязка производится ко времени открытия бара. Как только открылся новый бар, то происходит обнуление счетчика тиков быков и медведей. Это же очевидно. |
| Это понятно. Не смог объяснить. Scriptong пишет: цитата: | В новом индикаторе будет точно такая же точка отсчета - время открытия бара. Изменится лишь алгоритм подсчета тиков. К быкам будут относиться тики с ценой bid выше цены открытия, а к медведям - ниже цены открытия. Тики, равные цене открытия свечи, в учет не пойдут. |
| Вот связка, через цену Открытия и получается.
| |
|
Scriptong
|
| |
Сообщение: 1255
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация:
3
|
|
Отправлено: 03.03.15 19:35. Заголовок: Balbesik пишет: Вот..
Balbesik пишет: цитата: | Вот связка, через цену Открытия и получается. |
| Это, как бы, само собой.
| |
|
Balbesik
|
| |
Сообщение: 183
Зарегистрирован: 13.03.13
Репутация:
0
|
|
Отправлено: 07.03.15 14:28. Заголовок: Добрый день, Игорь! ..
Добрый день, Игорь! Scriptong пишет: цитата: | К быкам будут относиться тики с ценой bid выше цены открытия, а к медведям - ниже цены открытия. Тики, равные цене открытия свечи, в учет не пойдут. |
| Кажется все сделал – оказалось очень просто. Т.к привязка к цене (сравнение по цене) с учетом спреда (разници Бид Аск), переделка в твоем индикаторе, приводила в «реале» к «перерисовки» графика – не мог понять проблему – оказалось всего лишь необходима нормализация. Тебе, Игорь, наверное минут 5 надо было на переделку. Что получилось – посмотрю – нужна история (буду собирать на другом компе – «песня та жа» - ПАМЯТЬ ). Все равно твой вариант интересен и буду ждать. Ну и наверное самое сложное – старинный вопрос – как «скинуть» ПАМЯТЬ. Появилось ли что-либо а этом плане? Насколько я понял, это не проблема компов, а проблема самого терминала имеющего 32 разряда и терминал просто долго не позволяет использовать «тики», оптимизацию советника в «реале» и т.д., кроме этого разработчики МТ5 сами дают ограничения на фондовке до 2000 (или 5000 – не помню, на день только). Соответственно, если на долгосрок, то про тики, оптимизацию и т.д. (без перезагрузки) можно забыть, как обращал внимание Genry "ручками оно надежней" (шутка). Наработок много по тикам, оптимизации советников и т.д., все равно вопрос рано или поздно возникнет. Появляются же в Кодебазе скрипты – – для быстрого удаления индикатора из окна текущего графика – для переинициализации всех индикаторов – для быстрого доступа к свойствам индикатора – для автоматизации процедуры переинициализации индикатора – после перключения таймфрейма или символа скрипт будет запускать повтороно автоматически.... Что-то типа скрипта, что бы «снял» с графика индикатор, советник («скинул» память) и опять поставил туда же сохраняя установки. Скажи, Игорь, что – либо в этом плане.
| |
|
Scriptong
|
| |
Сообщение: 1285
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация:
3
|
|
Отправлено: 07.03.15 23:00. Заголовок: Смотри сюда...
| |
|
Balbesik
|
| |
Сообщение: 184
Зарегистрирован: 13.03.13
Репутация:
0
|
|
Отправлено: 08.03.15 17:03. Заголовок: Во первых женщин с п..
Во первых женщин с праздником! Во вторых они являются продолжателями рода и против только дурак скажет. Когда они много говорят это только плюс - они детей учат (инстинкт однако). Успеха им и счастья! По работе - Да! Сравнил (у меня без спреда решалась – без проблем, решение на нормировки NormalizeDouble(MarketInfo(Symbol(), MODE_SPREAD) * Point, 5), что-то дало (перерисовка исчезла), а это бред, возможно спред на тик быть не должен - это не важно). Игорь, интересно, а у тебя тоже спреда нет (он может быть?, а то как-то у меня "криво" получилось в сравнении) Никогда не считал, что без профи в программировании можно, что-то сделать. Ты задачу решил! P.S. Хотя интересно, что такое «тик» и в этом плане связка с некими значениями, как Бид, Аск, спреды на Тике и нужна ли связка? Прсто Игорь, если биржа отображает экономику, то, с точки зрения любой системы - нельзя делать "жесткий "0"" (система всегда разнесена - иначе невозможно создать корректирующий контур - пойдут автоколебания и "разнос"). Поэтому "попытался включить "спред".
| |
|
Balbesik
|
| |
Сообщение: 185
Зарегистрирован: 13.03.13
Репутация:
0
|
|
Отправлено: 08.03.15 17:47. Заголовок: И еще - вот если под..
| |
|
Scriptong
|
| |
Сообщение: 1290
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация:
3
|
|
Отправлено: 09.03.15 13:48. Заголовок: Balbesik пишет: Сра..
Balbesik пишет: цитата: | Сравнил (у меня без спреда решалась – без проблем, решение на нормировки NormalizeDouble(MarketInfo(Symbol(), MODE_SPREAD) * Point, 5), что-то дало (перерисовка исчезла), а это бред, возможно спред на тик быть не должен - это не важно). |
| Евгений, в который раз прошу тебя: излагай мысли максимально ясно, не мешай все в кучу. Вот, к примеру, о сравнении каких программ ты сейчас пишешь? Ведь нет ничего сложного в том, чтобы дописать: "по поводу сравнения программ такой-то и такой-то". Balbesik пишет: цитата: | Хотя интересно, что такое «тик» и в этом плане связка с некими значениями, как Бид, Аск, спреды на Тике и нужна ли связка? |
| Тик - это поступление двусторонней котировки (Bid и Ask). По сравнению с предыдущей она может: 1. Не отличаться от предыдущей ни по цене Bid, ни по цене Ask. Это значит, что изменился объем по заявкам, представляющим текущие цены. В МТ4 мы это установить не можем - нет данных по реальным объемам. 2. Отличаться по цене Bid. Ask - такой же. 3. Отличаться по цене Ask. Bid - такой же. 4. Отличаться по обеим ценам. Если мы сейчас говорим об индикаторе BerBullBalance_OpenZero, то спред учитывать не нужно. Все построения производятся по цене Bid. Хотя никто не мешает немного изменить индикатор, переведя его показания по цене Ask. Но даже в этом случае спред нам не нужен. Ведь если построить свечной график сразу по двум ценам, то получим неприятную для глаз картинку - раздвоение свечей.
| |
|
Balbesik
|
| |
Сообщение: 190
Зарегистрирован: 13.03.13
Репутация:
-1
|
|
Отправлено: 13.03.15 15:16. Заголовок: Привет, Игорь! Scri..
Привет, Игорь! Scriptong пишет: цитата: | ...излагай мысли максимально ясно, не мешай все в кучу... |
| Трудно излагать, когда не умеешь, да еще и когда пытаешься это сделать в праздник. Когда писал, то пытался написать в контексте моего предыдущего сообщения. Сравнивал со своей переделкой (это никому не интересно), считаю ее не корректной. Scriptong пишет: цитата: | Если мы сейчас говорим об индикаторе BerBullBalance_OpenZero, то спред учитывать не нужно. |
| Тут я немного о другом. Пытался разделить границу не просто Опен, а с учетом спреда – не смог – постоянное изменение последнего у меня ведет к «перерисовки» всего графика в твоем варианте алгоритма, да и, видимо, нет особого смысла (пока точно нет). Все это время смотрел, что получилось в индикаторе BerBullBalance_OpenZero? Мне нравится (правда я чуть переделал – вид, как у РСИ). Окончательно, для себя, выводы сделаю после тестирования (если получится твой архив тиковых данных преобразовать в график равновысоких баров и его «загнать» в тестер). Пока предварительно – появилась значимая дивергенция. Это и следовало ожидать – вот тут я ее приемлю, она логична, т.к. нормированы котировки, а это само по себе дает применение индикатора BerBullBalance_OpenZero логично и он с ценой не связан (все в рамках одного инструмента), есть привязка к единым точкам отсчета (базам) в виде твоего Зиг Зага и относительно этой «базы» сравнение с индикатором – производной от цены, который так же привязан к ЗигЗагу (сделан по ЗигЗагу) и индикатором – волатильности, который так же привязан к ЗигЗагу (сделан по ЗигЗагу), а и сам ЗигЗаг привязан к высоте бара (точнее 2-а ЗигЗага, один по размаху равен высоте бара, а второй «рабочий» связан с первым). В общем «картинка» получилась красивой. Еще раз - спасибо за индикатор!
| |
|
Scriptong
|
| |
Сообщение: 1326
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация:
3
|
|
Отправлено: 15.03.15 17:05. Заголовок: Balbesik пишет: есл..
Balbesik пишет: цитата: | если получится твой архив тиковых данных преобразовать в график равновысоких баров и его «загнать» в тестер) |
| М-м, серьезный вопрос, нужно будет как-то подумать насчет тестирования нестандартных ТФ в тестере на основании реальных тиков. Когда-то уже такое делал (нужно смотреть статьи на Admiral'e), но там не было реальных тиков, просто минутные свечи. В будущем проработаем вопрос.
| |
|
Balbesik
|
| |
Сообщение: 191
Зарегистрирован: 13.03.13
Репутация:
-1
|
|
Отправлено: 15.03.15 17:49. Заголовок: Scriptong пишет: ....
Scriptong пишет: цитата: | ...насчет тестирования нестандартных ТФ в тестере на основании реальных тиков... |
| Я сейчас жду твой архив за прошедшую неделю. Есть вопрос по преобразовании истории "в лоб" не идет, надо проверить. Историю твою я преобразовал в равновысокие и да "загнать" не удается тиковый, "загнал" скриптом от Синбара, но не тики зато есть объем, чего не было на синбаре. Пока жду историю за эту неделю.
| |
|
|
Scriptong
|
| |
Сообщение: 1327
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация:
3
|
|
Отправлено: 15.03.15 18:58. Заголовок: Balbesik пишет: Пок..
Balbesik пишет: цитата: | Пока жду историю за эту неделю. |
| Еще вчера добавил - 14.03.2015.
| |
|
Balbesik
|
| |
Сообщение: 192
Зарегистрирован: 13.03.13
Репутация:
-1
|
|
Отправлено: 16.03.15 01:24. Заголовок: Доброй ночи, Игорь! ..
Доброй ночи, Игорь! Я совершенно не понимаю в этих форматах данных и в их формировании (всякие там разделители и прочее). С другой стороны, я понимаю, что совершенно бессмысленно, что-либо делать (как в прочем и в любом вопросе), если нет корректных исходных данных. Что-то я делаю не так? 1. Скрипт ConvertTicksFile - файл- Excel «Как есть» похоже привязан к терминалу – какой-то полтергейст. Файл сформированный на терминале для тестирования «не понимается» другим терминалом хотя и загружается в него. В общем на котором терминале нужен равновысокий график истории на том и делать файл «Как есть» временного графика. 2. Запустить в реале с историей не удается. Похоже, все таки, идет конфликт с барами временного графика. Требуется похоже некое переформатирование. Но так или иначе историю мы получаем, правда не понятно – возможно это некая смесь, т.к. .tks не разделяется и новый не переписывается (user.tks), хотя график похож. Ничего не понятно. 3. В тестере «зашиты» только стандартные Т.Ф. и что-то «мудрить» думаю смысла нет. Все равно проще использовать терминал для тестирования, а следовательно нужен только скрипт, который формирует данные, по аналогии как у Синбара, но только тиковые. Скрипт Синбара у тебя есть, но прикрепляю, чтобы не искать (переделан, по твоей рекомендации, чтобы не было разрывов на графике – работает как надо) – просто на подумать – я сам смутно представляю, как можно, на многих инструментах, реализовать тики – никакой ПАМЯТИ не хватит – лучше подумать (мне кажется более актуально), как память «скидывать». click here http://dropmefiles.com/nQjuV P.S. Зто просто предупреждение.
| |
|
Scriptong
|
| |
Сообщение: 1337
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация:
3
|
|
Отправлено: 16.03.15 10:27. Заголовок: Balbesik пишет: 1. ..
Balbesik пишет: цитата: | 1. Скрипт ConvertTicksFile - файл- Excel «Как есть» похоже привязан к терминалу – какой-то полтергейст. Файл сформированный на терминале для тестирования «не понимается» другим терминалом хотя и загружается в него. В общем на котором терминале нужен равновысокий график истории на том и делать файл «Как есть» временного графика. |
| Итоговый файл этого скрипта - просто файл тиков, а терминал использует совершенно другой формат - свечной. Поэтому ничего удивительного в том, что импорт не состоялся, нет. Balbesik пишет: цитата: | 2. Запустить в реале с историей не удается. |
| Запустить что? Balbesik пишет: цитата: | Похоже, все таки, идет конфликт с барами временного графика. Требуется похоже некое переформатирование. Но так или иначе историю мы получаем, правда не понятно – возможно это некая смесь, т.к. .tks не разделяется и новый не переписывается (user.tks), хотя график похож. |
| Подключить к терминалу тиковую историю (из файлов tks) можно только одним способом - через TicksCollector. Других способов нет. Подключить тиковую историю к тестеру можно через FXTFileMaker, но пока ограничиваемся стандартными ТФ. Как сделать тестирование на нестандартных ТФ пока думаю.
| |
|
Balbesik
|
| |
Сообщение: 193
Зарегистрирован: 13.03.13
Репутация:
-1
|
|
Отправлено: 16.03.15 11:08. Заголовок: Все ни так. Script..
Все ни так. Scriptong пишет: цитата: | Поэтому ничего удивительного в том, что импорт не состоялся, нет. |
| Импорт идет - через временной график - график равновысоких строится (TicksCollector )! История по тикам временного графика - строим временной - по нему строим равновысокие. Если "... - просто файл тиков.." получен с другого терминала, у меня график истории равновысоких не строится Scriptong пишет: Есть график истории равновысоких (построенный по архивным данным) - пошли котировки на реале - график с историей равновысоких не работает, TicksCollector - при этом работает. Видимо конфликт с временным начинается, т.к. место записи одно и то же - новые тики равновысоких видимо "не стыкуются" с раннее записанными временными. Scriptong пишет: цитата: | Как сделать тестирование на нестандартных ТФ пока думаю. |
| Сделать, на отдельном терминале для тестировании, просто "закачку" - на любой ТФ (1мин, 5 мин и т.д.) закачать историю равновысоких. Через FXTFileMaker - неудается, а чере скрипт Синбара - лехко.
| |
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
All
[только новые]
|
|
|