Thursday 26 October 2017

Forex Mql4 Error 130


Variáveis ​​regulares extern double LotSize 0.1 extern double LotIncrement 0.1 extern double TakeProfitPip 10 extern double StopLossPip 21 se (Lotes 0) se (Multiplicador) se (Multiplicador 1) Lotes NormalizeDouble (LotSize, 2) else Lots NormalizeDouble (LotSize, 2) double xTp 0 Se (TakeProfitPip0) xTp Ask (TakeProfitPipPoint) OrderSend (Symbol (), OPBUY, Lots, Ask, Slippage, Bid (StopLossPipPoint), Ask (TakeProfitPipPoint), TradeComment, Reference, Green) Erro GetLastError () se (Erro 0) Escreva ( QuotError opening COMPRAR ordem: quot ErrorDescription (Error) quot (Cquot Error quot) Pergunte: quot Ask quot Slippage: quot Slippage) else TickPrice Close0 TradeAllowed false if (Lots 0) if (Multiplicador) if (Multiplier 1) Lots NormalizeDouble (LotSize, 2) mais Lots NormalizeDouble (LotSize, 2) xTp duplo 0 se (TakeProfitPip0) xTp Bid - (TakeProfitPipPoint) OrderSend (Symbol (), OPSELL, Lots, Bid, Slippage, Bid (StopLossPipPoint), Bid - (TakeProfitPipPoint), TradeComment, Referência, Vermelho) resOrderSend (Símbolo (), OPSELL, LotsOptimized (), Bid, 3, Bid (StopLossPoint), Bid - (TakeProfitPoint), quotSellquot, MAGICMA, 0, Vermelho) Erro GetLastError () se (Erro 0) Escrever (quotError opening SELL order: quot ErrorDescription (Erro) quot (Quota de erro Dquot) Lance: quot Bid quot Slippage: quot Slippage) else TickPrice Close0 TradeAllowed false Eu acredito que posso confirmar isso por exemplo. Alpari Micro Account (tem que ser uma conta quotlivequot), você precisa fazer OrderSend com zero SL e TP e, em seguida, imediatamente, modifique a ordem com o SL e TP necessários para que ele funcione. Eu faço um OrderSelect diretamente depois para que eu possa usar OrderOpenPrice () como o preço aberto na lista de parâmetros OrderModify. Isso é o que eu mudei no meu código e parece funcionar agora. Eu acho que eu tive o mesmo problema com o comerciante do Eixo, então talvez eu o tente novamente há algum tempo. A única coisa que fiz foi certificar-se de que, quando enviei o OrderSend, havia um número mágico não zero sobre ele. Boa sorte para all. int OrderSend (símbolo de seqüência simbólico int cmd. Operação duplo volume volume duplo preço preço int deslizamento deslizamento duplo stoploss stop loss double takeprofit take profit string comentárioNULL. Comentário int magic0. Magic number datetime expiration0. Cor pendente pendente da cor de flecha arrowcolorclrNONE) em Símbolo para negociação. No tipo de operação. Pode ser qualquer uma 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 (somente para pedidos pendentes). Em Cor da seta de abertura no gráfico. Se o parâmetro estiver ausente 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 comprar) podem ser usados ​​como preço aberto. Se a operação for executada 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 houver o preço aberto solicitado na faixa de preço 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 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-deslizamento. 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 parada errados ou não normalizados, o erro 130 (ERRINVALIDSTOPS) será gerado. Um valor zero de MODESTOPLEVEL significa ausência de restrições na 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 não-zero é especificado no parâmetro de expiração, o erro 147 (ERRTRADEEXPIRATIONDENIED) será gerado. Em alguns servidores comerciais, a quantidade total de pedidos pendentes e pendentes pode ser limitada. Se este limite foi excedido, nenhuma nova ordem será aberta (ou nenhuma ordem pendente será colocada) e o servidor de troca retornará o erro 148 (ERRTRADETOOMANORDERS). -------------------------------------------------- ---------------- Função de início do programa de script ------------------------------ ------------------------------------ void OnStart () --- obter 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) --- Coloque o pedido de mercado para comprar 1 lot int ticket OrderSend (Símbolo (), OPBUY, 1, preço, 3, stoploss, takeprofit, quotMy orderquot, 16384,0, clrGreen) if (ticketlt0) Imprimir (quotOrderSend falhou) Com erro. GetLastError ()) else Print (quotOrderSend colocado successfullyquot) --- A) Completamente cumprido com os requisitos de sintaxe MQL4 OrderSend () Seu código falha ao definir um preço de entrada de curto comércio correto, pois ele deve lê bastante Bid. Não Pergunte (este erro está oculto, pois é efetivamente mascarado por uma distância bastante cósmica de 100 pontos em uma distância de deslizamento tolerável do preço mencionado). Seu código falha ao atribuir int (0) no lugar, onde se espera cadeia. B) Erro 130: paradas inválidas Você deve verificar com o seu corretor alguns detalhes: os Termos de Amperios de seus Termos permitem OrderSend () one-stop-instruction, incl, TP amp SL, ou o Broker TampC exige primeiro abrir um comércio Apenas amplificador de posição depois que isso permita que uma instrução OrderModify () configure os níveis de preços do amplificador TP em qualquer caso, verifique as configurações do Corredor TampC para as distâncias AWOPLEVEL amp FREEZELEVEL, dentro das quais o Broker rejeita qualquer configuração ou configuração SL do amplificador TP ou Modificação (ões) do mesmo. C) Uma boa prática não é atribuir a variáveis ​​de iterador externas. Embora esta não seja uma causa raiz do seu problema, acostume-se com as melhores práticas do setor, uma das quais não é atribuir qualquer valor a um externo declarado. Em vez disso, declare sua própria variável, que você controle as atribuições de amplo alcance, mas deixe extern (es) sem contato do lado do seu código.

No comments:

Post a Comment