Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
С удовольствием, но в маркет такой продукт не пройдёт.
Советник основан на этом индикаторе, как ссылаться на него если его не будет в маркете даже в бесплатном варианте?
А зачем ссылаться?
А как по другому? Советник же не будет без него работать. И тест не получится ознакомительный.
А это, что?
Это выражение истинно или ложноА как по другому? Советник же не будет без него работать. И тест не получится ознакомительный.
Пробуйте ресурсом индикатор вшить в тело советника и проверить в маркете.
Можно и так, но в советнике так же используется #property strict и будет опять же ошибка
А это, что?
Это выражение истинно или ложноТам условия сигналов были (подробности убраны)
Тут в другом вопрос, как убрать ошибки если переменная используется только в цикле и надо вернуть значение после выхода из цикла
Не могу разобраться, при #property strict выдаёт 4 ошибки и как исправить не пойму.
Ошибки на return(k==-1); и return(k > 0);
Просто поменять на return(0); нельзя!!!
Индикатор МТ4. Нужна помощь!!
Тут в другом вопрос, как убрать ошибки если переменная используется только в цикле и надо вернуть значение после выхода из цикла
bool checkLowRef (int count, int i) { int k=count-1; for (; k> 0; k--) if (Low[i+k] < Low[i]) break; return(k > 0); }
//-----------------+
bool checkHighStrict(int count, int i) { int k=count-1; for (; k>=0; k--) if (High[i+count] <= High[i+k]) break; return(k==-1); }
bool checkHighRef (int count, int i) { int k=count-1; for (; k> 0; k--) if (High[i+k] > High[i]) break; return(k > 0); }
Интересный манёвр, но не работает, нет сигнала.
ваш вопрос был про ошибку и как убрать.
а про сигналы вопроса не было. )
если надо сигнал - изложите суть бага про сигнал
Всего то надо было исправить limit (вышли за пределы массива)
int i,limit;
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit = MathMin(Bars-counted_bars,Bars-1);
if(counted_bars==0) {
limit--; // чтобы не выйти за пределы массива при counted_bars==0
limit-=10; // в расчетах используется смещение на 10 баров вглубь истории, поэтому добавим это смещение при первом расчете
}else{ // индикатор уже рассчитывался ранее, counted_bars>0
limit++; // при повторных вызовах увеличим limit на 1, чтобы гарантированно обновлять значения индикатора для последнего бара
}
for(i=limit; i>=0; i--) {
ну и int k; вынести за пределы цикла
bool checkLowStrict(int count, int i) { for (k=count-1; k>=0; k--) if (Low[i+count] >= Low[i+k]) break; return(k==-1); }
bool checkLowRef (int count, int i) { for (k=count-1; k> 0; k--) if (Low[i+k] < Low[i]) break; return(k > 0); }
//-----------------+
bool checkHighStrict(int count, int i) { for (k=count-1; k>=0; k--) if (High[i+count] <= High[i+k]) break; return(k==-1); }
bool checkHighRef (int count, int i) { for (k=count-1; k> 0; k--) if (High[i+k] > High[i]) break; return(k > 0); }
Теперь всё работает, сигнал есть, ошибок нет))
Всем большое спасибо !!!