Erros, bugs, perguntas - página 2124

 
Relevante

Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial

Insectos, insectos, perguntas

fxsaber, 2018.02.07 15:48

Para resumir a questão. Qual é o objectivo de CAccountInfo, COrderInfo, CSymbolInfo, CPositionInfo e CTerminalInfo?

Veja-se o seu código fonte. Qual é o interesse de os utilizar?


CDealInfo e CHistoryOrderInfo - estes também são escritos com erros lógicos. Qual é a finalidade da sua utilização?


Bem, temos o CTrade. Tudo é claro com ele, onde pode ser útil, etc. Mas e as Info-classes?

Fórum sobre comércio, sistemas de comércio automatizados e testes estratégicos

Erros, bugs, perguntas

fxsaber, 2018.02.07 15:53

Quase todos os métodos nas Info-classes devem ser estáticos. Qual é a razão por que não o é?
 
Isso é um truque fixe!
2018.02.08 10:59:53.209 Network '8491779': no connection to MetaQuotes-Demo
2018.02.08 10:59:53.329 Network '8491779': authorization on MetaQuotes-Demo failed (Invalid account)
2018.02.08 10:59:53.904 Network current demo account '8491779' was deleted on trade server, new demo will be allocated
2018.02.08 10:59:53.904 Network demo account '8782677' was allocated on MetaQuotes-Demo


Só eu tinha uma conta Netting e criei a Hedge. Poderia recriar a conta com as mesmas configurações?

 
Os comentários não relevantes para este tópico foram movidos para "Fora de tópico".
 
fxsaber:
Isso é um truque fixe!


Só eu tinha uma conta Netting e criei a Hedge. Poderia recriar a conta com as mesmas configurações?

Eles não verão aqui a sua mensagem - tem de escrever para o Service Desk. Não sei se pode ser restaurado

 
Rashid Umarov:

A sua mensagem não será vista aqui - tem de escrever para o Service Desk. Não sei se pode ser restaurado

Tenho um número obsceno de aplicações no RS. Criou outro, mas não é crítico.

 

O erro 4109 não desaparece com o tempo

Código de ensaio de peritos

//Test1.mq5
void OnInit() { if ( f() != ERR_SUCCESS ) EventSetTimer( 10 ); }
void OnTimer()
{
        int   last_error = f();
        if (  last_error == ERR_SUCCESS ) EventKillTimer();
static int count = 1;
        Print( "Повтор (", count++, ")… результат: ", last_error );
}
int f( long value=-1 ) { return ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0,value) ? ERR_SUCCESS : GetLastError(); }

Ao lançar o terminal, o seguinte resultado é devolvido em alguns casos (*): O erro 4109 não desaparece de todo

2018.02.09 00:25:24.200 Teste1 (ETHUSD,W1) Repito (1)... resultado: 0
2018.02.09 00:25:24.204 Teste1 (EURUSD,D1) Repito (1)... resultado: 0
2018.02.09 00:25:24.204 Teste1 (BTCUSD,M15) Repito (1)... resultado: 4109
2018.02.09 00:25:24.204 Teste1 (BTCUSD,H1) Repito (1)... resultado: 4109
2018.02.09 00:25:24.205 Teste1 (ZECUSD,D1) Repito (1)... resultado: 0
2018.02.09 00:25:24.205 Teste1 (BTCUSD,M15) Repito (1)... resultado: 0
2018.02.09 00:25:24.343 Teste1 (BTCUSD,D1) Repito (1)... resultado: 4109
2018.02.09 00:25:24.439 Teste1 (BTCUSD,W1) Repito (1)... resultado: 4109
2018.02.09 00:25:34.195 Teste1 (BTCUSD,H1) Repito (2)... resultado: 4109
2018.02.09 00:25:34.195 Teste1 (BTCUSD,M15) Repito (2)... resultado: 4109
2018.02.09 00:25:34.348 Teste1 (BTCUSD,D1) Repito (2)... resultado: 4109
2018.02.09 00:25:34.444 Teste1 (BTCUSD,W1) Repito (2)... resultado: 4109
2018.02.09 00:25:44.203 Teste1 (BTCUSD,M15) Repito (3)... resultado: 4109
2018.02.09 00:25:44.204 Teste1 (BTCUSD,H1) Repito (3)... resultado: 4109
2018.02.09 00:25:44.367 Teste1 (BTCUSD,D1) Repito (3)... resultado: 4109
2018.02.09 00:25:44.452 Teste1 (BTCUSD,W1) Repito (3)... resultado: 4109
2018.02.09 00:25:54.214 Teste1 (BTCUSD,M15) Repito (4)... resultado: 4109
2018.02.09 00:25:54.214 Teste1 (BTCUSD,H1) Repito (4)... resultado: 4109
2018.02.09 00:25:54.381 Teste1 (BTCUSD,D1) Repito (4)... resultado: 4109
2018.02.09 00:25:54.467 Teste1 (BTCUSD,W1) Repito (4)... resultado: 4109
2018.02.09 00:26:04.221 Teste1 (BTCUSD,M15) Repito (5)... resultado: 4109
2018.02.09 00:26:04.221 Teste1 (BTCUSD,H1) Repito (5)... resultado: 4109
2018.02.09 00:26:04.395 Teste1 (BTCUSD,D1) Repito (5)... resultado: 4109
2018.02.09 00:26:04.459 Teste1 (BTCUSD,W1) Repito (5)... resultado: 4109
2018.02.09 00:26:14.247 Teste1 (BTCUSD,M15) Repito (6)... resultado: 4109
2018.02.09 00:26:14.247 Teste1 (BTCUSD,H1) Repito (6)... resultado: 4109
2018.02.09 00:26:14.402 Teste1 (BTCUSD,D1) Repito (6)... resultado: 4109
2018.02.09 00:26:14.464 Teste1 (BTCUSD,W1) Repito (6)... resultado: 4109
2018.02.09 00:26:24.265 Teste1 (BTCUSD,M15) Repito (7)... resultado: 4109
2018.02.09 00:26:24.267 Teste1 (BTCUSD,H1) Repito (7)... resultado: 4109
2018.02.09 00:26:24.399 Teste1 (BTCUSD,D1) Repito (7)... resultado: 4109
2018.02.09 00:26:24.468 Teste1 (BTCUSD,W1) Repito (7)... resultado: 4109 etc. ao infinito

