Добавление цвета к индикатору - страница 2

 

Я все еще не разобрался с буферами индикатора,

но следующий код делает то, что я хочу, отображает цвет текущего и прошлого бара Heiken Ashi.

Что он не делает, так это помещает его в отдельное окно и отображает ТОЛЬКО под текущим баром.

Возможно ли это? Или мне все же нужно разобраться с буфером индикатора?

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

int start()

{

ObjectsDeleteAll();

// очищаем график перед рисованием

// 5-минутный ток

double open.5.0 =iCustom(NULL,1, "Heiken Ashi",0,2,0); //Предыдущее открытие

double close.5.0 =iCustom(NULL,1, "Heiken Ashi",0,3,0); //Предыдущее закрытие


bool Up.5.0 = (close.5.0>open.5.0);

bool Down.5.0 = (close.5.0<open.5.0);

// 5 минут прошло

double open.5.1 =iCustom(NULL,1, "Heiken Ashi",0,2,1); //Предыдущее открытие

double close.5.1 =iCustom(NULL,1, "Heiken Ashi",0,3,1); //Предыдущее закрытие

bool Up.5.1 = (close.5.1>open.5.1);

bool Down.5.1 = (close.5.1<open.5.1);


ObjectCreate("square1",OBJ_RECTANGLE, 0, TimeCurrent(), Ask-0.001, 0, Bid-0.001);

if(Down.5.0 == 1) ObjectSet("square1",OBJPROP_COLOR,Red);


ObjectCreate("square1",OBJ_RECTANGLE, 0, TimeCurrent(), Ask-0.001, 0, Bid-0.001);

if(Down.5.0 == 0) ObjectSet("square1",OBJPROP_COLOR,White);


ObjectCreate("square2",OBJ_RECTANGLE, 0, TimeCurrent(), Ask-0.0015, 0, Bid-0.0015);

if(Down.5.1 == 1) ObjectSet("square2",OBJPROP_COLOR,Red);


ObjectCreate("square2",OBJ_RECTANGLE, 0, TimeCurrent(), Ask-0.0015, 0, Bid-0.0015);

if(Down.5.1 == 0) ObjectSet("square2",OBJPROP_COLOR,White);


return(0);

}

 

Пожалуйста, используйте это для размещения кода. . это облегчает чтение.

 
mrchuckw:

Я все еще не разобрался с буферами индикатора,

но следующий код делает то, что я хочу, отображает цвет текущего и прошлого бара Heiken Ashi.

Что он не делает, так это помещает его в отдельное окно и отображает ТОЛЬКО под текущим баром.

Возможно ли это? Или мне все еще нужно разобраться с буфером индикатора?

Я думаю, вам нужно будет нарисовать индикатор на отдельном окне, чтобы получить окно в первую очередь, чтобы вы могли добавить объекты в него. ...
 

что-то вроде этого

double adUpBuffer[],
       adDnBuffer[];
//---- indicator colors
color  cDirection[2]={LimeGreen,FireBrick};
string sDirection[2]={"up", "down"};
int    iSquare=110;
double dGap=10*Point
//+------------------------------------------------------------------+
//   Custom indicator initialization function                        |
//+------------------------------------------------------------------+
int init()
  {
//---- drawing settings
   IndicatorBuffers(2);
   for(int i=0;i<2;i++){
   SetIndexStyle(i,DRAW_ARROW,clrDirection[i]);
   SetIndexArrow(i,iSquare);
   SetIndexDrawBegin(i,12);
   SetIndexLabel(i,sDirection[i]);}
//---- 2 indicator buffers mapping
   SetIndexBuffer(0,adUpBuffer);
   SetIndexBuffer(1,adDnBuffer);
//---- initialization done
   return(0);
  }


      if(Up.5.0)
           adUpBuffer[i]=Low[i]-dGap;
      else adDnBuffer[i]=NULL;
      if(Dn.5.0)
           adDnBuffer[i]=High[i]+dGap;}
      else adDnBuffer[i]=NULL;} 
 

Я не очень хорошо разбираюсь в индикаторах... посмотрите на этот, может он даст вам то, что вам нужно...

Файлы:
ashi1.mq4  3 kb
 

хорошо... я работаю над этим... но вы предполагаете, что я знаю гораздо больше, чем я знаю.

Во вложении вся моя программа индикатора на данный момент. Как мне вставить в нее ваш код? Или мне создать совершенно новую программу?

Я пытался вставить его как мог, но не могу скомпилировать. Ему не нравится двойной dGap=10*Point даже после того, как я поставил после него символ ;.

И еще куча других ошибок компиляции. Наверное, я настолько туп, что не знаю, что теперь делать.

Файлы:
objects2.mq4  3 kb
 
mrchuckw:

хорошо... я работаю над этим... но вы предполагаете, что я знаю гораздо больше, чем я знаю.

Во вложении вся моя программа индикатора на данный момент. Как мне вставить в нее ваш код? Или мне создать совершенно новую программу?

Я пытался вставить его как мог, но не могу скомпилировать. Ему не нравится двойной dGap=10*Point даже после того, как я поставил после него символ ;.

И еще куча других ошибок компиляции. Наверное, я настолько туп, что не знаю, что теперь делать.

Просто скачайте мой код, скопируйте его в структуру каталога MT4 в Indicators. остановите и перезапустите MT4, затем добавьте индикатор на график. ...если вы используете буферы индикатора, вы не используете объекты.
 

где я могу скачать ваш код?

Видите, какой я тупой?

 
mrchuckw:

где я могу скачать ваш код?

Видите, какой я тупой?

Он прикреплен к моему посту, парой постов выше... ashi1.mq4
 

это почти идеальное устройство. Я играл с ним и получил массу удовольствия.

Я думаю, что, возможно, убил его, но теперь он помещает квадраты в отдельное окно.

Эта часть работает идеально. Теперь... Я не могу понять, как сделать так, чтобы все квадраты располагались в идеальную линию.

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

Новая линия будет более крупным временным интервалом. А третья линия будет еще одним большим таймфреймом.

Вот как выглядит ваша программа после того, как я с ней поиграл. Не могли бы вы подсказать мне, как поставить квадрат в прямую линию. ?

Спасибо

ps... Я играю с этим некоторое время, и я не могу понять, как получить вторую и третью линию, и сделать их прямыми.

Если бы вы могли помочь мне с этим, я был бы признателен. Второй файл - это моя попытка сделать вторую линию.

Файлы:
ashi1_1.mq4  3 kb
ashi1-a.mq4  3 kb
Причина обращения: