Referência conjunta de negociações fechadas longas e curtas
6 respostas
glennc
6 anos atrás #203095
Olá, obrigado por esse excelente programa.
Quero obter o lucro total do último número x de negociações, combinadas longas e curtas.
Se eu separar as posições compradas e vendidas com números mágicos, isso não me dará os totais das últimas x negociações compradas e das últimas x negociações vendidas, o que não é o mesmo que as últimas x negociações combinadas?
Se eu usar zero como número mágico, isso não incluirá as negociações de outros EAs do mesmo par de moedas em execução na plataforma?
Como faço para resolver isso? Tenho outros problemas relacionados a esse tipo de questão, este é um exemplo do problema.
tomas262
6 anos atrás #203217
Olá,
No EA Wizard, você pode usar Sum Of Closed PL (Soma de PL fechadas) para verificar se há apenas posições compradas ou vendidas com a mesma mágica para todas as posições compradas ou vendidas. Se você usar magic = 0, as ordens serão contadas em todos os pares negociados, e não apenas naquele em que você colocou o EA
glennc
6 anos atrás #203230
Olá, Thomas,
Obrigado por sua resposta.
Então, para confirmar: Eu simplesmente não consigo obter lucros/perdas em um determinado número de negociações, independentemente da direção da negociação?
Essa parece ser uma limitação infeliz. Como mencionei acima, essa pergunta é um exemplo de um problema maior. Se magic = 0 não pode se restringir apenas ao EA em questão, então certamente precisamos de uma função que permita
magicLong AND magicShort ou magicLong OR magicShort?
tomas262
6 anos atrás #203403
Para obter lucros totais de # de negociações históricas, você pode executar esta função (coloque no final do EAWizard \ code \ CustomFunction.mq4)
int sqGetTotalPL(int numberOfLastOrders) {
double pl = 0;
int count = 0;
int lucros = 0;for(int i=OrdersHistoryTotal(); i>=0; i-) {
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==verdadeiro && OrderSymbol() == Symbol()) {contar++;
if(OrderType() == OP_BUY) {
pl = (OrderClosePrice() - OrderOpenPrice());
{} else {
pl = (OrderOpenPrice() - OrderClosePrice());
}se (pl > 0) {
lucros++;
}Se (count >= numberOfLastOrders) break;
}
}retorno(lucros);
}
Em seguida, você pode fazer referência a ele usando a funcionalidade Função personalizada no Assistente de EA usando a chamada "sqGetTotalPL(3)" para obter o P/L das últimas 3 negociações em um símbolo selecionado
glennc
6 anos atrás #203693
Oi, Tomás,
Muito obrigado por isso - agradeço o tempo que deve levar. Ao ler o código (tendo em mente que não consigo ler código), isso me dará um resultado apenas para o EA no qual ele está incluído, e não todos os resultados para o par (OrderSymbol) no histórico do MT4? Estou tentando isolar o lucro/perda de várias negociações em um EA específico, mesmo que outros EAs estejam sendo executados no mesmo par na mesma plataforma.
Mais uma vez, obrigado por sua ajuda.
tomas262
6 anos atrás #203816
Olá,
esta declaração no código OrderSymbol() == Symbol() garante que ele fornecerá resultados apenas para o símbolo no qual você executa seu EA, por exemplo, EURUSD
glennc
6 anos atrás #217747
Obrigado, Tomas!
Visualizando 6 respostas - 1 até 6 (de um total de 6)