Monday, 24 July 2017

Forex Mql4 Error 130


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 Loss Take 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) --- Eu sei que há perguntas semelhantes a esta em outro lugar no fórum, mas nenhum deles parece resolver o problema com o meu script. Eu sou bastante novo para o MQL4, então não tenho certeza se há algo de óbvio que estou fazendo algo errado. Eu simplifiquei meu problema para colocar uma simples ordem de limite. Sempre que tento colocar uma ordem OPBUYLIMIT, recebo o erro 130. Estou usando a conta Demo do Alpari UK. Este é o meu código. Int Limite 10 int stoploss 2000 int takeprofit 2000 duplo BuyLimitPrice Ask - (LimitPoint) double StopPrice Ask - ((Limitstoploss) Point) dobro TakeProfitPrice Pergunte (ponto (- Limittakeprofit)) Imprimir (BuyLimitPrice quot Stop: quot StopPrice quot TakeProfit: quot TakeProfitPrice) Eu testá-lo no GBPUSD e obter a seguinte saída: 2010.01.18 10:18:47 2009.12.30 23:59 Limite de teste GBPUSD, H1: OrderSend error 130 2010.01.18 10:18:47 2009.12.30 23:59 LimitTesting GBPUSD, H1: 1.60740000 Stop: 1.58740000 TakeProfit: 1.62740000 Coloquei o stoploss e tirei valores de lucro a uma distância razoável do preço atual e do preço da ordem limite, então eu tenho certeza que deve haver algo mais errado. Eu também tentei definir o stoploss e tirar valores de lucro para zero, e isso dá o mesmo erro. Qualquer ajuda seria muito apreciada. Desde já, obrigado. Eu tenho um problema similar. Eu tenho erro 130 e não consigo rastrear o porquê. Eu realmente apreciaria algumas dicas. Eu verifiquei o seguinte. O SL é entregue como um preço real ao invés de pips away. É o formato correto. Um duplo e foi normalizado. É a figura correta. Confirmado por impressão na linha acima do pedido. É uma distância permitida. Não é o Boston Technologies Bridge referido em outro thread Alert: SL 1.4255 Bid 1.4201 OrderSend error 130 Fiquei sem idéias de onde procurar em seguida. Obrigado por qualquer ajuda, eu tenho um problema semelhante. Eu tenho erro 130 e não consigo rastrear o porquê. Eu realmente apreciaria algumas dicas. Eu verifiquei o seguinte. O SL é entregue como um preço real ao invés de pips away. É o formato correto. Um duplo e foi normalizado. É a figura correta. Confirmado por impressão na linha acima do pedido. É uma distância permitida. Não é o Boston Technologies Bridge referido em outro thread Alert: SL 1.4255 Bid 1.4201 OrderSend error 130 Fiquei sem idéias de onde procurar em seguida. Obrigado por qualquer ajuda, o TP poderia estar causando o erro de parada. Qual o valor do TP alvo pode estar causando o erro de parada. Qual o valor do destino que você encontrou. O TP estava mal calculado. Obrigado. Eu estava muito concentrado em tomar o código de falha literalmente. Por trilha e erro, descobri que o mínimo de Limite poderia ser de 30 (3 pips inteiros). Não tenho certeza se isso é diferente para outros corretores. Existe alguma função que lhe diga a distância que a ordem do limite precisa ser colocada. Da mesma forma, suas constantes devem ser dadas em pips não pontos e internamente ajustados para que ele funcione em qualquer corretor. Lembre-se também da OPSELL, o SL é relativo ao preço da Ask, por isso aparece no gráfico em 32 (spread) ou 50 pontos pelo menos da Licitação. Eu tenho algum problema semelhante com uma ordem de tipo Instant Market Sell. Parece que posso obter ajuda aqui, escrevi um exemplo de consultor especialista e o problema é esta parte: isso alerta quotinvalid stopsquot. Mas uma ordem do tipo OPSELLLIMIT com exatamente os mesmos parâmetros é executada sem nenhum problema. Experimentei valores diferentes para perda de parada, variando de 0 pontos a 1000 pontos e diferentes deslizamentos. Estou usando uma conta de demonstração com o spread 0 e MarketInfo (Symbol (), MODESTOPLEVEL) retorna 0 Ive obteve algum problema semelhante com uma ordem de tipo Instant Market Sell. Parece que posso obter ajuda aqui, tentei valores diferentes para perda de parada, variando de 0 pontos a 1000 pontos e diferentes derrapagens. Em corretores de 5 dígitos você deve ajustar TP, SL, e derrapagem. Em corretores de ECN, você deve abrir primeiro e, em seguida, arrumar paradas. Obrigado pela sua resposta . Mas esse código tem o mesmo problema. Eu usei seu código e apenas substituí Slippage. Pips com um valor inteiro, mesmo erro levantado após a execução. Para fins de aprendizagem, eu quero escrever um especialista simples que envie apenas um pedido de compra ou venda instantânea. E eu quero ajustar tudo de acordo com os parâmetros consultados do corretor.

No comments:

Post a Comment