Olá a todos. Minha busca histórica não retorna o volume de lotes. É assim que se faz?
devolve o lote 0,1, embora os lotes sejam alterados pelo programa. os bilhetes são exibidos corretamente (alteração). um bug? um bug?
Ver código analógico, editar, tentar:
//---------------------расчет по истории ордеров номера очередной итерации-----------------------------------------------
Iteration = 0; // зануляем инерации перед их учетом в цикле по истории
Sum_Loss = 0; // суммарный убыток по этим итерациямdatetime
Time_at_History_Current = 0,
Time_at_History_Previos = 0;
if(OrdersHistoryTotal() != 0)
{
for(int counter = OrdersHistoryTotal()-1; counter >= 0; counter--)
{
OrderSelect(counter, SELECT_BY_POS, MODE_HISTORY);
if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
{
if(OrderType() == OP_BUY || OrderType() == OP_SELL)
{
if(OrderProfit() < 0) // если убыток по выбранному ордеру, то считаем суммарный и записываем время закрытия ордера// для последующего его анализа при подсчете количества итераций
{
double lastLoss = OrderProfit();
Sum_Loss=Sum_Loss+lastLoss; // считаем общий убыток по закрытым подряд убыточным ордерам
Time_at_History_Current = OrderCloseTime();
}
//Print(" Time_at_History_Current_в цикле = ", TimeToStr(Time_at_History_Current, TIME_DATE|TIME_SECONDS));//Print(" Time_at_History_Previos_в цикле = ", TimeToStr(Time_at_History_Previos, TIME_DATE|TIME_SECONDS));if(Time_at_History_Current != Time_at_History_Previos) // если они не равны, то считаем итерации и делаем их равными
{
Time_at_History_Previos = Time_at_History_Current ;
Iteration++;
//Print("Iteration at History в условии сравнения = ", Iteration);
}
else// они равны, то проверяем, дополнительно, наличие профита по выбранному следующему ордеру и выходим из цикла
{
if(OrderProfit() >= 0)
break;
}
}
}
}
}
Eu não preciso de um ciclo. Preciso obter o LOTE da última encomenda, não importa qual, eu não preciso filtrar. Não há nada sobre a LOTE no exemplo. Estou intrigado.
Eu não preciso de um ciclo. Preciso obter o LOTE da última encomenda, não importa qual, eu não preciso filtrar. Não há nada sobre a LOTE no exemplo. Estou intrigado.
Dê uma olhada - fiz edições do meu post anterior...
Eu não entendo. Um loop é necessário quando você precisa filtrar por alguns critérios, como no seu caso. Minha tarefa é mais simples - tirar a última encomenda da história. Por definição, é fechado e, por definição, não há posições abertas no mercado. As ordens pendentes não são utilizadas. Ou seja, a última ordem será definitivamente a do mercado. Os bilhetes são devolvidos corretamente, os lotes não são.
Pyro: Eu não entendo. Um loop é necessário quando você precisa filtrar por alguns critérios, como no seu caso. Minha tarefa é mais simples - tirar a última encomenda da história. Por definição, é fechado e, por definição, não há posições abertas no mercado. Os bilhetes são devolvidos corretamente, os lotes não são.
Obrigado por querer ajudar. Coloco se (D_sig==0) { comando por sinal ; }. "Passos" se tornaram menos, mas ainda assim eles estão lá. E não está claro como eles são formados.
Coloco o MathAbs para ter um "corredor" para comparação, porque a probabilidade de que as linhas de sinal sejam absolutamente iguais é insignificantemente pequena.
Talvez alguém mais tenha pensamentos sobre o meu problema?
Há uma função bool NewBar(). Por favor, faça uma função bool NewZZ() . Quando um novo joelho em ziguezague aparece -> verdadeiro.
E por que tal função, recentemente fez um neurônio na ZZ, EA, mas não usou tal função. Especialmente porque a maioria das ZZ's são projetadas apenas para a tomada de decisões visuais.
Olá a todos. Minha busca histórica não retorna o volume de lotes. É assim que se faz?
devolve o lote 0,1, embora os lotes sejam alterados pelo programa. os bilhetes são exibidos corretamente (alteração). um bug? um bug?Ver código analógico, editar, tentar:
Romano
Eu não preciso de um ciclo. Preciso obter o LOTE da última encomenda, não importa qual, eu não preciso filtrar. Não há nada sobre a LOTE no exemplo. Estou intrigado.
Romano
Eu não preciso de um ciclo. Preciso obter o LOTE da última encomenda, não importa qual, eu não preciso filtrar. Não há nada sobre a LOTE no exemplo. Estou intrigado.
Dê uma olhada - fiz edições do meu post anterior...
Eu não entendo. Um loop é necessário quando você precisa filtrar por alguns critérios, como no seu caso. Minha tarefa é mais simples - tirar a última encomenda da história. Por definição, é fechado e, por definição, não há posições abertas no mercado. Os bilhetes são devolvidos corretamente, os lotes não são.
Próprio! Aprenda a usar a busca! :-)
Obrigado por querer ajudar. Coloco se (D_sig==0) { comando por sinal ; }. "Passos" se tornaram menos, mas ainda assim eles estão lá. E não está claro como eles são formados.
Coloco o MathAbs para ter um "corredor" para comparação, porque a probabilidade de que as linhas de sinal sejam absolutamente iguais é insignificantemente pequena.
Talvez alguém mais tenha pensamentos sobre o meu problema?
Escrevi-o assim e ele exibe D_Sig no comentário.
Olá a todos.
Há uma função bool NewBar(). Por favor, faça uma função bool NewZZ() . Quando um novo joelho em ziguezague aparece -> verdadeiro.
Olá a todos.
Há uma função bool NewBar(). Por favor, faça uma função bool NewZZ() . Quando um novo joelho em ziguezague aparece -> verdadeiro.
E por que tal função, recentemente fez um neurônio na ZZ, EA, mas não usou tal função. Especialmente porque a maioria das ZZ's são projetadas apenas para a tomada de decisões visuais.