Sunday, 24 February 2019

Mql4 ordersend without take profit forex


Int OrderSend (símbolo de seqüência simbólico int cmd operação volume duplo volume preço duplo preço int deslizamento deslizamento dupla folheada parada perda dupla aproveitabilidade obtenha lucro cadeia comentárioNUNTO comentário int mágico número mágico datetime expiration0 pendente pendência cor de validade arrowcolorclrNONE Cor) no símbolo para negociação. No tipo de operação. Pode ser qualquer da enumeração da operação comercial. Em número de lotes. Em Deslizamento máximo do preço para comprar ou vender ordens. Em Stop loss level. Em Tire o nível de lucro. No texto do comentário da ordem. A última parte do comentário pode ser alterada pelo servidor. Em ordem número mágico. Pode ser usado como identificador definido pelo usuário. No prazo de caducidade da ordem (somente para pedidos pendentes). Em Cor da seta de abertura no gráfico. Se o parâmetro estiver faltando ou a seta de abertura do valor CLRNONE não for desenhada no gráfico. Retorna o número do ticket atribuído à ordem pelo servidor de comércio ou -1 se falhar. Para obter informações de erro adicionais, é necessário chamar a função GetLastError (). Na abertura de um pedido de mercado (OPSELL ou OPBUY), apenas os preços mais recentes da Oferta (para venda) ou Perguntar (para compra) podem ser usados ​​como preço aberto. Se a operação for realizada com uma segurança diferente da atual, a função MarketInfo () deve ser usada com o parâmetro MODEBID ou MODEASK para obter as últimas cotações para essa segurança. O preço calculado ou não normalizado não pode ser aplicado. Se não houve o preço aberto solicitado no segmento de preço ou não foi normalizado de acordo com a quantidade de dígitos após o ponto decimal, o erro 129 (ERRINVALIDPRICE) será gerado. Se o preço aberto solicitado estiver totalmente desactualizado, o erro 138 (ERRREQUOTE) será gerado de forma independente no parâmetro de deslizamento. Se o preço solicitado estiver desactualizado, mas presente no segmento, a ordem será aberta no preço atual e somente se o preço atual estiver dentro da faixa de preço-derrapagem. Os níveis StopLoss e TakeProfit não podem estar muito perto do mercado. A distância mínima dos níveis de parada nos pontos pode ser obtida usando a função MarketInfo () com o parâmetro MODESTOPLEVEL. No caso de níveis de paragem errados ou não normalizados, o erro 130 (ERRINVALIDSTOPS) será gerado. Um valor zero de MODESTOPLEVEL significa ausência de restrições sobre a distância mínima para Stop LossTake Profit ou o fato de que um servidor de comércio utiliza alguns mecanismos externos para controle de nível dinâmico, que não podem ser traduzidos no terminal do cliente. No segundo caso, GetLastError () pode retornar o erro 130, porque MODESTOPLEVEL está realmente quotfloatingquot aqui. Ao colocar uma ordem pendente, o preço aberto não pode ser muito próximo ao mercado. A distância mínima do preço pendente do mercado atual em pontos pode ser obtida usando a função MarketInfo () com o parâmetro MODESTOPLEVEL. Em caso de falso preço aberto de uma ordem pendente, o erro 130 (ERRINVALIDSTOPS) será gerado. A aplicação do tempo de caducidade pendente pode ser desativada em alguns servidores comerciais. Nesse caso, quando um valor diferente de zero for especificado no parâmetro de expiração, o erro 147 (ERRTRADEEXPIRATIONDENIED) será gerado. Em alguns servidores de comércio, a quantidade total de pedidos pendentes e pendentes pode ser limitada. Se esse limite foi excedido, nenhuma nova ordem será aberta (ou nenhuma ordem pendente será colocada) e o servidor de troca retornará o erro 148 (ERRTRADETOOMANYORDERS). -------------------------------------------------- ---------------- Função de início do programa de script ------------------------------ ------------------------------------ void OnStart () --- obtenha o mínimo de nível de parada double minstoplevel MarketInfo (Símbolo (), MODESTOPLEVEL) Imprimir (quotMinimum Stop Levelquot, minstoplevel, quot pointsquot) preço duplo Peça --- os preços calculados de SL e TP devem ser normalizados dupla folga NormalizeDouble (Bid - minstoplevel Point Point Digs) double takeprofit NormalizeDouble (Bid minstoplevel Point Digits) --- colocar o pedido de mercado para comprar 1 lot Int ticket OrderSend (Symbol (), OPBUY, 1, preço, 3, stoploss, takeprofit, quotMy orderquot, 16384,0, clrGreen) if (ticketlt0) Imprimir (quotOrderSend falhou) Com erro. GetLastError ()) else Print (quotOrderSend colocado com sucesso) --- Você já desejou que você pudesse clicar duas vezes em um script MT4 para vender e tê-lo automaticamente anexar uma perda de parada e tomar ordem de lucro para a entrada no Metatrader Com o Metatr Script ader descrito neste artigo, você pode fazer exatamente isso. Por padrão, dentro do código MQL4, uma caixa será exibida toda vez que você clicar duas vezes no script do Metatrader. Para desativar a caixa pop-up, comente a seguinte linha no código MQL4: property showconfirm comente esta linha para eliminar a caixa de confirmação As entradas internas do MQL4 merecem alguma explicação. Eles são: lotes representa o tamanho do comércio. Se você está negociando através de um corretor forex que oferece apenas mini lotes e não lotes micro, você precisará modificar o valor Lotes para 0,1. Stoploss representa o montante da perda de parada (em pips) para a entrada comercial. Para perda sem paradas, set stoploss 0 takeprofit é a quantidade do alvo de lucro que você deseja em pips da entrada comercial. Se você não quer ter um lucro, defina takeprofit 0 Slippage é o montante de derrapagem em pips que é permitido para a entrada comercial em seu corretor Metatrader. Se o deslizamento for maior que o valor especificado no código MQL4, não haverá entrada. MagicNumber é uma variável MQL4 para definir o número mágico. Esta é uma maneira de permitir que estratégias múltiplas sejam negociadas e gerenciadas no Metatrader em uma única conta forex. Se você não precisa de um número mágico, deixe o valor no zero padrão. Lógica de código: o script MT4 tenta colocar uma ordem de venda em sua conta forex. Se um erro for encontrado na colocação de pedidos, o script Metatrader continuará tentando um máximo de 5 vezes com uma pausa de 3 segundos entre cada repetição por um total de 15 segundos. Se o script Metatrader não conseguir colocar o comércio de acordo com o código MQL4, ele sai. Após a entrada, o script MT, então, tenta modificar a perda de perda e lucro para os valores nos padrões no código MQL4. Se o script Metatrader for executado corretamente e a perda de parada e o lucro obtido forem definidos, ele sai. Se ocorrer um erro, o script Metatrader continuará a tentar colocar a ordem para um máximo de 5 tentativas de 3 segundos cada. Baixe o arquivo abaixo e copie-o na sua pasta ..expertsscripts. Depois de reiniciar o Metatrader 4 para que ele tenha a chance de compilar e encontrar o script MQL4 e colocá-lo no painel Metatrader Navigator. Você deve ver o script MQL4 SellSLTP listado em Scripts se você copiou o arquivo MQ4 no local certo e reiniciou seu Metatrader. Você pode postar esse script MT4 em outros sites, mas se você fizer isso, você deve postar um link diretamente nesta página e você não pode vendê-lo ou o código-fonte. Você é de outra forma livre para copiar, usar e distribuir este script MQL4 para uso não comercial.

No comments:

Post a Comment