Ошибки, баги, вопросы - страница 3132

 
Mihail Matkovskij #:

а что по вашему бывает логика без кода?

Постановка / локализация задачи - алгоритм решения или логика решения - код. К сожалению здесь часто в режиме один за всех это не понимается. Кодирование начинается до четкой формулировки задачи, и не даже алгоритма решения. Конечно логика, что любой запрос всегда исполняется не верна не только в тестере, но и в реале. Поэтому нужны нужные действия что бы избежать токсичных последствий мерцающих событий))) С наступившим!!!!

 
Valeriy Yastremskiy #:

С наступившим!!!!

Спасибо. Вас также!

По сути вопроса, выше я написал, что нужно сделать. И тогда логика будет работать.

 
Mihail Matkovskij #:

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

   if(SymbolIsSynchronized(euSY01)==true && SymbolInfoDouble(euSY01,SYMBOL_BID,euSY01b)==true && SymbolInfoDouble(euSY01,SYMBOL_ASK,euSY01a)==true && euSY01b>0 && euSY01a>0)

Если делать так, а в коде 7 таких строк для семи пар, то в обзоре рынка будут котировки только по одной валюте.


 
Yury Lemeshev #:

Будьте последовательны. Если проверяете

SymbolIsSynchronized(euSY01)==true

то проверяйте и

(euSY01b>0)==true

:)

 
Yury Lemeshev #:

Если делать так, а в коде 7 таких строк для семи пар, то в обзоре рынка будут котировки только по одной валюте.


Дорогая функция, я бы через равенство предыдущему значению обходил.
 
JRandomTrader #:

Будьте последовательны. Если проверяете

то проверяйте и

:)

(euSY01b>0)==true

Так правильнее чем просто 

euSY01b>0
 
2022.01.02 11:03:22.330 2019.01.02 07:56:40   EURJPY false
2022.01.02 11:03:22.330 2019.01.02 07:56:40   EURCAD false
2022.01.02 11:03:22.330 2019.01.02 07:56:40   EURCHF false
2022.01.02 11:03:22.330 2019.01.02 07:56:40   EURGBP false
2022.01.02 11:03:22.330 2019.01.02 07:56:40   EURAUD false
2022.01.02 11:03:22.330 2019.01.02 07:56:40   EURNZD false
2022.01.02 11:03:22.330 2019.01.02 07:56:40   EURUSD true
2022.01.02 11:03:22.330 2019.01.02 07:56:42   EURJPY false
2022.01.02 11:03:22.330 2019.01.02 07:56:42   EURCAD false
2022.01.02 11:03:22.330 2019.01.02 07:56:42   EURCHF false
2022.01.02 11:03:22.330 2019.01.02 07:56:42   EURGBP false
2022.01.02 11:03:22.330 2019.01.02 07:56:42   EURAUD false
2022.01.02 11:03:22.330 2019.01.02 07:56:42   EURNZD false
2022.01.02 11:03:22.330 2019.01.02 07:56:42   EURUSD true


Если проверять синхронизацию, она работает только на одну валюту. А мне нужно в моменте анализировать 7 валют.

 
Yury Lemeshev #:
Если проверять синхронизацию, она работает только на одну валюту. А мне нужно в моменте анализировать 7 валют.

Нужно сделать в ОнИнит() 

// Потрогаем символ, иначе в тестере не грузит историю
 for(int i=0;i<CountSymbol;i++) {
   iClose(SymbTrade[i],PERIOD_CURRENT,1);
 }
 
Yury Lemeshev #:
2022.01.02 11:03:22.330 2019.01.02 07:56:40   EURJPY false
2022.01.02 11:03:22.330 2019.01.02 07:56:40   EURCAD false
2022.01.02 11:03:22.330 2019.01.02 07:56:40   EURCHF false
2022.01.02 11:03:22.330 2019.01.02 07:56:40   EURGBP false
2022.01.02 11:03:22.330 2019.01.02 07:56:40   EURAUD false
2022.01.02 11:03:22.330 2019.01.02 07:56:40   EURNZD false
2022.01.02 11:03:22.330 2019.01.02 07:56:40   EURUSD true
2022.01.02 11:03:22.330 2019.01.02 07:56:42   EURJPY false
2022.01.02 11:03:22.330 2019.01.02 07:56:42   EURCAD false
2022.01.02 11:03:22.330 2019.01.02 07:56:42   EURCHF false
2022.01.02 11:03:22.330 2019.01.02 07:56:42   EURGBP false
2022.01.02 11:03:22.330 2019.01.02 07:56:42   EURAUD false
2022.01.02 11:03:22.330 2019.01.02 07:56:42   EURNZD false
2022.01.02 11:03:22.330 2019.01.02 07:56:42   EURUSD true


Если проверять синхронизацию, она работает только на одну валюту. А мне нужно в моменте анализировать 7 валют.

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

Также, для ask и bid можно использовать SymbolInfoTick()

 

это всё равно что true == true, результат: true. а false == true, результат: false :)

именно этот результат и получает if

if (true) { // управление передается коду в скобках
  ...
}

if (false) { // управление не передаётся коду в скобках
  ...
}

или 

// в if не 0 - true
if (1) {
  ...
}

if (-1) {
  ...
}

// в if 0 - false
if (0) {
  ...
}