[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 30

 
Eu vi Dimka novamente! Ele colocou uma fita no carro. E agora ele está gaseando, gaseando, a luz está piscando, mas não há nada no velocímetro! Ele está preocupado de não poder dirigir para o trabalho amanhã! O que você acha?
 
villy:
Eu vi Dimka novamente! Ele colocou uma fita no carro. E agora ele está gaseando, gaseando, a luz está piscando, mas não há nada no velocímetro! Ele está preocupado de não poder dirigir para o trabalho amanhã! O que você acha?

Você já tentou um tratamento?
 
Pode ser, quem resolveu e é tal solução possível no mt4. Não encontrado. Precisa de uma EA ou de um script que monitore as negociações de outras EA (EA negocia em pares diferentes com o mesmo magik). E após fechar cada ordem, um cheque sobre como atingir o lucro magik (previamente inserido nas configurações da EA). Se o lucro for maior ou igual, a EA seguinte deve parar as negociações pela EA. Além deste assessor comercial, há outros que negociam na conta. Como foi constatado, o EA EquityLimits(_http://mtexperts.narod.ru/files/EquityLimits_EA.ex4) monitora a diferença atual entre o saldo da conta e os fundos e, no caso de atingir os limites especificados, fecha todas as ordens e desabilita todos os assessores (clique no botão "Assessores" na barra de ferramentas). Este ponto não é satisfeito.
 
granit77:

42
laveosa 22.12.2012 14:46 | banido| eliminar
Tenho aqui um caso muito estranho. Estou testando o consultor sobre a história de 2004 a 2012 e o resultado é um, positivo, e então faço um teste sobre o período de 2009 a 2012 e é completamente diferente. um grande número de pedidos, mais de 20000 por um período de 8 anos. quando o teste é grande, então o gráfico de barras de rentabilidade mostra que de 2009 a 2012 o lucro é limpo e bonito e quando você testa qualquer distância menor que 2009, então apenas CHAOS. Por acaso você sabe o que poderia ser. Agradecemos antecipadamente :)


Eu diria que sua EA está super otimizada... Mas se foi de 2004 a 2012 e depois de 2009 a 2012, então muito provavelmente no intervalo de 2004 a 2008 inclusive, alguma ordem foi pendurada aberta, que foi fechada com sucesso (ou talvez sem sucesso) no final dos testes.
 
evgenGX:
Pode ser, quem resolveu e é tal solução possível no mt4. Não encontrado. Precisa de uma EA ou de um script que monitore as negociações de outras EA (EA negocia em pares diferentes com o mesmo magik). E após fechar cada ordem, uma verificação para atingir o lucro magik (previamente inserido nas configurações da EA). Se o lucro for maior ou igual, a EA seguinte deve parar as negociações pela EA. Além desta EA de negociação, existem outras negociações na conta. Como encontrado EA EquityLimits(_http://mtexperts.narod.ru/files/EquityLimits_EA.ex4) monitora a diferença atual entre o saldo da conta e os fundos e, no caso de atingir os limites especificados, fecha todas as ordens e desabilita todos os conselheiros (clique no botão "Conselheiros" na barra de ferramentas). Este ponto não é satisfeito.

Em primeiro lugar, alcançar o lucro com a magia... isso é algo novo)))) Bem, se há muitos Expert Advisors, por que não usar variáveis globais para cada um deles?
 

ajudar eh!!!!

como obter o número de ordens perdidas (fechadas na história) das últimas 10 ordens fechadas ???

há uma função, mas procura apenas uma ordem específica

aqui:

double WW1(int stop,int mn=-1, string sy="", int op=-1 ) {
datetime t;
double ocp, osl;
int dg, i, j=-1, k=OrdersHistoryTotal() -1 ;<- aqui podemos mudar o número de série do pedido a partir do final (-1 é o penúltimo, se removermos -1 é o último, etc.)etc.)

if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy ||| sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
}
}
}
}
}
}
if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {

double rr=OrderProfit();


}
return(rr);
}


usando esta função, é claro que eu defino o tipo de perda ou ganho

Alguém tem uma função que lê as últimas 10 ordens e dá o número de ordens perdidas delas?

 

Há, é claro, uma sugestão para fazer desta função um tipo de função bool, para obter respostas verdadeiras ou falsas,

mas então precisaremos de 10 funções com números diferentes (de 1 a -9) e então teremos o número de falsos e verdadeiros

então quem pode aconselhar como receber o número de falsidades e falsidades?

mas isto é um monte de operações e fórmulas, eu considero isto uma perversão

 
evgenGX:
Pode ser, quem resolveu e é tal solução possível no mt4. Não encontrado. Precisa de uma EA ou de um script que monitore as negociações de outras EA (EA negocia em pares diferentes com o mesmo magik). E após fechar cada ordem, um cheque sobre como atingir o lucro magik (previamente inserido nas configurações da EA). Se o lucro for maior ou igual, a EA seguinte deve parar as negociações pela EA. Além desta EA, há outras operações na conta. Como encontrado EA EquityLimits(_http://mtexperts.narod.ru/files/EquityLimits_EA.ex4) monitora a diferença atual entre o saldo da conta e os fundos e, no caso de atingir os limites especificados, fecha todas as ordens e desativa todas as EAs (pressionando o botão "EAs" na barra de ferramentas). Este ponto não é satisfeito.
Dois Expert Advisors podem "se comunicar" um com o outro através de variáveis globais do terminal. A EA seguinte cria uma variável GV, por exemplo Symbol_STOP, após o evento especificado (fechamento de todas as ordens) e define a variável como 1. E a EA comercial monitora a variável e se ela encontrar esta variável e seu valor for 1, a EA sairá (retornará).
 
gheka:

ajudar eh!!!!

Como obter o número de ordens perdidas (fechadas na história) das últimas 10 ordens fechadas?

uso esta função para definir o tipo de perda ou ganho

talvez haja uma função que lê as últimas 10 ordens imediatamente e dá uma série de ordens perdidas delas?


é assim que é resolvido
int num_losed,tt,check=10;
for(tt=OrdersHistoryTotal()-1;tt>=0;tt--) if(OrderSelect(tt,SELECT_BY_POS,MODE_HISTORY) && OrderSymbol()==Symbol() && OrderMagicNumber()==magic) {
if(OrderProfit()<0) num_losed+++;
verificar..;
if(check<=0) break;

}

 
keep87:


Quando o código excede 1000 linhas, você começa a escrever compacto )

também no MT4 o desempenho sofre, especialmente quando se realizam testes. A versão lacônica tem um desempenho mais rápido.


Pelo que ouvi, o compilador remove todas as "lacunas" ao compilar o código. Logicamente não deve se importar com a opção de escrever para o desempenho, pois na saída do arquivo compilado será a mesma "sem vazios".

Não é assim?