Thursday, 12 October 2017

Mql4 Ordersend Without Take Profit Forex


Referência MQL4 MetaQuotes Language 4 (MQL4) é uma linguagem interna para programação de estratégias de negociação. Esta linguagem é desenvolvida pela MetaQuotes Software Corp. com base em sua longa experiência na criação de plataformas de negociação on-line. Usando esse idioma, você pode criar seus próprios Expert Advisors que tornam o gerenciamento de negócios automatizado e são perfeitamente adequados para implementar suas próprias estratégias de negociação. Além disso, usando MQL4 você pode criar seus próprios indicadores técnicos (indicadores personalizados), scripts e bibliotecas. MQL4 contém um grande número de funções necessárias para analisar as cotações atuais e recebidas anteriormente, e tem built-in indicadores básicos e funções para a gestão de ordens de comércio e controlá-los. O MetaEditor (editor de texto) que destaca diferentes construções de linguagem MQL4 é usado para escrever o código do programa. Ele ajuda os usuários a orientar-se no texto do sistema especialista com bastante facilidade. O breve guia contém funções, operações, palavras reservadas e outras construções de linguagem divididas em categorias e permite encontrar a descrição de cada elemento usado da linguagem. Os programas escritos em MetaQuotes Language 4 têm características e propósitos diferentes: Expert Advisor é um sistema de negociação mecânico ligado a um determinado gráfico. Um Expert Advisor começa a ser executado quando ocorre um evento que pode ser tratado por ele: eventos de inicialização e desinitialiação, evento de um novo recibo de tick, evento de timer, profundidade do evento de mudança de mercado, evento de gráfico e eventos personalizados. Um Consultor Especialista pode tanto informá-lo sobre uma possibilidade de comércio e comércio automaticamente em uma conta enviando ordens diretamente para um servidor de comércio. Expert Advisors são armazenados em terminaldirectoryMQL4Experts. Indicador personalizado é um indicador técnico escrito de forma independente, além daqueles já integrados no terminal do cliente. Como indicadores incorporados, eles não podem trocar automaticamente e são destinados apenas para a implementação de funções analíticas. Indicadores personalizados são armazenados em terminaldirectory MQL4Indicators Script é um programa destinado a uma única execução de algumas ações. Ao contrário de Expert Advisors, os scripts não processam nenhuma ação, exceto para o evento de início (isso requer a função de manipulador OnStart em um script). Os scripts são armazenados em terminaldirectoryMQL4Scripts A biblioteca é um conjunto de funções personalizadas destinadas a armazenar e distribuir blocos freqüentemente usados ​​de programas personalizados. As bibliotecas não podem começar a executar por si mesmas. As bibliotecas são armazenadas em terminaldirectoryMQL4Libraries Include File é um texto-fonte dos blocos mais usados ​​de programas personalizados. Esses arquivos podem ser incluídos nos textos de origem de Expert Advisors, scripts, indicadores personalizados e bibliotecas na fase de compilação. O uso de arquivos incluídos é mais preferível do que o uso de bibliotecas por causa de carga adicional que ocorre nas funções de biblioteca de chamada. Os arquivos de inclusão podem ser armazenados no mesmo diretório que um arquivo de origem - neste caso, a diretiva de inclusão com aspas duplas é usada. Outro local para armazenar arquivos include é terminaldirectoryMQL4Include, neste caso a diretiva include é usada com brackets. Im ângulo um pouco novo para isso. Alguém pode me dizer como fazer um pedido em um EA sem uma parada perda ou lucro tarket Na função OrderSend, coloque o valor de Ask - 999 para stoploss e pedir 999 para tomar lucro (thats para comprar comprido), ou lance 999 para stoploss E lance - 999 para o lucro da tomada (isso é para vender curto) COMPRAR LONGO. TicketOrderSend (Symbol (), OPBUY, Lotes, Ask, 3, Ask - 999 Point, AskTakeProfitPoint, quotTextquot, 16384,0, Green) VENDENDO CURTO. TicketOrderSend (Símbolo (), OPSELL, Lotes, Lance, 3, Lance 999 Point, Bid-TakeProfitPoint, quotTextquot, 16384,0, Vermelho) Im um pouco novo para isso. Alguém pode me dizer como fazer um pedido em um EA sem uma parada perda ou lucro tarket Na função OrderSend, coloque o valor de Ask - 999 para stoploss e pedir 999 para tomar lucro (thats para comprar comprido), ou lance 999 para stoploss E lance - 999 para o lucro da tomada (isso é para vender curto) COMPRAR LONGO. TicketOrderSend (Symbol (), OPBUY, Lotes, Ask, 3, Ask - 999 Point, AskTakeProfitPoint, quotTextquot, 16384,0, Green) VENDENDO CURTO. OrderOnderSend (Símbolo (), OPSELL, Lotes, Lance, 3, Lance 999 Ponto, Bid-TakeProfitPoint, quotTextquot, 16384,0, Vermelho) OrderSend int Símbolo de string // símbolo int cmd // operação volume duplo. / Volume duplo preço // preço int deslizamento // deslizamento duplo stoploss // stop loss duplo takeprofit // take profit string comentárioNULL // comentário int magic0. // número mágico datetime expiration0. // pendente ordem expiração cor ArrowcolorclrNONE // color) em Symbol para negociação. Em Tipo de operação. Pode ser qualquer um da enumeração da Operação Comercial. Em Número de lotes. Em Deslizamento de preço máximo para ordens de compra ou venda. No nível Stop loss. Em Tome 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. Na hora de expiração da Ordem (somente para pedidos pendentes). Em Cor da seta de abertura no gráfico. Se o parâmetro estiver ausente ou se a seta de abertura do valor CLRNONE não estiver desenhada no gráfico. Retorna o número do ticket atribuído ao pedido pelo servidor comercial ou -1 se ele falhar. Para obter informações de erro adicionais, tem de chamar a função GetLastError (). Na abertura de uma ordem de mercado (OPSELL ou OPBUY), somente os preços mais recentes de Oferta (para venda) ou de Pedir (para compra) podem ser usados ​​como preço aberto. Se a operação é executada com uma segurança diferente da corrente, a função MarketInfo () deve ser usada com o parâmetro MODEBID ou MODEASK para obter as cotações mais recentes para essa segurança. Preço calculado ou não-normalizado não pode ser aplicado. Se não houver o preço aberto solicitado no segmento de preços ou não tiver sido 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 desatualizado, o erro 138 (ERRREQUOTE) será gerado independentemente no parâmetro slippage. Se o preço solicitado estiver desatualizado, mas presente no segmento, a ordem será aberta ao preço atual e somente se o preço atual estiver dentro do intervalo de desvio de preço. Os níveis de StopLoss e TakeProfit não podem estar muito próximos do mercado. A distância mínima de níveis de parada em pontos pode ser obtida usando a função MarketInfo () com o parâmetro MODESTOPLEVEL. No caso de níveis de paragem erróneo ou não normalizado, o erro 130 (ERRINVALIDSTOPS) será gerado. Um valor zero de MODESTOPLEVEL significa ausência de quaisquer restrições na distância mínima para Stop Loss / Take Profit ou o fato de que um servidor comercial utiliza alguns mecanismos externos para controle de nível dinâmico, que não podem ser traduzidos no terminal cliente. No segundo caso, GetLastError () pode retornar o erro 130, porque MODESTOPLEVEL é realmente quotfloatingquot aqui. Na colocação de 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 preço aberto falso de uma ordem pendente, o erro 130 (ERRINVALIDSTOPS) será gerado. A aplicação do tempo de expiração da ordem pendente pode ser desativada em alguns servidores comerciais. Neste caso, quando um valor diferente de zero é especificado no parâmetro expiration, o erro 147 (ERRTRADEEXPIRATIONDENIED) será gerado. Em alguns servidores comerciais, o montante total de pedidos abertos e pendentes pode ser limitado. Se este limite tiver sido excedido, nenhuma nova ordem será aberta (ou nenhuma ordem pendente será colocada) eo servidor de comércio retornará o erro 148 (ERRTRADETOOMANYORDERS). // ------------------------------------------------ ------------------ // Função de início do programa de script // ------------------------ ------------------------------------------ void OnStart () // - - obter o nível mínimo de stop duplo minstoplevel MarketInfo (Symbol (), MODESTOPLEVEL) Imprimir (quotMinimum Stop Levelquot, minstoplevel, quot pointsquot) preço duplo Ask // --- calculado SL e TP preços devem ser normalizados double stoploss NormalizeDouble (Bid - minstoplevel Point (Digite) Digite o valor de mercado para comprar 1 lote int ticket OrderSend (Símbolo (), OPBUY, 1, preço, 3, stoploss, takeprofit, quotMy orderquot, 16384, 0, clrGreen) if (ticketlt0) Imprimir (quotOrderSend falhou com erro quot. GetLastError ()) else Imprimir (quotOrderSend colocado com êxito) // ---

No comments:

Post a Comment