if(iTime(NULL,PERÍODO_D1,i+1)!=iTime(NULL,PERÍODO_D1,i)&& como é que escrevo isto? )
É necessário extrair a data do tempo[i] e compará-la com o tempo[i+1]. Se não forem iguais, então extrair tempo do tempo[i] e comparar com o tempo dado. Se forem os mesmos, ponha em fila.
Já mostrei como extrair tudo isto no guião. Tudo o que resta é pensar no assunto.
É necessário extrair a data do tempo[i] e compará-la com o tempo[i+1]. Se não for igual, extrair o tempo do tempo[i] e compará-lo com o tempo dado. Se forem as mesmas, traçar uma linha.
Como tudo é extraído - mostrei no guião. Tudo o que falta fazer é pensar nisso.
Sexta-feira à noite, a pensar mal) Nada se constrói. Porquê?
Pergunta estúpida mas, mesmo assim, por favor, ajude)
Eu entrei numa troca a algum preço, eu sempre desejei) E eu comparo o preço da troca com a oferta actual, se aumentarmos 0,5% eu fecho.Maldito a oferta(((
if(MA1_buf[1]>Close_buf[1] && MA1_buf[0]<Close_buf[0]) //если значение индикатора были выше цены закрытия и стали ниже
{
if(m_Position.Select(my_symbol)) //если уже существует позиция по этому символу
{
if((m_Position.PositionType()==POSITION_TYPE_BUY) && (fabs(DEAL_PRICE-Bid[0])/DEAL_PRICE)>= 0.005) m_Trade.PositionClose(my_symbol); //и тип этой позиции Buy, то закрываем ееreturn;
}
m_Trade.Buy(0.1,my_symbol); //если дошли сюда, значит позиции нет, открываем ее
}
Pergunta estúpida mas, mesmo assim, por favor, ajude)
Eu entrei numa troca a algum preço, eu sempre desejei) E eu comparo o preço da troca com a oferta actual, se subirmos 0,5% eu fecho. Juro por oferta(((
Tem razão em jurar. Não existe tal matriz com preços de licitação na MQL5.
Substitui-la por
m_symbol.Bid()
e antes do ciclo, não se esqueça de actualizar os preços:
E ele tem razão em jurar. Não existe tal matriz com preços de licitação na MQL5.
Substitui-la por
e antes do laço não se esqueça de actualizar os preços:
Fi-lo de duas maneiras diferentes:
1) O Expert Advisor trabalha, mas infelizmente não me dá essa ideia. É simples, eu compro quando a vela anterior se fechava por baixo e a seguinte por cima. E eu fecho apenas se o preço subir 0,5%.
Faz negócios estranhos(((
if(MA1_buf[1]>Close_buf[1] && MA1_buf[0]<Close_buf[0]) //если значение индикатора были выше цены закрытия и стали ниже
{
if(m_Position.Select(my_symbol)) //если уже существует позиция по этому символу
{
if((m_Position.PositionType()==POSITION_TYPE_BUY) && (SymbolInfoDouble(_Symbol,SYMBOL_BID)-DEAL_PRICE)/DEAL_PRICE>= 0.005) m_Trade.PositionClose(my_symbol); //и тип этой позиции Buy, то закрываем ееreturn;
}
m_Trade.Buy(0.1,my_symbol); //если дошли сюда, значит позиции нет, открываем ее
}
2) O meu método é o seguinte:
if(!RefreshRates())
return;
if(MA1_buf[1]>Close_buf[1] && MA1_buf[0]<Close_buf[0]) //если значение индикатора были выше цены закрытия и стали ниже
{
if(m_Position.Select(my_symbol)) //если уже существует позиция по этому символу
{
if((m_Position.PositionType()==POSITION_TYPE_BUY) && (m_symbol.Bid())-DEAL_PRICE)/DEAL_PRICE>= 0.005) m_Trade.PositionClose(my_symbol); //и тип этой позиции Buy, то закрываем ееreturn;
}
m_Trade.Buy(0.1,my_symbol); //если дошли сюда, значит позиции нет, открываем ее
}
1) O Expert Advisor trabalha, mas infelizmente não implementa a ideia. É simples, eu compro quando a vela anterior se fechava mais abaixo e a seguinte mais alta. E só fecho se o preço subir 0,5%.
Faz negócios estranhos(((
2) O meu método é o seguinte:
Acho que fiz asneira(((.
Dá um erro:
Abra qualquer um dos meus códigos e aí verá tanto m_symbol como RefreshRates.
Abra qualquer um dos meus códigos e verá aí tanto m_symbol como RefreshRates.
Obrigado. Já o li e fiz.
Agora não consigo perceber porque é que o algoritmo não funciona.
if(!RefreshRates())
return;
1) if(MA1_buf[1]>Close_buf[1] && MA1_buf[0]<Close_buf[0]) //если значение индикатора были выше цены закрытия и стали ниже
{
2) if(m_Position.Select(Symbol())) //если уже существует позиция по этому символу
{
return;
}
2*) m_Trade.Buy(0.1,Symbol()); //если дошли сюда, значит позиции нет, открываем ее
}
3) if
((m_Position.PositionType()==POSITION_TYPE_BUY) && (((m_symbol.Bid()-DEAL_PRICE)/DEAL_PRICE)>= 0.1))
{
m_Trade.PositionClose(Symbol()); //и тип этой позиции Buy, то закрываем ее
}
O que acontece é o seguinte: a compra é feita sob a condição
1) Se a condição for preenchida;
2) Verifico se já existe uma posição aberta, se existe, vou ao ponto 3), se não existe, abro um 2*)
3) Se a posição for comprada, e se for cumprida a condição de que o preço tenha aumentado 10% em relação ao preço de entrada, então eu fecho-a.
No teste, acontece o seguinte, a posição abre e fecha, não em condições (( Mais uma vez, por favor, ajude!
Agora não consigo perceber porque é que o algoritmo não funciona.
O que acontece é o seguinte: a compra é feita sob a condição
1) Se a condição for preenchida;
2) Verifico se já existe uma posição aberta, se existe, vou ao ponto 3), se não existe, abro um 2*)
3) Se a posição for comprada, e se for cumprida a condição de que o preço tenha aumentado 10% em relação ao preço de entrada, então eu fecho-a.
Ao testar o seguinte acontece, a posição abre e fecha, não em condições (( Mais uma vez, por favor, ajude!
Proponho o seguinte algoritmo:
if(!RefreshRates())
return;
if(MA1_buf[1]>Close_buf[1] && MA1_buf[0]<Close_buf[0]) //если значение индикатора были выше цены закрытия и стали ниже
{
if(m_Position.Select(Symbol())) //если уже существует позиция по этому символу
{
if(m_Position.PositionType()==POSITION_TYPE_BUY && (m_symbol.Bid()-m_Position.PriceOpen())/m_Position.PriceOpen()>=0.1)
{
m_Trade.PositionClose(Symbol()); //и тип этой позиции Buy, то закрываем ееreturn;
}
}
else
m_Trade.Buy(0.1,Symbol()); //если дошли сюда, значит позиции нет, открываем ее
}
if(iTime(NULL,PERÍODO_D1,i+1)!=iTime(NULL,PERÍODO_D1,i)&& como é que escrevo isto? )
É necessário extrair a data do tempo[i] e compará-la com o tempo[i+1]. Se não forem iguais, então extrair tempo do tempo[i] e comparar com o tempo dado. Se forem os mesmos, ponha em fila.
Já mostrei como extrair tudo isto no guião. Tudo o que resta é pensar no assunto.
É necessário extrair a data do tempo[i] e compará-la com o tempo[i+1]. Se não for igual, extrair o tempo do tempo[i] e compará-lo com o tempo dado. Se forem as mesmas, traçar uma linha.
Como tudo é extraído - mostrei no guião. Tudo o que falta fazer é pensar nisso.
Sexta-feira à noite, a pensar mal) Nada se constrói. Porquê?
depois extrair o tempo do tempo[i] e compará-lo com o tempo definido.
Provavelmente, tempo[i+1], preciso de colocar a linha para o dia anterior após o encerramento do dia.
Olá.
Pergunta estúpida mas, mesmo assim, por favor, ajude)
Eu entrei numa troca a algum preço, eu sempre desejei) E eu comparo o preço da troca com a oferta actual, se aumentarmos 0,5% eu fecho.Maldito a oferta(((
Entrei numa troca a algum preço, estou sempre ansioso)E comparo o preço da troca com a oferta actual, se subíssemos 0,5% eu fecho.Juro a oferta(((
Provavelmente porque se trata da MQL5. Não há aqui "oferta", masSymbolInfoDouble(_Symbol, SYMBOL_BID)
Olá.
Pergunta estúpida mas, mesmo assim, por favor, ajude)
Eu entrei numa troca a algum preço, eu sempre desejei) E eu comparo o preço da troca com a oferta actual, se subirmos 0,5% eu fecho. Juro por oferta(((
Tem razão em jurar. Não existe tal matriz com preços de licitação na MQL5.
Substitui-la por
m_symbol.Bid()e antes do ciclo, não se esqueça de actualizar os preços:
E ele tem razão em jurar. Não existe tal matriz com preços de licitação na MQL5.
Substitui-la por
e antes do laço não se esqueça de actualizar os preços:
Fi-lo de duas maneiras diferentes:
1) O Expert Advisor trabalha, mas infelizmente não me dá essa ideia. É simples, eu compro quando a vela anterior se fechava por baixo e a seguinte por cima. E eu fecho apenas se o preço subir 0,5%.
Faz negócios estranhos(((
2) O meu método é o seguinte:
Acho que fiz asneira(((.
Gera um erro:
Fê-lo de duas maneiras diferentes:
1) O Expert Advisor trabalha, mas infelizmente não implementa a ideia. É simples, eu compro quando a vela anterior se fechava mais abaixo e a seguinte mais alta. E só fecho se o preço subir 0,5%.
Faz negócios estranhos(((
2) O meu método é o seguinte:
Acho que fiz asneira(((.
Dá um erro:
Abra qualquer um dos meus códigos e aí verá tanto m_symbol como RefreshRates.
Abra qualquer um dos meus códigos e verá aí tanto m_symbol como RefreshRates.
Obrigado. Já o li e fiz.
Agora não consigo perceber porque é que o algoritmo não funciona.
O que acontece é o seguinte: a compra é feita sob a condição
1) Se a condição for preenchida;
2) Verifico se já existe uma posição aberta, se existe, vou ao ponto 3), se não existe, abro um 2*)
3) Se a posição for comprada, e se for cumprida a condição de que o preço tenha aumentado 10% em relação ao preço de entrada, então eu fecho-a.
No teste, acontece o seguinte, a posição abre e fecha, não em condições (( Mais uma vez, por favor, ajude!
Obrigado. Já fiz a leitura.
Agora não consigo perceber porque é que o algoritmo não funciona.
O que acontece é o seguinte: a compra é feita sob a condição
1) Se a condição for preenchida;
2) Verifico se já existe uma posição aberta, se existe, vou ao ponto 3), se não existe, abro um 2*)
3) Se a posição for comprada, e se for cumprida a condição de que o preço tenha aumentado 10% em relação ao preço de entrada, então eu fecho-a.
Ao testar o seguinte acontece, a posição abre e fecha, não em condições (( Mais uma vez, por favor, ajude!
Proponho o seguinte algoritmo:
Preste atenção à m_Posição.PriceOpen()