Особенности языка mql5, тонкости и приёмы работы - страница 230

 

begDayBar= iBarShift(_Symbol,_Period,begDayTime,false)  по документации  функция возвращает, в зависимости от exact параметра, -1 или ближайшее смещение бара.

а сегодня почему-то если begDayTime=2023.01.26 00:00:00 возвращает  -1хотя такие бары есть и они не последние

2023.02.15 15:19:23.254    !indDAY_WSOWROhLine (EURRUB_TOM,M15)    begDayTime=2023.01.26 00:00:00 endDayTime=2023.01.27 00:00:00 begDayBar=-2 endDayBar=-1 indATR=0 Q5days=0

как то неустойчиво работает может вернуть -1 а может правильный бар

Документация по MQL5: Доступ к таймсериям и индикаторам / iBarShift
Документация по MQL5: Доступ к таймсериям и индикаторам / iBarShift
  • www.mql5.com
iBarShift - Доступ к таймсериям и индикаторам - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
IuriiPrugov #:

сегодня почему-то если begDayTime=2023.01.26 00:00:00 возвращает  -1хотя такие бары есть и они не последние

Предоставьте все данные для воспроизведения.
 
fxsaber #:
Предоставьте все данные для воспроизведения.

begDayTime=iTime(Symbol(),Inp_period,bar);                                        begDayBar=iBarShift(_Symbol,_Period,begDayTime,false)-1;

Inp_period = M15

2023.02.19 13:02:42.517    !indDAY_WSOWROhLine (EURRUB_TOM,M15)    bar=14 begDayTime=2023.01.30 00:00:00 endDayTime=2023.01.31 00:00:00 begDayBar=-2 endDayBar=673 indATR=0 Q5days=0
если вставить

if (begDayBar<0) {         k=0; do {k++;} while(begDayTime<time[k] && !IsStopped());      begDayBar=k;  }

то все ОК(то есть исправляем iBarShift когда он не срабатывает)

 
IuriiPrugov #:

Это не данные.

 
fxsaber #:

Это не данные.

а какие еще данные?   Inp_period = D1  ищется за 15 дней всего в цикле!  нач бар= bar =14

begDayTime=iTime(Symbol(),Inp_period,bar);         _Symbol= EURRUB_TOM; _Period= M15;  после этого 

iBarShift(_Symbol,_Period,begDayTime,false) может выдать норм бар а может -1 то ли не успевает посчитать бары что ли

в общем нестабильно работает если переключить индикатор(просто нажать другой период на панели "период графика") например на  M30  может выдать норм бар а может -1

вот и на другом инструменте то же самое если не вставить if (begDayBar<0) {         k=0; do {k++;} while(begDayTime<time[k] && !IsStopped());      begDayBar=k;  } то вылезает ошибка

2023.02.20 07:58:01.698    !indDAY_WSOWROhLine (CNYRUB_TOM,M15)    array out of range in '!indDAY_WSOWROhLine.mq5' (202,148)

и так через раз-два да вы и сами можете попробовать

вставьте в самый простой-припростой индикатор этот кусок и попереключайте на другой период на панели "период графика"

 
IuriiPrugov #:

а какие еще данные?

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

хорошо

Я новичок в MQL4, а теперь и в MQL5.

Раньше я был программистом на Visual C/C++, поэтому знаю, КАК писать код.

Но я не знаком с библиотеками и прочим. Ну и с языком.

Мой первый вопрос - если я загружаю шаблон и он создает график в Oanda, как мне настроить код и все такое?

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

Теперь я не хочу изобретать колесо, так что, если я могу получить несколько фрагментов кода, который делает "стандартные" вещи, такие как.

-получить счет и соединения с сервером/базой данных

-настроить проект

-запустить, возможно, уже существующий код, а затем попрактиковаться в создании модов и "компиляции", если это так работает, или запустить сборку моего проекта.

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

Могу ли я использовать это для торговли криптовалютой?

Извините, если я не подготовился лучше - просто сделал этот комментарий после того, как немного осмотрелся - только сегодня присоединился.

Спасибо!

RayRay

RR

 
@rrb1002 #: новичок в MQL4, а теперь и в MQL5....

У вас есть Статьи, в которых более подробно описано, как делать те или иные вещи.

У вас есть CodeBase с примерами кода, написанного пользователями - от абсолютных новичков до высококвалифицированных разработчиков.

И у вас есть онлайн-версия Документации (также доступная в MetaEditor).

rrb1002 #: могу ли я использовать это для торговли криптовалютами?

Вы можете торговать всем, что предлагает ваш брокер, в том числе и криптовалютами.

 
Ок, я запутался. Я новичок. Я думал, что это язык MQL4. А новый язык MQL5? Будет ли MQL4 совместим с MQL5 и, надеюсь, просто расширит язык MQL4?
 
@rrb1002 #: Ок, я запутался. Я новичок. Я думал, что это язык MQL4. Это новый язык MQL5? Будет ли MQL4 совместим с MQL5 и, надеюсь, просто расширит язык MQL4?

MQL5 существует уже более десяти лет. Он не является "новым". Это зрелый язык.

MetaTrader 4 и MQL4 не развиваются уже несколько лет (думаю, лет 6-8). Лишь изредка выходят критические обновления.

Языки очень похожи, и многие функции в какой-то степени совместимы, но торговый функционал совершенно другой и совсем не совместим.

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