Como implementar o fechamento das posições um de cada vez após N minutos ? - página 7

 
Renat Akhtyamov:

Você já traduziu para o inglês?

E a guia dos especialistas é em russo?


Não, tudo é o padrão.

 
Natalya Dzerzhinskaya:

Não, tudo está por padrão.

na guia de especialistas por favor veja - os erros estão traduzidos em russo?

 
Natalya Dzerzhinskaya:

Sim, o código funciona.

Eu uso int em vez de bool para fechar em seu código

int fechar;

E um bilhete é usado para todas as compras e vendas fechadas, mas isto é apenas para teste. Talvez por causa disso haja um erro porque a compra é fechada e não há fechamento para venda.

Bem, isso é correto, é assim que deve ser

 
Renat Akhtyamov:

na guia dos especialistas, você pode verificar - os erros são transmitidos em russo?


Tudo é transmitido em inglês

 
Natalya Dzerzhinskaya:

tudo é transmitido em inglês

A idéia original, de acordo com suas descrições, era que

Coloquei o código na primeira página, no final da qual

if(TicketFirst>0)
{
//ну и пошло-поехало...
}

Você precisava colocar uma das duas funções de fechamento nesta condição e fechar a ordem encontrada pelo bilhete (eu coloquei duas), ou seja

if(TicketFirst>0)
{
                  if(OrderSelect(TicketFirst, SELECT_BY_TICKET)==true)
                  {
                     close=OrderClose(TicketFirst,OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),0,clrRed);
                     if(close<0){if(Fun_Error(GetLastError())==1)return;}
                  }
                  if(OrderSelect(TicketFirst, SELECT_BY_TICKET)==true)
                  {
                     close=OrderClose(TicketFirst,OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),0,clrBlue);
                     if(close<0){if(Fun_Error(GetLastError())==1)return;}
                  }

}

e colocar a função de tratamento de erros após o código inteiro

Além disso, deveria haver alguma lógica na condição de entrada para a função de fechamento, você não explicou até o final, eu escrevi sobre isso também.

E tudo bem.

Se for deixado assim, o mesmo bilhete será fechado duas vezes. Haverá um erro 4108 ao fechar um pedido com um bilhete já fechado na primeira vez.

 
Renat Akhtyamov:

bem, isso mesmo, é assim que deve ser

Você não deve pensar sobre isso, mas usar ajuda e escrever valores do tipo bool.

No entanto, você pode usar int, ele não mudará nada de qualquer maneira.

Execute o roteiro, você pode executá-lo 50 vezes seguidas, e a variável próxima nunca será igual a -1. Isto significa que os erros não traduzem em nenhum idioma, nem mesmo em chinês.

//+------------------------------------------------------------------+
#property version   "1.00"
#property strict
#property show_inputs

input int MyTicket = 451971753;

int close = -1;

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//закрытие по тикету, переделайте под свой

   if(OrderSelect(MyTicket,SELECT_BY_TICKET)==true)
     {
      close=OrderClose(MyTicket,OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),0,clrRed);
      if(close<0) Print("ERROR равен -1: ",close);
      if(close==0) Print("ERROR не может быть -1 НИКОГДА: ",close);
     }
  }


 
Vitaly Muzichenko:

Você não deve pensar sobre isso, mas usar ajuda e escrever valores do tipo bool.

No entanto, você pode usar int, ele não mudará nada de qualquer maneira.

Execute o roteiro, você pode executá-lo 50 vezes seguidas, e a variável próxima nunca será igual a -1. Isto significa que os erros não traduzem em nenhum idioma, nem mesmo em chinês.

Vitaly, você não tem que me ensinar.

Lembro-me de lhe ensinar eu mesmo, há cerca de um ou dois anos, como mudar para o círculo 5, para que você tenha menos experiência até agora...

Você não fez o mesmo que o meu, mas está dizendo...
 
Renat Akhtyamov:

Vitaly, você não precisa me dar sermões.

Lembro-me de lhe ensinar eu mesmo, há cerca de um ou dois anos, como mudar para um 5-crancos, para que você tenha menos experiência até agora...

Eu até dei um exemplo, não se faça de mau!

 
Vitaly Muzichenko:

Sim, eu até dei um exemplo, não se faça de mau!

Você não fez o mesmo que o meu, fez à sua maneira e diz...

Afinal, qual é a sua construção?

e você não está me mostrando a guia dos especialistas, você está me mostrando o diário. Isso são duas grandes diferenças.

O erro no meu caso é transmitido pelo Expert Advisor na guia Expert Advisors.
 
Renat Akhtyamov:

Você não fez um dos meus, você fez um dos seus, e diz

Qual é a sua construção, afinal?

e você não está me mostrando a guia dos especialistas, você está me mostrando o registro. Na verdade, há duas grandes diferenças.

O erro em meu caso é transmitido pelo Expert Advisor na guia Expert Advisors.

Já entendi, você está tentando me enganar.

Pronto, estou fora daqui.

Não, acho que vou apenas escrever para Servicedesk e dizer-lhes que tenho um terminal defeituoso.