Ajuda na codificação - página 423

 

mladen,

Eu fiz a mudança no número 144 e unifiquei o número mágico, "MagicNumber" em todas as instâncias de símbolos.... Agora é necessário um máximo de 5 negociações de uma vez, mas agora repetem-se as negociações no mesmo símbolo ao mesmo tempo, por exemplo, se receber um sinal de venda no EURUSD , ele irá colocar a ordem de venda do EURUSD 5 vezes. Veja a imagem da ordem em tempo real que ela tomou dessa forma:

mladen:
Se você quiser que ela tenha no máximo 5 ordens sobre todos os símbolos, vá para a linha 144(if( OrderSymbol() != Symbol() ) continue;) e apague-a. E mantenha o número mágico para todas as instâncias em todos os símbolos iguais (para que possa contar as ordens abertas somente por aquela EA em todos os símbolos)
Arquivos anexados:
 
Mastercash:
mladen, eu fiz a mudança no número 144 e unifiquei o número mágico, "MagicNumber" através dos símbolos instâncias.... Agora são necessárias no máximo 5 negociações de uma vez, mas agora repetem-se as negociações no mesmo símbolo ao mesmo tempo, por exemplo, se receber um sinal de venda no EURUSD , ele irá colocar a ordem de venda do EURUSD 5 vezes. Veja a imagem da ordem em tempo real que ela tomou dessa forma:

Por favor, leia meu post anterior

Essa abertura não tem nada a ver com a falta de verificação dos símbolos - você deve ter uma verificação adicional para desativar as ordens de abertura no mesmo símbolo e na mesma barra. Se você tiver a mesma EA nos mesmos símbolos e diferentes períodos de tempo, então nem mesmo essa verificação o ajudaria (já que as barras serão diferentes em alguns casos para diferentes períodos de tempo do mesmo símbolo).

 

Muito obrigado, mladen,

Eu tentei adicionar um código que você me achava alguns anos atrás....mas parece não funcionar..... o código se você se lembra de ir por aqui...

data estática da última vezAlerted=0;

