Erros, bugs, perguntas - página 1330

 

Porquê, ao compilar o indicador, todas as definições neste indicador que estão nos gráficos são repostas por defeito?

 
iZer0:

Boa tarde, pode, por favor, guiar o nouveau. Utilizo o MT5 não para trocas, mas como uma fonte de alguns dados "aleatórios" (e nem sequer pergunto porquê - não o meu capricho). É possível obter dados históricos, medidos em carraças (preciso de licitar e pedir dados várias vezes por segundo). O que devo fazer? Sei que ao testar um indicador MT5 bombeia dados - como utilizá-lo ?

Tenho a tarefa de escrever um indicador personalizado que envia os tiquetaques actuais para um determinado serviço (sem problemas). Não encontrei em lado nenhum como obter dados históricos em carraças, mas não no M1.

No testador, é possível obter carraças intra-bar M1. São simulados pelo terminal. Quão aleatório é isso? Não sei. A falar de MT4. Deve ser o mesmo no MT5.
OnTick()
{Print("Bid=",Bid);}

No separador "Log" do testador de estratégia, ver o valor do preço e a hora de chegada.

Arquivos anexados:
2107.PNG  7 kb
 

MT4/845, Windows 7/64bit. Fez um guião:

#property strict
double value=1/2;
//---
void OnStart()
  {
   Print("value = ",DoubleToString(value));
  }

Imprime-se nos registos:

2015.07.22 10:13:26.134 Teste EURUSD,H1: valor = 0.00000000

e deve ser de 0,50000000.

 
Deverá escrever 1.0/2 ou 1/2.0 ou 1.0/2.0, então será como esperado.
 
Аноним:
Deve escrever 1.0/2 ou 1/2.0 ou 1.0/2.0, então será o que se espera.
Sim, os seus conselhos ajudaram. Embora pareça que mesmo sem .0 deveria funcionar.
 

Porque é que as methaquotes desactivaram a função de carregar as citações a partir do servidor do revendedor? Agora só é possível carregar a partir de metaquotas.

Mas mesmo isto não pode ser feito, porque a mensagem diz que não há citações.

É claro que está ausente, porque é que as metaquotas têm citações com sufixos?

Por exemplo, os sufixos em nomes de pares de moedas são utilizados por fortfs, roboforex, eksness, etc.

 
Maxim Khrolenko:
Sim, os seus conselhos ajudaram. Embora tivesse parecido funcionar sem .0.
Conversão implícita do dobro para int.
 

Resultado diferente: este é um resultado questionável

#import "Test.ex5"
        void f( uint, uint );
#import
        void f( uint, int  )   { Print( __FUNCSIG__ ); }
void OnStart()
{
        uint a = 0;
        f( 1, a ); //вызывается f(uint,int) - что само по себе сомнительно
}
e isto é normal
        void f( uint, uint )    { Print( __FUNCSIG__ ); }
        void f( uint, int  )    { Print( __FUNCSIG__ ); }
void OnStart()
{
        uint a = 0;
        f( 1, a ); //вызывается f(uint,uint) - нормально
  
}
que diferença é que isso faz?
 
A100:
mas caso contrário não faz mal, que diferença faz?
Se bem entendi, o compilador deve colapsar e não compilar de todo. Porque não há uint uint, não há int, e int, uint uint são passados para a função, incerteza, no entanto.
 
Аноним:
Se bem entendi, o compilador deve colapsar e não compilar de todo. Porque não há uint uint, não há int, e int, uint uint é passado para a função, incerteza, contudo.

https://www.mql5.com/ru/docs/basis/function/functionoverload

Citação: "A função encontrada deve ser a melhor escolha entre as outras escolhas para pelo menos um argumento, e, ao mesmo tempo, para os outros argumentos, deve caber tanto como os outros".

Então qual é a melhor escolha para chamar f(int,uint) aqui?

Dica: o resto do argumento neste caso é o primeiro

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