[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 581
Por que o lucro é tirado, não aquele que deveria ser..... quando o lote é fechado, mas quando o lucro deveria ser 30pp em lucro, diz algo completamente diferente....
O que é este absurdo: "essencialmente calcular a diferença entre abrir um pedido e fechá-lo) e resumir?????? ...
E em que volumes? Você não precisa saber? O preço de um ponto será diferente...
Os lucros não são contados em pips, mas em moeda, dependendo do volume das posições negociadas.
Por alguma razão o lucro é tomado, não aquele que deveria ser..... quando o lote é fechado, inversamente quando o lucro deveria ser 30pp em lucro ele é escrito completamente diferente....
Correto - aqui a perda total (perda) é calculada a partir do histórico de pedidos LOCAL fechados com perda.
Isto é um pouco diferente para você, mas o princípio é o mesmo.
//---------------------расчет по истории ордеров номера очередной итерации-----------------------------------------------
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;
}
}
}
}
}
O lucro do pedido não está em pips, mas na moeda do depósito.
preciso dele em pips, o lote é fixado em 1.... mas o lucro ou perda não corresponde ao real..... e quero calcular o número de pips em lucro e drawdown mais fácil e somá-lo e obter o resultado=)
Eu preciso dele em pips, o lote é fixado em 1.... mas o lucro ou perda não corresponde ao real..... e eu quero calcular o número de pips em lucro e drawdown mais fácil e somá-lo e obter o resultado=)
Eu preciso disso em pontos, o lote é constante 1.... mas por alguma razão o lucro ou perda não corresponde ao real..... para mim quero calcular o número de pontos de lucro e drawdown mais fácil de somar e obter o resultado =)
Bem, se o lote for constante, divida o lucro do testador pelo ponto. Você terá o lucro em pips.
A última função publicada pela Kim, GetPotentialLossInCurrency (https://forum.mql4.com/ru/11287/page107), conta apenas os pedidos em aberto:
if (OrderType()==OP_BUY) {
pl+=(OrderOpenPrice()-OrderStopLoss())/po*OrderLots()*tv;
}
if (OrderType()==OP_SELL) {
pl+=(OrderStopLoss()-OrderOpenPrice())/po*OrderLots()*tv;
}
Tentei estendê-lo um pouco para incluir pedidos pendentes (simplesmente adicionando outros tipos):
if (OrderType()==OP_BUY || OrderType()==OP_BUYLIMIT || OrderType()==OP_BUYSTOP) {
pl+=(OrderOpenPrice()-OrderStopLoss())/po*OrderLots()*tv;
}
if (OrderType()==OP_SELL || OrderType()==OP_SELLLIMIT || OrderType()==OP_SELLSTOP) {
pl+=(OrderStopLoss()-OrderOpenPrice())/po*OrderLots()*tv;
}
mas as ordens pendentes não são consideradas. Eles são contados de maneira diferente? A documentação não diz nada sobre esta....
Por que você faria isso? Exibir todas as bandeiras em um único Comentário de uma só vez.
Aqui:
int start()
{
//----RefreshRates(); // Обновление данных
Symb=Symbol();
int cnt, ticket, total;
int ABuy=0; // флаг на покупку /продажу int ASell=0;
Comment(".....Вот сюда и пишите вывод всех флагов......");
if (NewBar() == true)
{
x=x0; //передаем данные
x1=x01;
x2=x02;
Por que o lucro é tirado, não aquele que deveria ser..... quando o lote é fechado, mas quando o lucro deveria ser 30pp em lucro, diz algo completamente diferente....
O que é este absurdo: "essencialmente calcular a diferença entre abrir um pedido e fechá-lo) e resumir?????? ...
E em que volumes? Você não precisa saber? O preço de um ponto será diferente...
Os lucros não são contados em pips, mas em moeda, dependendo do volume das posições negociadas.
Por alguma razão o lucro é tomado, não aquele que deveria ser..... quando o lote é fechado, inversamente quando o lucro deveria ser 30pp em lucro ele é escrito completamente diferente....
O lucro do pedido não está em pontos, mas na moeda do depósito.
Correto - aqui a perda total (perda) é calculada a partir do histórico de pedidos LOCAL fechados com perda.
Isto é um pouco diferente para você, mas o princípio é o mesmo.
O lucro do pedido não está em pips, mas na moeda do depósito.
preciso dele em pips, o lote é fixado em 1.... mas o lucro ou perda não corresponde ao real..... e quero calcular o número de pips em lucro e drawdown mais fácil e somá-lo e obter o resultado=)
Correto - aqui a perda total (perda) é calculada a partir do histórico de pedidos LOCAL fechados com perda.
Isto é um pouco diferente para você, mas o princípio é o mesmo.
Obrigado, vou lidar com isso agora=)
Eu preciso dele em pips, o lote é fixado em 1.... mas o lucro ou perda não corresponde ao real..... e eu quero calcular o número de pips em lucro e drawdown mais fácil e somá-lo e obter o resultado=)
Mais uma vez:
O lucro do pedido não está em pips, mas na moeda do depósito.
Eu preciso disso em pontos, o lote é constante 1.... mas por alguma razão o lucro ou perda não corresponde ao real..... para mim quero calcular o número de pontos de lucro e drawdown mais fácil de somar e obter o resultado =)
Bem, se o lote for constante, divida o lucro do testador pelo ponto. Você terá o lucro em pips.
A última função publicada pela Kim, GetPotentialLossInCurrency (https://forum.mql4.com/ru/11287/page107), conta apenas os pedidos em aberto:
Tentei estendê-lo um pouco para incluir pedidos pendentes (simplesmente adicionando outros tipos): mas as ordens pendentes não são consideradas. Eles são contados de maneira diferente? A documentação não diz nada sobre esta....Mostre todas as bandeiras na tabela com Comentário` e você verá porque o comércio se abre.
colocá-lo dentro, agora os negócios não se abrem de forma alguma.
Eu o coloquei, agora ele não faz nenhuma careta.
Por que você faria isso? Exibir todas as bandeiras em um único Comentário de uma só vez.
Aqui: