MT4 - Níveis de Take Profit MúltiploFechamento Parcial
Results 1 to 10 of 10

Thread: MT4 - Níveis de Take Profit MúltiploFechamento Parcial

  1. #1
    Eu gostaria de fechar um pedido em diferentes níveis. Exemplo eu fecho metade do meu pedido no takeprofit1 e o restante no takeprofit2 usando algo assim:
    Código inserido if (OrderType () == OP_BUY) {if (Bid gt; OrderOpenPrice () TakeProfit1) {OrderClose (12345, 0,5, Lance, 2); } if (Bid gt; OrderOpenPrice () TakeProfit2) {OrderClose (12345, 0,5, Lance, 2); }} O problema óbvio é que, quando o preço atinge meu TakeProfit1, ele tenta fechar a cada novo tick fechando o pedido inteiro. Existe uma maneira de fazer isso apenas executar a ação uma vez?

    Percebo que poderia abrir dois pedidos separados com lucros diferentes, mas prefiro aprender a fazer diferente se houver outro jeito. Eu gosto da ideia de esconder meus lucros do corretor. Qualquer ajuda ou conselho é bem vindo.

  2. #2

    Eu gostaria de fechar um pedido em diferentes níveis. Exemplo Fecho metade do meu pedido em takeprofit1 e o restante em takeprofit2 usando algo como: Código inserido if (OrderType () == OP_BUY) {if (Bid gt; OrderOpenPrice () TakeProfit1) {OrderClose (12345, 0,5, Bid 2); } if (Bid gt; OrderOpenPrice () TakeProfit2) {OrderClose (12345, 0,5, Lance, 2); }} O problema óbvio é que quando o preço atinge meu TakeProfit1, ele tenta fechar em cada novo tick eventualmente fechando ...
    basta usar dois pedidos separados. dividir um pedido depois de aberto é uma tarefa difícil e exige o rastreamento de pedidos atuais e a procura de ingressos recém-criados, etc., etc. é totalmente possível, mas se você ficou preso depois de digitar o código acima, melhor deixá-lo ir por agora e salvá-lo para o futuro quando você pode codificar melhor. basta usar duas ordens separadas e seguir em frente com sua vida. caso contrário, seremos nós quem acabará escrevendo o código para você e você não terá trabalhado nada por si mesmo.

  3. #3
    Fechar parte de um pedido é definitivamente para codificadores de nível avançado.

  4. #4

    O problema óbvio é que, quando o preço atingir meu TakeProfit1, ele tentará fechar a cada novo tick fechando o pedido inteiro. Existe uma maneira de fazer isso apenas executar a ação uma vez? Percebo que poderia abrir dois pedidos separados com lucros diferentes, mas prefiro aprender a fazer diferente se houver outro jeito. Eu gosto da ideia de esconder meus lucros do corretor. Qualquer ajuda ou conselho é bem vindo.
    //----- hey trumpjr ...... use orderselect para escolher a ordem ..... use um filtro de orderlots () .... abaixo é apenas um rápido exemplo grosseiro ... h/- --- Código inserido para (int i = Orderstotal () - 1; i gt; = 0; i--) {OrderSelect (i, SEL_BY_POSITION, MODE_TRADES); if (OrderSymbol ()! = Symbol ()) continua; if (OrderLots () gt; = 1)/filtro de segmentos {if (OrderType () == OP_BUY) {if (Bid gt; OrderOpenPrice () TakeProfit1) {OrderClose (OrderTicket (), 0,5, Lance, 0, CLR_NONE ); }}

  5. #5
    Você deve acompanhar cada pedido através de um número mágico exclusivo para gerenciar posições em partes. Assim que você fecha parcialmente um determinado pedido em aberto, o ticket do pedido é alterado e, em seguida, é necessário recuperar o novo número do ticket. O número do bilhete antigo é descartado. Para obter o novo número de bilhete e, dessa forma, manter o controle sobre o pedido parcialmente aberto restante, você precisa recuperar o número do ticket com base no número mágico. O número mágico dado a um pedido não é alterado em relação a vários encerramentos de divisão de pedidos, para que você ainda possa acompanhar o ciclo de vida do pedido original.

  6. #6
    Números mágicos não são exclusivos de um pedido. O mesmo número mágico (geralmente) é atribuído a cada pedido aberto por um EA. Pode haver muitas ordens com o mesmo número mágico. Sua sugestão não funcionará.

  7. #7
    Existe uma maneira simples de fazer isso? o primeiro conjunto de paradas terá de ser mais apertado, conforme o fifo. Suponha que na codificação eu compro 2 ordens separadas ... lote A e lote B para loteA eu quero SL-A a 30 pips e TP-A a 30pips para loteB Eu quero SL-B a 50 pips e TP-B como 50 pips eu suponho que eu precisaria fechar via número de bilhete e usar perdas ocultas como meu corretor fecha todas as posições em qualquer SL TP isso parece tão simples ainda im ainda novo na codificação e eu estou me enlouquecendo há algum exemplo de tal código para que eu possa visualmente quebrar como funciona

  8. #8
    Qualquer coisa que não seja o take profit real na ordem será imaginário, então você terá que calcular seu secundário em seu loop OrderSelect: Código inserido if ((OrderType () == OP_BUY) (OrderSymbol () == Symbol ( )) (OrderMagicNumber () = MagicNumber)) {if (OrderLots () = gt; 1 (Bid = gt; OrderTakeProfit () - (TakeProfitA * Point))) {double dNewLotSize = NormalizeDouble (OrderLots ()2, 2 ); if (! OrderClose (OrderTicket (), dNewLotSize, Bid, 3, Violet)) Imprimir (erro OrderClose, GetLastError ()); mais Imprimir (OrderClose - OrderTicket ()); }}

  9. #9
    muito obrigado por dedicar o tempo para postar isso im ter dificuldade em traduzir a sintaxe dentro do loop if como isso é diferenciar entre LotA e Lot B? ou está assumindo que o TakeProfit A deve acontecer primeiro, então ele verifica gt; o que esta linha de código está fazendo? Código inserido double dNewLotSize = NormalizeDouble (OrderLots ()2, 2); Eu assumi que isso teria que ocorrer escolhendo o número do ticket por meio do ticket, mas o loop if parece funcionar ao redor disso, eu estou tendo problemas em traduzi-lo claramente

  10. #10
    Como isso funciona em torno do número do bilhete?

Permissões de Publicação

  • Não pode publicar novos tópicos
  • Não pode publicar respostas
  • Não pode publicar anexos
  • Não pode editar as suas publicações
  •  
  • Código BB está Ativo
  • Smilies estão Ativos
  • Código [IMG] está Ativo
  • Código [VIDEO] está Ativo
  • Código HTML está Desligado
O site da tradingintuitivo utiliza cookies
O site da tradingintuitivo utiliza cookies, alguns já foram definidos. Pode ler sobre a nossa utilização de cookies aqui. Por favor, clique no botão à direita para aceitar os nossos cookies. Se continuar a usar o site da tradingintuitivo, vamos supor que aceita os nossos cookies.