Помощь в кодировании - страница 409

 

Здравствуйте. Может ли кто-нибудь закодировать этот индикатор так, чтобы я мог прикрепить его во вложенном окне....? Большое спасибо.

Файлы:
5days.mq4  4 kb
 

Здравствуйте,

У меня есть несколько кнопок на моем графике и я создал прямоугольник за этими кнопками.

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

Как я могу это сделать?

OBJPROP_SELECTABLE = false

или OBJPROP_BACK = true,

не помогает.

 

Младен, почему вы все индикаторы заявляете :

extern int Price = PRICE_CLOSE;[/PHP]

should be:

[PHP]extern int Price = PRICE_OPEN;

потому что свеча дает сигнал открытия, начала. Я прав или нет?

 
popej30:
Младен, почему вы все индикаторы объявляете :
extern int Price = PRICE_CLOSE;[/PHP]

should be:

[PHP]extern int Price = PRICE_OPEN;
потому что свеча дает сигнал open, начало. Я прав или нет?
В metatrader у вас есть выбор из 7 цен:

открыть

закрыть

высокий

низкий

медианный - (высокий+низкий)/2

типичный - (высокий+низкий+закрытие)/3

взвешенный - (high+low+close+close)/4

Close - это обычное закрытие для цены (то есть цена, которую вы обычно видите на графике, так как bid иногда отличается от close), Использование open price в индикаторе устанавливает значение, используя цену открытия бара, а затем игнорирует любые текущие (открытые бары) изменения.

PS: опция существует для того, чтобы вы могли использовать любую цену, какую пожелаете. Значение по умолчанию с использованием цены закрытия для расчета является общепринятым значением по умолчанию почти во всех индикаторах (не только в metatrader). Если вам не нравится цена закрытия, используйте цену открытия, но нет правила, которое бы говорило, что использование цены открытия для текущего бара лучше (совсем наоборот - по причинам, описанным выше).

 
popej30:
Младен, почему вы все индикаторы объявляете :
extern int Price = PRICE_CLOSE;[/PHP]

should be:

[PHP]extern int Price = PRICE_OPEN;
потому что свеча дает сигнал на открытие, начало. Я прав или нет?

Большинство обычных индикаторов используют цену закрытия, за исключением CCI, который использует типичную цену. Я считаю, что это потому, что она лучше показывает текущую цену, чем цена открытия. Если вы установите индикатор на цену открытия, он не будет пересчитывать текущую свечу, как это происходит с закрытием, но он также не будет показывать, где находится текущая цена. Также если вы используете индикатор по цене закрытия и входите на следующей свече, когда он подает сигнал, это совершенно то же самое, что и если вы используете цену открытия и входите на текущей свече...

Edit : Я только что увидел, что Младен ответил, я думал, что это выходные и никто не был здесь, так что я хотел помочь . Я оставляю свой ответ в любом случае. Regards.

 

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

 
popej30:
Я думаю, что если индикатор следует за ценой, то индикатор всегда будет перерисовываться.

Вы путаете перерисовку с расчетом изменения цены текущего открытого бара.

Еще раз: перерисовка/пересчет происходит при смене закрытых баров (а перерисовка - это ошибка кодирования). Ничего общего с изменением цены открытого бара для отражения текущего состояния цены.

 

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

Но у меня есть другой вопрос:

Как я могу нарисовать горизонтальную линию с определенной длиной? Я пробовал с помощью OBJ_TREND, но одна сторона линии бесконечна или нулевая. Поэтому я не могу нарисовать горизонтальную линию от Bid-10 до Bid+10.

Есть ли у вас решение?

 

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

for(int cnt=0;cnt<OrdersTotal();cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); как изменить это предложение?

большое спасибо.

 
leowang:
Я начинающий программист. как выбрать только символ текущего окна с помощью функции orderelect?

for(int cnt=0;cnt<OrdersTotal();cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); Как изменить это предложение?

спасибо большое.

Вы не можете модифицировать выборку заказов. Но вы можете отфильтровать обработанные ордера. Добавьте одно "if" сразу после OrderSelect() и вся обработка должна быть после следующей строки:

if (OrderSymbol()!=Symbol()) continue;

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