Forex error 130


Corrigindo o erro 130 - MT4 Estas não são soluções para o problema. Eu entendo qual é o problema, eu não sei como codificá-lo para resolvê-lo. Eu recebo o erro 130 devido ao fato de que meu preço de abertura na minha parada de compra é próximo ao meu preço atual. Se o preço continuar a subir, nunca será preenchido. O que eu estou querendo saber é que há uma maneira de aumentar o preço aberto por X quantidade quando isso acontece até que seja preenchido Os dois links e centenas desses links 62000 contêm a solução, mas você está me dizendo que não. Por que ele está lhe contando a solução? Está bem diante de seus olhos. O problema parece ser que você precisa de alguém para fazer o trabalho por você. Boa sorte, mas essa não é a maneira de aprender a codificar. Uma dica para você: Para evitar o erro 130 em seu pedido de compra, faça o seguinte: a) obtenha o Stoplevel do seu corretor b) compare o preço de mercado (Pergunte) do Stoplevel com o seu preço de BuyStop calculado. Se o preço de mercado Stoplevel gt BuyStop-preço, defina BuyStop-preço de mercado-preço Stoplevel Buffer-x, então o OrderSend funcionará sem receber erro 130 Buffer-x tem que ser definido por si mesmo e quando aplicado deve ser em pontos, não em pips. Entrou em Abr 2016 Status: Junior Membro 1 Mensagem Olá eu tenho este ea coded abaixo por favor alguém me ajude com relação a este erro ruidoso 130 ltinvalid stopsgt // -------------------- ---------------------------------------------- // soubra2003v2. 0.mq4 // Copyright 2016, soubra2003 // mql5 / pt / users / soubra2003 // ------------------------------ ------------------------------------ propriedade copyright quotCopyright 2016, soubra2003v2.0quot link da propriedade quotonesoubraquot property version quot2 .00quot Descrição da propriedade quot - Esta EA será negociada como descrito abaixo: quot descrição da propriedade 1) Condição de compra: A ordem pendente será definida como preço mais alto da anterior. candle Distance by user. quot descrição da propriedade 2) Condição de venda: A ordem pendente será definida como preço mais baixo do anterior. vela - Distância por user. quot descrição da propriedade quot 3) Atualizações de compra / venda ordens pendentes será geralmente com cada nova vela open. quot descrição da propriedade quot 4) O que é novo: Trailing Stop, Break Even amp Money Management. quot propriedade rigorosa include ltstdlib. mqhgt string de entrada sep3 quot --------------------- Configurações de Gerenciamento de Dinheiro ------------------ --- quot // MM Opções gtgtgtgtgtgtgtgt input bool MM falso // Entrada de Gestão de Dinheiro double CalcAmount 100 // Valor de AUTO Lot input double CalcLot 0.01 // Auto Lot Tamanho each Valor de entrada double LotSize 0.10 // Lot Size (Fixed) input string sep1 quot --------------------- Configurações de negociação --------------------- quot // Opções de Negociação gtgtgtgtgtgtgtgt input double orderdistance 10 // Distância (After Prev. Alta amp. Abaixo Prev. Baixa) extern double buystoploss 50 // Comprar Stop Loss extern double sellstoploss 50 // Vender Stop Loss extern double buytakeprofit 100 // Comprar Take Profit extern double selltakeprofit 100 // Sell Take Profit input int Slippage 5 string de entrada sep2 quot --------------------- Break Even amp T. Parar ----------------- ---- quot // Break Even amp T. Parar gtgtgtgtgtgtgtgt input bool BreakEven true // Break Even Status input double BreakEvenStart 5.0 // Break Even Iniciar entrada double BreakEvenValue 1.0 // Valor Break Even input bool TrailingStop true // Trailing Stop Status input double TrailingStopVal 10.0 // Trailing Stop Valor input string sep4 quot --------------------- Outras configurações -------------- ------- quot // Outra Opções gtgtgtgtgtgtgtgt string de entrada tradescommentquotsoubra2003Versão 2.0quot // Trades Comentário cor de entrada buyarrowcolor clrBlue // Comprar Seta Cor entrada cor sellarrowcolor clrRed // Vender seta Cor entrada cor deletearrowcolor clrYellow // Apagar Pendente Ordem Seta Cor de entrada de cor modifyarrowcolor clrWhite // Ordem Modificada Seta Cor // --- int slippage5 int buymagicnumber821454145 int sellmagicnumber192545451 double tradepointPonto double prevcdlhigh double prevcdllow double b uyprice double sellprice int buyticketno int sellticketno double Lotes double StopSprdLevel MarketInfo (Símbolo (), MODESTOPLEVEL) MarketInfo (Símbolo (), MODESPREAD) double BrokerMinLot MarketInfo (Símbolo (), MODEMINLOT) double BrokerMaxLot MarketInfo (Símbolo (), MODEMAXLOT) AnteriorClaramente1Alterar1 LOW1 buypriceprevcdlhighorderdistancetradepoint sellpriceprevcdllow-orderdistancetradepoint if (buystoplossgt0) buystoplossbuyprice-buystoplosstradepoint outra buystoplossNULL if (buytakeprofitgt0) buytakeprofitbuypricebuytakeprofittradepoint outra buytakeprofitNULL if (sellstoplossgt0) sellstoplosssellpricesellstoplosstradepoint outra sellstoplossNULL if (selltakeprofitgt0) selltakeprofitsellprice-selltakeprofittradepoint outra selltakeprofitNULL if (NewBar ()) CloseAll () CloseAll () se (buycounter ()) RefreshRates () int tktbuy OrderSend (Símbolo (), OPBUYSTOP, Lotes, preço da compra, derrapagem, buystoploss, buytakeprofit, tradescomment, buymagicnumber, NULL, buyarrowcolor) if (tktbuylt0) Imprimir ("Falha no pedido com erro: quot, ErrorDescription (GetLastError ())) mais Print (quotOrdem colocado com sucessoquot) if (sellcounter ()) RefreshRates () inttktsell OrderSend (Symbol (), OPSELLSTOP, Lotes, venderprice, slippage, sellstoploss, selltakeprofit, tradescomment, sellmagicnumber, NULL , sellarrowcolor) if (tktselllt0) Print ("O pedido falhou com o erro: quot, ErrorDescription (GetLastError ())) mais Imprimir (" Encomenda colocada com sucesso ") Comentário (" Previous Candle High ", NormalizeDouble (prevcdlhigh, Digits)," Pending Buy Order Should ser quot NormalizeDouble (buyprice, Dígitos), quot, "Previous Candle Low", NormalizeDouble (prevcdllow, Digits), "Pending Sell Order" deve ser "NormalizeDouble (sellprice, Digits), quot", quot ------- ----------------------------------------- quot, quotnquot, quot Status de Gerenciamento de Dinheiro: "MM,", "Break Even Status", "BreakEven", "Trailing Stop Status", "TrailingStop", "" --------------------- --------------------------- q "Broker Stop Out", "AccountStopoutLevel" (), "quot", "Stop Broker Stop Level", "StopSprdLevel", "Broker Max Lot Permitted", BrokerMaxLot, quotnquot, "Broker Min Lot Permit", BrokerMinLot). - // BuyTrailingStop () para (int cnt10 cnt1ltOrdersTotal () cnt1) int dataselectOrderSelect (cnt1, SELECTBYPOS) if (OrderStopLoss () NULL ampamp OrderType () ltOPSELL ampamp OrderSymbol () Símbolo () ampamp OrderMagicNumber () buymagicnumber) if (OrderType () ) (OPBUY) if (TrailingStop) TrailingStopValgt0) RefreshRates () bool ticketmodify OrderModify (OrderTicket (), OrderOpenPrice (), OrderStopLoss () (TrailingStopValtradepoint), OrderTakeProfit (), 0, modifyarrowcolor) if (ticketmodify) Imprimir (quotPartir: o pedido não pode ser modificado. quot, ErrorDescription (GetLastError ())) mais Imprimir (quotTrailing Stop Done. quot) // SellTrailingStop () para (int cnt20 cnt2ltOrdersTotal () cnt2) int ticketsEectOrderSelect (cnt2, SELECTBYPOS) if (OrderStopLoss () NULL ampamp OrderType () ltOPSELL ampamp OrderSymbol () Símbolo () ampamp OrderMagicNumber () sellmagicnumber) if (OrderType () OPSELL) if (TrailingStop ampamp TrailingStopValgt0) RefreshRates () int ticketmodify OrderModify (OrderTicket (), OrderOpenPrice (), OrderStopLoss () - (TrailingStopValtradepoint), OrderTakeProfit (), 0, modifyarrowcolor) if (ticketmodify) Imprimir (quotPasso: Ordem não pode ser modificada. Quot, ErrorDescription (GetLastError ())) mais Imprimir (quotTrailing Stop Done. quot) // BuyBreakEven () para (int cnt3 0 cnt3 lt OrdersTotal () cnt3) int ticketselecionar OrderSelect (cnt3, SELECTBYPOS) if (OrderType () OPSELL ampamp OrderSymbol () Símbolo () ampamp OrderMagicNumber () buymagicnumber) if (OrderType () OPBUY) if (BreakEvenStart gt 0 ampamp BreakEven) RefreshRates ( ) int ticketmodify OrderModi fy (OrderTicket (), OrderOpenPrice (), OrderOpenPropriedade () (BreakEvenValuetradepoint), OrderTakeProfit (), 0, modifyarrowcolor) if (ticketmodify) Imprimir ("Paralelo: o pedido não pode ser modificado," ErrorDescription (GetLastError ())) else Imprimir (quotBreak Even Placed Successfuly. quot) // SellBreakEven () para (int cnt4 0 cnt4 lt OrdersTotal () cnt4) int ticketselecionar OrderSelect (cnt4, SELECTBYPOS) if (OrderType () lt OPSELL ampamp OrderSymbol () Symbol () ampamp OrderMagicNumber ( ) sellmagicnumber) if (OrderType () OPSELL) if (BreakEvenStart gt 0 ampamp BreakEven) RefreshRates () int ticketmodify OrderModify (OrderTicket (), OrderOpenPrice (), OrderOpenPrice () - (ponto de equilíbrio BreakEvenValue), OrderTakeProfit (), 0, modifyarrowcolor) if (ticketmodify) Imprimir (quotBreak Even: O pedido não pode ser modificado, quot, ErrorDescription (GetLastError ())) else Imprimir (quotBreak Even Placed Successfuly. quot) // --------------- -------------------------------------------------- - // Função de especialista em closel // ---------- -------------------------------------------------- ------ void closeall () para (int i0 iltOrdersTotal () i) int selecioneOrderSelect (i, SELECTBYPOS, MODETRADES) if (OrderSymbol () Símbolo ()) if (OrderType () OPBUYSTOP OrderType () OPSELLSTOP) if ( OrderMagicNumber () buymagicnumber OrderMagicNumber () sellmagicnumber) bool deleteOrdemDelete (OrderTicket (), deletearrowcolor) if (delete) Print ("Falha na Ordem de Remoção, Err Desc:", ErrorDescription (GetLastError ())) mais Imprimir ("O Pedido foi Removido". quot) OrderSend Error 130 Error Opening Long Order: 130 Aqui está o código, que foi modificado de um consultor especialista que pode abrir negócios sem erro. Então não tenho certeza porque estou recebendo este erro. if (BarCloseltBollingerLower ampamp trendlt0) // O preço de fechamento é menor do que a linha superior do Bollinger // if (trendlt0) // Tendência está inoperante ticketOrderSend (Symbol (), OPBUY, Lotes, Ask, 3, Ask-TrailingStop, 0, quotTempo do contador : Long Order Placedquot, 16384,0, Green) // Abrir a ordem longa if (ticketgt0) if (OrderSelect (ticket, SELECTBYTICKET, MODETRADES)) Imprimir (pedido do quotBUY aberto. Quot, OrderOpenPrice ()) else Imprimir (quotErro abrindo a ordem LONG ., GetLastError ()) return (0) return (0) Verifique se seu valor de parada está correto e se ainda é um problema, Normalizado. Imprimir (quot ---------------------------------- stop value é quot, Ask-TrailingStop) ticketOrderSend (símbolo ( ), OPBUY, Lotes, Ask, 3, Ask-TrailingStop, 0, "Tendência de Contador: Long Order Placed", 16384,0, Green) // Open Long order O seu Ask pode ser 1.340 no EUR / USD, por exemplo. Qual é o valor do seu TrailingStop? Deve ser algo como 0,0010 ou 0,0020 ou 0,0011 ou 0,133 ou etecetera. Você está tentando subtrair 0.0001s e não inteiros como 10, 20, 11, etc. Se você quer que o TrailingStop seja um número inteiro que um usuário digita, como 10 por exemplo, então você tem que fazer 0.0010 primeiro para subtrair de Ask. Você pode fazer isso com o seguinte: TrailingStop Point. Aponte para o EURUSD 0.0001. Então você pode querer mudar seu código para o seguinte: Ask - (TrailingStop Point), que é o mesmo que Ask-TrailingStop Point. Abaixo está o código de um dos meus scripts, para que você possa ver como alguém pode fazer isso. OrderSend (Symbol (), OPBUY, dLotSize, Ask, 3, Ask - StoplossPoint. Pergunte à TakeprofitPoint, strOrderComment, MAGICID, 0, Green) // Open Buy Order Espero que isso funcione. Modificação de Pedidos O MQL4 permite que você modifique pedidos de mercado e pendentes . As encomendas são modificadas de acordo com as regras descritas em Características do Pedido e no Apêndice 3. Função OrderModify () Pedidos comerciais para modificação de ordens de mercado e pendentes são formados usando a função OrderModify (). A função modifica os parâmetros de ordens de mercado e pendentes. A função retorna TRUE, se a negociação for feita com sucesso. Caso contrário, retorna FALSE. ticket - o número único do pedido. preço - o preço recentemente solicitado de uma ordem pendente ou o novo preço de abertura para uma ordem de mercado. stoploss - o novo valor do StopLoss. takeprofit - o novo valor do TakeProfit. expiração - o tempo de expiração de um pedido pendente. arrowcolor - a cor das setas para modificar o StopLoss e / ou o TakeProfit no gráfico. Se este parâmetro não estiver disponível ou seu valor for igual ao de CLRNONE, as setas não serão exibidas no gráfico. Nota: Você pode alterar o preço de abertura e a expiração apenas para pedidos pendentes. Se você passar valores inalterados como os parâmetros da função, o terminal gerará o erro 1 (ERRNORESULT). Pode haver um conjunto de limitações para a aplicação do tempo de expiração a pedidos pendentes em alguns servidores de negociação. Nesse caso, se você tentar criar um valor diferente de zero nos parâmetros de expiração, o erro 147 (ERRTRADEEXPIRATIONDENIED) será gerado. Modificação de ordens de mercado Uma ordem de mercado padrão contém duas ordens de parada - StopLoss e TakeProfit. Eles instruem para fechar a ordem nos preços solicitados, a fim de parar as perdas e fixar os lucros. A modificação de ordens de mercado pode ser útil para alterar os preços solicitados de ordens de parada, seja como resultado de novos valores calculados obtidos no programa ou na iniciativa dos comerciantes. O terminal do cliente tem sua própria ferramenta usada para modificação do StopLoss: Trailing Stop. Ele permite que o programa modifique o nível de StopLoss seguindo a taxa a uma determinada distância fixa a partir dele (consulte o Guia do usuário do Terminal MetaTrader 4 Cleitn). A função de modificação de pedidos OrderModify () expande consideravelmente as capacidades de modificação: Os preços solicitados de ambas as ordens de parada podem ser alterados na direção do preço de mercado ou excluídos. Uma limitação para a modificação do pedido de mercado é a distância mínima permitida entre a ordem de parada e o preço de mercado, definida pelo centro de negociação (consulte Características e requisitos do pedido e Limitações na realização de negociações). Se o programa tentar alterar a posição de uma ordem de parada de tal forma que seja colocada mais próxima do mercado do que a distância mínima permitida, essa solicitação de negociação será rejeitada pelo terminal do cliente e a execução da função OrderModify () será falhar (erro 130). É por isso que você deve fornecer um bloqueio especial em seu programa, o que considerará essa limitação. Exemplo de um Expert Advisor simples que modifica o StopLosses de todas as ordens do mercado, para as quais a distância entre o preço solicitado do StopLoss e o preço de mercado é maior do que a predefinida (modifystoploss. mq4) O programa acima é um Expert Advisor. Se necessário, você pode facilmente realizar a função de modificação de pedidos em um script. No entanto, não seria muito útil usar um script normal neste exemplo, porque o script encerraria suas operações após a negociação ter sido feita. O uso de um script seria razoável, caso o programa realize uma execução única de uma operação, por exemplo, ordens de abertura ou fechamento. Neste caso, no entanto, estavam resolvendo uma tarefa que precisa de controle contínuo sobre a situação: alterar a posição de uma ordem de parada, se uma determinada condição for atendida, ou seja, se a distância entre a taxa de mercado e o valor solicitado da ordem de parada excede um certo valor pré-definido (10 pontos, no nosso caso). Para um uso de longo prazo, é muito mais conveniente escrever um EA que seja iniciado para execução a cada tique e pare de funcionar somente com a instrução direta do usuário. O algoritmo do EA modifystoploss. mq4 acima é muito simples. Os principais cálculos são realizados no ciclo de busca nas ordens (bloco 2-9). O pedido é pesquisado em ordens de mercado e pendentes (o pool de parâmetros na chamada de função OrderSelect () não é explicitamente especificado). No bloco 2-3, ordens pendentes e as ordens abertas para outro símbolo são filtradas para as ordens que foram selecionadas, o valor de StopLoss é determinado. O bloco 3-9 representa um ciclo para modificação da ordem selecionada. No bloco 3-4, o novo valor atual da distância limite é determinado (seu corretor pode alterar esse valor a qualquer momento). No bloco 4-5, a necessidade de modificar a ordem selecionada (atualmente processada no ciclo para) é calculada, bem como um novo valor de StopLoss. Se a ordem atual não precisa ser modificada, o programa sai do ciclo enquanto no final do bloco 4-5 e esta ordem não é modificada (no bloco 5-6). No entanto, se a ordem precisar ser modificada, o controle é passado para o bloco 5-6, no qual os parâmetros necessários são calculados e a função OrderModify () é chamada e forma uma solicitação de troca. Se uma negociação for concluída com sucesso, a interrupção do operador no bloco 6-7 encerrará a execução do ciclo while, o que resultará no término da iteração atual do ciclo de pesquisa de pedidos para (o próximo pedido começará a ser processado no ciclo). próxima iteração). Se a negociação não for executada com sucesso, os erros serão processados. Se um erro não for crítico, o programa tentará fazer uma troca. No entanto, se o erro for estimado como crítico, o controle será passado fora do ciclo de modificação para processamento do próximo pedido (no ciclo para). Você deve observar um pequeno recurso aqui relacionado à modificação de ordens de mercado. A função OrderModify () define novos valores de preço para as duas ordens de parada simultaneamente. No entanto, a necessidade de cumprir a distância mínima diz respeito apenas à ordem de parada, cujo novo valor difere do atual. Se o novo valor permanecer o mesmo que o atual, a ordem de parada poderá estar a qualquer distância do preço de mercado, enquanto a solicitação de troca correspondente é considerada como correta. Por exemplo, temos uma ordem de compra de mercado aberta ao preço de 1.295467, com as seguintes ordens de parada: StopLoss 1.2958 e TakeProfit 1.2960. A distância mínima definida pelo corretor é de 5 pontos. Para o preço de mercado Bid 1.2959, surgem as condições para modificação do pedido, ou seja, para colocação de StopLoss 1.2949 (Bid - 10 pontos). Para executar a função OrderModify (), você também deve especificar um novo valor de TakeProfit. Nosso EA não altera a posição de TakeProfit, portanto, definimos seu valor atual na função: TakeProfit 1.2960. Apesar de o novo valor solicitado de TakeProfit 1.2960 estar próximo do preço de mercado Bid (apenas 1 ponto, ou seja, menor que a distância mínima permitida de 5 pontos), este valor não difere do valor atual de TakeProfit 1.2960, portanto, a solicitação de negociação será considerada correta e executada no servidor (em geral, a solicitação pode ser rejeitada, mas por outros motivos). As figuras 102 e 103 representam os resultados de uma modificação bem-sucedida em tal situação. Fig. 102. Janela de alerta e janela de símbolo como aparecem na modificação de uma ordem pela EA modifystoploss. mq4 quando a taxa de mercado está próxima do valor solicitado de TakeProfit. Podemos ver na Fig. 103 que a modificação resultou no novo valor de StopLoss 1.2949, e o preço atual Bid 1.2959 estava a uma distância de 1 ponto do valor de TakeProfit. Deve notar-se separadamente que nem o mercado nem as ordens pendentes devem ser modificados) isoladamente da análise da situação do mercado. Essa modificação só pode ser útil se a taxa de mercado se mover rapidamente e em uma direção, o que pode acontecer após notícias importantes. Entretanto, se você negociar em um mercado normal, a decisão da necessidade de modificar pedidos deve ser feita com base em critérios de mercado. No Expert Advisor, modifystoploss. mq4. também usamos um critério (o StopLoss está mais longe do preço de mercado do que o desejado), com base no qual o programa decide modificar os pedidos. No entanto, esse critério é simples demais e difícil de ser considerado como um critério que caracteriza a situação do mercado. Modificação de pedidos pendentes A modificação de ordens pendentes difere ligeiramente das ordens de mercado. A diferença importante é que é possível alterar o preço solicitado do próprio pedido. Você deve manter as regras que limitam a posição de uma ordem pendente como relacionadas ao preço de mercado e às ordens de parada em relação ao preço do pedido solicitado (consulte Características do pedido e Requisitos e limitações na realização de negociações). Ao mesmo tempo, todas as características da ordem pendente são consideradas como solicitadas recentemente, independentemente do histórico anterior de eventos relacionados. Por exemplo, suponha que temos uma ordem pendente BuyStop 1.2030 com StopLoss 1.2025 e TakeProfit 1.2035. O corretor definiu a distância mínima permitida como 5 pontos. É fácil ver que as ordens de parada estão dentro da banda permitida, portanto, qualquer modificação do preço de abertura do pedido solicitado resultará na modificação necessária de pelo menos uma das ordens de parada. No entanto, se for formado um pedido de negociação que alterará o preço do pedido solicitado, os valores das ordens de parada permanecerão os mesmos, o terminal do cliente considerará esse pedido como errado e não o enviará ao servidor para execução. Por exemplo, se a solicitação especificar os seguintes valores: BuyStop 1. 2028, StopLoss 1.2025 e TakeProfit 1.2035, essa solicitação estará incorreta, embora os valores de suas ordens de parada não tenham sido alterados: nesse caso, a solicitação está violando a regra de mantendo a distância mínima entre o preço de abertura do pedido solicitado e o preço de um dos pedidos de parada (consulte Requisitos e limitações na realização de negócios). Vamos ver como um script pode parecer que modifica uma ordem pendente para aproximar seu preço solicitado ao preço de mercado para uma certa distância predefinida. Vamos definir a distância como 10 pontos. Para indicar a ordem a ser modificada (pode haver várias ordens pendentes na janela), estamos usando o preço, no qual o script foi anexado à janela de símbolos. Exemplo de um script simples que modifica uma ordem pendente, cujo preço de abertura solicitado está mais próximo do preço do anexo de script do que os preços de outros pedidos pendentes (modifyorderprice. mq4). A distância entre o preço de mercado e o preço solicitado da ordem pendente é definida na variável Tral. A variável WinPrice contém o valor do preço, no qual o script foi anexado à janela de símbolos. No ciclo de busca em ordens (bloco 2-5), as características da ordem mais próxima do nível de anexo do script são calculadas. O bloco 6-13 representa o ciclo de fechamento de pedidos. No bloco 8-9, é decidido se a ordem selecionada deve ser modificada. Se necessário, os novos valores do preço solicitado de ordens de parada são calculados aqui. A modificação da ordem é solicitada usando a função OrderModify () no bloco 10-11. Erros são processados ​​no bloco 11-13. O bloco 8-9 consiste em quatro blocos similares, nos quais os novos valores usados ​​na solicitação são calculados. Vamos considerar o pretendido para o pedido SellLimit: Os novos parâmetros do pedido são calculados somente se o preço atual do preço for maior do preço de mercado atual do Bid do que a distância desejada TS. Se assim for, o controle será passado para o corpo do operador se o novo preço de abertura do pedido, NewPrice, for calculado. Os novos valores de StopLoss e TakeProfit são calculados apenas para valores diferentes de zero. A distância entre o preço do pedido solicitado e cada preço da ordem de parada permanece a mesma. Por exemplo, o pedido SellLimit é colocado em 1.2050, seu StopLoss 1.2073 e seu TakeProfit 1. 2030. Suponha que os cálculos resultem em um novo preço de abertura de pedido igual a 1.2040. Neste caso, os novos valores de ordens de parada serão os seguintes: StopLoss 1.2063, TakeProfit 1. 2020. Assim, as operações do programa resultam em que a ordem é modificada cota um todo - todos os três parâmetros básicos (preço aberto, StopLoss e TakeProfit ) desce simultaneamente, mantendo uma distância entre eles. No final do bloco 8-9, os novos valores de ordens de parada são verificados quanto a valores negativos. Essa verificação é útil se uma ordem de parada previamente colocada (por outro programa ou manualmente) estiver próxima do preço zero, por exemplo, apenas 1 ponto acima de zero. Nesse caso, se o pedido for reduzido em mais de um ponto, o novo preço de um dos pedidos de parada se tornará negativo. Se esse valor fosse especificado em uma solicitação de troca, a solicitação seria rejeitada pelo terminal do cliente. Temos que apontar uma desvantagem de tais programas - tanto scripts quanto Expert Advisors. O programa modifyorderprice. mq4 acima é altamente limitado em sua decisão de ação. A ordem a ser modificada só pode ser movida em uma direção - na direção da taxa de mercado, e suas ordens de parada são estritamente "côncavas" para a ordem. Este programa não está ajustado para modificar o preço do pedido solicitado na direção diferente do preço de mercado. A possibilidade de alterar a posição de qualquer ordem de parada separada também não é realizada no programa. A limitação acima é determinada, em primeiro lugar, pela quantidade de controles utilizados. Neste programa, existe apenas um controle do tipo - o local onde o script foi anexado à janela de símbolos. Usando este parâmetro, o trader pode determinar qualquer ordem a ser modificada. No entanto, esta é toda a iniciativa dos usuários. Para trabalhar com mais eficiência, o usuário precisa de ferramentas adicionais, permitindo que ele afete outros parâmetros de pedidos. Essas tarefas podem ser resolvidas de maneira bastante eficiente usando o MQL4. No entanto, você terá que usar outro algoritmo, mais categórico para esse propósito. É possível criar um programa que automatize sua negociação e modifique pedidos de acordo com seus desejos. Você pode usar em tal programa, por exemplo, objetos gráficos como ferramentas de controle adicionais para negociação manual.

Comments