Como codificar? - página 63

 

Como abrir um pedido apenas no início de um bar ??

Hi,

Estou implementando uma EA na qual quero abrir uma ordem somente se uma cruz de algum nível por um indicador tiver ocorrido entre a segunda barra anterior e a barra anterior.

Por exemplo, no gráfico diário, se houver uma cruz entre 18 e 19 de janeiro, eu quero abrir uma ordem no dia 20 de janeiro.

Eu fiz algo assim:

Quando abro um pedido, eu registro o tempo de abertura do pedido.

Em seguida, faço o seguinte teste: É (TempoAtual() - LastOrderOpenTime) < Período()??

Se sim, significa que a barra atual ainda não está terminada, e eu não devo abrir um novo pedido. E também, quando esta condição se torna falsa, eu deveria estar na próxima barra do gráfico, e a cruz aconteceu antes da última barra e nenhuma ordem deveria ser aberta até o próximo sinal.

O problema é que ao anexá-lo a um gráfico, ele continua a criar novas ordens até que a barra esteja terminada. Alguém pode me dizer o que eu fiz de errado?

 
dvarrin:
Hi,

Estou implementando uma EA na qual quero abrir uma ordem somente se uma cruz de algum nível por um indicador tiver ocorrido entre a segunda barra anterior e a barra anterior.

Por exemplo, no gráfico diário, se houver uma cruz entre 18 e 19 de janeiro, eu quero abrir uma ordem no dia 20 de janeiro.

Eu fiz algo assim:

Quando abro um pedido, eu registro o tempo de abertura do pedido.

Em seguida, faço o seguinte teste: É (TempoAtual() - LastOrderOpenTime) < Período()??

Se sim, significa que a barra atual ainda não está terminada, e eu não devo abrir um novo pedido. E também, quando esta condição se torna falsa, eu deveria estar na próxima barra do gráfico, e a cruz aconteceu antes da última barra e nenhuma ordem deveria ser aberta até o próximo sinal.

O problema é que ao anexá-lo a um gráfico, ele continua a criar novas encomendas até que a barra esteja pronta. Alguém pode me dizer o que eu fiz de errado?

Não tenho certeza, mas aqui está o que alguém fez por mim há algum tempo. Eu teria que procurar no Google para dar os adereços adequados ao escritor original.

Isso ajuda a determinar se você está ou não na abertura de um novo bar.

int newbar()

{

double g;

int m,s,k;

m=Time[0]+Period()*60-TimeCurrent();

g=m/60.0;

s=m%60;

m=(m-m%60)/60;

return(m);

}[/CODE]

And I use it like this:

[CODE]if (newbar()==Period())

Espero que isso ajude.

 
dvarrin:
Hi,

Estou implementando uma EA na qual quero abrir uma ordem somente se uma cruz de algum nível por um indicador tiver ocorrido entre a segunda barra anterior e a barra anterior.

Por exemplo, no gráfico diário, se houver uma cruz entre 18 e 19 de janeiro, eu quero abrir uma ordem no dia 20 de janeiro.

Eu fiz algo assim:

Quando abro um pedido, eu registro o tempo de abertura do pedido.

Em seguida, faço o seguinte teste: É (TempoAtual() - LastOrderOpenTime) < Período()??

Se sim, significa que a barra atual ainda não está terminada, e eu não devo abrir um novo pedido. E também, quando esta condição se torna falsa, eu deveria estar na próxima barra do gráfico, e a cruz aconteceu antes da última barra e nenhuma ordem deveria ser aberta até o próximo sinal.

O problema é que ao anexá-lo a um gráfico, ele continua a criar novas encomendas até que a barra esteja pronta. Alguém pode me dizer o que eu fiz de errado?

Então eu faço o seguinte teste: Is (CurrentTime() - LastOrderOpenTime) < Período()??

você pode adicionar // retornar (0);

OU

isto pode ajudar... adicionar o código...

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

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == falso) break;

if(OrderSymbol()== Símbolo () && OrderMagicNumber()== MN)

{

if( OrderOpenTime() >= iTime(0, PERÍODO_D1, 0) samebar++;

}

}

você pode escolher entre os 2...

se ( samebar > 0 ) retornar (0);

OU

se (samebar < 1) {seus códigos de pedido;}

eu não sou bom em codificação, então alguém pode tentar verificar se eu coloco os códigos certos.

 
dvarrin:
Hi,

Estou implementando uma EA na qual quero abrir uma ordem somente se uma cruz de algum nível por um indicador tiver ocorrido entre a segunda barra anterior e a barra anterior.

Por exemplo, no gráfico diário, se houver uma cruz entre 18 e 19 de janeiro, eu quero abrir uma ordem no dia 20 de janeiro.

Eu fiz algo assim:

Quando abro um pedido, eu registro o tempo de abertura do pedido.

Em seguida, faço o seguinte teste: É (TempoAtual() - LastOrderOpenTime) < Período()??

Se sim, significa que a barra atual ainda não está terminada, e eu não devo abrir um novo pedido. E também, quando esta condição se torna falsa, eu deveria estar na próxima barra do gráfico, e a cruz aconteceu antes da última barra e nenhuma ordem deveria ser aberta até o próximo sinal.

O problema é que ao anexá-lo a um gráfico, ele continua a criar novas encomendas até que a barra esteja pronta. Alguém pode me dizer o que eu fiz de errado?

Ummm...

if(iOpen(Symbol(),0,0)==iClose(Symbol(),0,0)&&iLow(Symbol(),0,0)==iHigh(Symbol(),0,0))

{

//A new bar has happend.

}
 

Como posso saber o lucro do comércio anterior? E os lotes, e o lado?

 
Dan7974:
Como posso saber o lucro do comércio anterior? E os lotes, e o lado?

Use OrderHistoryTotal() em vez de OrderTotal(). Em seguida, use OrderProfit(), OrderLots() etc. Você deve certificar-se de que as citações históricas para o período de tempo em que está interessado sejam carregadas, e eu acho que você só pode fazer isso manualmente - clique com o botão direito do mouse na aba 'Histórico de Ordens' e selecione 'Todo Histórico'.

Deve ter adicionado que você precisa usar 'MODE_HISTORY' com OrderSelect()...

 
omelette:
Use OrderHistoryTotal() em vez de OrderTotal(). Depois use OrderProfit(), OrderLots() etc. Você deve certificar-se de que as cotações históricas para o período de tempo em que está interessado sejam carregadas, e eu acho que você só pode fazer isso manualmente - clique com o botão direito do mouse na aba 'Order History' e selecione 'All History'.Deveria ter adicionado que você precisa usar 'MODE_HISTORY' com OrderSelect()...

Olá Omelete,

Você sabe que a BT tem um problema em olhar para a história: ela olha para a história real, não para a da BT. Perguntei à Metaquote alguns meses atrás sobre este bug, mas eles não tinham nenhuma resposta.... Talvez agora ele esteja corrigido...

 

Hi

Como você codifica um ciclo de aperto das taxas de juros em uma moeda e um ciclo de redução das taxas de juros em outra moeda?

A EA pode analisar as taxas atuais e históricas dos swaps?

OILFXPRO

 
Arquivos anexados: