Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 1503

 
psihodelit #:

Como entender em que direção seguir, por onde começar e como. Não tenho quase nenhum conhecimento...

  1. O código de ambos os Expert Advisors está disponível para edição?
    Sim.
  2. Os conselheiros deixam rastros de sua atividade nas Variáveis Globais
    Não sei dizer com certeza.
  3. Você tem pelo menos habilidades básicas de codificação
    Um pouco.

Antes de tudo, responda a essas três perguntas para você mesmo. Se não conseguir responder, você precisará preencher e estudar. Isso é para entender em que direção deve se mover.

Se a essência da pergunta for os arquivos dos consultores que você deseja misturar, eles mostrarão o que pode ser feito. Se não puder ou não quiser carregá-los, você pode ver as capturas de tela dos locais necessários.

 
Sergey Voytsekhovsky #:
Os Expert Advisors deixam rastros de sua atividade nas variáveis globais?
Não tenho certeza.

Comece por aqui - No terminal, na faixa de opções, na pasta Ferramentas, há um item GlobalVariables. Vamos encontrá-lo.

 
Sergey Voytsekhovsky #:

É aqui que você deve começar - no terminal, na faixa de opções, na pasta Tools, há um item GlobalVariables. Vamos encontrá-lo.

Ele está vazio.

 
Sergey Voytsekhovsky #:

É aqui que você deve começar - no terminal, na faixa de opções, na pasta Tools, há um item GlobalVariables. Vamos encontrá-lo.

Pelo que sei, eu também sou um ignorante. Às vezes, não consigo entender uma frase ou lógica, mesmo as mais simples. E também estou sempre perguntando e lendo. É por isso que estou chamando você de volta. Você me ajudou aqui recentemente, logo acima - muito obrigado.

 
psihodelit #:
Ele está vazio.

Portanto, não estamos interrompendo nada.

Abra o código do EA em cujas leituras você está interessado. Você escreveu que o outro consultor deve executar algumas ações dependendo das leituras do primeiro. É por aí que você deve começar.

Em qualquer lugar conveniente para você, prepare uma linha vazia e digite GlobalVariableCheck(), depois realce e pressione F1. A página com as informações será aberta, o que não é difícil.

E a essência da ideia incorporada - Crie uma variável global no Expert Advisor de tradução e deixe que o receptor leia a partir dela; em determinadas leituras, a condição será acionada e, posteriormente, de acordo com o cenário.

 
Sergey Voytsekhovsky #:
prepare uma linha vazia e digite GlobalVariableCheck(),

Não se esqueça de excluí-lo depois, pois foi apenas uma maneira rápida de obter a ajuda necessária. Queime-a depois de lê-la.

 

Olá, se existe uma fórmula (código) para o preço médio ponderado de abertura de uma posição em uma conta de hedge. Obrigado.

Não estou entendendo, qual é a fórmula para fechar casos de negociações opostas?

Pср = (Open Price 1 × Lot 1 + Open Price 2 × Lot 2 + ... + Open Price X × Lot X) / (Lot 1 + Lot 2 + ... + Lot X)

Esta parece não funcionar?

 
leonerd abertura de uma posição em uma conta de hedge. Obrigado.

Não estou entendendo, qual é a fórmula para fechar casos de negociações opostas?

Esta parece não funcionar?

Não me lembro de onde a copiei, mas ela funciona bem.

   double NLb = 0, NLs = 0;

   long OT;
   int b = 0, s = 0;
   double PB = 0, PS = 0, OL = 0, LS = 0, LB = 0, OOP = 0;
   for(int i = 0; i < PositionsTotal(); i++)
     {
      if(_Symbol == PositionGetSymbol(i))
        {
         OL  = PositionGetDouble(POSITION_VOLUME);
         OOP = PositionGetDouble(POSITION_PRICE_OPEN);
         OT  = PositionGetInteger(POSITION_TYPE);
         if(OT == POSITION_TYPE_BUY)
           {
            PB += OOP * OL;
            LB += OL;
            b++;
           }
         if(OT == POSITION_TYPE_SELL)
           {
            PS += OOP * OL;
            LS += OL;
            s++;
           }
        }
     }
   if(LB != 0)
      NLb = PB / LB;
   if(LS != 0)
      NLs = PS / LS;

É o mesmo que você escreveu, apenas separado por direções de posição.

Achoque é disso que você precisa .

 
Aleksandr Slavskii #:

Não me lembro de onde a copiei, mas ela funciona bem.

É o mesmo que você escreveu, apenas separado por direções de posição.

Achoque é isso que você precisa .

Não entendo se é a mesma coisa se você simplesmente pegar os shorts com volume negativo e somar os valores absolutos no denominador?

Talvez você queira adicionar uma verificação de divisão por 0 no final.

 
leonerd #:

Não entendo se é a mesma coisa se você simplesmente pegar as posições vendidas com volume negativo e somar os valores absolutos no denominador?

A função calcula o preço médio separadamente para compra e separadamente para venda.

Não entendo muito bem qual é sua tarefa. Não entendo esta frase: "para fechar casos de negociações opostas".

leonerd #:

Seria bom adicionar uma verificação de divisão por 0 no final.

Há uma verificação.

Razão: