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

 
Seric29:
Gente que pode ajudar com esta pergunta. Quero declarar uma variável global de tipo indefinido ou de tipo arbitrário. Então esta variável será usada em funções onde os modelos são aplicados. Em outras palavras, eu chamo a função e tomo qualquer tipo de matriz, então os cálculos serão feitos e o resultado será retornado por função e será atribuído a esta variável. Quero armazenar o resultado do cálculo destes parâmetros em uma variável, para não ter que chamar a função pela segunda vez. Como posso encontrar uma solução universal com menos verificações, posso converter o tipo de variável, ou declará-la como variável com macro, o que posso fazer?

Se eu entendi corretamente, então

https://www.mql5.com/ru/docs/basis/oop/templates

Документация по MQL5: Основы языка / Объектно-ориентированное программирование / Шаблоны функций
Документация по MQL5: Основы языка / Объектно-ориентированное программирование / Шаблоны функций
  • www.mql5.com
Перегруженные функции обычно используются для выполнения похожих операций над различными типами данных. Простой пример такой функции в MQL5 - ArraySize(), которая возвращает размер массива любого типа. На самом деле эта системная функция является перегруженной, и вся реализация такой перегрузки спрятана от разработчика программ на MQL5: То есть...
 
leonerd:

Eu realmente não entendo este comentário. Você pode abrir uma posição de fechamento (oposta à posição aberta) com uma margem livre inferior à margem para a ordem recém-aberta (não na fechadura). Então, onde está 100%?

Exemplo:

Moeda USDJPY, alavancagem 1:100. Lote 0,1, a margem é de 100

De acordo com a especificação, a margem coberta é de 50000, o que significa 50%.

Para abrir uma posição de fechamento, mais 100 fundos devem estar disponíveis na conta. Caso contrário, haverá um erro ... não se lembram do número, em geral, não há fundos suficientes.

E somente após a abertura de uma posição, a margem real será corrigida de acordo com os valores indicados na especificação.

Mas, se houver apenas 50 fundos disponíveis na conta, então você pode abrir duas vezes por 0,05

 
Alekseu Fedotov:

Se eu entendi corretamente, então

https://www.mql5.com/ru/docs/basis/oop/templates

Eu já sei sobre o uso da tecnologia de modelos. Este método permite retornar o tipo de uma variável, mas a conversão do tipo de uma variável em outra não o fará. Isso pode não ser possível.

 
Alexey Viktorov:

Exemplo:

Moeda USDJPY, alavancagem 1:100. Lote 0,1, a margem é de 100

De acordo com a especificação, a margem coberta é de 50.000, o que significa 50%.

Para abrir uma posição de fechamento, mais 100 fundos devem estar disponíveis na conta. Caso contrário, haverá um erro ... não se lembram do número, em geral, não há fundos suficientes.

E somente após a abertura de uma posição, a margem real será corrigida de acordo com os valores da especificação.

Mas, se houver apenas 50 fundos livres na conta, então você pode abrir duas vezes por 0,05

OK, esse pode ser o caso. Deveríamos verificar isso.

Devemos verificar o preço de um pedido. Então e a função da MQL5https://www.mql5.com/ru/docs/trading/ordercalcmargin?

O preço do pedido aberto está no parâmetro. Como funciona para as cruzes? Como funciona para taxas cruzadas? A MT5 sabe como prever os preços?

Документация по MQL5: Торговые функции / OrderCalcMargin
Документация по MQL5: Торговые функции / OrderCalcMargin
  • www.mql5.com
Вычисляет размер маржи, необходимой для указанного типа ордера на текущем счете и при текущем рыночном окружении без учета текущих отложенных ордеров и открытых позиций. Позволяет оценить размер маржи для планируемой торговой операции. Значение возвращается в валюте счета. [out]  Переменная, в которую...
 
Descarreguei o indicador FreeNumFractals para mt5, mas os fractais não são atualizados no gráfico.

FreeNumFractals

 
Pavel5554:
já reinstalei o mt5 e este indicador, mas ele não tem efeito.

FreeNumFractals

O que é esse indicador? Não tenho nenhum efeito. Onde está a ligação com ele?

 
leonerd:

Tudo bem, talvez seja só isso. Teremos que verificar isso.

Sobre o preço do pedido. E quanto à função da MQL5https://www.mql5.com/ru/docs/trading/ordercalcmargin?

O preço do pedido aberto está no parâmetro. Como funciona para as cruzes? Como funciona para taxas cruzadas? A MT5 pode prever os preços?

Bem, é preciso ler tudo cuidadosamente. Citação da documentação:

O cálculo é realizado como se não houvesse ordens pendentes e posições em aberto na conta corrente. O valor da margem depende de muitos fatores e pode mudar quando o ambiente do mercado muda.

O cálculo é realizado... ou seja, o valor obtido será sem levar em conta a posição aberta, e somente então será corrigido de acordo com a especificação se a posição oposta for aberta. Era disto que eu estava falando.

Valor da margem... para pedidos pendentes é calculado "a partir do fundo" e pode não corresponder ao valor real.

 
Sergey Voytsekhovsky:

Um grande conselho e uma grande ciência para o futuro!!! Foi ainda um pouco mais longe do que isso. Abaixo está o resultado.

Assim foi:

Assim se tornou, a eficácia da abordagem é óbvia!!! Obrigado.

Obrigado a Sergei e Alexey pelo indicador estocástico colorido. Você é muito bom. Respeito!

 
Como posso fazer meu indicador aparecer na janela principal ao invés do gráfico principal (meu indicador é construído na forma de barras).

Para que meus dados indicadores substituam os dados do gráfico.

E que todos os indicadores padrão do terminal do cliente possam ser lançados neste novo gráfico. E para que estes indicadores funcionem sobre os dados do meu indicador, não sobre as barras de preços.
 

Há uma pergunta como esta. Então, há um loop

     for(...........)              
     {if(.........){ что-то делаем}else
      if(.........){ break}else{ break;}} 

A 1ªinterrupção não está localizada nos primeiros parênteses do laço, mas nos parênteses aninhados dentro deles. A 2ªinterrupção está ainda mais profunda aninhada nos parênteses internos. Como entendi neste caso,a pausa simplesmente não funciona, para dizer a verdade não entendi se funcionava ou não, mas o programa desligou e fez iterações desnecessárias. A fim de sair de um loop com muitas condições, adicionei uma bandeira de saída ao loop. Talvez me parecesse que não funciona, quem pensa sobre este assunto?

Razão: