[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 270

 

Привет всем.

Нужна помощь - подскажите, как это осуществить в эксперте:

Накладывать один индикатор на другой?

Вызываю первый индикатор, берет значения с графика.

Как вызвать второй, чтобы он брал значения с первого?

Если можно - на примере (пусть мувинг накладываем на атр).

Заранее благодарю.

 

Парни подскажите пожалуйста где в коде ошибка? Советник тупо только покупает.. После срабатывания стопа или тейка ждёт закрытия бара и опять покупает.. Если в первых строках меняю местами бай и селл то он только продаёт... Подскажите пожалуйста в чём дело может быть...

if (PerkyBuf1!=0 && OrdCon(MG)==0) {OrderOp(OP_SELL,Lots);  
    }  
    if (PerkyBuf2!=0 && OrdCon(MG)==0) {OrderOp(OP_BUY,Lots);  
    }
 }

return(0);
}


int OrderOp(int ord,double lot)  
{
   int ticket1;
   string ccm="";
   double l;
   bool SLTP;
   
   
   if (ord==OP_BUY) {
      l=NormalizeDouble(MarketInfo(Symbol(), MODE_ASK), MarketInfo(Symbol(), MODE_DIGITS));
      ccm="pivot: BUY";
      ticket1=OrderSend(Symbol(),ord,lot,l,3,0,0,ccm,MG,0,White);
      if (ticket1!=0) {
            if (StopLoss!=0) {SL=NormalizeDouble(l-StopLoss*Point,Digits);}
            if (TakeProfit!=0) {TP=NormalizeDouble(l+TakeProfit*Point,Digits);}
            SLTP=OrderModify(ticket1,OrderOpenPrice(),SL,TP,0,Red);
            if (SLTP) {return(0);}
      } 
   }           
   
   if (ord==OP_SELL) {
      l=NormalizeDouble(MarketInfo(Symbol(), MODE_BID), MarketInfo(Symbol(), MODE_DIGITS));
      ccm="pivot: SELL";
      ticket1=OrderSend(Symbol(),ord,lot,l,3,0,0,ccm,MG,0,White);
      if (ticket1!=0) {
            if (StopLoss!=0) {SL=NormalizeDouble(l+StopLoss*Point,Digits);}
            if (TakeProfit!=0) {TP=NormalizeDouble(l-TakeProfit*Point,Digits);}
            SLTP=OrderModify(ticket1,OrderOpenPrice(),SL,TP,0,Red);
            if (SLTP) {return(0);}
 
Mihoi:

Привет всем.

Нужна помощь - подскажите, как это осуществить в эксперте:

Накладывать один индикатор на другой?

Вызываю первый индикатор, берет значения с графика.

Как вызвать второй, чтобы он брал значения с первого?

Если можно - на примере (пусть мувинг накладываем на атр).

Заранее благодарю.

В самом индикаторе ATR и пр. введите дополнительные несколько строчек.

Хорошим примером решения задачи будет индикатор MACD из группы пользовательских индикаторов.

Откройте код индикатора MACD и посмотрите, как это сделано.

Очень просто. iMAOnArray().

 
ostrik:

Парни подскажите пожалуйста где в коде ошибка? Советник тупо только покупает.. После срабатывания стопа или тейка ждёт закрытия бара и опять покупает.. Если в первых строках меняю местами бай и селл то он только продаёт... Подскажите пожалуйста в чём дело может быть...


if (PerkyBuf1!=0 && OrdCon(MG)==0) {OrderOp(OP_SELL,Lots);  
    }  
    if (PerkyBuf2!=0 && OrdCon(MG)==0) {OrderOp(OP_BUY,Lots);  
    }
 } --- может, эта скобка лишняя???
 
Спасибо, буду пробовать!
 
DhP:



нее со скобкой всё норм вроде..
 
ostrik:

нее со скобкой всё норм вроде..

парни вам кагбе намекают, что вы предоставили неполный код. с неполной функцией.

а вообще, Print или Comment рулит.

 
sergeev:

парни вам кагбе намекают, что вы предоставили неполный код. с неполной функцией.

а вообще, Print или Comment рулит.


Дело в том что я только учусь в этом не лёгком деле и чёт вообще ни чего не получается... Такое ощущение что руки не от туда ростут ))

 

привет, как сместить линию индикатора вперед на бар?

#property copyright "autoforex"
#property link "http://www.autoforex.ru"

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
#property indicator_width1 2
#property indicator_style1 0

double Buffer1[];

int init()
{
SetIndexBuffer(0,Buffer1);
SetIndexStyle(0,DRAW_LINE);
return(0);
}
int start()
{
for(int i=0;i<Bars;i++)
{
Buffer1[i]=High[i];
}
return(0);
}

есть мысль вместо Buffer1[i]=High[i]; поставить Buffer1[i-1]=High[i]; но увы вперед он не рисует(

 
tmt0086:

привет, как сместить линию индикатора вперед на бар?

#property copyright "autoforex"
#property link "http://www.autoforex.ru"

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
#property indicator_width1 2
#property indicator_style1 0

double Buffer1[];

int init()
{
SetIndexBuffer(0,Buffer1);
SetIndexStyle(0,DRAW_LINE);
return(0);
}
int start()
{
for(int i=0;i<Bars;i++)
{
Buffer1[i]=High[i];
}
return(0);
}

есть мысль вместо Buffer1[i]=High[i]; поставить Buffer1[i-1]=High[i]; но увы вперед он не рисует(


разобрался
Причина обращения: