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

 
Vitaly Muzichenko #:

Você pode me dizer como encurtar a construção?

O objetivo é cortar os pares que já têm um símbolo neles

Tenho uma posição no USDCHF

===

Há uma posição no EURGBP, o sinal veio do AUDUSD - como podemos detectar que não há uma posição no AUD ou USD ?

Valery tem uma maneira correta de pensar. Mas não entendo por que devemos identificar a moeda que estamos procurando na ordem moedas em cada iteração do ciclo? E me parece mais fácil pegar a moeda da margem e a moeda do lucro em vez de olhar na linha. Veja a especificação da moeda... Eu faria isso

bool Search(string _sy)
 {
  int OT = OrdersTotal();
  string curencyProfit = SymbolInfoString(_sy, SYMBOL_CURRENCY_PROFIT),
         currencyMargin = SymbolInfoString(_sy, SYMBOL_CURRENCY_MARGIN);
  for(int i = 0; i < OT; i++)
   {
    if(OrderSelect(i, SELECT_BY_POS))
     {
      bool res = StringFind(OrderSymbol(), curencyProfit) >= 0 ||
                 StringFind(OrderSymbol(), currencyMargin) >= 0;
      if(res)
        return(true);
     }
   }
  return(false);
 }/******************************************************************/
 
Valeriy Yastremskiy #:

StringFind

Acho que deveria haver 2 linhas, procurando em ambas as posições 0 e 3. Para cortar uma partida aleatória no meio.

SZ

Idiota, há 4 condições.

Não igual A B e não igual C D

condição A==C ou A===D ou B====C ou B===D

Acho que ninguém poderia escrevê-lo))))

Burro na segunda tentativa. Aparentemente, chegou a hora da noite.

 
Vitaly Muzichenko #:

Você pode me dizer como encurtar a construção?

O objetivo é cortar os pares que já têm um símbolo neles

Tenho uma posição no USDCHF

===

Há uma posição no EURGBP, o sinal veio do AUDUSD - como detectar que não há uma posição no AUD ou USD ?

Eu coletaria todas as moedas de pedido aberto em uma matriz e passaria pela matriz ao receber o sinal.

 
Alexey Viktorov #:

Valeri tem a direção correta do pensamento. Mas não entendo por que precisamos definir a moeda que estamos procurando na ordem moedas em cada iteração do ciclo? E eu acho que é mais fácil pegar a moeda da margem e a moeda do lucro em vez de olhar na linha. Veja a especificação de moedas ... Eu o faria

Vou verificar isso amanhã.


Taras Slobodyanik #:

Eu coletaria todas as moedas de pedido aberto em uma matriz e olharia através da matriz ao receber um sinal.

A idéia é a mesma, mas você também precisa de uma matriz

 

você também pode definir um mágico 1 = AUD, 2 = EUR.... para cada moeda e comparar magias,

sobre as arrays, imho, é racional, agora 3 pares de moedas 4 condições, amanhã 33 pares de moedas 34 condições?

 
Vitaly Muzichenko #:

Vou verificar isso amanhã.


A questão é a mesma, mas você também precisa de uma matriz

Por que esperar até amanhã? Se você for preguiçoso demais para olhar as especificações, passe o roteiro por todos os símbolos de interesse e encontre uma correspondência para moeda de margem e moeda de lucro.
/********************Script program start function*******************/
void OnStart()
 {

  Comment(SymbolInfoString(_Symbol, SYMBOL_CURRENCY_PROFIT), "\n",
          SymbolInfoString(_Symbol, SYMBOL_CURRENCY_MARGIN)
         );
 }/******************************************************************/
Não verifiquei tudo antes de escrever, mas não encontrei nenhum fósforo.
 
Vitaly Muzichenko #:

O significado é o mesmo, mas você também precisa de uma matriz

Bem, a questão é rápida - pegue o código da moeda, faça uma busca usando uma matriz pronta, que é atualizada quando uma negociação é aberta.

 

Ajuda com o código. Preciso da ordem pendente para avançar com a abertura de um novo bar ao longo da linha de tendência.

Ou seja, seria uma travessia permanente da ordem e da linha.

Devemos conhecer o ponto de cruzamento da linha de tendência e o tempo para fazê-la mudar. Como calculá-lo?

 
Zalevsky1234 ordem pendente para avançar com a abertura de um novo bar na linha de tendência.

Ou seja, seria uma travessia permanente da ordem e da linha.

Devemos conhecer o ponto de cruzamento da linha de tendência e o tempo para fazê-la mudar. como calculá-lo?

Aqui está a função para o cálculo do ponto de interseção
 

Pergunta sobre a variável estática var do método X::doJob(). Há uma classe U que cria um objeto do tipo X, faz algum trabalho e depois o destrói. E isto acontece periodicamente. Pergunta: quando a variável var é excluída?


class X {
public:
   void doJob() {
      static int var = 0;
   }
};

class U {
private:
   X *x;
public:
   U(){

   }
   ~U() {
      delete x;
   }
   void U::dojob(){
      x = new X();
      x.doJob();
      delete x;
   }
};