Como codificar? - página 144

 

isto está errado : if(totalOrders==0 && Magic===OrderMagicNumber() &&

OrderSelect(i-1 , SELECT_BY_POS,MODE_HISTORY)==verdadeiro)

porque você está chamando OrderMagicNumber() antes de OrderSelect(), portanto, provavelmente se refere à chamada anterior.

 
EBK:
Oh,desculpe-me por ter expressado minha opinião de forma errada.

Eu quero codificar (mas não sou capaz de fazer) algo que irá parar a EA trading (ou parte de ea trading) se o patrimônio estiver abaixo de um valor.

Obrigado por sua ajuda Roger09, mas não preciso mostrar a equidade no gráfico.

Tente esta EA

CloseAllBuySell - Base de código MQL4

Use sua idéia e faça um código com algo como

se (AccountEquity()<YourValue) fechar todas as ordens();

 

Alguém poderia, por favor, adicionar o EMA trailing stop à amostra Média Móvel EA

EMA trailing set to 1

Em seguida, mude a entrada para

Buy=Open[1]>ma && Close[1]>ma;

Sell=Open[1]<ma && Close[1]<ma;

Isto deve fazer um escalper muito bom e simples.

Abraço

Beno

Arquivos anexados:
 
 

Adicionar no início do programa

pips int externo=2;//(ou seu número de pips)

então substitua

if ((OrderType() == OP_BUY) && (OrderStopLoss() < OrderOpenPrice()))

sl = OrderOpenPrice() ;

if ((OrderType() == OP_SELL) && (OrderStopLoss() > OrderOpenPrice()))

sl = OrderOpenPrice() ;[/CODE]

to

[CODE]if ((OrderType() == OP_BUY) && (OrderStopLoss() < OrderOpenPrice()))

sl = OrderOpenPrice() +pips*Point;

if ((OrderType() == OP_SELL) && (OrderStopLoss() > OrderOpenPrice()))

sl = OrderOpenPrice() -pips*Point;
 

Alguém pode me ajudar a colocar um alerta neste indicador para quando ele desenhar uma nova flecha?

Obrigado!

Arquivos anexados:
hilow3.mq4  2 kb
 

Não, conserte-o

int pips externos=2;

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

//| função de início do programa de script |

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

int start()

{

//----

corrente de corda = Símbolo();

int ot = OrdensTotal();

int ords[200], ordType[200], ordTicket[200]; ordLotal[200]; ordLotal[200] duplo;

ordComment[200], ordTicket[200];

int ix=0;

for (int i=0; i<ot; i++)

{

int o = OrderSelect(i, SELECT_BY_POS);

se (OrderSymbol() == Symbol())

se ((OrderType() == OP_BUY) ||| (OrderType() == OP_SELL))

{

dupla lâmina = 0;

if ((OrderType() == OP_BUY) && (OrderStopLoss() < OrderOpenPrice()))

sl = OrderOpenPrice() +pips*Point;

if ((OrderType() == OP_SELLL) && (OrderStopLoss() > OrderOpenPrice()))

sl = OrderOpenPrice() -pips*Point;

se (sl != 0+10)

OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0);

}

}

//----

retorno(0);

 

OK, o código agora se parece com isto:

pips int externo=10;//

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

//| função de início do programa de script |

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

int start()

{

//----

corrente de corda = Símbolo();

int ot = OrdensTotal();

int ords[200], ordType[200], ordTicket[200]; ordLotal[200]; ordLotal[200] duplo;

ordComment[200], ordTicket[200];

int ix=0;

for (int i=0; i<ot; i++)

{

int o = OrderSelect(i, SELECT_BY_POS);

se (OrderSymbol() == Symbol())

se ((OrderType() == OP_BUY) ||| (OrderType() == OP_SELL))

{

dupla lâmina = 0;

if ((OrderType() == OP_BUY) && (OrderStopLoss() < OrderOpenPrice()))

sl = OrderOpenPrice() +pips*Point;

if ((OrderType() == OP_SELLL) && (OrderStopLoss() > OrderOpenPrice()))

sl = OrderOpenPrice() -pips*Point;

se (sl != 0)

OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0);

}

}

//----

retorno(0);

}

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

 

Olá Roger09,

Muito obrigado por sua ajuda com este código. Meu código de script agora se parece com este (acrescentei as mudanças em vermelho apenas para esta resposta, o código no MQ4 se parece com o resto que estava lá):

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

//| função de início do programa de script |

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

int start()

{

//----

int pips externos=2;//

corrente de corda = Símbolo();

int ot = OrdensTotal();

int ords[200], ordType[200], ordTicket[200]; ordLotal[200]; ordLotal[200] duplo;

ordComment[200], ordTicket[200];

int ix=0;

for (int i=0; i<ot; i++)

{

int o = OrderSelect(i, SELECT_BY_POS);

se (OrderSymbol() == Symbol())

se ((OrderType() == OP_BUY) ||| (OrderType() == OP_SELL))

{

dupla lâmina = 0;

if ((OrderType() == OP_BUY) && (OrderStopLoss() < OrderOpenPrice()))

sl = OrderOpenPrice() +pips*Point;

if ((OrderType() == OP_SELLL) && (OrderStopLoss() > OrderOpenPrice()))

sl = OrderOpenPrice() -pips*Point;

se (sl != 0)

OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0);

}

}

//----

retorno(0);

Você pode me avisar se eu acertei? Estou voando às cegas aqui, portanto, tenha paciência comigo.

 

Na verdade, ele estará funcionando, mas este código não é bom. Infelizmente não conheço seus principais objetivos e não posso recomendar outra coisa.