АвторСообщение
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);
}

И в результатах индикатор вообще не работает.
Как его исправит?



Спасибо: 0 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 All [только новые]


Scriptong





Сообщение: 1442
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 3
ссылка на сообщение  Отправлено: 02.04.15 14:47. Заголовок: Balbesik пишет: Я п..


Balbesik пишет:

 цитата:
Я пытался передать суть, а не орфографию.
Естественно речь щла о индикаторе.


Чтобы собеседник понимал суть, важна не только орфография, но и семантика (помни про "казнить нельзя помиловать"). Вообще, даже при правильном построении вопросов другая сторона понимает не более 50% сказанного, а тут еще и косноязычие мешает. А потом от тебя: "разговариваю, будто с разными людьми".

Balbesik пишет:

 цитата:
У меня на равновысоких более 5 инструментов Тикколлекор
не "справляется" (а у тебя под сотню работает - в результате оптимизации?).


Я никогда не запускал столько индикаторов для построения нестандартных графиков. На 72-ух символах индикатор работает только в режиме сбора тиков.

Balbesik пишет:

 цитата:
У меня Тикколлекор не работает и причину я найти не могу (я не программист).


Скажу больше. Я программист, но тоже не могу найти причину. Пока знаю только одно: указанная ошибка устраняется, если удалить файл истории нестандартного ТФ и создать его заново. Если же к моменту запуска МТ4 уже был файл с нестандартным символом, то запуск индикатора для продолжения построения графика приводит к такой вот ошибке.

Спасибо: 0 
Профиль
Balbesik



Сообщение: 215
Зарегистрирован: 13.03.13
Репутация: -1
ссылка на сообщение  Отправлено: 04.04.15 15:42. Заголовок: Добрый день, Игорь! ..


Добрый день, Игорь!

Ну насчет стилистики и «казнить нельзя, помиловать (запятая)» (а в т.ч. «разные люди отвечают») это не по адресу.

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

Все равно же по Тикколлектору смотрю варианты (для себя), только писать не о чем.

Scriptong пишет:

 цитата:
Пока знаю только одно: указанная ошибка устраняется, если удалить файл истории нестандартного ТФ и создать его заново


- Ну , до этого я догадался и это я делаю.

Scriptong пишет:

 цитата:
Если же к моменту запуска МТ4 уже был файл с нестандартным символом, то запуск индикатора для продолжения построения графика приводит к такой вот ошибке.



Нормально запускается во всех вариантах, если уже был файл с нестандартным символом (если файл «нормальный»).

Ошибка появляется после «слета», значит или запись в файл или его считывание некорректно.
Т.е. причина это «слет» (тавтология – причина «слета», это «слет») обусловленный некорректной записью в файл,
а пишем наверное Бид (Аск). При этом Синбар стоит, а он тики не пишет – это исходный посыл.

Но интересно совершенно другое –
Твоя позиция!

Если сделать нормализацию до 6 знака всех Бидов и Асков, а также в bool NonStandartTFChart:: …
то проблема кол. инструментов решается – комп. спокойно работает на 7 и по «прикидке по памяти» будет работать до 30-40.



Вопрос более актуальный – А тебе «проблема слета» это надо?
Вопрос задаю второй раз!
Хочу понять, есть ли смысл его задавать?

С чем этот вопрос связан?

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

Делая тиковую историю (по 3 кухням) на филантропию не похоже.
Спред «тактично» обходится в разговоре.

Scriptong пишет:

 цитата:
Скажу больше. Я программист, но тоже не могу найти причину.



Ой ли?

Элементарно – ставишь на равновысоком величину , допустим, - 5, 25, 55, 155 и 255 пунктов.

На 5 ты слет «поймаешь» за 15-20 минут реала.
На 255 – вообще не поймаешь (его просто нет).

В пятницу, когда «кухни» развлекаются на конец сессии - вообще показательно.

И в процессе ты увидишь, как в зависимости от величины установки идет «слет»,
т.е. от реального спреда (мое предположение, т.к. иного придумать не могу).
Контроль по Журналу - HistoryBase: 2 errors in '.......'

А «святое» не трогать!!!! (может в этом проблема?)

Но удручает одно и спорить тут не о чем.
Картинка Равновысокого бара (более крупно – участок) –



Вот равновысокий бар сам по себе фильтр.
Тик может быть и 1 пункт и 100 и т.д. – это понятно.

С т.з. логики построения равновысокого бара в Тикколлекторе абсолютно логично.

Только мне абсолютно не понятно, что это дает (ну «не догоняю») – где фильтр?

Хотя вот это все в логике (почему проблема), почему есть проблема «слета»!


Спасибо: 0 
Профиль
Scriptong





Сообщение: 1450
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 3
ссылка на сообщение  Отправлено: 08.04.15 19:19. Заголовок: Balbesik пишет: Ой ..


Balbesik пишет:

 цитата:
