Como codificar? - página 19

 

Obrigado por seu esforço, Nicholishen. Infelizmente, não funcionou. Está modificando as ordens, mas de ambas as maneiras. O que eu quero dizer apenas para a clacificação é que, numa situação de compra, ele irá mover a parada para cima pelos pontos de trilha, mas também irá movê-la para baixo. preciso parar a mudança para baixo.

 

Eu entendo o que você quer dizer, mas o código está correto. Há outro EA modificando estas ordens ou há outro código no EA que está fazendo isto porque certamente não é este código. Você precisará parar todas as outras EA e verificar o código primário da EA para outras chamadas para OrderModify()

Boa sorte =)

Arquivos anexados:
 

Obrigado por seu tempo com meu noobish self

a única outra ordermodificação no código é um break even e lock pips. eu vou anexá-lo.

BEx=uma quantidade de graxas a serem trancadas

Já passei por isso tantas vezes que tenho certeza de que ele está olhando diretamente para mim, mas não sou profissional, um hack na melhor das hipóteses.

Mais uma vez obrigado Nicholishen!

void DoBE(int byPips)

{

for (int i = 0; i < OrdersTotal(); i++) {

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if ( OrderSymbol()==Symbol() && ( (OrderMagicNumber() == uniqueGridMagic) || (OrderComment() == GridName)) ) // only look if mygrid and symbol...

{

if (OrderType() == OP_BUY) if (Bid - OrderOpenPrice() > byPips * MarketInfo(OrderSymbol(), MODE_POINT)) if (OrderStopLoss() != (OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT))) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Red);

if (OrderType() == OP_SELL) if (OrderOpenPrice() - Ask > byPips * MarketInfo(OrderSymbol(), MODE_POINT)) if (OrderStopLoss() != (OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT))) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Red);

}

}

}

Oh, esqueci de acrescentar, esta é a única EA. No momento estou apenas testando novamente.

 
C.E.O.:
Obrigado por seu tempo com meu noobish self

a única outra ordermodificação no código é um break even e lock pips. eu vou anexá-lo.

BEx=uma quantidade de graxas a serem trancadas

Já passei por isso tantas vezes que tenho certeza de que ele está olhando diretamente para mim, mas não sou profissional, um hack na melhor das hipóteses.

Mais uma vez obrigado Nicholishen!

void DoBE(int byPips)

{

for (int i = 0; i < OrdersTotal(); i++) {

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if ( OrderSymbol()==Symbol() && ( (OrderMagicNumber() == uniqueGridMagic) || (OrderComment() == GridName)) ) // only look if mygrid and symbol...

{

if (OrderType() == OP_BUY) if (Bid - OrderOpenPrice() > byPips * MarketInfo(OrderSymbol(), MODE_POINT)) if (OrderStopLoss() != (OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT))) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Red);

if (OrderType() == OP_SELL) if (OrderOpenPrice() - Ask > byPips * MarketInfo(OrderSymbol(), MODE_POINT)) if (OrderStopLoss() != (OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT))) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Red);

}

}

}[/PHP]

Oh forgot to add, this is the only EA. Just currently backtesting.

Provavelmente o que está acontecendo é que uma aspiração está anulando a outra. Você precisará verificar sua lógica para que apenas um opere de cada vez.

[DoBE(int byPips) nulo)

{

para (int i = 0; i < OrderTotal(); i++)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if ( OrderSymbol()==Symbol() && ( (OrderMagicNumber() == uniqueGridMagic) ||| (OrderComment() == GridName)) ) // só olhar se mygrid e símbolo...

{

se (OrderType() == OP_BUY)

{

if (Bid - OrderOpenPrice() > byPips * MarketInfo(OrderSymbol(), MODE_POINT))

{

if (OrderStopLoss() != (OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT)))

{

OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Vermelho);

}

}

}

se (OrderType() == OP_SELL)

{

if (OrderOpenPrice() - Ask > byPips * MarketInfo(OrderSymbol(), MODE_POINT))

{

if (OrderStopLoss() != (OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT)))

{

OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Vermelho);

}

}

}

}

}

retornar;

}
 

Comandos/codificação de código MQL4

Mensagem excluída. Desculpe pelo inconveniente.

 

Código para "Permitir o comércio ao vivo".

Olá, para que as EA's funcionem, temos que ativar a opção "Permitir negociação ao vivo", em vez de ter que assinalá-la o tempo todo ao carregar a EA que linha de código eu adiciono para ter automaticamente essa opção ativada na EA?

Obrigado

 

Você não precisa de código para fazer isso...

matrixebiz:
Olá, para que as EA's funcionem, temos que ativar a opção "Permitir negociação ao vivo", em vez de ter que assinalá-la o tempo todo ao carregar a EA que linha de código eu adiciono para ter automaticamente essa opção ativada na EA? Obrigado

Hallo Matrixebiz,

Você pode fazer isso facilmente, indo ao menu do MetaTrader. Vá para "Ferramentas" e depois "Opções" (ou apenas digite CRTL-O). Em seguida, na aba "Expert Advisor", verifique a opção Allow live trading options. Aí está, todas as EA que você anexar depois disso serão permitidas negociações ao vivo.

-RJ1-

 

Oh, ok, isso foi fácil Obrigado

 

Código de tempo EA

Eu quero o código de tempo da EA. Exemplo de que ele permitiria apenas a negociação 18:00-1:00. Isso é possível?

 

Encontrei isto

se (UseHourTrade){

if(!(Hour()>=FromHourTrade&&Hour()<=ToHourTrade)){

Comentário ("Non-Trading Hours!");

retorno(0);

Uma pergunta:

Utiliza meu tempo de corretor: Sim ou Não??

Eu acho que sim, mas quero ter certeza

E como posso colocar lá minutos como 15:30 ?? Há apenas horas???