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

 
eddy:

вот и хочу объект синим создать)

sergeev, т.е. indicator_color1 это color-переменная?

int init() {
   IndicatorBuffers(2);
   SetIndexStyle(0, DRAW_ARROW, STYLE_SOLID, 3);
   SetIndexArrow(0, 108);
   SetIndexBuffer(0, g_ibuf_96);
   SetIndexBuffer(1, g_ibuf_100);
   SetIndexEmptyValue(0, 0.0);
   ArraySetAsSeries(g_ibuf_96, TRUE);
   ArraySetAsSeries(g_ibuf_100, TRUE);
   IndicatorShortName("ZigZag(" + ExtDepth + "," + ExtDeviation + "," + ExtBackstep + ")");
   return (0);
}
вот вам кружочки
 
alsu:

неееееее.

Допустим, у нас есть индикатор, который рисует линию. Пусть мы хотим нарисовать этим индикатором кружочек. Но хотим сделать его зеленым, если инликаторная линия зеленая, и красным, если она красная.

:)) ну так а в чем проблема? сравнивайте цвет
 
НЕ игнорьте просьбу!!! Пожалуйста.
 
Luteciy:
НЕ игнорьте просьбу!!! Пожалуйста.
как мне показалось ваша просьба не имеет отношения к этой ветке. Если вы хотите, чтоб вместо вас кто то написал код по указанному ТЗ, то обратитесь в https://www.mql5.com/ru/job
 
Спасибо
 

Люди добрые!

Понимаю, что ситуация то - идиотская, но деваться некуда. Вообщем не могу подружиться с функцией "OrderSelect".

Моя ТСочка предполагает только один открытый ордер. Прошу, киньте алгоритм закрытия ордера в следующем случае:

Если количество рыночных ордеров =1, он является ордером на покупку и выполняется условие 1(его я сам вставлю), то

закрываем по текущей цене.

а если он является ордером на продажу и выполняется условие 2 (его я тоже сам вставлю), то

закрываем по текущей цене.

Повторюсь программа может открыть только один ордер - искать среди тысячи ордеров не надо!

Спасибо.

 
найди скрипт или функцию для закрытия ордера(ов) и вставь свои условия
 
можно ведь создавать функции с необязательными параметрами. а можно сделать функцию которая будет возвращать сумму передаваемых ей значений, чтоб их число было неограниченым? или хотя бы ограниченым но большим)
 
//+------------------------------------------------------------------+
//|// Проверка смены тренда                                            |
//+------------------------------------------------------------------+
bool TrendChange(int Period_MAb,int Period_MAm,int shPer)
{
  int i;
bool TrendCh[i];
  for (int i=0; i<shPer; i++) {       
         double MAbSh[i]=iMA(NULL,0,Period_MAb,0,MODE_EMA,PRICE_WEIGHTED,i); // 
         double MAmSh[i]=iMA(NULL,0,Period_MAm,0,MODE_EMA,PRICE_WEIGHTED,i); 
   if ((MAbSh[0]>MAmSh[0] && MAbSh[i]>MAmSh[i]) ||(MAbSh[0]<MAmSh[0] && MAbSh[i]<MAmSh[i]))
      TrendCh[i]=true; 
   else TrendCh[i]=false;
//   if TrendCh[i-1]==TrendCh[i]
   return (true);
return (false);   
}
//+------------------------------------------------------------------+

Может кто сталкивался с проблемой флага смены тренда двух МА...? Дошел до этого и застрял...

Подскажите, плс! Идея в следующем - записать в массив [сдвиг бара] истину при выполнении МА1> МА2 . далее Если весь массив Истина - То флаг- истина.

 
100yan:

Может кто сталкивался с проблемой флага смены тренда двух МА...? Дошел до этого и застрял...

Подскажите, плс! Идея в следующем - записать в массив [сдвиг бара] истину при выполнении МА1> МА2 . далее Если весь массив Истина - То флаг- истина.


bool TrendChange(string smb, int tf, int Period_MAb, int Period_MAm, int nB)
{
  for (int i=0; i<nB; i++) 
  {
     double maB=iMA(smb, tf, Period_MAb, 0, MODE_EMA, PRICE_WEIGHTED, i);
     double maM=iMA(smb, tf, Period_MAm, 0, MODE_EMA, PRICE_WEIGHTED, i); 
     if (maA<maB) return(false);
  }
  return(true);   
}


// учитесь оформлять код

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