Ой ли?

Элементарно – ставишь на равновысоком величину , допустим, - 5, 25, 55, 155 и 255 пунктов.

На 5 ты слет «поймаешь» за 15-20 минут реала.
На 255 – вообще не поймаешь (его просто нет).

В пятницу, когда «кухни» развлекаются на конец сессии - вообще показательно.

И в процессе ты увидишь, как в зависимости от величины установки идет «слет»,
т.е. от реального спреда (мое предположение, т.к. иного придумать не могу).
Контроль по Журналу - HistoryBase: 2 errors in '.......'


Описан лишь ВОЗМОЖНЫЙ путь воспроизведения ошибки. Но он явно не дает 100%-ой гарантии, что всегда такое будет происходить точно на 15-ой или 20-ой минуте. А, значит, это не является четким алгоритмом воспроизведения ошибки. Ведь даже после нахождения четкого алгоритма воспроизведения нужно провести тысячи запусков, чтобы найти место в коде, которое приводит к ошибке. Потом нужно еще будет подумать над тем, как эту ошибку устранить.

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

Спасибо: 0 
Профиль
Balbesik



Сообщение: 216
Зарегистрирован: 13.03.13
Репутация: -1
ссылка на сообщение  Отправлено: 08.04.15 19:38. Заголовок: Индикатор для меня о..


Индикатор для меня очень сложный.
Примерно картинка ошибки понятна - проблема согласования времени.
Решения я найти не могу.
Сейчас попробую на картинках пояснить проблему (еще и изложить надо правильно).

Спасибо: 0 
Профиль
Balbesik



Сообщение: 217
Зарегистрирован: 13.03.13
Репутация: -1
ссылка на сообщение  Отправлено: 08.04.15 20:42. Заголовок: Равновременной графи..


Равновременной график не проверял.

Равнообъёмный и равновысокий У МЕНЯ «слетают».

На что обратил внимание (все по равновысокому бару) –
Если на штатном 1 минутном графике в рамках ОДНОГО бара ход цены превышает заданный размах - i_pointsPerBar, то происходит «слет».

Проверил – в блок // Формирование нового бара добавил –
if(m_rates.time == 0 || (IsNewBarByConvertType(time) && (High[0] - Low[0]) < NormalizeDouble(m_chartProperty * m_point,6)))

Картинка –



Построения в этом случае равновысокого бара не происходит
до появления на штатном 1 минутном графике нового бара,
но и слет прекратился.

Вернул к исходному блок // Формирование нового бара.

Добавил в блок Определение формирования нового бара ….–
case CONVERT_TYPE_POINT: if (time < m_rates.time ) return false;
Серьезно улучшилось
Картинка –



Без этой добавки у меня давно бы график «слетел» (я уже научился быстро «слет» моделировать),
но все равно «слетает» - что-то еще не учитываю.

Обратил внимание, если размах (i_pointsPerBar) ставлю заведомо более спреда,
то с добавкой в case CONVERT_TYPE_POINT: if (time < m_rates.time ) return false;
вроде стоит (но это надо проверять – требует много времени).

Исходя из аналогии с Синбаром (а он не «слетает») – там искусственно задается time += 1; ,
но в синбаре и времени нет.

Предполагаю, что что-то с согласованием по времени, но индикатор для меня очень сложен.



Спасибо: 0 
Профиль
Scriptong





Сообщение: 1453
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 3
ссылка на сообщение  Отправлено: 09.04.15 21:13. Заголовок: Balbesik пишет: Есл..


Balbesik пишет:

 цитата:
Если на штатном 1 минутном графике в рамках ОДНОГО бара ход цены превышает заданный размах - i_pointsPerBar, то происходит «слет».


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

Спасибо: 0 
Профиль
Balbesik



Сообщение: 218
Зарегистрирован: 13.03.13
Репутация: -1
ссылка на сообщение  Отправлено: 09.04.15 21:29. Заголовок: Игорь! Там интересн..


Игорь!

Там интересно, если при появлении равновысокого бара был 1 минутный бар перед длинной свечкой , то стоит -
имеет какое-то влияние появление нового бара на 1 минуте.
Я сейчас вставил библиотеку динамического обновления - не знаю правильно или нет?
Пока стоит и пока нравится.
Место установки потом сброшу и буду просить совета, как правильно устанавливать.
Ставлю размах = 5 пунктов - слетает на быстром движении, лучше днем.
Чуть позже все напишу.

Спасибо: 0 
Профиль
Balbesik



Сообщение: 219
Зарегистрирован: 13.03.13
Репутация: -1
ссылка на сообщение  Отправлено: 10.04.15 11:39. Заголовок: Вставка библиотеки..



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

Уже и не знаю, то ли комп (скорость обработки), то ли интернет, то ли величина истории в терминале большая, то ли еще что-то.

Самое главное - т.к. подобная ситуация у других не моделируется - моя проблема!


Спасибо: 0 
Профиль
Scriptong





Сообщение: 1459
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 3
ссылка на сообщение  Отправлено: 10.04.15 18:54. Заголовок: Сегодня смог уделить..


Сегодня смог уделить немного времени работе с TicksCollector.

Опыт 1.
Собрал всю имеющуюся тиковую историю по EURUSD (с 23.05.2014) и создал из нее равновысокий график с высотой свечей 5 пунктов (4-хзнак). При открытии полученного графика сразу же получил сообщение об ошибках в истории. Открытый график не обновлялся, хотя выглядел вполне нормально (соответствовал истории).

Опыт 2.
Запуск TicksCollector на GBPJPY без предварительно собранной истории. Параметры те же. Новый график открылся нормально и в рабочем режиме обновлялся в течение 4-х часов. Никаких ошибок замечено не было.

Опыт 3.
После 4-х часов работы (см. опыт 2) терминал был принудительно перезагружен. Оффлайн-график открылся без ошибок, накопленная история отобразилась, обновление графика продолжилось. До сих пор все обновляется без сбоев.

Пока прихожу к выводу, что ошибка истории проявляется только при работе с достаточно большим количеством тиковых данных. На данный момент тиковый файл имеет размер 211 536 байт, что равно 8 814 тикам. Это для понимания, категорий "малое количество данных" и "большое количество данных".

Спасибо: 0 
Профиль
Balbesik



Сообщение: 223
Зарегистрирован: 13.03.13
Репутация: -1
ссылка на сообщение  Отправлено: 10.04.15 19:26. Заголовок: Scriptong пишет: Оп..


Scriptong пишет:

 цитата:
Опыт 1.


Соответствует!
Оно так и было - без удаления не запустишь.
Хотя если тиковый временной (для тестера я брал - все нормально).
По
Scriptong пишет:

 цитата:
Опыт 2.


Тоже правильно - я тебе писал:" Нет проблем."

Scriptong пишет:

 цитата:
Опыт 3.



Сегодня с утра - по ЕВРО-Бакс - постоянный слет (даже, как правило,
у меня было только после превышения на одной свече = 50 пунктов, стало сразу).
Использую Демо Альпари с островов (после разделения к ним вопросов не было).
Радует, что не комп, но и верил в это мало, т.к. остальное работало без вопросов.

Вопрос в другом - данный индикатор написан на
более высоком уровне (объектно-ориентированом, как реклама - ДА).
Я сомневаюсь, что ДЦ эта работа нужна (как заказчикам МТ - допустим МТ им "гарантировали" не работоспособность).
Сейчас на фонде появились платформы (в связке с Квиком) - где МТ5 "отдыхает".
Там все, о чем мы говорим, стоит штатно.
Для ДЦ это (твоя разработка) не нужна (хотя мне удивительно) и не исключаю,
как рекламодателей (работодателей) они против.
Поэтому "не идет".

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



Спасибо: 0 
Профиль
Balbesik



Сообщение: 224
Зарегистрирован: 13.03.13
Репутация: -1
ссылка на сообщение  Отправлено: 10.04.15 19:40. Заголовок: P.S. Надеюсь Тиккол..


P.S.

Надеюсь Тикколлектор изначально стоял на 1 минуте.

Спасибо: 0 
Профиль
Scriptong





Сообщение: 1466
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 3
ссылка на сообщение  Отправлено: 13.04.15 21:08. Заголовок: Balbesik пишет: Над..


Balbesik пишет:

 цитата:
Надеюсь Тикколлектор изначально стоял на 1 минуте.


Да, на М1. Но для TicksCollector это не имеет никакого значения. Это нужно только для "свечных" программ, таких как Synbar и period_converter.

Спасибо: 0 
Профиль
Balbesik



Сообщение: 226
Зарегистрирован: 13.03.13
Репутация: -1
ссылка на сообщение  Отправлено: 10.04.15 20:58. Заголовок: Перепроверка - Реал ..


Перепроверка -
Реал Альпари (острова) -
тут же слет!



Спасибо: 0 
Профиль
Scriptong





Сообщение: 1467
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 3
ссылка на сообщение  Отправлено: 13.04.15 21:11. Заголовок: Balbesik пишет: тут..


Balbesik пишет:

 цитата:
тут же слет!


Сегодня запустил терминал, предварительно не удаляя ранее созданный файл нестандартного ТФ. Полет нормальный, никаких ошибок.

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

Спасибо: 0 
Профиль
Balbesik



Сообщение: 229
Зарегистрирован: 13.03.13
Репутация: -1
ссылка на сообщение  Отправлено: 13.04.15 16:49. Заголовок: Эти ребята достоины ..


Эти ребята достоины своей чести (сегоднешнему поколению это непонять).

Спасибо: 0 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  2 час. Хитов сегодня: 0
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет