Acho que isso parece bem, mas na verificação para o OrderCloseTime,
Não vejo porque você precisa dos 30 minutos extras.
Se o mais recente OrderCloseTime é mais recente que o anterior, então deve ser a última vez.
se (Curtime() > última vez + 30*60)
Pergunta básica ...
Hi,
Sou novo no MetaTrader e tenho uma pergunta básica:
Quero limitar as posições abertas no meu consultor especializado a apenas 1 posição de cada vez - mas quero essa limitação por símbolo, portanto, se eu tiver outro consultor especializado em outro símbolo, ele abrirá uma nova posição nesse símbolo.
Em outras palavras, quero poder abrir 1 posição para todos os símbolos, mas não mais que 1 posição para um símbolo (E estou falando de muitos conselheiros-especialistas em muitos símbolos...)
Como posso fazer isso ?
Eu vi a função"totaltrades", mas pela documentação entendi que esta função se aplica à conta e não ao símbolo atual,
então "se totaltrades=1 então saia;" causará 1 posição de cada vez para todos os símbolos...
10X !
1 posição para todos os símbolos
int total=OrdersTotal();
if(total<1)
{
.
.
.
}
Mas uma posição para um símbolo ou para um gráfico aberto?
bem, um por gráfico é o melhor ...
Mas se não pode ser feito, então 1 por símbolo também é bom...
for (int i=0; i<OrdersTotal(); i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==Symbol() )
return(0);
....Ótimo!
10X muito!
E eu vou te incomodar novamente ... (:
Posso fazer isso também por tabela?
Porque eu tenho diferentes sistemas para diferentes gráficos de intervalos de tempo ...
desculpe-me por não entender
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Hi
Eu quero fazer o seguinte em código
"Não troco por 30 minutos desde minha última troca".
Portanto, se meus indicadores indicam que eu deveria acrescentar novamente ao meu comércio atual, então eu coloco o comércio na mesma direção somente se 30minutos tiverem passado
Estou fazendo o seguinte - este código funciona ainda - está apenas em fase de projeto - não sei como adicionar 30 minutos ao meu último pedido
Isto é para um EA que só trabalha com o par atual
int start()
{
int cnt, ticket, total, stop1;
data/hora estática última vez
total=OrdensTotal();
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
//Determinar o tempo do último OrderClose
se (OrderCloseTime > última vez + 30)
{
última vez = hora de fechamento do pedido
}// se (OrderCloseTime)
}
Agora eu quero dizer
se (Curtime() > última hora + 30 minutos)
{
Negociação de contíguos
}
ajuda