Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1238

 
Oleg Remizov:

E de acordo com minhas observações, os usuários gostam quando o Expert Advisor exibe várias informações na tela: ele desenha setas, linhas, canais e outras coisas para mostrar a atividade vigorosa da "inteligência artificial").

De acordo com os indicadores, o Consultor Especialista fornece o rastreamento. Quero visualizar este processo para que um usuário possa ver a linha pontilhada com o StopLoss.

Use uma linha de tendência, o primeiro ponto de ancoragem é a barra atual e o segundo é 1 barra na história, coloque a espessura de 2-3

 
Vitaly Muzichenko:

Use uma linha de tendência, primeira barra de corrente de ponto de ancoragem e segunda barra de 1 barra na história, coloque a espessura em 2-3

Ótima idéia! Muito obrigado, parece estar tudo certo.

tendências

 
ANDREY:

Eis o que diz o livro de Kovalev sobre a inicialização de uma matriz ao mesmo tempo em que é declarada

8.4.4 Inicialização da matriz

Uma matriz só pode ser inicializada com constantes do tipo apropriado. As matrizes unidimensionais e multidimensionais são inicializadas com uma seqüência unidimensional de constantes listadas separadas por vírgulas. A seqüência é encerrada por um aparelho de amarrar:

int Mas_i[3][4] = { 0, 1, 2, 3, 10, 11, 12, 13, 20, 21, 22, 23 }

double Mas_d[2][3] = { 0,1, 0,2, -0,3, -10,2, 1,5, 7,0 };

bool Mas_b[5] = { falso, verdadeiro, falso, verdadeiro, verdadeiro }

Uma ou mais constantes podem ser puladas na seqüência inicializadora.

Parece-me do livro didático que quando um array é declarado, o array completo é inicializado com todos os dados, e não apenas o primeiro elemento do array.
Se eu interpretei mal o livro didático, eu ficaria grato se você pudesse apontar o que eu interpretei mal.

Não tenho o menor desejo de discutir seu livro didático, eu não o li

e escreveu aqui no fórum que o livro didático está desatualizado e é irrelevante.

uma matriz bidimensional pode ser rubricada dessa forma:

int arr[2][5] = {{1, 2, 3, 4, 5,}, {6, 7, 8, 9, 10}};
 
Igor Makanu:

não tenho o menor desejo de discutir seu livro didático, eu não o li

e escreveram aqui no fórum que o tutorial está desatualizado e é irrelevante.

Uma matriz bidimensional pode ser inicializada dessa forma:

Muito obrigado por sua ajuda. Você adivinhou diretamente meus pensamentos. Estou apenas intrigado sobre como inicializar uma matriz bidimensional....., mas somente por meio da funçãoArrayInitialize();
O manual desta função fornece informações sobre inicialização somente de matriz unidimensional, como me pareceu.
Serei muito grato, se você me disser.

 
ANDREY:

Muito obrigado por sua ajuda. Você adivinhou diretamente meus pensamentos. Estou apenas intrigado sobre como inicializar a matriz bidimensional
, mas somente por meio da função ArrayInitialize (); Na referência sobre esta função são dadas as informações sobre inicialização somente da matriz unidimensional, como me pareceu.
Serei muito grato, se você me disser.

ArrayFill() permite preencher todos os elementos de uma matriz com o valor desejado e pode ser usado para uma matriz bidimensional. Veja o exemplo na ajuda para esta função.

A propósito, eu verifiqueiArrayInitialize() aplicado a uma matriz bidimensional, ele também funciona. Mas em ambos os casos você pode inicializar apenas todos os elementos com um valor particular.

Se você quiser definir um valor diferente para cada elemento, estas funções não funcionarão.

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Переменные должны быть объявлены перед их использованием. Для идентификации переменных используются уникальные имена. Описания переменных используются для их определения и объявления типов. Описание не является оператором. Индексом массива может быть только целое число. Допускаются не более чем четырехмерные массивы. Нумерация элементов массива...
 
Oleg Remizov:

ArrayFill() permite preencher todos os elementos de uma matriz com o valor desejado e pode ser usado para uma matriz bidimensional. Veja o exemplo na ajuda para esta função.

A propósito, eu verifiqueiArrayInitialize() aplicado a uma matriz bidimensional, ele também funciona. Mas em ambos os casos você pode inicializar apenas todos os elementos com um valor particular.

Se você precisar definir um valor diferente para cada item, estas funções não funcionarão.

Muito obrigado por sua ajuda.

 
Oleg Remizov:

Infelizmente, o modelo não vai funcionar para mim. A função de exibição do indicador deve ser ligada/desligada nos ajustes, e o desenho deve ser feito diretamente da EA. O Conselheiro Especialista deve poder ser transferido em um arquivo.

Em vez da seta, desenhe uma linha de tendência que tenha o mesmo preço e tempo em ambos os pontos. Use a espessura da linha para ajustar o tamanho do ponto resultante.

 
Olá, sou um recém-chegado e gostaria de saber como retirar dinheiro de minha conta e quando transferi-lo.
 

Saudações.

Há uma coisa como esta no MT4:

#import "user32.dll"
   int SendMessageA(int hWnd, int Msg, int wParam, char &lParam[]);
   int RegisterWindowMessageA(uchar &lParam[]);
#import

string IndiName="TestBot";

void OnStart()
  {
   char buf[];
   StringToCharArray("MetaTrader4_Internal_Message", buf);
   int MT4InternalMsg=RegisterWindowMessageA(buf);
   StringToCharArray(IndiName, buf);
   long handle=ChartGetInteger(0, CHART_WINDOW_HANDLE);
   Print(MT4InternalMsg);
   bool res=SendMessageA((int)handle, MT4InternalMsg, 14, buf);
   Print("Функция SendMessageA завершила работу с результатом: ",res);
  }

Este código envia um comando para a janela do terminal para executar uma EA específica.

Existe uma funcionalidade similar para o MT5?

Eu tentei desta forma:

#import "user32.dll"
   int SendMessageA(long hWnd, long Msg, uint wParam, uchar &lParam[]);
   int RegisterWindowMessageA(uchar &lParam[]);
#import

string IndiName="TestBot";

void OnStart()
  {
   uchar buf[];
   StringToCharArray("MetaTrader5_Internal_Message", buf);
   long MT5InternalMsg=RegisterWindowMessageA(buf);
   StringToCharArray(IndiName, buf);
   long handle=ChartGetInteger(0, CHART_WINDOW_HANDLE);
   Print("Window handle: ", handle);
   Print("Message: ",MT5InternalMsg);
   for(int i = 0; i<100; i++){
      bool res=SendMessageA(handle, MT5InternalMsg, i , buf);
      printf("Функция SendMessageA завершила работу с результатом: %d, номер: %d ",res, i);
   }
  }

Não funciona.

Tentei procurar por spy++, mas não há mensagens no MT5 ao contrário do MT4.

Preciso exatamente ligar para a janela de configurações do Expert Advisor.

 
50211108:
Olá, sou um novato e gostaria de esclarecer como retirar dinheiro da conta e depois quando depositar

Você só pode retirar o que ganhou com este recurso, que é a venda de software, sinais e energia de computador. O que é inserido só pode ser gasto com este recurso.