if(lastalerted!=Time[0];

open().......

ajude-me a adicionar o código certo no local apropriado!

mladen:
Isso não depende dessa parte do código Você tem que adicionar um cheque no resto do código para não abrir uma ordem na mesma barra e no mesmo símbolo
 
Mastercash:
Muito obrigado, mladen,

Eu tentei adicionar um código que você me achava alguns anos atrás....mas parece não funcionar..... o código se você se lembra de ir por aqui...

data estática da última vezAlerted=0;

if(lastalerted!=Time[0];

open().......

ajude-me a adicionar o código certo no local apropriado!

Mastercash

Como eu disse no post anterior: se você anexar essa EA ao mesmo símbolo e a diferentes períodos de tempo, não há como evitar que um período de tempo inferior EA abra uma ordem na barra de tempo superior (que já tenha aberto ordem).

Você teria que escanear todas as barras de tempo de corrente, o que traduzido chega à barra de tempo de corrente mais alta - mas mesmo assim você não tem idéia de qual o tipo de barra de tempo que abriu a barra

Você poderia usar o campo de comentários da ordem para marcar isso, mas o campo de comentários pode ser mudado pelo corretor, então não há uma maneira confiável de fazer isso

 

ok senhor...

De qualquer forma, eu anexei o código abaixo... gentilmente ajude-me com um ajuste para que esta negociação repetida na mesma moeda pare: e se eu precisar fazer algum compromisso extra para fazê-lo, você pode não me conhecer por meio da caixa de entrada me.tnks

mladen:
Mastercash

Como eu disse no post anterior: se você anexar essa EA ao mesmo símbolo e a diferentes períodos de tempo, não há como evitar que um período de tempo inferior EA abra uma ordem na barra de tempo superior (que já tenha aberto ordem).

Você teria que escanear todas as barras de tempo de corrente, o que traduzido chega à barra de tempo de corrente mais alta - mas mesmo assim você não tem idéia de qual o tipo de barra de tempo que abriu a barra

Você poderia usar o campo de comentários da ordem para marcar isso, mas o campo de comentários pode ser mudado pelo corretor, então não há uma maneira confiável de fazer isso
Arquivos anexados:
 
Mastercash:
De qualquer forma, eu anexei o código abaixo... gentilmente ajude-me com um ajuste para que esta negociação repetida na mesma moeda pare: e se eu precisar fazer algum compromisso extra para fazê-lo, você pode não me conhecer por meio da caixa de entrada me.tnks

Na verdade, a EA é uma EA de múltiplos períodos (usa indicadores em dados de 5 minutos) mas não importa: aqui você tem uma versão que não permite abrir mais de um pedido por barra nicetrader_1.021.mq4

Arquivos anexados:
 

Olá a todos,

alguém pode me ajudar a codificar uma simples ea com base no indicador xcode, já que não sou da máfia em codificação.

Só preciso comprar e vender ordens após o fechamento da barra de sinal, opção de mudança do período de sinal do indicador, horário de negociação e opção de mudança dos dias de negociação.

As entradas de compra e venda são simples como descrito na captura de tela. qualquer intervalo de tempo qualquer par, opção de ganho, opção de parada de rastreamento.

Sei que não é o Santo Graal e está longe dele (como o Santo Graal não existe ), mas podemos tentar conseguir algo com isto.

Também se for possível adicionar a opção de aumentar o tamanho do lote (para mudar manualmente). por exemplo: 0.01,0.01,0.02,0.02,0.04,0.04,0.08,0.08 e assim por diante...

Arquivos anexados:
xcode.jpg  346 kb
xcode.mq4  11 kb
 
mladen:
TFI

Tente algo como isto :

extern double maxshorttrades = 2;

extern double maxlongtrades = 2;

//-----------------------------------------------------

//

//-----------------------------------------------------

int clongs = 0;

int cshorts = 0;

for (i=OrdersTotal()-1;i>=0; i--)

{

if(OrderType()==OP_BUY) clongs++; // Check Long Traded Positions.

if(OrderType()==OP_SELL) cshorts++; // Check Short Traded Positions.

}

if(trendc!=trendp)

{

if(clongs < maxlongtrades && trendc== 1 && (CCIFilter<80)) OpenBuy();

if(cshorts 80)) OpenSell();

// Check the CCI condition

// it is not symetrical to buy condition

}

Olá, Mladen,

muito obrigado por sua ajuda! Eu implementei seu código como sugerido.

Agora ele está funcionando

Posso lhe fazer outra breve pergunta?

O que você pensa sobre o filtro CCI, é esta a abordagem correta para filtrar os marktes laterais neste caso?

Devo dar-lhe uma gama como (CCIFilter>80 && CCIFilter<100)

Talvez você possa aconselhar?

if(openedOrders<=0)

{

double CCIFilter=iCCI(NULL,0,CCIPeriod,CCIMethod,0);

double trendc = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,1); //buffer, signal candle, up

double trendp = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,2); //buffer, signal candle, down

int clongs = 0;

int cshorts = 0;

for(i=OrdersTotal()-1;i>=0; i--)

{

if(OrderType()==OP_BUY) clongs++; // Check Long Traded Positions.

if(OrderType()==OP_SELL) cshorts++; // Check Short Traded Positions.

}

if(trendc!=trendp)

{

if(clongs 80)) OpenBuy(); // (CCIFilter>80 && CCIFilter<100) maybe better?

if(cshorts < maxshorttrades && trendc==-1 && (CCIFilter<-80)) OpenSell(); //(CCIFilter-100)

// Check the CCI condition

// it is not symetrical to buy condition

}

}

P.S., espero que você não seja afetado pela falência da Alpari, há alguma turbulência.

Obrigado com antecedência e tenha um bom fim de semana!

Com os melhores cumprimentos,

TFI

Arquivos anexados:
backtest2.jpg  160 kb
 
tfi_markets:
Olá, Mladen,

muito obrigado por sua ajuda! Eu implementei seu código como sugerido.

Agora ele está funcionando

Posso lhe fazer outra breve pergunta?

O que você pensa sobre o filtro CCI, é esta a abordagem correta para filtrar os marktes laterais neste caso?

Devo dar-lhe uma gama como (CCIFilter>80 && CCIFilter<100)

Talvez você possa aconselhar?

if(openedOrders<=0)

{

double CCIFilter=iCCI(NULL,0,CCIPeriod,CCIMethod,0);

double trendc = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,1); //buffer, signal candle, up

