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

 
Konstantin Nikitin:

Obrigado. Em palavras, por que dividimos o lucro em moeda?

.../(OrderSymbol()==Sy_1 ? tickValue_1 : tickValue_2));
   
Maxim Kuznetsov:
Você não pode somar os pontos de dois instrumentos diferentes.

Entendo que o valor do ponto é diferente, mas isso não importa neste caso.

 
PolarSeaman:

Obrigado. Em palavras, por que dividimos o lucro em moeda?

O valor em pontos na moeda do depósito.
Para mim seria mais correto escrever esta função em 1 caracter

int Punkts_B(const string symbol="", const int _Mag=-1)
  {
   double profit = 0;
   for(int t=0;t<OrdersTotal();t++)
     {
      if( !OrderSelect(t,SELECT_BY_POS,MODE_TRADES) )  continue;
      if( OrderSymbol()!=symbol )                      continue;
      if( OrderMagicNumber()!=_Mag )                   continue;
      if( OrderType()!=OP_BUY && OrderType()!=OP_SELL) continue;

      profit+= OrderProfit()+OrderSwap()+OrderCommission();
     }
   return( (int)MathFloor(profit/SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE)) );
  }

int xxx = Punkts_B("EURUSD", 12345) + Punkts_B("GBPUSD", 12345);
E somar pontos, se necessário, ao ligar.
 
Konstantin Nikitin:

Valor em pontos na moeda do depósito.

Como as palavras(OrderSymbol()==Sy_1 ? tickValue_1 : tickValue_2); digamos?

Print(Punkts_B("GBPUSD", "AUDUSD",11151)) imprime zero;

 
PolarSeaman:

Como expressão de palavras(OrderSymbol()==Sy_1 ? tickValue_1 : tickValue_2))

Print(Punkts_B("GBPUSD", "AUDUSD",11151));

Operador condicional ?:

 
Konstantin Nikitin:

Operador condicional ?:

Obrigado.

 

Colegas, ajudem-me.

Estou tentando descobrir como trabalhar com o registro, fiz um simples Expert Advisor para o teste. A leitura de dados do registro do sistema não apresenta problemas, mas há problemas com a escrita, MT e falhas de memória... (((

Talvez meu olho já esteja encharcado e não veja o óbvio...

Arquivos anexados:
TestReg.mq5  25 kb
 

Você precisa colocar seus nomes ao lado das extremidades das curvas na janela separatista, que deve estar ligada a elas.

Por favor, explique como fazer isso.

 
khorosh:

É preciso colocar o nome deles ao lado das extremidades das curvas na janela separadora, que deve estar ligada a eles.

Por favor, explique como fazer isso.

Objetos - eles podem ser exibidos em qualquer janela do terminal e de suas subjanelas.

 

Artyom Trishkin:

Objetos - eles podem ser enviados para qualquer janela terminal e suas subjanelas.

--------------------------------------------------------------------------------------------------------------------------------------

Eu tentei desta maneira, mas não funciona.

  if(ObjectFind("Spread")<0) 
    {
     ObjectCreate(1,"Spread", OBJ_TEXT, 0, Time[0],LevLabelSpread );
     ObjectSetText("Spread", "                    Spread", 10, "Arial", clrYellow);
    }
  else
    {
     ObjectMove(1,"Spread", 0, Time[0], LevLabelSpread);
    } 
Talvez seja algo com a numeração das janelas. Se houver uma janela separada no gráfico, seu número ===1?
 
Kirill Belousov:

substituir em suas expressões - && por "AND AT THE SAME TIME", e substituir ||| por "OR".

você deve ser capaz de ler isso e ver como funciona.


a primeira linha funcionará com magia =777 (quando hand_orders=false) ou magia = 0 (quando hand_orders=true)

a segunda linha SEMPRE funciona com majic=777, e com hand_orders=true works ADICIONALMENTE com majic=0

Obrigado!
Razão: