Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 627
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Você pode me dizer como calcular as garantias para uma transação?
Tentei duas abordagens
(0.1 * Ask*MarketInfo(Symbol(),MODE_LOTSIZE))/AccountInfoInteger(ACCOUNT_LEVERAGE)
E este aqui
FreeMarginCheck=AccountFreeMarginCheck(Symbol(),OP_BUY,0.1);
double val=AccountFreeMargin()-FreeMarginCheck;
O primeiro dá resultados estranhos no EURJPY se minha moeda de depósito for USD. Preciso acrescentar algo à fórmula?
O segundo também funciona apenas uma vez, às vezes dá o valor certo, às vezes dá algum absurdo (depende do depósito)
A segunda variante é a forma correta de calcular o depósito. Para ser mais exato, a variável val mostra o valor dos fundos livres após o pedido ter sido feito e a variávelFreeMarginCheck mostra o valor do próprio depósito
A segunda opção é a forma correta de calcular a margem, ou melhor, você obtém o valor dos fundos livres na variável val após fazer um pedido, e a variávelFreeMarginCheck é o valor da margem em si.
Você tem certeza?
AccountFreeMarginCheck
Devolve a quantidade de fundos livres que restarão após a abertura da ordem especificada ao preço atual na conta corrente.
Há também aí uma sutileza:
Se o contador estiver aberto, ou seja, se houver um bloqueio completo ou incompleto na conta, a função pode dar valores incorretos.
Você tem certeza?
Sim, você está certo, isso é exatamente certo:
Devolve a quantidade de fundos livresremanescentes após a abertura da ordem especificada ao preço atual na conta corrente.
sobre negócios abertos, você precisa verificar, eu não me lembro, mas o mais provável é que o que o terminal escreve, deve concordar com os dados calculados: o número total de lotes em cada direção de negócios (BAY/SELL) para todos os símbolos, em seguida, chamar para cada símbolo
AccountFreeMarginCheck() passando por lotes em cada direção e somando estes resultados
O mercado está funcionando hoje, é fácil verificá-lo, como este
Saudações, você poderia me dizer o que há de errado com a função? A função realiza uma pausa comercial por tempo, os parâmetros incluem o início da pausa e o final da pausa.
A função lê o tempo não do servidor do corretor, mas do computador, apesar do fato de que o TimeCurrent é prescrito. Em geral, as negociações são fechadas durante a pausa, ou seja, a função não funciona.
Saudações, você poderia me dizer o que há de errado com a função? A função realiza uma pausa comercial por tempo, os parâmetros são início e fim da pausa.
A função lê o tempo não do servidor do corretor, mas do computador, apesar do fato de que o TimeCurrent é prescrito. Em geral, os negócios são fechados durante uma pausa, o que significa que a função não funciona.
UnprintTimeStart eStrToTime(TimeStart);
então não imprimirTimeCurrent()
seuTimeStart não está no formato de data/hora completa, ou seja, a hora será sempre o dia, mês e ano atuais quando você executar a EA, e então ela mudará?
E globalmente ... para determinar as horas e minutos de negociação as horas e minutos devem ser comparados ao tempo de servidor de hora e minuto, você só compara o fato de que o tempo de servidor é maior do que o especificado
SZZ: para evitar confusão, você podepensar na data como uma int, que é, e comparando 2datas, você está comparando 2 int
PSPS:
seu código provavelmente funcionará, você deve tentar dessa forma:
Normalmente conto o tempo desta maneira:
int h = TimeHour(TimeCurrent());
int m = TimeMinute(TimeCurrent());
e depois compará-lo com as configurações da EA
Obrigado, vou tentar descobrir, sou apenas um iniciante), com && opção em vez de |||| ainda não tentei online, a propósito, no testador este código funciona, ele lê o tempo do terminal, sem fechamento de pedidos durante a pausa, mas online é diferente.
Olá! O terminal não começa no testador de estratégia. Eu defino a data, por exemplo (2017,04,01 a 2018,05,29), pressiono o início, ele imediatamente dá uma parada. No registro, diz o seguinte,
TestGenerator: sem dados históricos 'EURUSD30' de 2017.04.01 a 2018.05.29. E assim por diante em qualquer segmento. Meu computador está funcionando, pensei que talvez não tivesse RAM suficiente. A mesma coisa no computador de casa, reiniciar não ajuda, mas funciona por um tempo. Eu fiz o download do Expert Advisor do Mercado, trial. Se alguém souber o motivo, por favor, avise.
Olá! O terminal não começa no testador de estratégia. Eu defino a data, por exemplo (2017,04,01 a 2018,05,29), pressiono o início, ele imediatamente dá uma parada. No registro, diz o seguinte,
TestGenerator: sem dados históricos 'EURUSD30' de 2017.04.01 a 2018.05.29. E assim por diante em qualquer segmento. Meu computador está funcionando, pensei que talvez não tivesse RAM suficiente. A mesma coisa no computador de casa, reiniciar não ajuda, mas funciona por um tempo. Fiz o download do Expert Advisor do Mercado, trial. Se eu tiver alguma idéia do motivo, você pode me dar uma dica?
Acho que o testador diz que não há dados do histórico, pressione F2 e baixe o histórico, depois reinicialize o terminal
Olá! O terminal não começa no testador de estratégia. Eu defino a data, por exemplo (2017,04,01 a 2018,05,29), pressiono o início, ele imediatamente dá uma parada. No registro, diz o seguinte,
TestGenerator: sem dados históricos 'EURUSD30' de 2017.04.01 a 2018.05.29. E assim por diante em qualquer segmento. Meu computador está funcionando, pensei que talvez não tivesse RAM suficiente. A mesma coisa no computador de casa, reiniciar não ajuda, mas funciona por um tempo. Eu fiz o download do Expert Advisor do Mercado, trial. Se eu souber o motivo, por favor, avise...
Nenhum dado histórico significa alguma coisa?
Acho que o testador está lhe dizendo que não há dados do histórico, pressione F2 e faça o download do histórico, depois recarregue o terminal
Obrigado! Vou tentar. A atualização do terminal o afeta de alguma forma? Seja ele atualizado ou não, embora ele mesmo o diga......