Como codificar? - página 20

 

acumulação de variáveis estáticas em aberto

Eu quero acumular uma variável estática, mas apenas uma vez por barra. Se alguém pudesse sugerir uma maneira de fazer isso, eu ficaria grato. Meu problema é que ela é readicionada em cada tick quando eu só quero executar o cálculo uma vez por barra no primeiro tick.

 

datatempo estático myTime = 0;

if(myTime != Hora[0])

{

// fazer o que você quer que seja feito uma vez após a abertura de um novo bar

myTime = Tempo[0];

}

 
timbobo:
datatempo estático myTime = 0;

if(myTime != Tempo[0])

{

// fazer o que você quer que seja feito uma vez após a abertura de um novo bar

myTime = Tempo[0];

}

Obrigado timbobo!

 

Por favor, ajude-me a usar o código acima e não está funcionando 100%. Se eu receber 1 sinal, ele não irá negociar, mas se receber o segundo sinal, ele irá negociar. É muito estranho por que no segundo sinal, mas no primeiro não??

 

É necessário ver sua EA para corrigir.

 

Preciso de ajuda para codificar - lucros cessantes

alguém pode me ajudar a fazer código ou EA para obter lucro?

eu acho que é muito boa idéia

 
yossi1177:
Alguém pode me ajudar a fazer código ou EA para obter lucro... eu acho que é muito boa idéia

exatamente o oposto de uma parada de trilha

 
yossi1177:
Alguém pode me ajudar a fazer código ou EA para obter lucro... eu acho que é muito boa idéia.

Bem, chamá-lo de lucro móvel é um tanto ou quanto um nome errado, porque não seguiria a ação do preço. Mas vou ver o que posso fazer.

 
yossi1177:
Alguém pode me ajudar a fazer código ou EA para obter lucro... eu acho que é muito boa idéia

Este é um simples código de 3 velas de lucro (PT) ou mais parecido com um trailing stop. Ele é ativado por GapPT= número de pips em lucro. A seguir, um exemplo de gráfico do método das 3 velas.

Wackena

extern int GapPT=10;

int c, n, p;

double LongPT, ShortPT;

c=0; p=0;

for(n=0;n<=6;n++)

{

if(High[c+1]Low[c+2]) {n--;}

c++;

p++;

if(n==3) break;

}

ShortPT=NormalizeDouble(High,Digits);

LongPT=NormalizeDouble(Low,Digits);

int total = OrdersTotal();

for(int cnt=0;cnt<total;cnt++) {

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderClosePrice()-OrderOpenPrice() >= GapPT*Point)

{

OrderModify(OrderTicket(),OrderOpenPrice(),LongPT,OrderTakeProfit(),0,GreenYellow);

}

if(OrderType()==OP_SELL && OrderOpenPrice()-OrderClosePrice() >= GapPT*Point)

{

OrderModify(OrderTicket(),OrderOpenPrice(),ShortPT,OrderTakeProfit(),0,Red);

}

}
Arquivos anexados: