Pergunta para os conhecedores - página 11

 
Urain >> :

Acronis True Imidge software para criar e restaurar o Back Up . Faça backup do seu drive C.

O Back Up e o sistema é como era quando foi criado.

O tempo de backup é de 4 minutos.

Obrigado também.

 
rid >> :

>> Obrigado também.

Caro(a) carinho(a) , poderia me ajudar com uma pergunta aqui) https://forum.mql4.com/ru/15972/page145

 
MQLBankir >> :
Bom dia!
Só estou escrevendo EAs há um mês.
Tenho as mais simples: você recebe um sinal - abra uma posição. E se eu precisar de vários sinais?
Por exemplo.
O primeiro sinal de um indicador
O segundo sinal vem mais tarde, mas a primeira condição já é FALSA. Entendo que o programa é executado a cada tique, mas preciso lembrar que a primeira condição (sinal) é verdadeira e ainda não foi cancelada.
Eu estava pensando em talvez escrevê-lo em um arquivo. Mas eu ainda não entendo realmente.
Talvez haja outra saída, através de uma função ou outra coisa?
Você pode me dar uma dica?

Eu não sou realmente bom nisso.

Mas suponho que se depois do primeiro sinal você "pendurar" a bandeira, deixe-a pendurada.

Mesmo que o primeiro sinal já esteja esgotado!

Então o 2º sinal dará um sinal para abrir sem nenhum problema.

Se entendi bem a pergunta...

 
Infinity >> :

Caro(a) carinho(a) , você poderia me ajudar aqui com uma pergunta) https://forum.mql4.com/ru/15972/page145

É aí que você pergunta sobre o fechamento? Veja aqui.

Posições de fechamento. Em um sinal de um indicador".

//------------------------

Eu, em meu tempo, entrei nesse assunto lá.

Mas no código que você postou - é difícil de entender lá e não vejo nenhuma seção sobre o fechamento.

Aqui está uma amostra de bloco de fechamento para você:

//********* Закрытие позиций ****************************************
if ( AutoClose) { //если выключатель закрытия включен 
//----переменные для закрытия позиций ----
double Stochast_0 =iStochastic(NULL,0, Stochastic_period,3,3,MODE_SMA,0,MODE_MAIN,0);
double Stochast_1 =iStochastic(NULL,0, Stochastic_period,3,3,MODE_SMA,0,MODE_MAIN,1);
//----------------------------------------------------------------------
  for (int v=0; v<OrdersTotal(); v++)                             {       
      if (OrderSelect( v, SELECT_BY_POS, MODE_TRADES))               {           
        if (OrderSymbol()==Symbol()&& OrderMagicNumber()== MagicNum)   { 
//-----------------------------------------------------                  
if (OrderType() == OP_BUY) { 
      if( Stochast_1>75 && Stochast_0<75)     {
           OrderClose(OrderTicket(),OrderLots(),Bid,3,Green); // закрываем позицию
                 //return(0); // выходим
                }       
     }  
 //--------------------------------------------------------
if (OrderType() == OP_SELL) { 
      if( Stochast_1<25 && Stochast_0>25)    {
                 OrderClose(OrderTicket(),OrderLots(),Ask,3,Green); // закрываем позицию
                // return(0); // выходим
                }       
     }  
 //-------------------------------------------------------                       
    }  // Symbol()  
  } // select
 } //total
} //Close_
 
rid >> :

Eu não sou realmente um especialista nisto.

Mas a suposição é que se após o primeiro sinal você "pendurar" a bandeira, então deixe-a pendurada.

Mesmo que o primeiro sinal já esteja esgotado!

Então o 2º sinal dará um sinal para abrir sem nenhum problema.

Se entendi bem a pergunta...



se o segundo sinal vier depois do primeiro, ..... e só assim, mas... talvez verificando o 2º sinal para abrir o 1º sinal já passará de falso a verdadeiro, então será necessário terminar o cálculo do 2º sinal, e proceder à passagem do primeiro sinal !

 
rid >> :

É aí que você pergunta sobre o fechamento? Veja aqui.

Posições de fechamento. Em um sinal de um indicador".

//------------------------

Eu, em meu tempo, entrei nesse tópico.

Mas nesse código, que você postou - é difícil de entender lá e não vejo a seção sobre fechamento de forma alguma.

Bem, não está lá, .... Não consigo obter o número de uma ordem aberta para fechar a ordem, ela continua me dando um erro... mesmo que o número seja encontrado através de outras funções.

 

Veja acima. Acrescentei um exemplo.

Somente ao invés do MagicNum você insere seu mn

Em parâmetros externos adicionar

bool externo AutoClose = verdadeiro;

 
rid >> :

Somente ao invés do MagicNum você insere seu mn

Nos parâmetros externos adicionar

bool externo AutoClose = verdadeiro;

>> >> sim, sim, obrigado, eu peguei)

 
Infinity >> :

Bem, não está lá, .... Eu não consigo obter o número de uma ordem aberta para fechá-la, ela continua mostrando um erro... mesmo que o número seja encontrado através de outras funções.

Tente selecionar a ordem por posição: a função dá um ticket t posição da ordem na lista das ordens de negociação.

int Select_POS(int t)
{//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if(OrderSelect( t, SELECT_BY_POS, MODE_TRADES)) TIC[ t]=OrderTicket();
else TIC[ t]=-1;
return( TIC[ t]);
}//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
t = EncomendasTotal() e diminuir com cada ordem processada.
 
Urain >> :

Tente selecionar uma ordem por posição: a função dá a posição do ticket t da ordem na lista de ordens comerciais.

t = OrdensTotal() e diminuir com cada ordem processada.


Obrigado pela ajuda! isso provavelmente funcionaria também!!! Com certeza vou dar uma olhada!

O código de fechamento funcionou.... Tudo funciona agora, o problema era realmente com a definição da ordem aberta. Mais uma vez, obrigado a todos!