Estou recebendo um erro ao tentar abrir uma posição Long: OrderSend Erro 130 Erro Abrindo Ordem Longa: 130 Aqui está o código, que foi modificado de um consultor especialista que pode abrir comércios sem erros. Então Im não sei por que estou recebendo este erro. // Se a tendência de queda for menor que a linha superior de Bollinger // se (trendlt0) // A tendência é baixa ticketOrderSend (Símbolo (), OPBUY, Lotes, Ask, 3, Ask-TrailingStop, 0, quotCounter Trend : Long Order Placedquot, 16384,0, Green) // Aberto Ordem longa se (ticketgt0) se (OrderSelect (ticket, SELECTBYTICKET, MODETRADES)) Print (ordem quotBUY aberta. Quot, OrderOpenPrice ().quot, GetLastError ()) return (0) return (0) Verifique se seu valor de parada está correto e se ainda é um problema, Normalized. Print (quot ---------------------------------- stop value is quot, Ask-TrailingStop) ticketOrderSend (Símbolo ), OPBUY, Lotes, Pergunte, 3, Ask-TrailingStop, 0, quotCounter Trend: Long Order Placedquot, 16384,0, Green) // Open A encomenda longa 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 números inteiros como 10, 20, 11, etc. Se você quiser que o TrailingStop seja um número inteiro que um usuário digite, como 10 por exemplo, então você tem que fazer 0.0010 primeiro para subtrair Ele de perguntar. Você pode fazer isso pelo seguinte: TrailingStop Point. Ponto sobre 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 se pode fazer isso. OrderSend (Símbolo (), OPBUY, dLotSize, Ask, 3, Ask - StoplossPoint Pergunte ao TakeprofitPoint, strOrderComment, MAGICID, 0, Green) // Abrir Ordem de Compra Espero que isto funcione. Pode alguém me ajudar com este erro Estou enviando um Pedido Usando este comando: Ticket OrderSend (Symbol (), OPBUY, 1, Ask, 3, 30, 30, quotBuyOrderquot, 0, 0, Green) Eu quero comprar 1 lote e definir StopLoss e TakeProfit para 30 pips e estou recebendo o erro 130 - Paradas inválidas. Tenho Conta demo AlpariUK e estou tentando isso em par EURUSD com o seguinteMarketInfo: MODEPOINT - gt 0,0001 MODEDIGITS - gt 4 MODESPREAD - gt 2 MODESTOPLEVEL - gt 2 MODELOTSIZE - gt 100000 MODETICKVALUE - gt 10 MODETICKSIZE - gt 0,0001 MODEMINLOT - gt 0,01 MODELOTSTEP - gt 0.01 MODEMAXLOT - gt 99999 Obrigado por qualquer ajuda Estou recebendo o mesmo erro com os trechos de código a seguir. Eu apenas não posso ver por que meu código está se comportando desta forma, mas talvez você ou algum outro ligado pessoa pode ser capaz de detectar o que eu perdi. Heres o fragmento ofensivo do código. E aqui está a saída de rastreamento mostrando as entradas para o erro eo próprio código de erro. Todas as idéias que Ive começaram erradas aqui Im que começam o mesmo erro com os seguintes snippets do código. Eu apenas não posso ver por que meu código está se comportando desta forma, mas talvez você ou algum outro ligado pessoa pode ser capaz de detectar o que eu perdi. Heres o fragmento ofensivo do código. E aqui está a saída de rastreamento mostrando as entradas para o erro eo próprio código de erro. Qualquer idéia que eu tenho errado aqui Procure NormalizeDouble () na Documentação Procure NormalizeDouble () na Documentação Que parece improvável que seja a resposta. Não é como se os preços estão sendo especificados para 6 ou 7 casas decimais (e minha experiência pessoal é que isso não importa de qualquer maneira - o corretor arredonda os preços, conforme necessário). Vale a pena ter em mente que theres uma razão new-ish para o erro 130, que (eu acho) entrou em existência desde os posts originais sobre este segmento em 2008. Se o seu corretor usa algo como a Boston Technologies Bridge, então o s / L e t / p tem que ser colocado separadamente de uma ordem de mercado, e (eu acho) você obtém o erro 130 se você tentar fazer o s / l e t / p como parte da ordem de mercado. Em outras palavras, tente colocar apenas a ordem de compra por si primeiro e, em seguida, fazer um OrderModify () para colocar no s / l e t / p. Isso parece improvável que seja a resposta. Não é como se os preços estão sendo especificados para 6 ou 7 casas decimais (e minha experiência pessoal é que isso não importa de qualquer maneira - o corretor arredonda os preços, conforme necessário). Vale a pena ter em mente que theres uma razão new-ish para o erro 130, que (eu acho) entrou em existência desde os posts originais sobre este segmento em 2008. Se o seu corretor usa algo como a Boston Technologies Bridge, então o s / L e t / p tem que ser colocado separadamente de uma ordem de mercado, e (eu acho) você obtém o erro 130 se você tentar fazer o s / l e t / p como parte da ordem de mercado. Em outras palavras, tente colocar apenas a ordem de compra por si primeiro e, em seguida, fazer um OrderModify () para colocar no s / l e t / p. // Variáveis regulares extern double LotSize 0.1 extern duplo LotIncrement 0.1 extern double TakeProfitPip 10 extern dual StopLossPip 21 if (Lotes 0) // if (Multiplicador) if (Multiplicador 1) Lotes NormalizeDouble (LotSize, 2) else Lotes NormalizeDouble (LotSize, 2) ) Double xTp 0 se (TakeProfitPip0) xTp Ask (TakeProfitPipPoint) OrderSend (Símbolo (), OPBUY, Lotes, Pergunte, Deslizamento, Licitação (StopLossPipPoint), Pergunte (TakeProfitPipPoint), TradeComment, Referência, Verde Erro GetLastError 0) Write (quotError opening COMPRAR ordem: quot ErrorDescription (Error) quot (Cquot Error quot) Pergunta: quot Pergunta quot Slippage: quot Slippage) else TickPrice Fechar0 TradeAllowed false if (Lotes 0) // if (Multiplier) if Multiplicador 1 ) Lotes NormalizeDouble (LotSize, 2) else Lotes NormalizeDouble (LotSize, 2) double xTp 0 se (TakeProfitPip0) xTp Bid - (TakeProfitPipPoint) OrderSend (Símbolo (), OPSELL, Lotes, Bid, Slippage, Bid (StopLossPipPoint) (TakeProfitPipPoint), TradeComment, Reference, Red) // resOrderSend (Símbolo (), OPSELL, LotsOptimized (), Bid, 3, Bid (StopLossPoint), Bid - (TakeProfitPoint), quotSellquot, MAGICMA, 0, Red) Erro GetLastError ) If (Error 0) Write (quotError opening SELL ordem: quot ErrorDescription (Error) quot (Dquot Error quot) Licitação: quot Bid quot Slippage: quot Slippage) else TickPrice Close0 TradeAllowed false Eu acredito que posso confirmar que, por exemplo, Alpari Micro conta (tem que ser uma conta quotlivequot), você tem que fazer OrderSend com zero SL e TP e, em seguida, logo depois, modificar a ordem com o necessário SL e TP para fazê-lo funcionar. Eu faço um OrderSelect logo após 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 tinha o mesmo problema com Axis comerciante, então talvez eu vou tentar lá em algum momento. A única coisa que eu fiz foi certificar-me de que quando eu mandei o OrderSend, havia um número mágico não zero nele. Boa sorte a todos. Eu criei um EA, que funciona bem para mim, mas eu tentei mudar um pouco, mas não consigo fazer isso funcionar. Tudo que eu quero fazer é abrir uma ordem com uma parada à direita. O problema é, a parada de arrasto é diferente para cada comércio (depende do alto da vela atual). Ele sempre dá ordermodify erro 130, o que significa que o stop loss é muito próximo. Isso não é possível, porque eu troco diariamente eo stop loss é sempre pelo menos 100 pips. Eu acho que o problema poderia ser que de alguma forma sempre calcula a parada de arrasto 0, causar a parada de arrasto é sempre calculado logo após o comércio é colocado ea função ordermodify é iniciado depois disso. Mas eu tentei colocar o trailing parar 150 por exemplo e ainda me dá esse erro (mas desta vez só às vezes). Se alguém pudesse ajudar, eu ficaria muito satisfeito. Thx aqui é o código (não é inteiro, não caberia aqui) Eu acho que você tem que Normalizar expressões quot Bid - Trailingstop Pointquot e quot Pergunte Trailingstop Pointquot porque Trailingstop é duplo. Roger: Eu acho que você tem que Normalizar expressões quot Bid - Trailingstop Pointquot e quot Pergunte Trailingstop Pointquot porque Trailingstop é duplo. O problema tem que estar em outro lugar. Mas obrigado de qualquer maneira) Então, coloque o operador Print: Print (quotBid - quot, Bid, quot TrailingStop - quot, TrailingStop, quot OrderStopLoss - quot, OrderStopLoss (), quot Bid - Trailingstop Point - quot, DoubleToStr , 6)) o problema tem que estar em outro lugar. Mas obrigado de qualquer maneira -) Duro de ser certo, porque você diz que você havent postou o todo do código. No entanto, pelo que parece, Trailingstop isnt uma variável estática ou global. Seu declarado na seção quotbullishquot. Portanto, seu valor será definido no momento em que uma ordem é colocada, mas não persistirá depois disso. Nas chamadas subseqüentes para start (), quando uma ordem é modificada, a variável Trailingstop deve conter zero. Portanto, a chamada para OrderModify () estará tentando definir o parar para Ask 0 Point ou Bid 0 Point. Tente colocar um deslizamento diferente de zero e verifique se 100 pontos é o que você pensa e não 10 pontos em uma plataforma de 5 casas decimais. Imprima os valores logo após o comércio para ver que eles estão corretos, talvez o indicador está retornando valores desonesto às vezes. Difícil de ser certo, porque você diz que você não postou o todo do código. No entanto, pelo que parece, Trailingstop isnt uma variável estática ou global. Seu declarado na seção quotbullishquot. Portanto, seu valor será definido no momento em que uma ordem é colocada, mas não persistirá depois disso. Nas chamadas subseqüentes para start (), quando uma ordem é modificada, a variável Trailingstop deve conter zero. Portanto, a chamada para OrderModify () estará tentando definir o parar para Ask 0 Point ou Bid 0 Point. EXATAMENTE. Isso é o que eu pensei, mas eu não vejo nenhuma maneira, como resolvê-lo. Infelizmente, eu não tenho programado por muito tempo. Então você vê alguma maneira, como manter o valor de Trailingstop para a próxima repetição do programa eu acho que iria empurrar um pouco para a frente com esta EA. E obrigado a todos por suas respostas Então, coloque o operador Print: Print (quotBid - quot, Bid, quot TrailingStop - quot, TrailingStop, quot OrderStopLoss - quot, OrderStopLoss (), quot Bid - Trailingstop Point - quot, DoubleToStr Point, 6)) 2009.05.18 22:31:51 1999.05.17 08:54 Rady EURUSD, Diário: Oferta - 1.0674 TrailingStop - 0 OrderStopLoss - 1.1087 Bid-TrailingstopPoint - 1.067400 Trailing stop é igual a 0. Isso confirma post JJCS. Então, como eu manter o valor do Trailingstop para outro programa executado Eu estava pensando em dar esse valor em bilhete de ordem ou número mágico, mas estou certo de que existem maneiras melhores, como fazê-lo. E este é o resto do código. Tente colocar um deslizamento diferente de zero e verifique se 100 pontos é o que você pensa e não 10 pontos em uma plataforma de 5 casas decimais. Imprima os valores logo após o comércio para ver que eles estão corretos, talvez o indicador está retornando valores desonesto às vezes. 2009.05.18 22:50:02 2005.02.01 00:00 Rady EURUSD, Diário: aberto 2 comprar parar 0.20 EURUSD em 1.3071 sl: 1.2963 tp: 1.3382 ok 2009.05.18 22:50:02 2005.02.01 00:00 Rady EURUSD , Diário: TS-108 Esta parte deve ser aprovada. Trailing stop é realmente 108 pontos. Trailing stop é igual a 0. Isso confirma post JJCS. Então, como eu manter o valor do Trailingstop para outro programa executado Eu estava pensando em dar esse valor em bilhete de ordem ou número mágico, mas estou certo de que existem maneiras melhores, como fazê-lo. Tente declarar Trailingstop como duplo estático em vez de apenas duplo. Isso deve sobreviver a tudo, exceto reloads da EA. Para lidar com reinícios, você precisará colocar o valor em uma variável global (GlobalVariableSet), ou em um objeto de texto no gráfico, ou armazená-lo em um arquivo. OrderSend int OrderSend (símbolo de string // símbolo int cmd. // operação // 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 cor expiração arrowcolorclrNONE // cor) no símbolo para negociação. Em Tipo de operação. Pode ser qualquer uma das enumerações 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) // --- Fixing Error 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. Recebo o erro 130 por causa do fato de que o meu preço aberto na minha parada de compra é para fechar o meu preço atual. Se o preço continuar a subir nunca será preenchido. O que estou me perguntando há uma maneira de aumentar o preço aberto por X quantidade quando isso acontece até que ele fica cheio Os dois links e centenas desses 62000 links contêm a solução, mas você está me dizendo que eles não. Como é que Ele está lhe dizendo a solução. Está bem diante de seus olhos. O problema parece ser que você precisa de alguém para fazer o trabalho para você. Boa sorte, mas essa não é a maneira de aprender a codificar. Uma dica para você: Para evitar o erro 130 para sua ordem buystop, faça o seguinte: a) obter o Stoplevel de seu corretor b) compare o preço de mercado (Ask) Stoplevel ao seu preço BuyStop calculado. Se Stoplevel Buffer-x, então o OrderSend funcionará sem obter erro 130 Buffer-x tem que ser definido por si mesmo e quando aplicado deve ser em pontos, não Em Pips. Registrado Abril 2017 Estado: Junior Member 1 Postar Olá Eu tenho este ea codificado abaixo, por favor, qualquer um me ajudar a respeito deste erro ruidoso 130 ltinvalid stopsgt // -------------------- ---------------------------------------------- // soubra2003v2. 0.mq4 // Copyright 2017, soubra2003 // mql5 / pt / users / soubra2003 // ---------------------------- -------------------------------------- propriedade copyright quotCopyright 2017, soubra2003v2.0quot propriedade link quot Onesoubraquot propriedade versão quot2.00quot propriedade descrição quot - Este EA irá comercializar como abaixo descrição: quot propriedade descrição quot 1) condição de compra: A ordem pendente será definido como preço mais elevado de prev. Vela Distância por user. quot propriedade descrição quot 2) condição de venda: A ordem pendente será definido como menor preço de prev. 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 há de novo: Trailing Stop, Break Even amp Money Management. quot propriedade estrita Incluem ltstdlib. mqhgt entrada string sep3 quot --------------------- Money Mgmt Configurações ------------------ --- quot // MM Opções gtgtgtgtgtgtgtgt entrada bool MM false // Entrada do Gerenciamento de Dinheiro dupla CalcAmount 100 // Valor para AUTO Entrada do Lote duplo CalcLot 0.01 // Auto Tamanho do Lote cada Quantidade entrada dupla Tamanho do Lote 0.10 // Entrada do Tamanho do Lote (Fixo) String sep1 quot --------------------- Configurações de negociação --------------------- quot // Opções de Negociação gtgtgtgtgtgtgtgt entrada double orderdistance 10 // Distância (Após Ant. Alt. Abaixo Inferior Baixo) extern double buystoploss 50 // Comprar Stop Loss extern duplo sellstoploss 50 // Venda Stop Loss extern duplo buytakeprofit 100 // Comprar Take Profit extern double Selltakeprofit 100 // Venda Take Profit entrada int Slippage 5 string de entrada sep2 quot --------------------- Break Even amp T. Parar -------- ------------- quot // Break Even amp T. Parar gtgtgtgtgtgtgtgt entrada bool BreakEven true // Break Even Entrada de status double BreakEvenStart 5.0 // Break Even Iniciar entrada double BreakEvenValue 1.0 // Break Even Value Input bool TrailingStop true // Trailing Stop Status entrada dupla TrailingStopVal 10.0 // Trailing Stop Value string de entrada sep4 quot --------------------- Outra Configuração ----- ---------------- quot // Outra opção gtgtgtgtgtgtgtgt entrada string tradescommentquotsoubra2003Version 2.0quot // Trades Comentário color colorar buyarrowcolor clrBlue // Comprar Arrow Color colorar color sellarrowcolor clrRed // Vender Arrow Color input Color deletearrowcolor clrYellow // Excluir ordem pendente Seta Cor entrada cor modifyarrowcolor clrWhite // Ordem modificada Seta Cor // --- int slippage5 int buymagicnumber821454145 int sellmagicnumber192545451 duplo tradepointPoint duplo prevcdlhigh duplo prevcdllow duplo buyprice duplo sellprice int intc_destino int sellticketno duplo Lotes duplo StopSprdLevel MarketInfo (Symbol (), MODESTOPLEVEL) Double BrokerMinLot MarketInfo (Symbol (), MODEMINLOT) double () () () () () () () () () () () () outra buystoplossNULL if (buytakeprofitgt0) buytakeprofitbuypricebuytakeprofittradepoint outra buytakeprofitNULL if (sellstoplossgt0) sellstoplosssellpricesellstoplosstradepoint outra sellstoplossNULL if (selltakeprofitgt0) selltakeprofitsellprice-selltakeprofittradepoint outra selltakeprofitNULL if (NewBar ()) CloseAll () RefreshRates CloseAll () if (buycounter ()) () int tktbuy OrderSend ( (Tktbuylt0) Imprimir (quotOrder falhou com erro: quot, ErrorDescription (GetLastError ())) else Imprimir (quotOrder colocado com êxitoquot) ) Se (sellcounter ()) RefreshRates () int tktsell OrderSend (Símbolo (), OPSELLSTOP, Lotes, sellprice, slippage, sellstoploss, selltakeprofit, tradescomment, sellmagicnumber, NULL, sellarrowcolor) if (tktselllt0) Print (quotOrder failed with error: quot , ErrorDescription (GetLastError ())) else Imprimir (quotOrder colocado com êxito) Comentário (quot Anterior Candle Alta quot, NormalizeDouble (prevcdlhigh, Dígitos), quot Pendente Comprar Ordem Deve ser quot, NormalizeDouble (buyprice, Dígitos), quotnquot, Baixo quot, NormalizeDouble (prevcdllow, Dígitos), quot Pending Sell Order Deve ser quot, NormalizeDouble (sellprice, Dígitos), quotnquot, quot ---------------------- Quot, quotnquot, quotnquot, quot, Quot, Quotnquot, Quot, Quotnquot, quotnquot, Trailing Stop Status: quot, TrailingStop, quotnquot, quot ------------------------------------ Quot, quotnquot, quot Broker Parar fora Quot, AccountStopoutLevel (), quotnquot, quot Broker Stop Level quot, StopSprdLevel, quotnquot, quot Broker Max Lote Permitido quot, BrokerMaxLot, quotnquot, quot BrokerMinLot) // --- // BuyTrailingStop () para (int cnt10 cnt1ltOrdersTotal () cnt1) int ticketselectOrderSelect (cnt1, SELECTBYPOS) se (OrderStopLoss () NULL ampamp OrderType () ltOPSELL ampamp OrderSymbol () () (OrderType () (OrderType () OPBUY) if (TrailingStop ampamp TrailingStopValgt0) RefreshRates () bool ticketmodify OrderModify (OrderTicket () OrderOpenPrice () OrderStopLoss () TrailingStopValtradepoint OrderTakeProfit (), 0, modifyarrowcolor ) If (ticketmodify) Print (quotTStop: Ordem não pode ser modificada. (Cnt2, SELECTBYPOS) if (OrderStopLoss () NULL ampamp OrderType () ltOPSELL (cnt2, SELECTBYPOS) if (OrderStopLoss () Ampamp OrderSymbol () símbolo () ampamp OrderMagicNumber () sellmagicnumber) se (OrderType () OPSELL) se (TrailingStop ampamp TrailingStopValgt0) RefreshRates () int ticketmodify OrderModify (OrderTicket) OrderOpenPrice () - (TrailingStopValtradepoint), OrderTakeProfit (), () () () () () () () () () () () () () () () () (Cot3 OrdersTotal () cnt3) int ticketSelect OrderSelect (cnt3, SELECTBYPOS) if (OrderType () lt OPSELL ampPassSymbol () Symbol () ampamp OrderMagicNumber () buymagicnumber) if (OrderType () OPBUY) if (BreakEvenStart gt 0 ampamp BreakEven) RefreshRates ) Int ticketmodify OrderModify (OrderTicket (), OrderOpenPrice (), OrderOpenPrice () (BreakEvenValuetradepoint), OrderTakeProfit (), 0, modifyarrowcolor) if (ticketmodify) Imprimir (quotBreak Even: Ordem não pode ser modificada, quot, ErrorDescription GetLastError () ) Else Print (quotBreak Even Placed Successfuly. quot) // SellBreakEven () para (int cnt4 0 cnt4 lt OrdersTotal () cnt4) int ticketselect OrderSelect (cnt4, SELECTBYPOS) se (OrderType () lt OPSELL ampamp OrderSymbol () Symbol () Ampamp OrderMagicNumber () número de venda) if (OrderType () OPSELL) if (BreakEvenStart gt 0 ampamp BreakEven) RefreshRates () int ticketmodify OrderModify (OrderTicket) OrderOpenPrice (), OrderOpenPrice () , Modifyarrowcolor) if (ticketmodify) Imprimir (quotBreak Even: Ordem não pode ser modificada, quot, ErrorDescription (GetLastError ()) else Imprimir (quotBreak Even Placed Successfuly. quot) // ------------ -------------------------------------------------- ---- // Especialista função closeall // --------------------------------------- --------------------------- void closeall () para (int i0 iltOrdersTotal () i) int selectOrderSelect (i, SELECTBYPOS, MODETRADES) if (OrdemSímbolo () Símbolo ()) se (OrderType () OPBUYSTOP OrderType () OPSELLSTOP) se (OrderMagicNumber () buymagicnumber OrderMagicNumber () sellmagicnumber) bool deleteOrderDelete (OrderTicket, deletearrowcolor) if (delete) Print (quotOrder Falha ao ser removido , Err Desc: quot, ErrorDescription (GetLastError ())) else Imprimir (quotOrder foi removido. quot)
No comments:
Post a Comment