Ajuda na codificação - página 13

 

modificação rápida da EA

Hi,

Preciso de alguma ajuda, tentei mudar o código abaixo, mas a EA continuou a travar o MT4.

Quero que a ordem feche quando a barra atual (portanto, a barra onde a ordem foi executada) fechar. Basicamente, troque uma barra.

Este é o código original, ele negocia de sinal a sinal.

//+------------------------------------------------------------------+

//| Signal Begin(Exit Buy) |

//+------------------------------------------------------------------+

if (signaldown!=EMPTY_VALUE&&signaldown!=0) Order = SIGNAL_CLOSEBUY;

//+------------------------------------------------------------------+

//| Signal End(Exit Buy) |

//+------------------------------------------------------------------+

if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");

if (!EachTickMode) BarCount = Bars;

IsTrade = False;

continue;

}

//Trailing stop

if(UseTrailingStop && TrailingStop > 0) {

if(Bid - OrderOpenPrice() > Point * TrailingStop) {

if(OrderStopLoss() < Bid - Point * TrailingStop) {

OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);

if (!EachTickMode) BarCount = Bars;

continue;

}

}

}

} else {

//Close

//+------------------------------------------------------------------+

//| Signal Begin(Exit Sell) |

//+------------------------------------------------------------------+

if (signalup!=EMPTY_VALUE&&signalup!=0) Order = SIGNAL_CLOSESELL;

//+------------------------------------------------------------------+

//| Signal End(Exit Sell) |

//+------------------------------------------------------------------+

if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");

if (!EachTickMode) BarCount = Bars;

IsTrade = False;

continue;

}

//Trailing stop

if(UseTrailingStop && TrailingStop > 0) {

if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {

if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {

OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);

if (!EachTickMode) BarCount = Bars;

continue;

}

}

}

}

}

}

//+------------------------------------------------------------------+

//| Signal Begin(Entry) |

//+------------------------------------------------------------------+

//if (timeprev!=Time[0]){

// timeprev = Time[0];

if (signalup!=EMPTY_VALUE&&signalup!=0)

{

Order = SIGNAL_BUY;

}

if (signaldown!=EMPTY_VALUE&&signaldown!=0){

Order = SIGNAL_SELL;

}

// }

//+------------------------------------------------------------------+

//| Signal End |

//+------------------------------------------------------------------+

//Buy

if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

if(!IsTrade) {

//Check free margin

if (AccountFreeMargin() < (100 * Lots)) {

Print("We have no money. Free Margin = ", AccountFreeMargin());

return(0);

}

if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;

if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;

Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);

if(Ticket > 0) {

if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {

Print("BUY order opened : ", OrderOpenPrice());

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");

} else {

Print("Error opening BUY order : ", GetLastError());

}

}

if (EachTickMode) TickCheck = True;

if (!EachTickMode) BarCount = Bars;

return(0);

}

}

//Sell

if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

if(!IsTrade) {

//Check free margin

if (AccountFreeMargin() < (100 * Lots)) {

Print("We have no money. Free Margin = ", AccountFreeMargin());

return(0);

}

if (UseStopLoss) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0;

if (UseTakeProfit) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0;

Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink);

if(Ticket > 0) {

if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {

Print("SELL order opened : ", OrderOpenPrice());

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");

} else {

Print("Error opening SELL order : ", GetLastError());

}

}

if (EachTickMode) TickCheck = True;

if (!EachTickMode) BarCount = Bars;

return(0);

}

}

if (!EachTickMode) BarCount = Bars;

return(0);

}

//+------------------------------------------------------------------+

Alguém pode me ajudar?

 

Favor ajudar!!!!!

Eu preciso de uma ea faz o seguinte

em um determinado tempo, ordem de compra ou venda de 4pc

funções:

tempo de abertura do pedido (variável 00-24)

ordem1 vender ou comprar lote (0,01 .0,02... 1) TP (+ xx pips from oppen) SL (- xx pips from open)

ordem2 vender ou comprar lote (0,01 .0,02... 1) TP (+ xx pips from oppen) SL (- xx pips from open)

ordem3 vender ou comprar lote (0,01 .0,02... 1) TP (+ xx pips from oppen) SL (- xx pips from open)

ordem4 vender ou comprar lote (0,01 .0,02... 1) TP (+ xx pips from oppen) SL (- xx pips from open)

OBRIGATÓRIO

 

Necessidade de acrescentar à minha EA um código para desativá-la a um determinado nível de preço

Olá,

Preciso acrescentar ao meu Ea um código para desativá-lo e habilitá-lo a determinados níveis de preço.

Pesquisei e descobri que posso fazer isso com

# iclude<WinUser32mqh

bool externo Desativar Ea = verdadeiro // de X (examply1.4420) a Y(examply1.4380) e de Z (examply1.4480) a N(examply1.4520) //

bool externo Enable Ea = true // de R(examply -1,4420) a T(examply -1,4480)

