Укажите новый бар - страница 3

 

Привет Ален,

спасибо за ваш комментарий и улучшения.

Я должен вернуться к моей первой версии, в которой "bool NewBar" является глобальной переменной, переключаемой вызовом функции в OnTick().

Или я сделаю небольшой объект для этого. Возможно, это самый разумный вариант.


И - конечно же - "никогда не делай один и тот же расчет дважды".

Хельмут

 
datetime iTime[];
datetime recent;
datetime projection;
int OnInit()
  {
//---
  int pull=CopyTime(NULL,0,0,1,iTime);
  recent=iTime[0];
  projection=recent+PeriodSeconds();
//---
   return(INIT_SUCCEEDED);
  }

void OnTick()
  {
//---
  if(TimeCurrent()>=projection)
   {
   Print("New Bar "+TimeToString(projection,TIME_DATE|TIME_MINUTES));
   projection=projection+PeriodSeconds();
   }
  }
 

@ Doerk Hilger

Язык один и тот же, но у них есть небольшое подмножество функций, которые не являются общими<br / translate="no">

Боже мой... определенно нет!

Как MQ указала в описании продукта

MetaQuotes Language 5 основан на концепциях хорошо известного и популярного языка программированияС++. MQL5 также является высокоуровневым объектно-ориентированным языком программирования.

https://www.metatrader5.com/en/automated-trading/mql5

Помимо некоторых отличий в работе со структурами, указателями и адресами, самое главное заключается в следующем: MQL5 предоставляет все возможности объектно-ориентированного языка программирования, что позволяет использовать совершенно другую парадигму программирования. С этой точки зрения MQL5 явно принадлежит к другому классу и другому поколению языков, чем MQL4.

Еще одно преимущество - скорость. Не помню, где я это читал: MQL5 в сто раз быстрее в исполнении, чем MQL4.

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

Что приводит к проблеме MQ. С одной стороны, они должны предложить современную профессиональную среду разработки, чтобы получить или удержать рынок профессионалов, с другой стороны, они не могут позволить себе потерять всех частных и полупрофессиональных клиентов, которые заинтересованы в торговле, а не в науке программирования.




 
MQ сделал многое, чтобы вызвать путаницу на этом этапе.

Возможно, вы правы.

Давайте посмотрим, что мы можем сделать, чтобы внести больше ясности в этот вопрос.

Я думаю, было бы очень полезно, если бы люди публиковали свои вопросы по MQL4 в форуме MQL4,, а те, у кого есть вопросы по MQL5, должны писать в форуме MQL5.

Звучит очень просто... Что вы думаете?

На первых порах было бы удобно, если бы модератор переносил неправильные сообщения в нужный форум, оставляя подсказку "извините, ошибся форумом - смотрите...".

Willbur

 

@LorentzosRoussos

Все проще и проще ;-)

Меня беспокоит вопрос, синхронизируется ли TimeCurrent() с барами во всех случаях.

Я собираюсь провести несколько 2h тестов в понедельник.

Willbur



 
должно быть: 24 h
 
Willbur:

@LorentzosRoussos

Все проще и проще ;-)

Меня беспокоит вопрос, синхронизируется ли TimeCurrent() с барами во всех случаях.

Я собираюсь провести несколько 2h тестов в понедельник.

Willbur



Ален может меня поправить, но вы можете обнаружить пробелы в случаях, когда на временном горизонте бара нет тиков, поэтому бара не будет.
 
Willbur:

@ Doerk Hilger

О Боже... определенно нет!

Как указал MQ в описании продукта

Помимо некоторых различий в работе со структурами, указателями и адресами, самое главное заключается в следующем: MQL5 предоставляет все возможности объектно-ориентированного языка программирования, что позволяет использовать совершенно другую парадигму программирования.




Определенно да :) Но я знаю, что вы имеете в виду, я всегда думал, что программирую на MQL5, потому что я кодирую только объектно-ориентированно, но, как я узнал сейчас, его "Enhanced" MQL4 с момента создания 600, который просто не что иное, как MQL5, но, как было сказано, с небольшими различиями в подмножестве функций - и с момента создания MQL4 уже не является другим языком. На самом деле, Enhanced-MQL4 - это MQL5 для MetaTrader4. Именно это я и имел в виду, говоря о путанице. Для меня MQL5 всегда был ООП, а MQL4 - только спагетти сверху вниз. А я не люблю спагетти ;)

Edit: Откуда взято ваше утверждение выше и когда они его опубликовали? Потому что на самом деле это означает, что первое предположение было верным: это MQL5 .... путаница на самом высоком уровне ;)

 
Я люблю спагетти.
 
Doerk Hilger:

Определенно да :) Но я знаю, что вы имеете в виду, я всегда думал, что программирую MQL5, потому что я пишу только объектно-ориентированный код, но, как я узнал сейчас, это "Enhanced" MQL4 с момента создания 600, который просто не что иное, как MQL5, но, как было сказано, с небольшими отличиями в подмножестве функций - и с момента создания MQL4 больше не является другим языком. На самом деле Enhanced-MQL4 - это MQL5 для MetaTrader4. Именно это я и имел в виду, говоря о путанице. Для меня MQL5 всегда был ООП, а MQL4 - только спагетти сверху вниз. А я не люблю спагетти ;)

Edit: Откуда взято ваше утверждение выше и когда они его опубликовали? Потому что на самом деле это означает, что первое предположение было верным: это MQL5 .... путаница на самом высоком уровне ;)

Enhanced-MQL4 ?

Никогда о таком не слышал.

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