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

 

Не улыбается

 
Fox_RM:при последующих итерациях все нормально. Почему так?

одно из двух:

- Вы используете инициализацию переменных в секции init(), там не все функции правильно работают

- возможно Вы не инициализировали какую-то переменную, хорошим тоном программирования издавна считалось после описания переменных сделать инициализацию хоть каким-нибудь значением

ЗЫ: почему у Вас массив ArrHigh[i], а используется ArrHigh[0] ?

 

И еще один маленький вопросец.

Встретил такую запись:

 void IncArray( int & Array[] )

все вроде понятно, кроме того, что означает в данном случае знак & ?

 
Fox_RMчто означает в данном случае знак & ?
https://docs.mql4.com/ru/basis/variables/formal
 

IgorM:

одно из двух:

- Вы используете инициализацию переменных в секции init(), там не все функции правильно работают

- возможно Вы не инициализировали какую-то переменную, хорошим тоном программирования издавна считалось после описания переменных сделать инициализацию хоть каким-нибудь значением

ЗЫ: почему у Вас массив ArrHigh[i], а используется ArrHigh[0] ?

Вы совершенно правы, "используете инициализацию переменных в секции init(),..." - есть такой грешок)

"...хоть каким-нибудь значением" - присвоен 0.

"почему у Вас массив ArrHigh[i], а используется ArrHigh[0]"... Суть в следующем.

Мне нужно получить значение High[i] с которым я в последствии в коде буду работать.

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

ВСЕ значения High[i] массиву и в дальнейшем работать только с ArrHigh[0]. При следующем попадании в этот цикл все значения реинициализируются.

Может есть лучший вариант?

 
 
Fox_RM:
1.Вы совершенно правы, "используете инициализацию переменных в секции init(),..." - есть такой грешок)

2.Может есть лучший вариант?

1. инициализировать в секции init() можно и иногда только там нужно, я обратил внимание лишь на то что стандартные ф-ции не все будут правильно работать, доступ к таймсериям будет правильно работать

2. не пойму зачем Вы усложняете задачу? массив High[i] никуда не денется на кой его лишний раз копировать? если боитесь "потерять бар" когда откроется новый бар, то запомните время нужного бара - время точно никогда не изменится, можно использовать такую конструкцию High[iBarShift(NULL,0,mytime)]

ЗЫ: после фразы: "Если в цикле сделать присвоение переменной оно будет затерто при след. итерациях." подозреваю, что проблема в случайной инициализации какой - то переменной, попробуйте выводить в Print() все переменный в проблемном участке кода

 
IgorM:
Спасибо Игорь, буду пробовать так!
 

ребят помогите пожалуйста что-то мне никак не даётся этот язык программирования)уже неделю его учу по учебнику ))

что нужно прописать чтоб он открывал два ордера(разнонаправленных) с определённым стопом и профитом и потом если закрывал их то сразу другие такие же открывал фиксированным объёмом +проверка потока и открывал позиции только с 8 до 8

заранее благодарю)))

 
vkontakte0:

ребят помогите пожалуйста что-то мне никак не даётся этот язык программирования)уже неделю его учу по учебнику ))

что нужно прописать чтоб он открывал два ордера(разнонаправленных) с определённым стопом и профитом и потом если закрывал их то сразу другие такие же открывал фиксированным объёмом +проверка потока и открывал позиции только с 8 до 8

заранее благодарю)))

Я думаю, что ОДНОГО учебника явно не достаточно. В инете есть много различных сайтов где изложены азы MQL и азы "экспертописания" (ссылки если нужно в личку кину). Я к примеру эти сайты для себя

выкочал и переконвертил в chm формат. Все время под рукой. Что касается торговых роботов думаю, что Вы торопите события, нужно на индюках руку набить, а потом уже усложнять задачу ИМХО.

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