Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 924

 
atztek:
Возможно так:



Спасибо, работает.

Но после увеличения количества баров, вот так:

for(int x=(High_i-7); x<=(High_i+7); x++)

возникает

array out of range in 'ta_v1_05.mq4' (174,11)

строка 174, эта:

   if(High[x]>=High[High_i])

скажите, пожалуйста, как исправить.

 
а вы уверены что х натуральное число или 0? если high_i = например 6, то х = -1, а High[-1] - это уже проблема. может быть добавить в 173 строку проверку if (x < 0) continue; 
 
tatianati

danik: а вы уверены что х натуральное число или 0? если high_i = например 6, то х = -1, а High[-1] - это уже проблема. может быть добавить в 173 строку проверку if (x < 0) continue; 
Для трех баров такая "проверка" была:
      for(j=i+3;j<=i+m;j++)

Для других значений необходимо изменять их повсеместно.
Начать можно с этого, а дальше смотреть решит это проблему или есть еще что-то, что необходимо исправить.
 
Здравствуйте уважаемые, подскажите пожалуйста, есть функция закрытия ордеров, только ордеры почему то не закрываются, не могу понять в чём косяк
void CloseOrders(int otype)
    {
      int ClosePrice;
      
      if (otype == OP_BUY) ClosePrice=Bid;
      if (otype == OP_SELL) ClosePrice=Ask;
    
       
      int total = OrdersTotal();
      for(int i = total-1; i >= 0; i--)
      {    
         if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         { 
           if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == otype)
           OrderClose(OrderTicket(),OrderLots(),ClosePrice,Slippage,Yellow);
         }
      }
 
lufer:
Здравствуйте уважаемые, подскажите пожалуйста, есть функция закрытия ордеров, только ордеры почему то не закрываются, не могу понять в чём косяк

Цена не может быть int!

int ClosePrice;
 
TarasBY:

Цена не может быть int!

ой, точно!! Спасибо!!!
 
Уважаемые форумчане, помогите найти ошибку в коде, вроде должен отрисовывать две линии на основе данных с индикаторов ZeroLag MACD для EUR\USD и GBP\USD, но ничего не происходит. Вот код
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 DarkBlue
#property indicator_width1 1
#property indicator_width2 1
//+------------------------------------------------------------------+

extern string ExtParam1="EURUSD";
extern string ExtParam2="GBPUSD";
extern int FastEMA=12;
extern int SlowEMA=24;
extern int SignalEMA=9;

//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
//+------------------------------------------------------------------+
int init()
{
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexLabel(0,ExtParam1); 

SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,ExtMapBuffer2);
SetIndexLabel(1,ExtParam2); 
//----
return(0);
}
//+------------------------------------------------------------------+
int start()
{
int counted_bars = IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars --; 
int limit=Bars-IndicatorCounted();
int bar;
for(bar=0; bar<limit; bar++)
ExtMapBuffer1[bar]=iCustom(ExtParam1,Period(),"ZeroLag MACD",FastEMA,SlowEMA,SignalEMA,iBarShift(ExtParam1,0,Time[bar],false));
ExtMapBuffer2[bar]=iCustom(ExtParam2,Period(),"ZeroLag MACD",FastEMA,SlowEMA,SignalEMA,iBarShift(ExtParam2,0,Time[bar],false));
return(0);
}  
 
ASZmyrov:
Уважаемые форумчане, помогите найти ошибку в коде, вроде должен отрисовывать две линии на основе данных с индикаторов ZeroLag MACD для EUR\USD и GBP\USD, но ничего не происходит. Вот код

Ходят слухи, что IndicatorCounted() не работает, ещё пересчёт индикатора корректнее считать из прошлого в настоящее, ну и ещё пару ошибок в коде.

P.S. Сам ZeroLag MACD тоже нужно "подровнять" под новую виртуальную машину.

Файлы:
 
tatianati:

Спасибо, работает.

Но после увеличения количества баров, вот так:

возникает

array out of range in 'ta_v1_05.mq4' (174,11)

строка 174, эта:

скажите, пожалуйста, как исправить.

Вы не это ищете? 

Файлы:
isf.mq4  6 kb
 

Спасибо atztek.

Спасибо danik.

Работает, без ошибок. 

Спасибо tara, очень полезно.