Problema de Codificação: Open [1]
Results 1 to 5 of 5

Thread: Problema de Codificação: Open [1]

  1. #1
    Estou tendo algum problema em programar uma linha. Eu estou olhando para ter entre os requisitos de abertura ser o 12 EMA não seja maior que a abertura da barra. Estou fazendo transações para tentar e não abrir em um mercado paralelo.

    Esta é a linha de código:

    if ((Fechar [2] gt; = Fechar [1]) (Open [1] gt; = Abrir [0]) (Abrir [1] gt; ema12) (ema12 gt; ema24)) upcandle = true;

    O código ema12gt; ema24 funciona bem, mas o Open [1] gt; ema12 não faz o trabalho. Nos testes de volta, há ocasiões em que há uma negociação aberta abaixo do ema12.

    Sugestões ???

    Obrigado!

  2. #2
    Open [1] é o preço de abertura da barra anterior ... É possível que a barra atual tenha ficado abaixo da 12ema Além disso, qual é a mudança para a sua variável EMA12? É 1 ou 0?

  3. #3

  4. #4
    1 Attachment (s) Ronald - Eu tentei adicionar uma mudança para a EMA, mas só acabei com uma resposta de erro inesperada [. Anexei uma imagem mostrando como a máquina deve funcionar no primeiro comércio exibido. O segundo negócio não deveria ter ocorrido porque o [1] está abaixo da linha de 12 ema. E Oksana, conforme o seu pedido:/ --------------------------------------- --------------------------- /| Safe Pip EA.mq4 |/| |/| |/ ----------------------------------------------- ------------------- #property copyright #property Hyperlink extern double Lotes = 0,1; double StopLoss externo = 15; TakeProfit duplo externo = 15; duplo externo MaxTotalOrders = 1; duplo externo MaxOmegaIBOrders = 1; MakeTrades de bool externo = True; bool externo NoisyAlerts = Verdadeiro; extern int TrailingStop = 10; extern int BreakEven = 6; extern int maxLots = 1;/ ----------------------------------------------- ------------------- /| função de inicialização de especialistas |/ ----------------------------------------------- ------------------- static int order_num = -1; int init ()/- order_num = -1;/- return (0);/ ----------------------------------------------- ------------------- /| função de desinicialização de especialistas |/ ----------------------------------------------- ------------------- int deinit ()/-/- return (0);/ ----------------------------------------------- ------------------- /| função de início especialista |/ ----------------------------------------------- ------------------- int start ()/- int cnt, ticket, total; double ema12, ema24;/- Move para break even Set/- Linhas Ema definidas ema12 = iMA (NULL, 0,12,0, MODE_EMA, PRICE_CLOSE, 0); ema24 = iMA (NULL, 0,24,0, MODE_EMA, PRICE_CLOSE, 0);/- Marque para descobrir se há um sinal de vela bool upcandle = false; bool downcandle = falso; if ((Fechar [2] gt; = Fechar [1]) (Open [1] gt; = Abrir [0]) (Abrir [1] gt; ema12) (ema12 gt; ema24)) upcandle = true; if ((Fechar [1] lt; Abrir [0]) (Alta [1] lt; ema12)) downcandle = true;/verificar compra ou venda sinal bool buy = false; bool vender = falso;/Se o preço pedido na barra atual for maior que 2 pips do que a segunda vela anterior e o 12ema/estiver acima da 24 ema, então é um sinal de compra se ((Ask == High [2] 3 * Point ) (ema12 gt; ema24)) buy = true;/Se o preço da oferta na barra atual for menor que 2 pips do que a segunda vela anterior e o 12ema/estiver abaixo da 24 ema, então é um sinal de compra se (((Low [2] == Bid) gt; 2 * Ponto) (ema24 gt; ema12)) sell = true; if (upcandle) ObjectCreate (upcandle Tempo [1], OBJ_ARROW, 0, Tempo [1], Baixo [1] -2 * Ponto);total = OrdersTotal (); if (totallt; 1) if (compra) ticket = OrderSend (Symbol (), OP_BUY, Lotes, Perguntar, 0, Ask-StopLoss * Ponto, Perguntar TakeProfit * Ponto, SafePip, 12345,0, Verde); ObjectCreate (buyl Tempo [1], OBJ_RECTANGLE, 0, Tempo [0] - (Tempo [0] -Tempo [1]) * 0.5, Baixo [0] -2 * Ponto, Hora [0] (Tempo [0 ] -Time [1]) * 0.5, Baixo [0] -2.5 * Ponto); if (NoisyAlerts) PlaySound (alert.wav); if (ticketgt; 0) if (OrderSelect (ticket, SELECT_BY_TICKET, MODE_TRADES)) Imprimir (ordem BUY aberta:, OrderOpenPrice ()); else Print (Erro ao abrir BUY order:, GetLastError ()); retorno (0); if (BreakEvengt; 0) if (Bid-OrderOpenPrice () gt; Ponto * BreakEven) if (OrderStopLoss () lt; OrderOpenPrice ()) OrderModify (OrderTicket (), OrderOpenPrice (), OrderOpenPrice () Ponto * 1, OrderTakeProfit ( ), 0, cinza);* update trailing stop *if (TrailingStopgt; 0) if (Bid-OrderOpenPrice () gt; Ponto * (TrailingStop)) if (OrderStopLoss () lt; Bid-Point * TrailingStop) OrderModify (OrderTicket (), OrderOpenPrice () , Bid-Point * TrailingStop, OrderTakeProfit (), 0, cinza); retorno (0); retorno (0);/ ----------------------------------------------- ------------------- É um trabalho em progresso, e há coisas que eu já estou planejando mudar. Estou ciente de que não há codificação para uma condição que estou usando apenas os níveis SL ou TP.

  5. #5
    O problema provavelmente está no fato de você estar calculando o EMA na vela atual e usando o início da vela anterior para determinar o ponto de entrada. Altere suas configurações de ema para Examinar a vela anterior também: ema12 = iMA (NULL, 0,12,0, MODE_EMA, PRICE_CLOSE, 1); ema24 = iMA (NULL, 0,24,0, MODE_EMA, PRICE_CLOSE, 1);

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.