Как из советника узнать направление - страница 2

 
Roger >>:

А почему бы ему (оператору iCustom) не подумать, что 3 и 1 - это параметры, а не номер линии и номер бара?

Если в индикаторе есть внешние параметры, они должны быть перечислены в операторе.

Так там же сказано-Список параметров (при необходимости).

может их взять и перечислить все, если ви так думаете, но в советнике не использовать??

 

 
Roger >>:

А почему бы ему (оператору iCustom) не подумать, что 3 и 1 - это параметры, а не номер линии и номер бара?

Если в индикаторе есть внешние параметры, они должны быть перечислены в операторе.

Проверено, в точном соответствии со справкой работает без параметров (значения берутся из прописанных в индикаторе)..

 
Roger писал(а) >>

Если в индикаторе есть внешние параметры, они должны быть перечислены в операторе.

А справка говорит такое:

double iCustom( string symbol, int timeframe, string name, ..., int mode, int shift)

... - Список параметров (при необходимости). Передаваемые параметры должны соответствовать порядку объявления и типу внешних (extern) переменных пользовательского индикатора.

 

Значит я не прав. Извиняюсь.

 

Оператор iCustom записан на мой взгляд правильно, и данные из буферов передает (проверял).

Вообще то я хочу чтоби Вы (кто читает эту тему) подсказали мне какие данные в советнике нужно запрашивать из третьего буфера когда в етот самый буфер индикатор вносит следующее значение Low:

ExtMapBuffer3[i-1] = Low[i-1]-5*Point;

Такое не проходит:

Up=iCustom(NULL, 0,"adddd", 3, 0);
  Down=iCustom(NULL,0,"adddd",2,0);
//---- sell conditions
  if(Down==Low)  
  {
  res=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,"",MAGICMA,0,Red);
  return;
  }
//---- buy conditions
  if(Up==High)  
  {
  res=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"",MAGICMA,0,Blue);
  return;
  }

Так как же записать ето выражение???

if(Down==.............)

if(Up==.................)


 

мож так

double Up;
double Down;
int pOp_BUY_SELL=0;
static int pOp_BUY_SELL_Last=0;
int n= 0;
int pCBar=1;
for(int n= 0; n< pCBar; n++)
{
  Up=iCustom(NULL, 0,"sidus_v.2", 2, n);
  Down=iCustom(NULL, 0,"sidus_v.2", 3, n);
  if(Up>0 && Up!=EMPTY_VALUE)
  {
    pOp_BUY_SELL=1;
    break;
  }
  else
  {
    if(Down>0 && Down!=EMPTY_VALUE)
    {
      pOp_BUY_SELL=2;
      break;
    }
  }
}//_for

if(pOp_BUY_SELL==1 && pOp_BUY_SELL!=pOp_BUY_SELL_Last)
{
  //покупка
}
if(pOp_BUY_SELL==2 && pOp_BUY_SELL!=pOp_BUY_SELL_Last)
{
  //продажа
}
//запоминаем
pOp_BUY_SELL_Last=pOp_BUY_SELL;

сори если что попутал, мож вопроса не допонял!

благодаря второму дыханию появились хоть какието мысли!)

 
Честно говоря не понимаю, что вы хотите сделать. Индикатор основан на 2 MA. Сигнал даёт когда они пересекаются. Плюс не большой фильтр RSI. Что именно вам нужно и в чём трудности?
 
WalkMan писал(а) >>
Честно говоря не понимаю, что вы хотите сделать. Индикатор основан на 2 MA. Сигнал даёт когда они пересекаются. Плюс не большой фильтр RSI. Что именно вам нужно и в чём трудности?

без индюка слишом всё просто бут!)

 
vvavva >>:

без индюка слишом всё просто бут!)

А причём тут без индюка? Я говорю, как индюк устроен. Без него или с ним, всё равно. Хотя нет, без него даже больше возможностей, но это к теме не относится. Меня больше интересует, что именно skylord хочет с помощью этого индюка получить.

 
WalkMan писал(а) >>

А причём тут без индюка? Я говорю, как индюк устроен. Без него или с ним, всё равно. Хотя нет, без него даже больше возможностей, но это к теме не относится. Меня больше интересует, что именно skylord хочет с помощью этого индюка получить.

ну я думаю он хочет получить точки входа!

if(Down==.............)
if(Up==.................)

но не понятно для чего он делает так

if(Down==Low)
ведь низ(Low) последнего бара скорее всего не бут равен показателю индюка(Down) !