Ajuda na codificação - página 119

 
Tomcat98:
Olá a todos,

pergunta aos codificadores sobre "condições comerciais":

Se eu disser;

Primeiro código:

"

se ( Blá Blá Blá < Blá Blá Blá)

se ( Blah Blah > Blah Blah Blah) resultado = (OP_SELL);

"

Segundo código:

"

( Blah Blah Blah Blah Blah) resultado = (OP_SELL);

"

O "primeiro código" é o mesmo que o "segundo código"?

Em "primeiro código" as 2 condições têm que ser preenchidas ao todo ou apenas uma para operar uma "SELL" ?

O "segundo código" é mais restritivo?

Você pode, por favor, me informar sobre isso?

Desculpe-me por esse Blah Blah ... Loooll

Muito obrigado.

Tomcat98

Não se preocupe com o blá blá Esses dois trechos de código são, ao todo, exatamente os mesmos. Provavelmente existem algumas pequenas diferenças no que diz respeito ao código compilado, mas no que diz respeito à execução, eles avaliam exatamente para o mesmo resultado. Nenhum dos trechos é mais restritivo

 
mladen:
Não se preocupe com o blá blá Esses dois trechos de código são, ao todo, exatamente os mesmos. Provavelmente existem algumas pequenas diferenças no que diz respeito ao código compilado, mas no que diz respeito à execução, eles avaliam exatamente para o mesmo resultado. Nenhum dos trechos é mais restritivo

Que resposta rápida. Muito obrigado pela resposta.

Eu tinha dúvidas sobre estes códigos, mas não mais agora.

Muito obrigado, Mladen.

Tenha uma boa semana de negociações.

Tomcat98

 
TheGMan:
Oi mladen, eu tive este indicador ajustado há muito tempo e gosto de como ele se exibe agora, mas o único problema é que agora ele está consumindo até muito CPU. Você poderia, por favor, dar uma olhada debaixo do capô e ver se talvez o código precise ser limpo ou ver porque ele congela minha plataforma quando os mercados começam a se mover.

Será muito apreciado!

Agradecemos antecipadamente!

G

Olá mladen ou mr tools você vai olhar o código deste aqui e ver se ele precisa ser limpo um pouco. Parece congelar a minha plataforma quando os mercados começam a se mover rapidamente.

Obrigado

G

Arquivos anexados:
 
TheGMan:
Olá mladen ou mr tools você vai olhar para o código deste aqui e ver se ele precisa ser limpo um pouco. Parece congelar minha plataforma quando os mercados começam a se mover rapidamente.

Obrigado

G

TheGMan

Esse indicador está procurando dados de múltiplos períodos de tempo e essa é a razão pela qual ele torna seu PC mais lento. Muitas pessoas reclamaram disso ultimamente (especialmente desde que as compilações 500 e 509 se tornaram reais) e talvez até seja um problema que essas compilações, por alguma razão, estejam causando naquele indicador.

 
mladen:
TheGManEsse indicador está procurando dados de múltiplos períodos de tempo e essa é a razão pela qual ele torna seu PC mais lento. Muitas pessoas reclamaram disso ultimamente (especialmente desde que as compilações 500 e 509 se tornaram reais) e talvez até seja um problema que essas compilações, por algum motivo, estejam causando naquele indicador

Obrigado pela resposta mladen,

É uma pena como eu realmente gostei daquele indi & agora é quase impossível de usar.

G

 
TheGMan:
Obrigado pela resposta mladen,

É uma pena como eu realmente gostei daquele indi & agora é quase impossível de usar.

G

s vezes acontece com algumas construções de metatrader

Lembro-me quando o iStdDevOnArray() estava causando tais problemas (fazia indicadores usando-o tão lentamente quanto uma lesma) e então eles o corrigiram. Se aparecer alguma nova construção, verifique novamente. Quem sabe: talvez ele comece a funcionar bem novamente

 

Problema com um roteiro

