Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Привет Младен!
Я думаю, что вызов моего iCustom правильный, потому что в тестовом и обычном режиме (экспорт данных или использование в качестве инди)
он работает нормально до сих пор. Я думаю, что проблема в том, что вы упомянули значение double/array.
Когда я сейчас использую
double mom1[];
mom1 = iCustom(NULL,0, "myIndi",0,i);
и чем -> mom(mom1,Bars,20,i);
-> "mom" - параметр conversation not allowed
Как мне правильно это написать?
Большое спасибо и до свидания, ATПопробуйте вот так:
Also, change the mom function to be like this :
[PHP]double Mom(double& series[], int period, int totcount, int index) { if (totcount<1 || period<1) return (EMPTY_VALUE); if (indextotcount-1) return (EMPTY_VALUE); return (series-series); }Привет, Младен!
Спасибо за помощь!
Моя проблема в том, что мне нужен "const", потому что он нужен другим частям программы...
Писать "все" заново - слишком много работы, поэтому вопрос в том, могу ли я сделать это наоборот,
чтобы mom1 работала с подфункцией?
Большое спасибо и до свидания, AT
Привет, Младен!
Спасибо за помощь!
Моя проблема в том, что мне нужен "const", потому что он нужен другим частям программы...
Писать "все" заново - слишком много работы, поэтому вопрос в том, могу ли я сделать это наоборот,
чтобы функция mom1 работала с подфункцией?
Большое спасибо и до свидания, ATВы можете использовать функцию mom как есть (и все остальное).
Просто замените mom(mom1,Bars,20,i); на mom(mom1,Bars,20,i);
затем я получаю ошибку:
-> "мама1" - параметр conversation not allowed
блин, это сложно... есть еще идеи?
Спасибо и пока, AT
затем я получаю ошибку:
-> "мама1" - параметр разговор не разрешен
блин, это сложно... есть еще идеи?
Спасибо и пока, ATЯ не получаю эту ошибку
Смотрите пример:
double buffer[];
int init() { SetIndexBuffer(0,buffer); return(0); }
int deinit() { return(0); }
int start()
{
double mom = Mom(buffer,10,50,0);
return(0);
}
double Mom(const double& series[], int period, int totcount, int index)
{
if (totcount<1 || period<1) return (EMPTY_VALUE);
if (indextotcount-1) return (EMPTY_VALUE);
return (series-series);
}Компилируется без ошибок
Привет, Младен!
Может быть, это из-за функции for {}? (чтобы получить Bars?) или из-за...
другой момент: mom1 - это пользовательский инди... mom1 = iCustom(NULL,0, "myIndi",0,i);
который я вызываю здесь: mom(mom1,Bars,20,i);
Спасибо за помощь!!!
Пока, AT
Привет, Младен!
Может быть, это из-за функции for {}? (чтобы получить Bars?) или из-за...
другой момент: mom1 - это пользовательский инди... mom1 = iCustom(NULL,0, "myIndi",0,i);
который я вызываю здесь: mom(mom1,Bars,20,i);
Спасибо за помощь!!!
Пока, ATНет, это не может быть причиной.
Смотрите этот пример:
double buffer[];
int init() { SetIndexBuffer(0,buffer); return(0); }
int deinit() { return(0); }
int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
for(int i = limit; i>=0; i--)
{
buffer = iCustom(NULL,0,"custom name",0,i);
double mom = Mom(buffer,10,50,i);
}
return(0);
}
double Mom(const double& series[], int period, int totcount, int index)
{
if (totcount<1 || period<1) return (EMPTY_VALUE);
if (indextotcount-1) return (EMPTY_VALUE);
return (series-series);
}Также нет ошибок компилятора
Привет, Младен!
Возможно, потому что мой код выглядит примерно так, и есть "ошибка"... :-/
#property indicator_chart_window
double buffer[];
int init() { SetIndexBuffer(0,buffer); return(0); }
int deinit() { return(0); }
int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
for(int i = limit; i>=0; i--)
{
double mom1;
mom1 = iCustom(NULL,0,"custom name",0,i);
buffer = (
Mom(mom1,10,Bars,i);
);
}
return(0);
}
double Mom(const double& series[], int period, int totcount, int index)
{
if (totcount<1 || period<1) return (EMPTY_VALUE);
if (indextotcount-1) return (EMPTY_VALUE);
return (series-series);
}
);Спасибо и до свидания, AT
Привет, Младен!
Может быть, потому что мой код выглядит примерно так, и есть "ошибка"... :-/
#property indicator_chart_window
double buffer[];
int init() { SetIndexBuffer(0,buffer); return(0); }
int deinit() { return(0); }
int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
for(int i = limit; i>=0; i--)
{
double mom1;
mom1 = iCustom(NULL,0,"custom name",0,i);
buffer = (
Mom(mom1,10,Bars,i);
);
}
return(0);
}
double Mom(const double& series[], int period, int totcount, int index)
{
if (totcount<1 || period<1) return (EMPTY_VALUE);
if (indextotcount-1) return (EMPTY_VALUE);
return (series-series);
}
);at120
В вашем коде mom1 определяется как double (простая двойная переменная), а не как массив или буфер.
Определите ее так же, как определяется "буфер", добавьте ее в секции init к буферам, и все будет в порядке (не забудьте соответствующим образом настроить количество буферов ).
Привет, Мальден!
Спасибо за поддержку! ;-)
Даже, когда я напишу код, как ты мне сказал:
(я так думаю...)
#property indicator_chart_window
double buffer[];
double mom1[];
int init() { SetIndexBuffer(0,buffer); SetIndexBuffer(1,mom1);return(0); }
int deinit() { return(0); }
int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
for(int i = limit; i>=0; i--)
{
mom1 = iCustom(NULL,0,"custom name",0,i);
buffer = (
Mom(mom1,10,Bars,i);
//doesn't work - no value in indi
// Mom(mom1,10,Bars,i); //error: parameter conversation not allowed
// mom1 // this works
);
}
return(0);
}
double Mom(const double& series[], int period, int totcount, int index)
{
if (totcount<1 || period<1) return (EMPTY_VALUE);
if (indextotcount-1) return (EMPTY_VALUE);
return (series-series);
}
);Итак, когда я использую "Первую" версию, я не получаю никакого значения...
Когда я использую вторую версию, я получаю ошибку... хммм...
Работает только вызов mom1... но это не то значение...
Спасибо за помощь!
Пока, AT