Pessoal, a ajuda é necessária. A função tem que fechar metade das ordens necessariamente começando com a mais antiga. No primeiro caso, as ordens são fechadas uma a uma por alguma razão, e no segundo, começam a fechar na ordem errada.
void CloseHalfOrders (int otype)// ф-ция закрытия половины ордеров сетки
{
int count = 0; double CTbuy = CountTrades(OP_BUY); double CTsell = CountTrades(OP_SELL);
for (int i = 0; i<=OrdersTotal;i++)
{
if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType() == otype)
{
if (otype == OP_BUY)
{
if (count<CTbuy/2 && CTbuy>3 )
OrderClose(OrderTicket(),OrderLots(),Bid,0,Black);
count++;
Sleep(1000);
}
elseif (otype == OP_SELL)
{
if (count<CTsell/2 && CTsell>3)
OrderClose(OrderTicket(),OrderLots(),Ask,0,Black);
count++;
Sleep(1000);
}
}
}
}
}
Olá, procurei no Kim's, mas não encontro nada que me permita saber: De qual ordem (pendente) abriu a posição? De uma ordem de limite ou de uma ordem de parada?
Eu tentei comparar os preços do último pedido aberto
Pessoal, a ajuda é necessária. A função deve fechar metade das ordens necessariamente começando com a mais antiga. No primeiro caso, as ordens são fechadas uma a uma por alguma razão, e no segundo, começam a fechar na ordem errada.
Houve uma pergunta como esta, como fechar pedidos começando com o mais antigo, um par de páginas depois há uma resposta e o código correto.
Olá, procurei no Kim's, mas não encontro nada que me permita saber: De qual ordem (pendente) abriu a posição? De uma ordem de limite ou de uma ordem de parada?
Eu tentei comparar os preços do último pedido aberto
com uma posição aberta sobre ela, mas toda a lógica está quebrada. Talvez haja algo mais adequado? Obrigado!
Boris. Tente escrever no comentário das ordens - limitar a limitar, parar a parar. Então, a partir destes comentários de posições em aberto, você saberá do que as pernas cresceram. Somente o fechamento parcial destes comentários os apagará. Talvez algo mais possa matar os comentários. Somente as posições eliminadas são salvas no histórico. Os que funcionaram não estão lá. Você tem que passar... você descobre o que tem que passar...
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Portanto, preciso de um número inteiro...
Pessoal, a ajuda é necessária. A função tem que fechar metade das ordens necessariamente começando com a mais antiga. No primeiro caso, as ordens são fechadas uma a uma por alguma razão, e no segundo, começam a fechar na ordem errada.
Portanto, preciso de um número inteiro...
MathRound
por isso isto é arredondamento, o número não se torna intrigante, ele permanece o dobro
por isso, isto é arredondamento, o número não se torna int, mas permanece o dobro
Então? Existe uma diferença fundamental entre 1 e 1,0 para os cálculos? É claro que o formato é o dobro, mas o valor é inteiro.
Uma variante especialmente pervertida então: DoubleToStr e depois StringToInteger
Por favor, me diga como remover o aviso no novo compilador
possível perda de dados devido à conversão do tipo
Obrigado, então não há pré-aviso, já está comendo meu olho)
Olá, procurei no Kim's, mas não encontro nada que me permita saber: De qual ordem (pendente) abriu a posição? De uma ordem de limite ou de uma ordem de parada?
Eu tentei comparar os preços do último pedido aberto
com uma posição aberta sobre ela, mas toda a lógica está quebrada. Talvez haja algo mais adequado? Obrigado!
Pessoal, a ajuda é necessária. A função deve fechar metade das ordens necessariamente começando com a mais antiga. No primeiro caso, as ordens são fechadas uma a uma por alguma razão, e no segundo, começam a fechar na ordem errada.
Houve uma pergunta como esta, como fechar pedidos começando com o mais antigo, um par de páginas depois há uma resposta e o código correto.
https://www.mql5.com/ru/forum/145455/page406
Olá, procurei no Kim's, mas não encontro nada que me permita saber: De qual ordem (pendente) abriu a posição? De uma ordem de limite ou de uma ordem de parada?
Eu tentei comparar os preços do último pedido aberto
com uma posição aberta sobre ela, mas toda a lógica está quebrada. Talvez haja algo mais adequado? Obrigado!