Como codificar? - página 78

 

Tenho que trabalhar agora.

 
hedge4x:
Esta linha while(!IsAllClosed) {CloseAllTrades(); return;}

no início principal fechará todas as posições abertas se a MT cair

e eu o inicio novamente. Existe uma maneira de colocar esta linha

na função de fechamento de negócios para não fechar todas as posições abertas

após o reinício do MT4?

obrigado.

Sim, desculpe, você pode definir o bool na hora de início assim:

bool IsAllClosed = true ; //Global variable[/PHP]

Then it becomes even better to define a extern variable, so you can keep the control :[PHP]extern bool CloseAll = false ; //Global variable

void CloseAllTrades()

{

int cnt;

CloseAll = false;

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

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if (OrderMagicNumber()==GetMagicNumber())

CloseAll = CloseAll || !OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), MarketInfo(OrderSymbol(), MODE_SPREAD), Yellow);

}

}

void start()

{

while(CloseAll) {CloseAllTrades(); return;}

...

A principal vantagem deste método é que a EA tenta fechar cada posição a cada tick até que todos sejam fechados.

 

ajuda necessária com minha primeira EA semi-profissional

Olá a todos...

Fiz um EA pelo site do grande consultor especialista bulder e o testei e achei lucrativo para o último ano, mas acho que isso pode ser melhorado ...

Então, se alguém pode ajudar a melhorar essa EA ?

detalhou sobre a EA...

a EA passou em dois indecadores, um deles é meu e o outro pode ser encontrado em "zero lag macd" público quatroms

agora o especialista está trabalhando o tempo todo para entrar comprar e depois fechar e inverter para vender e assim por diante ...

preciso fazer com que funcione apenas nos tempos de spesfic, adicionar uma gestão de dinheiro e a última coisa que preciso para atrasar a excução de compra ou venda com a próxima vela de "1 minuto", mas o trabalho da EA na vela de 1H de fato ...

então espero encontrar como posso ajudar nisso

Obrigado a todos vocês

Com os melhores cumprimentos

Tamer

Arquivos anexados:
 

como se referir ao nome do arquivo que estou executando?

Hi,

Eu quero saber como posso me referir a um nome de arquivo que estou executando.

Por exemplo, se eu executar um script chamado supertrader.mq4 e eu quero abrir um arquivo de log chamado supertrader_logfile do script supertrader.

Existe alguma variável que contenha o nome do arquivo que estou executando?

Obrigado.

 
star90:
Hi,

Eu quero saber como posso me referir a um nome de arquivo que estou executando.

Por exemplo, se eu executar um script chamado supertrader.mq4 e eu quero abrir um arquivo de log chamado supertrader_logfile do script supertrader.

Existe alguma variável que contenha o nome do arquivo que estou executando?

Obrigado.

Talvez adicionando void Print( ...) ao script.

void Print( ...) Imprime uma mensagem para o log dos especialistas.

 

Para a adria

Você viu o meu PM?

Big Be

 

Onda de Lobo. Eu preciso de sua ajuda

Prezado Codersguru,

Eu não sou um programador e em meu estilo de tentativa e erro, a onda lobo que tentei melhorar está dando o sinal "o segundo parâmetro, ObjectTextSetFunction deve ser uma corda".

Por favor, ajude-me a retificar.

Obrigado por antecipação.

Arquivos anexados:
wolfwave.rar  3 kb
 

Oi pessoal, eu preciso de uma função de bool que retorne verdadeiro se 5 minutos já passaram, ou 10 minutos ou o que for. Já sei como verificar se há uma nova barra, mas não é frequente o suficiente.

 
nittany1:
Oi pessoal, eu preciso de uma função de bool que retorne verdadeiro se 5 minutos já passaram, ou 10 minutos ou o que for. Já sei como verificar se há uma nova barra, mas não é frequente o suficiente.

Talvez

double LastRedraw = 0;

if(TimeLocal() - LastRedraw > 300)

{

Print();

ObjectsRedraw();

Print("ObjectsRedraw Done");

LastRedraw = TimeLocal();

}

 
Linuxser:
Talvez

double LastRedraw = 0;

if(TimeLocal() - LastRedraw > 300)

{

Print();

ObjectsRedraw();

Print("ObjectsRedraw Done");

LastRedraw = TimeLocal();

}

[/code]

Ou isto:

[CÓDIGO]

bool ElapsedTimeCheck(int MyMinutes)

{

data/hora estática OldTime;

se (OldTime == 0)

OldTime = TimeCurrent() + MyMinutes * 60; // rubricado uma vez...

se (TimeCurrent() >= OldTime)

{

OldTime = TimeCurrent() + MyMinutes * 60;

bool cond = true;

}

senão cond = falso;

return(cond);

}