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
Não é correcto usar a condição == para variáveis de tipo duplo. Recomenda-se a comparação desta forma:
Não é correcto usar a condição == para variáveis de tipo duplo. Recomenda-se a comparação desta forma:
Bastante razoável, e o mais importante, uma abordagem sensata. Mas parece-me que pelo menos a primeira linha deveria ter ficado assim:
De vez em quando recebo estas mensagens no diário de bordo
2010.06.15 14:48:09 MemoryException 4915200 bytes não disponíveis
Não sei o que fazer ?
As seguintes mensagens aparecerão periodicamente no diário de bordo
2010.06.15 14:48:09 MemoryException 4915200 bytes não disponíveis
Não sei o que fazer ?
Não é correcto usar a condição == para variáveis de tipo duplo. Recomenda-se a comparação desta forma:
Memória op. insuficiente. Verificar o tamanho das matrizes dinâmicas, muito provavelmente uma tentativa de atribuir mais memória do que a disponível.
Se bem entendi, o operador deve ser sempre colocado no final da função de utilizador.
Penso que a resposta sobre == foi essencialmente. Deveria realmente haver um retorno(...) algures numa função de tipo duplo. Não necessariamente no final. Usando == operador em if() return(); pode causar saída falsa se tiver o tipo LotStep 0.1000000000000000001. Neste caso, nenhum dos retornos funcionará e a função não devolve nada. Embora no seu caso o regresso provavelmente não goste de NormalizeDouble no seu interior. Na sua versão que funciona, fixe o fim para regressar(NormilizeDouble(lote,2)) e veja se funciona. Eu próprio estou curioso sobre isso.
Penso que a resposta sobre == foi essencialmente. Deveria realmente haver um retorno(...) algures numa função de tipo duplo. Não necessariamente no final. Usando == operador em if() return(); pode causar saída falsa se tiver o tipo LotStep 0.1000000000000000001. Neste caso, nenhum dos retornos funcionará e a função não devolve nada. Embora no seu caso a devolução provavelmente não goste de NormalizeDouble dentro dela. Na sua versão que funciona, fixe o fim para regressar(NormilizeDouble(lote,2)) e veja se funciona. Eu próprio estou curioso sobre isso.
Deve haver retorno(...) no final, mas pode não chegar a ele (se uma das condições do Se funcionar)...
: Renat
O erro é que se esqueceu da moeda da margem nos seus cálculos. Saldo = 100 USD e exigência de margem = 100 EUR (119 USD).
É por isso que a operação não pode ser executada - tudo está correcto.
Quero voltar à minha pergunta sobre o cálculo correcto da margem. Como Renat notou nos meus cálculos, o LotRqdMgn (margem necessária para comprar 1 lote) não tem em conta o preço da moeda. Lembro-me de ter visto esta tabela
Identificador
Descrição
Fórmula
SÍMBOLO_CALC_MODE_FOREX
Modo Forex - cálculo de lucro e margem para Forex
Margem: Lotes*Tamanho_de_contrato/Alavancagem
Lucro: (fechar_preço_aberto_preço)*Tamanho_de_contrato*Lotes
SYMBOL_CALC_MODE_FUTURES
ModoFuturos- cálculo da margem e lucro para futuros
Margem: Lotes *Margem Inicial*Percentagem/100
Lucro: (fechar_preço_aberto_preço)*TickPrice/TickSize*Lots
SÍMBOLO_CALC_MODE_CFD
Modo CFD - cálculo da margem e lucro para CFD
Margem: Lotes *Tamanho do contrato*Preço de mercado*Percentagem/100
Lucro: (fechar_preço_aberto_preço)*Tamanho_de_contrato*Lotes
SÍMBOLO_CALC_MODE_CFDINDEX
Modo índice CFD - cálculo da margem e lucro para CFD por índices
Margem: (Lotes*TamanhoContrato*Preço de Mercado)*TickPrice/TickSize
Lucro: (fechar_preço_aberto_preço)*Tamanho_de_contrato*Lotes
SYMBOL_CALC_MODE_CFDLEVERAGE
Modo de alavancagem de CFD - cálculo de margem e lucro para CFD na negociação de alavancagem
Margem: (Lotes*Tamanho do contrato*Preço de mercado*Percentagem)/Alavancagem
Lucro: (fechar_preço_aberto_preço)*Tamanho_de_contrato*Lotes
Verifica-se então que existe um erro na tabela: em vez de Lots*Contract_Size/Leverage, deve ser Price*Lots*Contract_Size/Leverage.