Mas em muitos casos, o resultado é bastante bom (**): o erro desaparece na 2ª iteração

2018.02.09 00:29:45.470 Teste1 (BTCUSD,D1) Repito (1)... resultado: 0
2018.02.09 00:30:14.215 Teste1 (BTCUSD,M15) Repito (1)... resultado: 4109
2018.02.09 00:30:14.215 Teste1 (BTCUSD,D1) Repito (1)... resultado: 0
2018.02.09 00:30:24.209 Teste1 (BTCUSD,M15) Repito (2)... resultado: 0

Mas desapareceu apenas num simples exemplo de teste, numa verdadeira EA mesmo que se faça um atraso com EventSetTimer( 100 ) não irá alterar nada. O erro pode desaparecer se seleccionar o separador correspondente do gráfico problemático e clicar nele (porque afecta???), por exemplo, se seleccionar BTCUSD,W1 e clicar nele dará um resultado bem sucedido na próxima iteração:

Teste1 (BTCUSD,W1) Repita (8)... resultado: 0

O perfil do teste tinha este aspecto:


Máximo de barras na janela 100000.

Para obter um resultado (*), normalmente é suficiente adicionar um par de novos gráficos com o Expert Advisor anexado a um perfil e reiniciar o terminal

Запуск платформы - Для продвинутых пользователей - MetaTrader 5
Запуск платформы - Для продвинутых пользователей - MetaTrader 5
  • www.metatrader5.com
По завершении установки в меню "Пуск" создается группа программ торговой платформы, а на рабочем столе дополнительно помещается ярлык программы. Используйте их для запуска. Нельзя запускать одновременно две копии платформы из одной директории. Чтобы одновременно запустить несколько копий, установите соответствующее количество программ в разные...
 

Olá a todos!

Alguém se perguntou: como obter uma lista de variáveis externas dentro da EA? de modo a não as voltar a enumerar na matriz? ou seja, quando se configura um gráfico, a EA lê-se a si própria e olha para as suas configurações externas.

apenas através de um modelo?

 

Construir 1755 MT5

Ao utilizar a fonte ROBOTO e o tamanho 9 - metade do texto não é desenhado.


no tamanho 8 - sem qualquer problema.


Arial é menos, mas a fonte é horrível.

 

Transacções duplicadas quando se utiliza uma UPU de terceiros

Problema da sessão. Quando o anterior não foi fechado e um novo abre. o antigo terminal funciona e o novo terminal funciona. obtém-se um duplicado. :-)

@fxsaber algures onde escreveu sobre como seguir isto. não consegue encontrar

 
Vladislav Andruschenko:

Olá a todos!

Alguém se perguntou: como obter uma lista de variáveis externas dentro da EA? de modo a não as enumerar repetidamente na matriz? ou seja, quando se instala num gráfico, a EA lê-se a si própria e olha para as suas configurações externas.

Apenas através de um modelo?

Sim, utilizando o modelo.

#include <fxsaber\Expert.mqh> // https://www.mql5.com/ru/code/19003

input string Input1 = "Hello World!";
input int Input2 = 123;

string GetExpertData( const ulong Chart = 0 ) 
{ 
  string Str = NULL; 

  MqlParam Parameters[]; 
  string Names[]; 

  if (EXPERT::Parameters(Chart, Parameters, Names)) 
  { 
    Str += "\n" + ChartSymbol(Chart) + " " + EnumToString(ChartPeriod(Chart)) + " " + Parameters[0].string_value + "\n"; 

    const int Amount = ArraySize(Names); 

    for (int i = 0; i < Amount; i++) 
      Str += (string)i + ": "+ Names[i] + " = " + Parameters[i + 1].string_value + "\n"; 
  } 

  return(Str); 
}

void OnInit()
{
  Print(GetExpertData());
}


O resultado é

0: Input1 = Hello World!
1: Input2 = 123


ou como se segue

#include <fxsaber\Expert.mqh> // https://www.mql5.com/ru/code/19003

input string Input1 = "Hello World!";
input int Input2 = 123;

void OnInit()
{
  MqlParam Parameters[];
  string Names[];   
  
  if (EXPERT::Parameters(0, Parameters, Names))
    ArrayPrint(Parameters);
}


Resultado

    [type] [integer_value] [double_value]      [string_value]
[0]    ...               0        0.00000 "Experts\Test2.ex5"
[1]    ...               0        0.00000 "Hello World!"     
[2]    ...             123      123.00000 "123"              
Razão: