A função "CalculateCurrentOrders" não é referenciada e será removida do exp-file
ignore este erro; tudo o que está dizendo é que você tem uma função chamada CalculateCurrentOrders que você não está usando; então ou você a apaga ou a elimina; não causará nenhum dano; o sistema está dizendo que removerá esta função de seu arquivo compilado ex4
sob a função LotOptimization mude seu código para algo como isto
lote=lote*Fator de aplicação de multíplice*perdas
onde MulitplyFactor = 2 ou 3 ou 4 etc., semelhante ao seu Factor de Diminuição que é diminuir o tamanho do lote à medida que os kosses se montam
Tendo dito isso, aumentar o tamanho do lote à medida que as perdas aumentam é perigoso para a EA, portanto use com cuidado.
você quer dizer algo como isto?
//+------------------------------------------------------------------+ //| Calcular o tamanho ideal do lote | //+------------------------------------------------------------------+ duplo LotsOptimized() { lote duplo=Lotes*Multiplicação*perdas; int orders=HistóriaTotal(); // histórico total de ordens int losses=0; // número de ordens de perdas sem intervalo //---- selecione o tamanho do lote lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1); //---- calcule o número de ordens de perdas sem uma pausa if(DiminaseFactor>0) { for(int i=orders-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==falso) { Print("Erro na história!"); break; } if(OrderSymbol()!=Symbol() || OrderType()>OP_SELLL) continua; //---- if(OrderProfit()>0) quebra; if(OrderProfit()<0) perdas++; } if(perdas>1) lote=NormalizarDuplo(lote-lot*losses/DecreaseFactor,1); } //---- tamanho do lote de retorno if(lote<0,1) lote=0,1; retorno(lote); }
//+------------------------------------------------------------------+ //| Calcular o tamanho ideal do lote | //+------------------------------------------------------------------+ duplo LotsOptimized() { lote duplo=Lotes*Multiplicação*perdas; int orders=HistóriaTotal(); // histórico total de ordens int losses=0; // número de ordens de perdas sem intervalo //---- selecione o tamanho do lote lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1); //---- calcule o número de ordens de perdas sem uma pausa if(DiminaseFactor>0) { for(int i=orders-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==falso) { Print("Erro na história!"); break; } if(OrderSymbol()!=Symbol() || OrderType()>OP_SELLL) continua; //---- if(OrderProfit()>0) quebra; if(OrderProfit()<0) perdas++; } if(perdas>1) lote=NormalizarDuplo(Lotes*Multiplicação*perdas;,1);} //---- tamanho do lote de retorno if(lote<0,1) lote=0,1; retorno(lote); }
Diga-me se existe um sistema de teste na programação da EA para mostrar o que acontece quando esta EA é executada.
não, não há ftn passo a passo para testes; use Print para exibir valores para verificação e várias partes de programas yr
Gosto de seu código para o Lots Optimisation ; eu o ajustei para aumentar o volume do lote à medida que as perdas aumentam
Gosto de seu código para o Lots Optimisation ; eu o ajustei para aumentar o volume do lote à medida que as perdas aumentam
Mostre-me, por favor.
ou me envie sua EA
Mostre-me, por favor.
ou me envie sua EA
isso me dá um erro
A função "CalculateCurrentOrders" não é referenciada e será removida do exp-fileisso me dá um erro
A função "CalculateCurrentOrders" não é referenciada e será removida do exp-fileignore este erro; tudo o que está dizendo é que você tem uma função chamada CalculateCurrentOrders que você não está usando; então ou você a apaga ou a elimina; não causará nenhum dano; o sistema está dizendo que removerá esta função de seu arquivo compilado ex4
Mostre-me, por favor.
ou me envie sua EA
sob a função LotOptimization mude seu código para algo como isto
lote=lote*Fator de aplicação de multíplice*perdas
onde MulitplyFactor = 2 ou 3 ou 4 etc., semelhante ao seu Factor de Diminuição que é diminuir o tamanho do lote à medida que os kosses se montam
Tendo dito isso, aumentar o tamanho do lote à medida que as perdas aumentam é perigoso para a EA, portanto use com cuidado.
sob a função LotOptimization mude seu código para algo como isto
lote=lote*Fator de aplicação de multíplice*perdas
onde MulitplyFactor = 2 ou 3 ou 4 etc., semelhante ao seu Factor de Diminuição que é diminuir o tamanho do lote à medida que os kosses se montam
Tendo dito isso, aumentar o tamanho do lote à medida que as perdas aumentam é perigoso para a EA, portanto use com cuidado.
você quer dizer algo como isto?
//+------------------------------------------------------------------+//| Calcular o tamanho ideal do lote |
//+------------------------------------------------------------------+
duplo LotsOptimized()
{
lote duplo=Lotes*Multiplicação*perdas;
int orders=HistóriaTotal(); // histórico total de ordens
int losses=0; // número de ordens de perdas sem intervalo
//---- selecione o tamanho do lote
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
//---- calcule o número de ordens de perdas sem uma pausa
if(DiminaseFactor>0)
{
for(int i=orders-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==falso) { Print("Erro na história!"); break; }
if(OrderSymbol()!=Symbol() || OrderType()>OP_SELLL) continua;
//----
if(OrderProfit()>0) quebra;
if(OrderProfit()<0) perdas++;
}
if(perdas>1) lote=NormalizarDuplo(lote-lot*losses/DecreaseFactor,1);
}
//---- tamanho do lote de retorno
if(lote<0,1) lote=0,1;
retorno(lote);
}
você quer dizer algo como isto?
//+------------------------------------------------------------------+
//| Calcular o tamanho ideal do lote |
//+------------------------------------------------------------------+
duplo LotsOptimized()
{
lote duplo=Lotes*Multiplicação*perdas;
int orders=HistóriaTotal(); // histórico total de ordens
int losses=0; // número de ordens de perdas sem intervalo
//---- selecione o tamanho do lote
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
//---- calcule o número de ordens de perdas sem uma pausa
if(DiminaseFactor>0)
{
for(int i=orders-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==falso) { Print("Erro na história!"); break; }
if(OrderSymbol()!=Symbol() || OrderType()>OP_SELLL) continua;
//----
if(OrderProfit()>0) quebra;
if(OrderProfit()<0) perdas++;
}
if(perdas>1) lote=NormalizarDuplo(Lotes*Multiplicação*perdas;,1);}
//---- tamanho do lote de retorno
if(lote<0,1) lote=0,1;
retorno(lote);
}
não, coloque depois do if(perdas>1)
não, coloque depois do if(perdas>1)
isso me dá um erro
Multiplicação" - variável não definida C:\Program Files\Interbank FX Trader 4\jbtest4.mq4 (57, 44)
onde defini-la
isso me dá um erro
Multiplicação" - variável não definida C:\Program Files\Interbank FX Trader 4\jbtest4.mq4 (57, 44)
onde o defino
ok, tenho intrigado em multiplicar=2;