Agradecemos a ajuda para traduzir estas condições em um código, então na caixa de diálogo da EA eu poderia apenas inserir o nível de preço para desativar / habilitar a EA.

 

Após algumas pesquisas e estudos, descobri que escrever na função inicial da EA um código o iniciaria em certas condições.

Assim, sob a função de início de experto, escrevi o seguinte:

if(PRICE_MEDIAN (SellLevel-Point*BufferPips))

retorno (0)

------------------------------------------------------------------------------------------------------------------

BufferPips adicionei no duplo externo para que na caixa de diálogo eu pudesse mudar o seu valor.

Não sou se PRICE_MEDIAN for uma boa escolha.

Estou recebendo erro de compilação - parêntese esquerda desequilibrada.

Ajuda apreciada

 

me ajude no comércio de automóveis

Olá, Sr. Guru!

Tenho comércio de automóveis, mas não funciona, por favor me ajude!

Arquivos anexados:
auto_me.mq4  4 kb
 

Oi Mario,

Eu acho que esta condição se(current_shortEma == current_longEma)

nunca é verdade. geralmente para detectar uma cruz você precisa fazer isso

if(current_shortEma > current_longEma && last_shortEma < last_longEma){

//cruzar do fundo

}

if(current_shortEma last_longEma){

//cruzar de cima

}

Informações mais detalhadas aqui:

https://www.mql5.com/en/forum/trading_systems

Obrigado

MIkhail

 

Eu também recebi um pedido de codificação ---- preciso de um codificador (tarefa muito simples)

Nós sabemos que HA -- henki ashi raramente se engana

durante a consolidação, ou quase em retorno, ficaria cada vez mais curto

enquanto que quando a tendência ainda for forte, HA para aquele bar será LONGO

ANTES

seria legal se tivéssemos um indicador que nos dissesse a força da tendência

a idéia é fácil

--- primeiro, deve ser qualquer HA fará (eu encerro apenas meu ex4, mas tenho que encontrar um MQ4 -- para HA) e modificá-lo (tarefa simples eu assumo)

há apenas 2 cores para HA , uma azul *up ---- + ---- e uma rosa/violeta *down

-- segundo, quando o HA tem que desenhar o material HA no gráfico, há COMPRIMENTO - comprimento desse HA

--- terceiro, quando se aproxima a inversão de marcha, a barra HA ficará cada vez mais curta

vamos supor, quando o COMPRIMENTO da barra HA (por tentativa e erro) for inferior a 0,4 cm, então a desenhamos PRETO (ou seja, não azul / rosa)

nos advertirá para NÃO ENTRAR e sair em breve

Assim, só temos que entrar (sem medo) de acordo com a força da tendência HA --- assim como minha outra idéia, muito SIMPLES, extremamente útil

codificador -- por favor, não use o ex4 que eu anexei, apenas aperte [PESQUISA] no fórum e digite henki ashi , procure por algum MQ4 com todo o código

------

quando você completar ou depois de mudar para 3 a 4 cores (poderia ser 3 cores, ao invés de 4 cores)

por favor, envie-me uma mensagem particular PM, com o LINK, para que eu possa carregá-lo, depois de você começar, se quiser, eu poderia lhe dar outro indicador que lhe dirá qual é o melhor momento para mudar de cor para PRETO também -- preto é uma espécie de cor de aviso

----- ou seja, você pode DOWNLOADAR o ex4 que eu incluí, mas use outro MQ4 pls ---

Obrigado, será um bom indicador para todos nós, e a codificação deve ser bem simples e direta.

o código está no início, semelhante ao diagrama acima

se meu palpite estiver correto, g_ibuf_### controla o comprimento da barra HA

só temos que imprimir todo o valor g_ibuf com a função chamada "comentário".

então execute o gráfico por alguns dias, e dê uma olhada no valor g_ibuf, quando ele ficar pequeno, e anote o VALOR dessa variável

então quando temos um espaço de tempo para codificar, codificamos apenas 1 a 2 cores -- digamos, preto e cinza escuro na codificação, quando o histograma g_ibuf é mais pequeno do que um certo valor anotado

então suponha que seja simples - caso contrário, poderia tentar tentar a tentativa e o erro para encontrar o VALOR mais adequado (ser mais pequeno do que)

sinceramente

xx3xxx -- Eu carrego lá meu MQ4 para a versão 4, acho que você pode usar este, este parece ser mais longo e grosso do que o outro HA que eu tenho

Arquivos anexados:
 
 
Arquivos anexados:
lsma_nrp.mq4  5 kb
 

O indicador Trix precisa de alerta

Coder Guru ou qualquer outra pessoa, você pode programar um alerta de som, alerta de notificação e t3_trix_x2roc_clr_nrp_mtf.mq4t3_trix_x2roc_clr_nrp_mtf.mq4e neste indicador Trix sempre que a linha Trix a longo ou curto prazo mudar de cor de vermelho para verde ou vice-versa. Obrigado

Arquivos anexados:
Razão: