У меня было время - на задачу придумал алгоритм, описал ( кажись детально, ну может чуть не коректно для когото - люди ведь разные по доходимости)
сарказм? не знаю мыслей небыло, просто помочь.
код писать кому-то? оптимизировать еще? (да могу, но стоит ли ето делать? )
(п.с. artmedia70, не в обиду, уважаю Ваше отношение и мнение в целом - честно, но на днях вы сами давали код с iCustom-ы мягко говоря не оч оптимизированый.)
что-то типа етого должно работать если вставить в проверку на новый бар.
более оптимальным будет код если сузить kilkict=iBars(sy,tf) после какого-то количества фракталов, чтобы постоянно не перебирать все бары.
Спасибо. По вашему алгоритму я начал писать. Но с флагами мне до вас как до Пекина раком. Еще раз спасибо.
Спасибо вам еще раз. Попробовал разобраться в вашем коде и понаписывал коментариев. Это делал для себя, чтоб понять и может когда нибуть и я что то похоже напишу. Учюсь выясняя логику чуьих работ. Потом пробую сам.
Может найдете время проверить мною написаны коменты и если надо подправить. И еще вопрос.
if (Bufer0!=EMPTY_VALUE)
Это имееться в виду, что буффер индикатора уже не пуст или эта переменная означает что то другое ? Буффер индикатора был бы
Bufer0[i]
Весь код с коментами
int counted_bars=IndicatorCounted();
//----int a1=0, //преведущий фрактал (-1 ->нижний, 1 -> верхний)
a2, //нынешний фрактал (-1 ->нижний, 1 -> верхний)
a3, //сума преведущий + нынешний
kilkict,
frac, //frac - флаг существования фракталов,
frac1=0; //frac1- счетчик фракталов (+1 или 0 за цикл)int i;
double Bufer0; //
kilkict=iBars(NULL, 0);
for (i=3; i<kilkict;i++){
a2=0;frac=0;
if(iFractals(NULL, 0, MODE_UPPER, i)>0) {
if (Bufer0!=EMPTY_VALUE) { //
a2+=1; //к числу фракталов добовляем 1
frac=1; //флаг - фрактал есть
frac1++; //счечик увеличиваем на 1
}
}
if(iFractals(NULL, 0, MODE_LOWER, i)>0) {
if (Bufer0!=EMPTY_VALUE) { //if(a2==0){
frac1++; //счечик увеличиваем на 1
frac=1; //флаг - фрактал есть
}
a2+=-1; //к числу фракталов добовляем -1(т. е. уменшаем)
}
}
if (frac==0){continue;} // если флага нет (фрактал ненайден)if (frac1==1){ //если счечик равен 1,
a1=a2; continue;
}
a3=a1+a2;
if(a3<0) { a1=a2;continue;}//Два фрактала вниз подряд найдено// if(a3>0) { a1=a2; continue;}//Два фрактала вверх подряд найдено //if(a3==0 && a1==0) { a1=a2;}// Два фрактала подряд вверх и два фрактала подряд вниз найдено //
}
Это имееться в виду, что буффер индикатора уже не пуст или эта переменная означает что то другое ?
Эту строку можно убрать, т.к. iFractals() в качестве отсутствия фрактала возвращает ноль, а не "пустое значение" (EMPTY_VALUE).
У меня к вам вопрос: вы пытаетесь сделать индикатор, который будет искать два идущих подряд фрактала? Или в советнике ищете два подряд фрактала, находящихся ближе всех к текущему бару? В этом вопросе не праздное любопытство, т.к. методы поиска в индикаторе и в советнике разные - индикатор рассчитывается от конца к началу - из прошлого в настоящее, а советник просматривает бары из настоящего в прошлое. Соответственно, и направления поиска тоже разные в советнике и в индикаторе.
И последний вопрос: что должно получиться на выходе?
Эту строку можно убрать, т.к. iFractals() в качестве отсутствия фрактала возвращает ноль, а не "пустое значение" (EMPTY_VALUE).
У меня к вам вопрос: вы пытаетесь сделать индикатор, который будет искать два идущих подряд фрактала? Или в советнике ищете два подряд фрактала, находящихся ближе всех к текущему бару? В этом вопросе не праздное любопытство, т.к. методы поиска в индикаторе и в советнике разные - индикатор рассчитывается от конца к началу - из прошлого в настоящее, а советник просматривает бары из настоящего в прошлое. Соответственно, и направления поиска тоже разные в советнике и в индикаторе.
И последний вопрос: что должно получиться на выходе?
Пока индикатор, а дальше видно будет. методы поиска в индикаторе и в советнике разные - индикатор рассчитывается от конца к началу - из прошлого в настоящее, а советник просматривает бары из настоящего в прошлое.
for (i=kilkict;i>0;i--)
Результат - два верхних -> продаем(стрелка в низ), два нижних -> покупаем (стрелка в верх). Сигнал появиться +2 бара в право от фрактала. Вот это и хочу по началу посмотреть на истории визуально. И наверное нужен будет фильтр.
У меня было время - на задачу придумал алгоритм, описал ( кажись детально, ну может чуть не коректно для когото - люди ведь разные по доходимости)
сарказм? не знаю мыслей небыло, просто помочь.
код писать кому-то? оптимизировать еще? (да могу, но стоит ли ето делать? )
(п.с. artmedia70, не в обиду, уважаю Ваше отношение и мнение в целом - честно, но на днях вы сами давали код с iCustom-ы мягко говоря не оч оптимизированый.)
что-то типа етого должно работать если вставить в проверку на новый бар.
более оптимальным будет код если сузить kilkict=iBars(sy,tf) после какого-то количества фракталов, чтобы постоянно не перебирать все бары.
Спасибо. По вашему алгоритму я начал писать. Но с флагами мне до вас как до Пекина раком. Еще раз спасибо.
https://www.mql5.com/ru/forum/131516/page34
Там внизу - ранний Артикул поделился опытом. Именно по этому вопросу.
https://www.mql5.com/ru/forum/131516/page34
Там внизу - ранний Артикул поделился опытом. Именно по этому вопросу.
СПС
в чем может быть ошибка ?
иногда при тестированни во время одного теста выдаёт ошибку деление на "О"
в чем может быть ошибка ?
иногда при тестированни во время одного теста выдаёт ошибку деление на "О"
берем поиск знака "/" и смотрим какие переменніе от пользователя берут участия в делении:
SL ;
FV ;
TakeProfit1 .
вот ктото из них бывает 0. Как вариант.
в чем может быть ошибка ?
иногда при тестированни во время одного теста выдаёт ошибку деление на "О"
Делаем проверку типа:
И так далее .Спасибо вам еще раз. Попробовал разобраться в вашем коде и понаписывал коментариев. Это делал для себя, чтоб понять и может когда нибуть и я что то похоже напишу. Учюсь выясняя логику чуьих работ. Потом пробую сам.
Может найдете время проверить мною написаны коменты и если надо подправить. И еще вопрос.
Это имееться в виду, что буффер индикатора уже не пуст или эта переменная означает что то другое ? Буффер индикатора был бы
Весь код с коментами
gince:
Это имееться в виду, что буффер индикатора уже не пуст или эта переменная означает что то другое ?
Эту строку можно убрать, т.к. iFractals() в качестве отсутствия фрактала возвращает ноль, а не "пустое значение" (EMPTY_VALUE).
У меня к вам вопрос: вы пытаетесь сделать индикатор, который будет искать два идущих подряд фрактала? Или в советнике ищете два подряд фрактала, находящихся ближе всех к текущему бару? В этом вопросе не праздное любопытство, т.к. методы поиска в индикаторе и в советнике разные - индикатор рассчитывается от конца к началу - из прошлого в настоящее, а советник просматривает бары из настоящего в прошлое. Соответственно, и направления поиска тоже разные в советнике и в индикаторе.
И последний вопрос: что должно получиться на выходе?
Эту строку можно убрать, т.к. iFractals() в качестве отсутствия фрактала возвращает ноль, а не "пустое значение" (EMPTY_VALUE).
У меня к вам вопрос: вы пытаетесь сделать индикатор, который будет искать два идущих подряд фрактала? Или в советнике ищете два подряд фрактала, находящихся ближе всех к текущему бару? В этом вопросе не праздное любопытство, т.к. методы поиска в индикаторе и в советнике разные - индикатор рассчитывается от конца к началу - из прошлого в настоящее, а советник просматривает бары из настоящего в прошлое. Соответственно, и направления поиска тоже разные в советнике и в индикаторе.
И последний вопрос: что должно получиться на выходе?
Пока индикатор, а дальше видно будет. методы поиска в индикаторе и в советнике разные - индикатор рассчитывается от конца к началу - из прошлого в настоящее, а советник просматривает бары из настоящего в прошлое.
for (i=kilkict;i>0;i--)
Результат - два верхних -> продаем(стрелка в низ), два нижних -> покупаем (стрелка в верх). Сигнал появиться +2 бара в право от фрактала. Вот это и хочу по началу посмотреть на истории визуально. И наверное нужен будет фильтр.
...
что-то типа етого...
...
Расскажите, объясните, как так случается, что вместо "этого" пишут "етого"?
1. Вы не знаете, что "это" пишется с буквы "э", а не с "е"?
2. Лень двинуть рукой до буквы "э", проще нажать "е"?
3. На клавиатуре нет клавишы "э"? Если нет, почему ее нет?
4. Какие-то особые понты?
5. Некоторая другая неведомая причина. Какая?