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

 

Я хотел бы печатать красный квадрат (маленький) на графике, когда следующий более высокий таймфрейм идет вниз. И белый квадрат, если он идет вверх.

Как мне это сделать? Как только я разберусь с этим, я смогу добавить другие таймфреймы и разные бары.

Мой код на данный момент таков:

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

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

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

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

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

Комментарий ("\n 30 min current up or down " + Up.30.0 +" "+ Down.30.0);

Но вместо того, чтобы комментарий имел "0" или "1", я хочу, чтобы он показывал красный или белый квадрат или точку.


Любая помощь будет оценена по достоинству... Я ничего не могу найти в Интернете или на этом сайте.

 
mrchuckw:

Я хотел бы печатать красный квадрат (маленький) на графике, когда следующий более высокий таймфрейм идет вниз. И белый квадрат, если он идет вверх.

Как мне это сделать? Как только я разберусь с этим, я смогу добавить другие таймфреймы и разные бары.

Мой код на данный момент таков:

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

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

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

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

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

Комментарий ("\n 30 min current up or down " + Up.30.0 +" "+ Down.30.0);

Но вместо того, чтобы комментарий имел "0" или "1", я хочу, чтобы он показывал красный или белый квадрат или точку.


Любая помощь будет оценена по достоинству... Я не могу ничего найти ни на этом сайте, ни в Интернете.

Привет, mrchuckw,

Поищите на этом сайте и других форумах FX советников с кодом ObjectCreate...

Вы используете ObjectCreate для размещения цветных меток там, где вы хотите их видеть.

Надеюсь, это поможет,

Роберт


 
Цветовой индикатор использует два буфера. Установите один в значение, а другой в пустое_значение. Посмотрите на код некоторых индикаторов в кодовой базе
 
Спасибо, Роберт!
 

Я использую следующий код... почему он не помещает белый прямоугольник на мой график?

ObjectCreate("square",OBJ_RECTANGLE,0,0,0);

ObjectSet("square",OBJPROP_XDISTANCE,193);

ObjectSet("квадрат",OBJPROP_YDISTANCE,48);

ObjectSet("square",OBJPROP_COLOR,White);

 

mrchuckw:

Я использую следующий код... почему он не помещает белый прямоугольник на мой график?

ObjectCreate("square",OBJ_RECTANGLE,0,0,0);

ObjectSet("square",OBJPROP_XDISTANCE,193);

ObjectSet("квадрат",OBJPROP_YDISTANCE,48);

ObjectSet("square",OBJPROP_COLOR,White);

OBJ_RECTANGLE 16 Прямоугольник. Использует 2 координаты. Координата - это время и цена ... так ...

ObjectCreate("square",OBJ_RECTANGLE, 0, datetime time1, double price1, datetime time2, double price2);

ObjectSet("square",OBJPROP_COLOR,White);



Вам нужно заполнить значения для ... datetime time1, double price1, datetime time2, double price2

Или, может быть, вы хотите использовать Label, OBJ_LABEL, а затем использовать wingding для квадрата? https://docs.mql4.com/constants/wingdings

 

Хорошо... Я думаю. Я не хочу, чтобы он был ориентирован на дату/время... Я не думаю.

Вот что я хочу. В нижней части графика, под текущим баром, я хочу разместить квадрат (wingding 110 ?), который я могу заполнить красным цветом, если следующий таймфрейм вверх идет вниз, или заполнить красным цветом, если следующий таймфрейм вниз идет вниз.

красным, если следующий таймфрейм вверх идет вниз, или залить белым, если он идет вверх.

Затем, когда этот бар закрывается, и начинается следующий бар, я хочу, чтобы квадрат переместился под прежний бар, и новый квадрат под новый бар...

Это имеет смысл?

Итак, как будет выглядеть строка ObjectCreate()? Как мне разместить ее на графике в нужном месте, или мне нужно использовать отдельное окно?

Спасибо за помощь.

 
mrchuckw:

Хорошо... Я думаю. Я не хочу, чтобы он был ориентирован на дату/время... Я не думаю.

Вот что я хочу. В нижней части графика, под текущим баром, я хочу разместить квадрат (wingding 110 ?), который я могу заполнить красным цветом, если следующий таймфрейм идет вниз, или заполнить красным цветом, если следующий таймфрейм идет вниз.

красным, если следующий таймфрейм вверх идет вниз, или залить белым, если он идет вверх.

Затем, когда этот бар закрывается, и начинается следующий бар, я хочу, чтобы квадрат переместился под прежний бар, и новый квадрат под новый бар...

Это имеет смысл?

Итак, как будет выглядеть строка ObjectCreate()? Как мне разместить ее на графике в нужном месте, или нужно использовать отдельное окно?

Спасибо за помощь.

Хорошо, значит, вы хотите квадрат под каждым баром, либо белый, либо красный, в зависимости от индикатора... не используйте объекты, используйте буферы индикаторов. ( https://docs.mql4.com/customind )

Создайте 2 индикаторных буфера, один для красных квадратов, другой для белых, установите в буферах пустые значения ( SetIndexEmptyValue( int index, double value) ), чтобы получить квадрат под баром, используйте нижнее значение бара - 10 пунктов ... это в основном то, к чему стремился WHRoeder.

 
Но если я установлю его на 10 пунктов ниже цены, не будет ли он прыгать вокруг? может мне стоит поместить его в отдельную винду? Я хочу, чтобы квадрат находился в одном и том же месте на графике, независимо от того, что делают бары.
 
mrchuckw:
Но если я установлю его на 10 пунктов ниже цены, не будет ли он прыгать вокруг? Может быть, я должен поместить его в отдельное окно?
Вы можете поместить его в отдельное окно, если хотите ... то, что я сказал, было 10 пипсов ниже Low бара ... не ниже текущей цены. Большинство кода, который вам нужен, является общим, если вы делаете это в отдельном окне, то легко изменить его на позицию под баром после этого ....
 
Хорошо... дайте мне поиграть с этим некоторое время. Я ценю любую помощь!