Olá,

Tenho um roteiro, que envia três pedidos em tempo, com TP diferentes. Mas às vezes funciona, e às vezes só é feita a primeira ou a primeira e segunda encomenda, mas a última é enviada para Timuktu, ou então. Eu acho que três pedidos enviados a tempo só podem funcionar, se o servidor não estiver ocupado.

Alguém pode me ajudar e mudar o Script, de modo que ele volte a repetir os pedidos perdidos após alguns segundos? E é possível fazer um som, se uma ordem for executada?

Muito obrigado.

111buy_fps.mq4

Arquivos anexados:
 
effenn:
Olá,

Tenho um roteiro, que envia três pedidos em tempo, com TP diferentes. Mas às vezes funciona, e às vezes só é feita a primeira ou a primeira e segunda encomenda, mas a última é enviada para Timuktu, ou então. Eu acho que três pedidos enviados a tempo só podem funcionar, se o servidor não estiver ocupado.

Alguém pode me ajudar e mudar o Script, de modo que ele volte a repetir os pedidos perdidos após alguns segundos? E é possível fazer um som, se uma ordem for executada?

Muito obrigado.

111buy_fps.mq4

effenn

Tente usar este aqui

Defina as repetições para um número desejado quantas vezes o roteiro tentará abrir a mesma ordem se houver algum problema. E defina o PauseBetweenRetries para o número desejado de milissegundos para pausar entre cada nova tentativa de abrir a ordem.

Arquivos anexados:
buy_fps_2.mq4  3 kb
 

Acabamos de participar deste maravilhoso fórum. Encontrei uma EA muito interessante no fórum MT4 https://www.mql5.com/en/code/8491. Mais trabalho precisa ser feito. Não sou um programador, mas acho que é possível

O código deve ser modificado para ler o calendário de chamadas do DailyFX ou outra fonte. Talvez algo mais também

Qualquer ajuda seria realmente apreciada.

 

Mladen,a parte de compra e venda do código acima não está funcionando,a parada está funcionando,não dá alerta!

mladen:
Tente algo como isto :
static datetime lastAlerted1=0;

static datetime lastAlerted2=0;

static string lastType1="";

static string lastType2="";

//Momentum.....1hour

double mom_1h=iMomentum(NULL,60,14,PRICE_CLOSE,0);

double b4mom_1h=iMomentum(NULL,60,14,PRICE_CLOSE,1);

//========Alerts for buy and Sell==========

//Alerts for buy

if((mom_1h>99.6353)&&(mom_1h>b4mom_1h)&&(lastAlerted1!=Time[0] && lastType1!="Buy")){

lastAlerted1=Time[0];

lastType1="Buy";

Alert("Buy","\n","Current time is ",TimeToStr(CurTime()),"\n",Symbol());

}

//Alerts for Sell

if((mom_1h<100.7482)&&(mom_1h<b4mom_1h)&&(lastAlerted1!=Time[0] && lastType1!="Sell")){

lastAlerted1=Time[0];

lastType1="Sell";

Alert("Sell","\n","Current time is ",TimeToStr(TimeLocal(),TIME_SECONDS),"\n",Sym bol( ));

}

//==========Alerts for Stop buying and sell==============

//Alert to stop Buy

if((mom_1h<b4mom_1h)&&(lastAlerted2!=Time[0]&&lastType2!="Stop Buy")){

lastAlerted2=Time[0];

lastType2="Stop Buy";

Alert("Stop Buy","\n","Current time is ",TimeToStr(CurTime()),"\n",Symbol());

}

//Alerts to Stop Selling

if((mom_1h>b4mom_1h)&&(lastAlerted2!=Time[0]&&lastType2!="Stop Sell")){

lastAlerted2=Time[0];

lastType2="Stop Sell";

Alert(" Stop Sell","\n","Current time is ",TimeToStr(TimeLocal(),TIME_SECONDS),"\n",Sym bol( ));

}

Razão: