[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 366

 
lowech:

Por exemplo, eu abri uma posição Buy usando a seguinte condição OPEN[0]> OPEN[3] e fechei TakeProfit. Após o fechamento do pedido, a posição Buy continua ativa, portanto o Expert Advisor abrirá outra posição Buy. Eu preciso evitar abrir mais pedidos quando TakeProfit for alcançado. Quero dizer 1 ordem de mercado, não uma ordem pendente!

Coloque tal peça de código antes da condição de abertura da posição:

if (OrdersTotal()>0) //находит общее кол-во позиций/ордеров
{  for (int i=OrdersTotal()-1; i>=0; i--) // их перебор
   {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) // перебирает только среди позиций
      {  if (OrderSymbol()!=Symbol()) continue; // перебирает только позиции по тому символу
                                                // на чей график кинули советник
         if (OrderTicket()>0) return(0); // если обнаружена позиция - конец действия программы
}  }  }
 
paladin80:

Coloque este pedaço de código antes da condição de abertura da posição:


Muito obrigado! Vamos experimentar!

Eu tentei! Ainda abre um monte de pedidos! Há alguma maneira de fazer o TakeProfit Expert Advisor desligar quando o pedido é fechado?

 
lowech:

Muito obrigado! Vamos experimentar!

Eu tentei! Ainda abre um monte de pedidos! Há alguma maneira de desativar o TakeProfit Expert Advisor quando um pedido é fechado?

Se você estiver correto ao colocar este código antes da condição de abertura da posição, sua EA não deve abrir mais de 1 posição para esta moeda. Quanto a desativar a EA após TakeProfit - não há necessidade de desativá-la. É melhor fazer o código correto imediatamente.
 
paladin80:
Se você estiver correto ao colocar este código antes da condição de abertura da posição, seu consultor especializado obviamente não deve abrir mais de 1 posição para uma determinada moeda. Quanto a desativar a EA após TakeProfit - não há necessidade de desativá-la. É melhor fazer o código certo imediatamente.

se(OrdensTotal()>0) //definir o número total de posições/ordens

{  for (int i=OrdersTotal()-1; i>=0; i--) // их перебор
   {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) // перебирает только среди позиций
      {  if (OrderSymbol()!=Symbol()) continue; // перебирает только позиции по тому символу
                                                // на чей график кинули советник
         if (OrderTicket()>0) return(0); // если обнаружена позиция - конец действия программы 
}  }  }

O meu problema é que a EA abre ordem após ordem, não em fila, e após a ordem anterior fechar TakeProfit ou StopLoss, a posição se abrirá novamente e apenas 1 ordem !

 
lowech:

se(OrdensTotal()>0) //definir o número total de posições/ordens

O meu problema é que a EA abre ordem após ordem, não em fila, e após o fechamento da ordem anterior TakeProfit ou StopLoss, a posição será aberta novamente e apenas 1 ordem !

Eu entendi o algoritmo corretamente?
Após a condição de entrada ser acionada, apenas uma posição é aberta. Se fechar com lucro ou prejuízo, não negocie no dia em que fechou. A propósito, você negocia com um símbolo ou vários?
Eu não sei sobre a desativação da EA porque eu não a uso, talvez alguém que saiba aqui escreva se é possível.
 
A função SendFTP envia um arquivo de texto para o servidor. Mas no servidor o arquivo está vazio - 0 KB. Qual poderia ser o problema?
 
serler2:
A função SendFTP envia um arquivo de texto para o servidor. Mas no servidor o arquivo está vazio - 0 KB. Qual poderia ser o problema?
E sobre o cliente?
 
Reshetov:
E sobre o cliente?

Eu tentei muitas opções. Tanto imagens como textos e estatísticas. Todos vêm com volume zero. No computador local, é claro, os arquivos não estão vazios.

 
serler2:

Eu tentei muitas opções. Tanto imagens como textos e estatísticas. Tudo vem com volume zero. No computador local, é claro, os arquivos não estão vazios.

Depois XZ, ou seja, pedir telepatas, ou código no estúdio.

Entretanto, nem sempre é o caso de o servidor ter sucesso com as transações do MT4. Houve casos em que a troca entre modos passivos-ativos ajudou, e houve casos em que nada ajudou. Nem todos os servidores e nem todos os clientes suportam o protocolo RFC 959 completo, daí os problemas.

 

Boa noite!

Caros profissionais, vocês poderiam aconselhar um novato? Estou escrevendo um EA e tropeçei em um certo momento:

Estou tentando abrir ordens de acordo com um determinado esquema e elas podem fechar no dia da abertura ou permanecer no mercado por mais 3 dias.

Não consigo descobrir como me registrar para poder encontrar um pedido que está ativo há 3 dias e fechá-lo sem fechar um pedido aberto mais tarde.

O esquema de abertura é o mesmo para todos os pedidos. Atribuo magias a todos eles da seguinte forma: Magic_s =Magic_s+1.

Por favor, se alguém souber como resolver este problema, por favor escreva uma resposta. Serei muito grato :)

Razão: