Características da linguagem mql5, subtilezas e técnicas - página 10
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
Existe alguma forma de calcular a margem coberta?
Obrigado pela dica! No deserto é SymbolInfoMarginRate. Então agora é assim.
double GetMarginRequired( const string Symb )
{
}
Precisamos ser claros que na MT5 podem existir requisitos de margem muito diferentes em diferentes direcções. Ou seja, uma única variante do MT4 pode não funcionar. No Forex, é claro, este não será o caso. Mas tens de te lembrar. Portanto, em geral, você deve escrevê-lo desta forma
bool MyOrderCalcMargin( const ENUM_ORDER_TYPE action, const string symbol, const double volume, const double price, double &margin )
{
}
Muito obrigado! Agora está a funcionar em todo o lado sem problemas.
Pergunto-me se a função"MyOrderCalcMargin" ainda está a ser negociada e, em caso afirmativo, como negociá-la pelo menos no testador)
Acho que você pode calcular tudo através das funções Symbol.
Fórum sobre negociação, sistemas de negociação automatizados e testes de estratégia de negociação
Bugs, bugs, perguntas
fxsaber, 2017.02.28 10:48
Metaquotes-Demo, conta em USD, RTS-3.17.
TickValue dá um valor errado - em rublos, não na moeda da conta (USD).
FxPro-ECN. Os símbolos GOLD e GOLDEURO têm o mesmo valor TickValue. Embora, obviamente, devam ser diferentes nos tempos do EURUSD.
Truque MT5 no servidor FIBOGroup-MT5 SGDJPY
Nesta situação o MyOrderCalcMargin calcula correctamente, enquanto o normal OrderCalcMargin não o faz!
A função normal conta de acordo com a especificação do contrato especificada nas configurações do instrumento - com a moeda da margem NOK, respectivamente, para um lote é tomado 1000 NOK.
Você provavelmente conta como dividir o nome do par de moedas SGDJPY - você recebe 1000 SGD por um lote.
Por conseguinte, o problema é a especificação incorrecta do contrato do lado do corretor. Por favor, entre em contato com o corretor do servidor apropriado.
Ou seja, para fazer todo o OrderSend sincronizado com o ambiente de negociação e evitar armadilhas, basta fazer o código fonte dado como um arquivo mqh- e fazer o #include correspondente em seus programas.
Você pode parar de dançar com pandeiro.
SD me disse que desde a próxima construção OrderSend() vaifuncionar corretamente :)
A função regular conta de acordo com a especificação do contrato especificada nas configurações do instrumento - com a moeda de margem NOK, respectivamente, para um lote são necessários 1000 NOK.
No seu caso, deve ser uma divisão do nome do par de moedas SGDJPY - para um lote 1000 SGD é cobrado.
Por conseguinte, o problema é a especificação incorrecta do contrato do lado do corretor. Contacte o corretor do servidor apropriado.
O MT5 tem um mecanismo interno oculto que pode converter qualquer moeda para a moeda da conta. Neste caso o OrderCalcMargin 1000 NOK converte para o número apropriado em USD e o produz.
Por favor, torne este mecanismo público. Por exemplo,
Estas taxas de câmbio estão 100% disponíveis no terminal, uma vez que a OrderCalcMargin as calcula. Seu trabalho é especialmente notável nas contas MetaQuotes-Demo USD quando você pega símbolos FORTS - sua moeda margem está em RUR.
Isto é especialmente relevante por causa do chip/bug TickValue
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação
Bugs, bugs, perguntas
fxsaber, 2017.02.28 10:48
Metaquotes-Demo, conta em USD, RTS-3.17.
TickValue dá um valor errado - em rublos, não na moeda da conta (USD).
FxPro-ECN. Os símbolos GOLD e GOLDEURO têm o mesmo valor TickValue. Embora, obviamente, devam ser diferentes nos tempos do EURUSD.
Возвращает количество действующих ордеров.
int OrdersTotal();
Возвращаемое значение
Значение типа int.
Примечание
Не следует путать между собой действующие отложенные ордера и позиции, которые также отображаются на вкладке "Торговля" в панели "Инструменты". Ордер – это распоряжение на проведение торговой операции, а позиция является результатом одной или нескольких сделок.
При "неттинговом" учете позиций (ACCOUNT_MARGIN_MODE_RETAIL_NETTING и ACCOUNT_MARGIN_MODE_EXCHANGE) по каждому символу в любой момент времени может быть открыта только одна позиция, которая является результатом одной или более сделок. Не следует путать между собой позиции и действующие отложенные ордера, которые также отображаются на вкладке "Торговля" в панели "Инструменты".
При независимом представлении позиций (ACCOUNT_MARGIN_MODE_RETAIL_HEDGING) по каждому символу одновременно может быть открыто несколько позиций.
Смотри также
OrderSelect(), OrderGetTicket(), Свойства ордеров
" ordens pendentes activas", e NÃO ordens pendentes activas , quais são elas?
Olá, estou a ler a documentação:
Возвращает количество действующих ордеров.
int OrdersTotal();
Возвращаемое значение
Значение типа int.
Примечание
Не следует путать между собой действующие отложенные ордера и позиции, которые также отображаются на вкладке "Торговля" в панели "Инструменты". Ордер – это распоряжение на проведение торговой операции, а позиция является результатом одной или нескольких сделок.
При "неттинговом" учете позиций (ACCOUNT_MARGIN_MODE_RETAIL_NETTING и ACCOUNT_MARGIN_MODE_EXCHANGE) по каждому символу в любой момент времени может быть открыта только одна позиция, которая является результатом одной или более сделок. Не следует путать между собой позиции и действующие отложенные ордера, которые также отображаются на вкладке "Торговля" в панели "Инструменты".
При независимом представлении позиций (ACCOUNT_MARGIN_MODE_RETAIL_HEDGING) по каждому символу одновременно может быть открыто несколько позиций.
Смотри также
OrderSelect(), OrderGetTicket(), Свойства ордеров
" ordens pendentes válidas", e NÃO ordens pendentes válidas , quais são elas?
Pedidos pendentes - bystop, selltop, bylimit e bystop.
Posições - comprar e vender.
Não activo - ordens eliminadas e posições fechadas.
Pedidos pendentes - bystop, selltop, bylimit e bystop.
Posições - comprar e vender.
Não activo - ordens eliminadas e posições fechadas.
Como uma ordem é uma ordem para realizar uma operação de negociação, apenas ordens pendentes podem ser consideradas como "ordens ativas", enquanto as posições de compra e venda não são ordens para realizar uma operação de negociação. Ou estou a "perder alguma coisa"?