Для тех, кто пишет индикаторы - страница 3

 
Alexey Viktorov:

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

У кодобазы и маркета не пересекающиеся аудитории.

 
Andrey Khatimlianskii:

У кодобазы и маркета не пересекающиеся аудитории.

Я-бы сказал почти не пересекающиеся.

А вообще, надо подумать. Может и стоит разместить его в CodeBase.

 
Здравствуйте, иногда при запуске индикатора функция CopyHigh() и подобные копируют 0 баров. При следующем тике или изменении таймфрейма это лечится. Что нужно делать, чтобы функция сразу работала? 
 
Sergey Kozlov:
Здравствуйте, иногда при запуске индикатора функция CopyHigh() и подобные копируют 0 баров. При следующем тике или изменении таймфрейма это лечится. Что нужно делать, чтобы функция сразу работала? 

Обернуть её в цикл do while

Документация по MQL5: Основы языка / Операторы / Оператор цикла do while
Документация по MQL5: Основы языка / Операторы / Оператор цикла do while
  • www.mql5.com
Сначала выполняется оператор, затем вычисляется выражение. Если оно истинно, то оператор выполняется снова и т.д. Если выражение становится ложным, цикл заканчивается. Если в цикле...
 
Alexey Viktorov:

Обернуть её в цикл do while

насколько помню - индикаторы работают в общем потоке, и может всё подвиснуть...

 
Taras Slobodyanik:

насколько помню - индикаторы работают в общем потоке, и может всё подвиснуть...

Может, если сделать так, чтобы подвисло. Не помню как я обходил эту проблему, а искать лениво. Можно даже имитировать функцию Sleep пустым циклом for что приведёт к подкачке исторических данных.

 
Alexey Viktorov:

Обернуть её в цикл do while 

Пробовал, получил бесконечный цикл

 
Sergey Kozlov:

Пробовал, получил бесконечный цикл

Нужно пропускать этот момент, и проверять в следующем онтике или онтаймере.

...в бесконечном цикле всё будет висеть, потому как поток один и все ждут этот индикатор

 
Aliaksandr Hryshyn:

Почему не все делают индикаторы, чтобы было удобное их использование в советниках, индикаторах, скриптах?

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

 
Aleksey Ivanov:

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

А вы попробуйте купить индикатор в маркете, встроить его в свой советник (без открытого кода - т.е., посредством iCustom()), а потом продать этот советник опять через маркет.

Индикатор защищён, и может работать только на машине купившего. Ваш советник будет работать с вами купленным индикатором только у вас.