Colegas,
Num trecho abaixo do código de um EA que eu estou estudando na conta hedge demo eu tenho um sinal de compra quando a variável Preço estiver maior que a variável Compra (vSignal=1), e na venda é ao contrário (vSignal= -1). O que tá pegando é que enquanto as duas condições estão como verdadeiras o EA faz infinitas entradas. Daí eu coloquei um int count_buys e int count_sells, só que ao fazer isso o EA para de fazer as entradas como eu gostaria. O que eu pretendo é que o EA só compre (ou venda) na transição de vSignal=1 para vSignal= -1 (ou vice-versa para venda). Não é o caso da condição ser verdadeira abrir novas compras e novas vendas, mas sim, de ocorrer a transição da condição. Por isso eu pergunto: O quê de mais simples eu poderia pôr no código para funcionar desta forma como eu pretendo ?
Ou seja, se era vSignal = -1 e passou para vSignal = 1, faz 1 compra, e compra denovo sempre que ocorrer esta transição. Então poderá fazer N compras bastando que ocorram N transições
Só deve fazer entradas na transição das condições e não na condição se manter como verdadeira como está ocorrendo. Também não seria o caso de analisar Close de candles (daria certo, mas o preço pode se distanciar muito num candle grande). Deve se basear apenas no <Preço> ser maior ou menor que <Compra> ou <Vende>.
int vSignal=0;
if(Preço>Compra)
vSignal=1; // comprar
else if(Preço<Vende)
vSignal=-1; // vender
Opa,
Os valores ExtLinha e InpRange são input´s digitados por mim. E a variável Preço é o valor do BID
double Preço=SymbolInfoDouble(_Symbol,SYMBOL_BID);
double Compra=ExtLinha+InpRange;
double Vende=ExtLinha-InpRange;
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
O uso correto do count_buys e count_sells foi o que deu certo para sanar a minha dúvida. Ao fazer uma compra fecho uma venda e vice-versa
if(signal==1 && count_buys<1)
{
ClosePositions(POSITION_TYPE_SELL);
Colegas,
Num trecho abaixo do código de um EA que eu estou estudando na conta hedge demo eu tenho um sinal de compra quando a variável Preço estiver maior que a variável Compra (vSignal=1), e na venda é ao contrário (vSignal= -1). O que tá pegando é que enquanto as duas condições estão como verdadeiras o EA faz infinitas entradas. Daí eu coloquei um int count_buys e int count_sells, só que ao fazer isso o EA para de fazer as entradas como eu gostaria. O que eu pretendo é que o EA só compre (ou venda) na transição de vSignal=1 para vSignal= -1 (ou vice-versa para venda). Não é o caso da condição ser verdadeira abrir novas compras e novas vendas, mas sim, de ocorrer a transição da condição. Por isso eu pergunto: O quê de mais simples eu poderia pôr no código para funcionar desta forma como eu pretendo ?
Ou seja, se era vSignal = -1 e passou para vSignal = 1, faz 1 compra, e compra denovo sempre que ocorrer esta transição. Então poderá fazer N compras bastando que ocorram N transições
Só deve fazer entradas na transição das condições e não na condição se manter como verdadeira como está ocorrendo. Também não seria o caso de analisar Close de candles (daria certo, mas o preço pode se distanciar muito num candle grande). Deve se basear apenas no <Preço> ser maior ou menor que <Compra> ou <Vende>.
int vSignal=0;
if(Preço>Compra)
vSignal=1; // comprar
else if(Preço<Vende)
vSignal=-1; // vender