Oi ainda sobre a questão do lote, tentei aqui um roteiro que pensei, mas o teste de estratégia dá um erro de tamanho de lote errado. Eu não sei se os dados históricos não suportam algumas funções ou o quê. O script é apenas para EURUSD. O que eu estou fazendo de errado ou é um problema de teste de estratégia?
extern int LotPercentage=10; // use 10% of balance as lot size double LotInBalance=(LotPercentage/100)*AccountBalance(); // find the amount that is 10% of balance lets assume its $1000 double LotUnits=LotBalance*AccountLeverage(); // multiply this 10% balance($100) by leverage to get lot units double lots=NormalizeDouble((LotUnits/100000),2); // expected to return 0.1 /* divide this lot units by 100,000(standard lot size units) and normalize to 2 decimal places to get something like 0.1 if account balance is say $1000*/
Você não precisa de ajuda, você já tem uma(https://www.mql5.com/en/forum/140034)! No entanto, você faz asneira!
Olá, o código que recebi traz um erro de "divisão zero" e o outro é grande e não foi testado.
Sim, só estou perguntando o que estou fazendo de errado em meu código. Eu também estou testando o código, mas parece fazer algo com o SL, o que eu não quero que o script faça.
double Balance=AccountBalance(); if(Balance<=500){lots=0.1;} if(Balance<1500&&Balance>1000){lots=0.3;} if(Balance<2500&&Balance>2000){lots=0.5;} if(Balance<3500&&Balance>3000){lots=0.7;} if(Balance<4500&&Balance>4000){lots=0.9;} if(Balance<5500&&Balance>5000){lots=1.1;} if(Balance<6500&&Balance>6000){lots=1.3;} if(Balance<7500&&Balance>7000){lots=1.5;} if(Balance<8500&&Balance>8000){lots=1.7;} if(Balance<9500&&Balance>9000){lots=1.9;} if(Balance>10000){lots=2;}
Oi eu também tentei isto mas ele deu o mesmo erro que acima talvez AccountBalance() e AccountFreeMargin() não funcionam no teste de estratégia aqui é o código porque eu começo com um saldo de $3000 no teste mas ele continua dando erro 4051 quantidade de lotes inválidos. E se eu puder perguntar se tenho $3000, o valor de AccountBalance() seria 3000 ou algo mais. Desculpe se estou com problemas.
Oh meu Deus,
Você obtém esse erro, porque ...você não calculou o custo para abrir essa quantidade de lote. Leia seu outro tópico https://www.mql5.com/en/forum/140034 e https://www.mql5.com/en/forum/140034/page2#649957
como corrigi-lo e o que a AccountBalance() retorna é seu valor em $ ou outras unidades.
Ele retorna na moeda de sua conta. Eu lhe dei anexo aquihttps://www.mql5.com/en/forum/140034
Como corrigi-lo use o cálculo do lote corretamente como este https://www.mql5.com/en/forum/140034
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Oi, ainda sobre a questão do lote, tentei aqui um roteiro que pensei, mas o teste de estratégia dá um erro de tamanho de lote errado. Eu não sei se os dados históricos não suportam algumas funções ou o quê. O script é apenas para EURUSD. O que eu estou fazendo de errado ou é um problema de teste de estratégia?