double trendp = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,2); //buffer, signal candle, down

int clongs = 0;

int cshorts = 0;

for(i=OrdersTotal()-1;i>=0; i--)

{

if(OrderType()==OP_BUY) clongs++; // Check Long Traded Positions.

if(OrderType()==OP_SELL) cshorts++; // Check Short Traded Positions.

}

if(trendc!=trendp)

{

if(clongs 80)) OpenBuy(); // (CCIFilter>80 && CCIFilter<100) maybe better?

if(cshorts < maxshorttrades && trendc==-1 && (CCIFilter<-80)) OpenSell(); //(CCIFilter-100)

// Check the CCI condition

// it is not symetrical to buy condition

}

}

P.S., espero que você não seja afetado pela falência da Alpari, há alguma turbulência.

Obrigado com antecedência e tenha um bom fim de semana!

Com os melhores cumprimentos,

TFI

TFI

Da Alpari : Sou cliente deles há muito tempo. Mas eu fecho minhas contas de vez em quando (quando se atinge uma massa crítica) e desta vez fechei minha conta com eles há cerca de um mês, e não abri uma nova (tendo uma conta ainda aberta com outro corretor também). Francamente, embora eu tenha tido sorte e não tenha sido afetado em nada pelo que aconteceu, devo dizer que estou triste pelo que aconteceu com eles: nunca tive nenhum problema (nem mesmo um pequeno problema) com eles, e nos casos em que algumas coisas precisavam de esclarecimento ou correção eles sempre o faziam de forma oportuna

_______________________

Do filtro CCI : geralmente valores entre -100 e +100 são considerados uma "zona normal" para CCI (o que significaria variação), mas muitos comerciantes estão negociando CCI exclusivamente em uma cruz zero com o parâmetro de comprimento padrão (14) definido. Ele aumenta a possibilidade de ser atingido por uma serra de chicote, mas aqueles que estão usando cruzes zero geralmente a usam em um curto espaço de tempo. Para evitar esse tempo de uso, defina o período para um período maior (tente 50, por exemplo), o que é um bom ajuste para sinais de cruz zero em muitos símbolos e períodos de tempo

 
mladen:
TFI

Da Alpari : Sou cliente deles há muito tempo. Mas eu fecho minhas contas de vez em quando (quando se atinge uma massa crítica) e desta vez fechei minha conta com eles há cerca de um mês, e não abri uma nova (tendo uma conta ainda aberta com outro corretor também). Francamente, embora eu tenha tido sorte e não tenha sido afetado em nada pelo que aconteceu, devo dizer que estou triste pelo que aconteceu com eles: nunca tive nenhum problema (nem mesmo um pequeno problema) com eles, e nos casos em que algumas coisas precisavam de esclarecimento ou correção eles sempre o faziam de forma oportuna

_______________________

Do filtro CCI : geralmente valores entre -100 e +100 são considerados uma "zona normal" para CCI (o que significaria variação), mas muitos comerciantes estão negociando CCI exclusivamente em uma cruz zero com o parâmetro de comprimento padrão (14) definido. Ele aumenta a possibilidade de ser atingido por uma serra de chicote, mas aqueles que estão usando cruzes zero geralmente a usam em um curto espaço de tempo. Para evitar esse tempo de uso, defina o período para um período maior (tente 50, por exemplo), o que é um bom ajuste para sinais de cruz zero em muitos símbolos e períodos de tempo

Olá Mladen,

Gostaria de lhe agradecer mais uma vez por sua ajuda. Você é muito conhecedor. Eu realmente aprecio muito, a ajuda e o compartilhamento de conhecimentos são muito raros hoje em dia. Também vou implementar e testar suas sugestões sobre a CCI.

Felizmente, não fui afetado pelo caso Alpari porque ainda estou desenvolvendo minha CCI (ela deve ser comercializada enquanto estou no escritório e gerar alguma renda extra para mim e minha família). Usei a Alpari como plataforma de testes, porque eles deixaram a conta demo aberta por tempo ilimitado. Eu optei por uma conta nos mercados IG há alguns dias, mas ainda não tenho dinheiro transferido. Preciso primeiro ter a EA funcionando de forma confiável e livre de bugs.

Tudo de bom para você e continue com seu grande trabalho!

Com os melhores cumprimentos,

TFI