Especialistas: N seconds N points

 

N seconds N points:

Advisor que monitora as posições de todos os símbolos e todos os mágicos. Caso seja aberta a posição "Waiting for seconds" e seu lucro - "Take Profit" pontos, fecha as posições. Caso o lucro não atinja "Take Profit" pontos, transfere o nível de take profit.

Autor: Vladimir Karputov

 

Obrigado, isso é o que eu preciso.

Mas não entendo o ponto "If the profit has not reached the "Take Profit" points - then it transfers the take profit level". Para onde exatamente ele move o TP?

Existe uma versão para o MT4?

 
Valeriy Belozertsev:

Obrigado, isso é o que eu preciso.

Mas não entendo o ponto "If the profit has not reached the "Take Profit" points - then it transfers the take profit level". Para onde exatamente ele move o TP?

Existe uma versão para o MT4?


Os adeptos do terminal antigo estão privados de suporte. Como punição pela preguiça.

 
Valeriy Belozertsev:

Só que não entendo o ponto "If the profit has not reached the "Take Profit" points - then it transfers the take profit level". Para onde exatamente ele move o TP?

É um mistério.
 
Vladimir Karputov:

Os adeptos do antigo terminal foram privados de apoio. Como punição pela preguiça.

Isso é suficiente.

 
Vladimir Karputov:

Os adeptos do antigo terminal foram privados de apoio. Como punição pela preguiça.


"Nossa resposta a Chamberlain".

Sem o apoio dos "adeptos do MT4", seus códigos continuarão sendo os melhores exemplos de "como não fazer melhor"

void OnTimer()
  {
//---
   for(int i=PositionsTotal()-1;i>=0;i--)
      if(m_position.SelectByIndex(i)) // seleciona a posição por índice para acesso posterior às suas propriedades
         if(TimeCurrent()-m_position.Time()>InpSeconds)
           {
            double ExtTakeProfit=0;
            double m_adjusted_point;               // valor do ponto ajustado para 3 ou 5 pontos
            if(!InitTrade(m_position.Symbol(),m_position.Magic(),m_adjusted_point,ExtTakeProfit))
               continue;
...
  }
//+------------------------------------------------------------------+
//| Inicialização do objeto de negociação|
//+------------------------------------------------------------------+
bool InitTrade(const string symbol,const ulong magic,double &adjusted_point,double &ext_take_profit)
  {
...
//--- sintonia para 3 ou 5 dígitos
   int digits_adjust=1;
   if(m_symbol.Digits()==3 || m_symbol.Digits()==5)
      digits_adjust=10;
   adjusted_point=m_symbol.Point()*digits_adjust;

   ext_take_profit=InpTakeProfit*adjusted_point;
//---
   return(true);
  }


O significado das cotações (5 dígitos) já é conhecido no estágio OnInit() e não é necessário realizá-las e executá-las na análise de cada posição

 
Andrey F. Zelinsky:

"Nossa resposta a Chamberlain".

Sem o apoio dos "adeptos do MT4", seus códigos continuarão sendo os melhores exemplos de "como não fazer isso"


O significado das cotações (5 dígitos) já é conhecido no estágio OnInit() e não é necessário executá-las e realizá-las na análise de cada posição


Normalmente, eu faço dessa forma: defino os dígitos uma vez em OnInit(), mas nesse Expert Advisor há uma possível variante quando posições para símbolos completamente diferentes são abertas no terminal. Portanto, para cada posição, preciso estar seguro e definir a capacidade do dígito.

 
Vladimir Karputov:

... mas nesse Expert Advisor existe a possibilidade de que posições para símbolos completamente diferentes sejam abertas no terminal. É por isso que, para cada posição, temos de fazer a cobertura e determinar a digitalização.


Você já se deparou com alguma conta de negociação em que os dígitos das cotações (5 e 4 dígitos) eram diferentes para símbolos diferentes?

 
Andrey F. Zelinsky:

O significado das cotações (5 dígitos) já é conhecido no estágio OnInit() e não precisa ser realizado e executado na análise de cada posição

Não consegui entender por que muitas pessoas usam essas construções (já me deparei com elas muitas vezes) - elas olham para os pontos/dígitos para fazer algo com eles adicionalmente.

Deve haver um sentido, mas não consegui entender por que eles escrevem dessa forma. Afinal de contas, isso veio de alguém.

 
Andrey F. Zelinsky:

Você já se deparou com uma única conta de negociação em que o valor das cotações (5 e 4 dígitos) era diferente para símbolos diferentes?


Há muitos exemplos (você só precisa tirar as vendas de seus olhos e olhar mais e mais). Vou esperar até que você perceba :)

 
fxsaber:

Nunca consegui entender por que muitas pessoas usam essas construções (já me deparei com elas mais de uma vez) - elas olham para os pontos/dígitos para fazer algo a mais com eles.

Deve haver um ponto, mas não consegui entender por que eles escrevem dessa forma. Afinal de contas, isso veio de alguém.


A lógica é simples: 1) tornar as mesmas configurações adequadas para dígitos diferentes e 2) muitas pessoas estão mais acostumadas com 4 dígitos.

Só que algumas pessoas o usam de forma correta e discreta, enquanto outras o usam de forma feia.