Erros, bugs, perguntas - página 1717

 

Estou bem.

 

Olá !

Estou a ter um problema estranho.

Desenho uma TrendLine normal entre os pontos de fecho das duas barras anteriores (em cada nova barra).

ObjectsDeleteAll(0," ",-1,-1);
ArrayInitialize(cclose,0);
ArrayInitialize(ttime,0);
CopyTime(Symbol(),0,1,2,ttime);
CopyClose(Symbol(),0,1,2,cclose);
price1=cclose[1];
time1=ttime[1];
price2=cclose[0];
time2=ttime[0];

Print("price1=",price1," time1=",time1," price2=",price2," time2=",time2);

//--- создадим трендовую линию по заданным координатам 
   if(!ObjectCreate(chart_ID,nname,OBJ_TREND,sub_window,time1,price1,time2,price2)) 
     { 
      Print(__FUNCTION__, 
            ": не удалось создать линию тренда! Код ошибки = ",GetLastError()); 
      return; 
     } 

Tudo está a funcionar bem em tempo real. Mas no modo de visualização no testador, o ponto esquerdo da linha está ligado à origem e não se move de todo. Qual é o problema?

Z.U. Em MT4 este problema não parece surgir.

 
fxsaber:

Roteiro

Resultado

Será um erro? Estava à espera de ver o uchar.

O tipo de operação mínima é int, pelo que todos os operandos de um tipo menor são implicitamente convertidos em tipo int.

Ajuda https://www.mql5.com/ru/docs/basis/types/casting

Os tipos de dados char, uchar, curto e curto são lançados incondicionalmente para o tipo int em operações.
Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Kravchenko:

Olá !

Estou a ter um problema estranho.

Desenho uma TrendLine normal entre os pontos de fecho das duas barras anteriores (em cada nova barra).

Tudo está a funcionar bem em tempo real. Mas no modo de visualização no testador, o ponto esquerdo da linha está ligado ao início da referência e não se move de todo. Qual é o problema que alguém pode saber?
Por favor, dê-me um exemplo mínimo de trabalho que possa ser compilado e executado. Também precisam de informação sobre o sistema operacional, construção e tipo de terminal (depois de reiniciar o terminal, tirar as três primeiras linhas do separador "Log").
 
Ilyas:

O tipo de operação mínima é int, pelo que todos os operandos de tipo inferior são implicitamente fundidos ao tipo int.

Referências

Obrigado. Parece correcto realizar operações BATERIAIS sem fantasmas em C++, como na MQL5?
 
fxsaber:
Obrigado. Parece-lhe correcto realizar operações BATERIAIS sem fantasmas em C++, tal como na MQL5?
Sim. Exactamente o mesmo. Também em C puro.
 
Vladislav Andruschenko:

Estou bem.

Thx, vou questionar o navegador.
 
Karputov Vladimir:
Por favor forneça um exemplo mínimo de trabalho que possa ser compilado e executado. Também precisam de informação sobre o sistema operativo, construção e tipo de terminal (depois de reiniciar o terminal, tirar as três primeiras linhas do separador "Log").

Há um problema com o exemplo. O próprio parafuso de concha leva vários ficheiros. Vou fazer uma mais fácil quando chegar a casa hoje à noite.

WinXP SP3. Construir 1434

LE 0 14:55:39.873 Terminal MetaTrader 5 build 1434 iniciado (MetaQuotes Software Corp.)
DI 0 14:55:39.889 Terminal Microsoft Windows XP (PC baseado em X86), IE 08.00, Intel Pentium Dual E2200 @ 2.20GHz, RAM: 1150 / 2037 Mb, HDD: 74562 / 152625 Mb, GMT+07:00

LJ 0 14:55:39.889 Terminal C:\Program Files\MetaTrader 5

Z.U. Em qualquer caso, okromo aquelas manipulações que eu dei acima, nada mais é feito. Quando uma nova barra é detectada, tudo é apagado e uma nova linha é traçada. Mas vou dar o exemplo completo para a compilação.

 
Slawa:
Sim. Exactamente o mesmo. Em puro C, também.
Obrigado. É pena que também tenham muletas históricas.
 
Alexey Kravchenko:

Há um problema com o exemplo. O próprio parafuso de concha leva vários ficheiros. Vou fazer uma mais fácil quando chegar a casa hoje à noite.

WinXP SP3. Construir 1434

LE 0 14:55:39.873 Terminal MetaTrader 5 build 1434 iniciado (MetaQuotes Software Corp.)
DI 0 14:55:39.889 Terminal Microsoft Windows XP (PC baseado em X86), IE 08.00, Intel Pentium Dual E2200 @ 2.20GHz, RAM: 1150 / 2037 Mb, HDD: 74562 / 152625 Mb, GMT+07:00

LJ 0 14:55:39.889 Terminal C:\Program Files\MetaTrader 5

Z.U. Em qualquer caso, okromo aquelas manipulações que eu dei acima, nada mais é feito. Quando uma nova barra é detectada, tudo é apagado e uma nova linha é traçada. Mas vou dar o exemplo completo para a compilação.

Quando tivermos um exemplo, combinaremos tudo num só posto: problema, exemplo, dados do sistema operativo e terminal.
Razão: