Perguntas de Iniciantes MQL4 MT4 MetaTrader 4 - página 49

 
Alexander Antoshkin:

Para um bolo e uma xícara de café, um aviso deve ser ajustado ( a partir das novas construções do mt4)

)

Bem, a torta pode ser enviada pelo correio... Onde você consegue o café?

Arquivos anexados:
 
Alexey Viktorov:

Bem, você pode enviar uma torta... Onde você consegue o café?

Obrigado.)))

código corrigido retornado para o artigo thread.................................................

 
Estou tentando instalar o MetaTrader4 do arquivo de instalação original mt4setup.exe mas o MT5 está instalado para mim descaradamente. Sistema Windows7 x64. É assim que o desenvolvedor está tentando fazer com que eu goste da nova plataforma? Como posso instalar o que eu quero (MT4) e não o que me está sendo forçado?
 
Andrej Akimov:
Estou tentando instalar o MetaTrader4 do arquivo de instalação original mt4setup.exe mas o MT5 está instalado para mim descaradamente. Sistema Windows7 x64. É assim que o desenvolvedor está tentando fazer com que eu goste da nova plataforma? Como posso instalar o que quero (MT4) e não o que me é impingido?
Já há um monte de tópicos no fórum com soluções para este problema. Por que não usar o mecanismo de busca?
 
Mostrar por exemplo como escrever uma string em um arquivo e lê-lo. O arquivo deve ser armazenado na raiz do drive C. Este deve ser um anexpert.
 

Estou tentando implementar o stop loss e ter lucro desta forma:

spread = Ask-Bid;

stopLoss_B = NormalizeDuplo(Baixo[1]- spread,Dígitos);//NormalizeDuplo(Baixo[1]- spread,Dígitos)

double TakeProfit_B = NormalizeDouble(Ask+((Ask-StopLoss_B)* RiskRewart),Digitos) ;

stopLoss_S duplo = NormalizeDuplo(Alto[1]+ spread,Dígitos);//NormalizeDuplo(Alto[1]+ spread,Dígitos)

double TakeProfit_S = NormalizeDouble(Bid-((StopLoss_S-Bid)* RiskRewart),Digitos) ;

....

OrderSend(Symbol(),OP_BUY,Lots,Ask,3,StopLoss_B,TakeProfit_B, "PBar",Magik,0,Blue);

....

OrderSend(Symbol(),OP_SELL,Lots,Bid,3,StopLoss_S,TakeProfit_S, "PBar",Magik,0,Red);

O testador mostra erro 130 - algo errado com TP e SL. Não consigo entender o que exatamente, especialmente porque às vezes funciona bem, e às vezes recebo um erro.

Em geral, por favor, ajude.

 
RichLux:

Estou tentando implementar o stop loss e ter lucro desta forma:

spread = Ask-Bid;

stopLoss_B = NormalizeDuplo(Baixo[1]- spread,Dígitos);//NormalizeDuplo(Baixo[1]- spread,Dígitos)

double TakeProfit_B = NormalizeDouble(Ask+((Ask-StopLoss_B)* RiskRewart),Digitos) ;

stopLoss_S duplo = NormalizeDuplo(Alto[1]+ spread,Dígitos);//NormalizeDuplo(Alto[1]+ spread,Dígitos)

double TakeProfit_S = NormalizeDouble(Bid-((StopLoss_S-Bid)* RiskRewart),Digitos) ;

....

OrderSend(Symbol(),OP_BUY,Lots,Ask,3,StopLoss_B,TakeProfit_B, "PBar",Magik,0,Blue);

....

OrderSend(Symbol(),OP_SELL,Lots,Bid,3,StopLoss_S,TakeProfit_S, "PBar",Magik,0,Red);

O testador mostra erro 130 - algo errado com TP e SL. Não consigo entender o que exatamente, especialmente porque às vezes funciona bem, e às vezes recebo um erro.

Em geral, por favor, ajude.

Talvez, às vezes, você se aproxime demais do preço atual, veja o que a função retorna

double stop_level=(double)SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL);

...

 

Fórum sobre Comércio, Sistemas Automatizados de Comércio e Testes de Estratégia

Perguntas de Iniciantes MQL4 MT4 MetaTrader 4

Sergey Gritsay, 2017.01.07 18:48

Talvez às vezes você aposta muito perto do preço atual, veja o que a função retorna para você

double stop_level=(double)SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL);

...


Obrigado por sua participação. Não descobriu como utilizar a função sugerida. Mas vocês me encorajaram a aprender mais sobre esses erros na tabela e entenderam que a razão é que quando uma Stop Loss é acionada, mas a vela ainda não fechou, a EA tenta colocar uma nova ordem, e é aí que o erro ocorre. Tenho que pensar como explicar à EA que apenas um pedido por vela é necessário

 
RichLux:

Obrigado por sua participação. Ainda não descobri como usar a função sugerida. Mas vocês me encorajaram a aprender mais sobre esses erros na tabela e entenderam que a razão é que quando uma Stop Loss é acionada mas a vela ainda não fechou a EA tenta colocar uma nova ordem, que é onde o erro ocorre. Tenho que pensar como explicar à EA que apenas um pedido por vela é necessário

Se a EA já tiver uma ordem no símbolo, observe a diferença(tempo de fechamento da ordem)-(tempo de abertura da vela), se a diferença for menor que PeriodSeconds() - não abra uma nova ordem.
 

Fórum sobre Comércio, Sistemas Automatizados de Comércio e Testes de Estratégia

Perguntas dos iniciantes MQL4 MT4 MetaTrader 4

Vitalie Postolache, 2017.01.07 21:23

Observe entre as ordens fechadas, se o Expert Advisor no símbolo dado já tiver uma ordem, observe a diferença(hora de fechamento da ordem)-(hora de abertura da vela), se a diferença for menor que PeriodSeconds() - não abra uma nova ordem.

Fez as coisas um pouco diferente.

Nova função da barra:

bool NewBar()

{

data/hora estática última barra = 0;

barra de data/hora = Tempo[0];

if(lastbar != curbar)

{

lastbar = barra;

retorno (verdadeiro);

}

caso contrário, retornar (falso);

}

e eu escrevi condições para abertura somente se houver um novo bar