Ajuda na codificação - página 20

 

base de saída MACD

Sr. guru, você pode me ajudar a fazer esta EA fechar a base no MACD cross 0.

eu tenho editado mas muito difícil 4 me... muito obrigado

Arquivos anexados:
1428maplus.mq4  30 kb
 

Procurando ajuda para escrever uma peça de código sem sebe

Hi,

Espero obter alguma ajuda com uma fatia de codificação. Tenho um sistema de suporte e resistência e estou tentando editar a e-A para incluir a opção de cobertura. (Já que vivo nos EUA e estou com um corretor sem cobertura).

Sei que quando minha EA é ativada e tenho uma ordem em aberto, a ordem pendente oposta será automaticamente apagada. O problema é que não posso retroceder corretamente e ajustar o sistema porque o Testador de Estratégia não tem opções de hedging/não tem opções de hedge.

Portanto, estou tentando editar o código para incluir essa opção. Obviamente, preciso colocar um bool e defini-lo como falso (o que já fiz), mas não tenho certeza para onde ir a partir daí.

A EA é uma EA típica de suporte/resistência. Ele coloca ordens pendentes x distância tanto do suporte quanto da resistência. Usando um exemplo, se o mercado estiver em uma tendência de queda e atingir minha venda pendente e transformá-la em uma ordem de mercado, e então a tendência se inverte, eu preciso apagar as ordens de compra pendentes (ou desautorizar as ordens de compra pendentes) até que a ordem de venda seja fechada.

O EA também apaga as ordens pendentes em um timer de expiração e no final do horário de entrada das negociações. Eu não tinha certeza se poderia modificar algum desse código para fazer o que estou pensando.

Aqui está o código do EA que apaga as ordens pendentes. Existe alguma maneira de eu modificar isto para fazer o que estou tentando fazer, ou se não, alguém pode me indicar a direção certa?

void deletebuypending(int magic)

{

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

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()==Symbol() &&

OrderMagicNumber()==magic &&

OrderType()==OP_BUYSTOP)

{

OrderDelete(OrderTicket());

}

}

}

void deletesellpending(int magic)

{

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

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()==Symbol() &&

OrderMagicNumber()==magic &&

OrderType()==OP_SELLSTOP)

{

OrderDelete(OrderTicket());

}

}

}

Qualquer ajuda ou indicação na direção certa é apreciada.

 

Obrigado por tentar me ajudar (movendo novamente meu fio sem comentários). Eu li este tópico, mas não vi nada referente ao que eu estava pedindo. Eu mesmo comecei a tentar escrever o código.

Acho que estou meio que no caminho certo. Escrevi este pedaço de código, mas o que acontece é que as ordens de venda pendentes ( ordens de parada de venda) são apagadas assim que são colocadas, quer haja uma ordem de compra ativa ou não.

Ainda espero que alguém possa me ajudar.

if (hedge==false)

{

int total = OrdersTotal();

for(m=total-1;m>=0;m--)

{

OrderSelect(m, SELECT_BY_POS);

int type=OrderType();

int type1=OP_BUY;

int type2=OP_BUYSTOP;

int type3=OP_SELL;

int type4=OP_SELLSTOP;

if(type==type2 && type1>0)

{

OrderDelete(OrderTicket());

}

if(type==type4 && type3>0)

{

OrderDelete(OrderTicket());

}

}

}

 

Olá Gregwendland,

Acho que você pode dizer então que este é meu comentário tardio, tentamos manter as coisas um pouco organizadas no fórum, e pareceu-me que você precisava de ajuda na codificação para que fosse para onde eu o movesse, a seção de ajuda na codificação, a razão pela qual eu não comentei foi pensando para onde eu o movia para falar por si mesmo e eu não podia oferecer nenhuma ajuda para sua questão de codificação, de qualquer forma espero que você encontre alguém para ajudá-lo.

 

Obrigado, Sr.Tools.

Fico-lhe grato. Entendi o que você estava fazendo ao mover meu fio. Só não encontrei nenhuma resposta nos posts anteriores. Eu ainda estou trabalhando nisso. Acho que consegui. Parece estar permitindo uma ordem ativa e apagando a ordem oposta pendente. Além de alternar entre os dois.

if (hedge==false)

{

int total = OrdersTotal();

for(m=total-1;m>=0;m--)

{

OrderSelect(m, SELECT_BY_POS);

if(OrderType()==OP_BUY)

{

deletesellpending(magic);

}

if(OrderType()==OP_SELL)

{

deletebuypending(magic);

}

}

}

[/PHP]

Now, it sort of brings up another question. The EA places objects and connecting lines to show where an order was opened and closed. With setting up the deletepending this way, My chart actually gets filled with continuous Sell/Buy Stop indicators immediately followed by closing/deleted indicators. This continues until there is no longer an open position.

So, what I'd like to try now is to figure out if I can put in a check at the ordering function to stop a pending order from even being placed. This will create a cleaner chart screen for me.

I know I figured that one out on my own, but I'm still looking for help since I am not very good with programming languages.

This is the Order Function:

[PHP]

if((count(OP_BUYSTOP,magic)+count(OP_BUY,magic))<maxtrades && buy && tpb<tradesperbar && IsTradeAllowed())

{

// -- Taken out coding to shorten post

ticket=OrderSend(Symbol(),OP_BUYSTOP,ilots,resistance+distance*pt,slippage*mt,sl,tp,comment+"Bid: "+DoubleToStr(Bid,5),magic,expire,Blue);

if(ticket<=0)

{

Print("Error Occured : "+errordescription(GetLastError()));

}

else

{

tps++;

Print("Order opened : "+Symbol()+" Buy @ "+Ask+" SL @ "+sl+" TP @"+tp+" ticket ="+ticket);

}

}

if((count(OP_SELLSTOP,magic)+count(OP_SELL,magic))<maxtrades && sell && tpb<tradesperbar && IsTradeAllowed())

{

// -- Taken out coding to shorten post

ticket=OrderSend(Symbol(),OP_SELLSTOP,ilots,support-distance*pt,slippage*mt,sl,tp,comment+"Ask: "+DoubleToStr(Ask,5),magic,expire,Red);

if(ticket<=0)

{

Print("Error Occured : "+errordescription(GetLastError()));

}

else

{

tpb++;

Print("Order opened : "+Symbol()+" Sell @ "+Bid+" SL @ "+sl+" TP @"+tp+" ticket ="+ticket);

}

}

Eu estava pensando se eu colocasse algo como && OP_SELL==falso (ou OP_BUY===falso na seção de ordem de venda ). É essa a idéia correta?

 

Contador de barras para MT4 - IndicatorCounter

Olá a todos.

Este é meu primeiro posto.

Preciso da ajuda de qualquer um que possa.

Eu desenvolvi meu primeiro MT4 EA usando um gerador de código e modificando-o depois de compilado e estou tentando fazê-lo:

1. Após a entrada, sair do ofício após, por exemplo, 15 barras.

2. O número de barras para sair é mutável na seção "extern int".

A EA negocia nos parâmetros RSI especificados e atualmente sai em TP, SL e TS (trailing stop).

Também gostaria de sair por exemplo, quando 10 ou 15 barras tiverem passado.

Eu tentei como louco, mas não consigo colocá-lo para funcionar.

Agradeço muito se alguém pudesse me ajudar, por favor.

Anexei o EA para que qualquer um possa dar uma olhada.

Saúde e Melhores cumprimentos

cj

Arquivos anexados:
 
freefreecj:
Olá a todos.

Este é meu primeiro posto.

Preciso da ajuda de qualquer um que possa.

Eu desenvolvi meu primeiro MT4 EA usando um gerador de código e modificando-o depois de compilado e estou tentando fazê-lo:

1. Após a entrada, sair do ofício após, por exemplo, 15 barras.

2. O número de barras para sair é mutável na seção "extern int".

A EA negocia nos parâmetros RSI especificados e atualmente sai em TP, SL e TS (trailing stop).

Também gostaria de sair por exemplo, quando 10 ou 15 barras tiverem passado.

Eu tentei como louco, mas não consigo colocá-lo para funcionar.

Agradeço muito se alguém pudesse me ajudar, por favor.

Anexei o EA para que qualquer um possa dar uma olhada.

Saúde e Melhores cumprimentos

cj

Oi Cj,

Movido até aqui, espero que você encontre uma solução aqui nesta linha ou que alguém passe por aqui e ajude.

 

Obrigado MrTools

Obrigado MrTools

 

Olá a todos,

Preciso de um Indicador que possa dar um alerta sonoro e de caixa para

a) Comprar quando a Baixa cruza acima de 34 EMA de Altas para cima

b) Vender quando a Alta cruza 34 EMA de Baixas para baixo

Alguém pode me ajudar, por favor?

Qualquer tipo de ajuda será apreciada.

Obrigado de antemão

cumprimentos

Sahilsri

 

...

Mladen...por que o Squize MA não mostra bandas onde a seta está...ao meu entender, ele tem que mostrar bandas quando o MA está a uma certa distância um do outro?

Arquivos anexados:
a.tpl  2 kb
a_2.jpg  161 kb
Razão: