Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1471

 
ANDREY:

Encontrei um padrão estatístico estável no testador, que vem produzindo lucros constantes com drawdowns aceitáveis desde 2008. Preciso testá-lo em diferentes pares e armações, etc.
Mas eu preciso testá-lo usando vários parâmetros simultaneamente. A otimização leva muito tempo irreal. E eu já escrevi um código que testa o que eu preciso muito mais rápido. E agora estou melhorando meu código, ou seja, quero que ele funcione ainda mais rápido no testador, ou o mais rápido possível. O principal algoritmo em meu código é abrir pedidos em 30 pontos após cada mínimo local. Por isso, tento fazê-lo o mais rápido possível.

Sua tarefa será mais fácil se você puder explicar como você identifica o extremo local.

Se o indicador Fractal for adequado para isso, então você deve verificar na segunda barra a presença de um fractal e a partir deste valor você deve calcular os 30 pontos ou pips necessários... o que você quiser.

 
MakarFX:

O cheque em seu código não é uma carga, mas se você realmente quer experimentá-lo, experimente-o.

Experimentei-o. Abre novamente as ordens erradas (em termos de tempo, preço e quantidade)

Seu código.

double LoU;
int OnInit()
  {
   LoU=Bid;
  }
//+------------------------------------------------------------------+
void OnTick()
  {
   if(Low[1]<LoU) {LoU=Low[1];}
   if ((Bid-30*Point)>=LoU)
     {
      if(OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0)) LoU=Bid;
     }
  }


Obrigado pela ajuda.

 
Alexey Viktorov:

Sua tarefa será mais fácil se você puder explicar como você identifica o extremo local.

Se o indicador Fractals for adequado para isso, então você verifica na segunda barra a presença de um fractal e conta os 30 pontos ou pips necessários... o que você quiser.

Se por um extremo entendemos o mínimo local após o qual o pedido é aberto, este mínimo é definido verificando o valor do preço mínimo em cada carrapato ou candelabro. E é exatamente com isso que estou me debatendo. Quero que tudo aconteça muito mais rápido a fim de abrir pedidos em posições que eu preciso.

 
ANDREY:

Se um extremo for entendido como um mínimo local após o qual um pedido é aberto, esse mínimo é determinado pela verificação do valor do preço mínimo em cada carrapato ou candelabro. E é exatamente com isso que estou me debatendo. Quero que tudo aconteça muito mais rápido a fim de abrir pedidos em posições que eu preciso.

O extremo é um mínimo local ou um máximo local. Como você o define?

 
Alexey Viktorov:

Sua tarefa será mais fácil se você puder explicar como você define um extremo local.

Se o indicador Fractal for adequado, então você verifica na segunda barra a presença de um fractal e a partir deste valor calcula os 30 pontos ou pips necessários... o que você quiser.

Acho que o indicador fractal não me convém. Vai perder muitas encomendas.

O pedido aberto pelo meu código com a verificação de preço a cada tick é destacado em azul. Penso que o indicador fractal não me diz nada necessário neste caso.

 
Alexey Viktorov:

Um extremo é um mínimo local ou um máximo local. Como você o define?

No meu caso, é um mínimo.

 
ANDREY

O que é isso?

Pr

como é rubricado?

 
MakarFX:
Depende de onde você o coloca

Por exemplo, entre a abertura de duas ordens adjacentes. Ou seja, lembre-se da barra da última ordem aberta e abra uma ordem assim que o preço estiver acima do baixo que esta função define em 30 pontos. Mas, neste caso, esta função deve ser chamada a cada tique. Mude o xelim para o sabonete.......

 
ANDREY:

Trocando um xelim por um sabonete.......

Pior ainda...ainda precisa saber o número de bares


Eu afinei ...tente

 
MakarFX:

O que é isso?

como é rubricado?

double LoU,Pr;
void OnTick()//484
{
Tick++;
if (Bid<LoU)
LoU=Bid;
//**************************************************************||TimeCurrent()==1262568096
if (Bid-LoU>=0.0030&&Pr!=LoU)
{
OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0);
Print("---------------------КАЖДЫЙ ТИК ------Tick---------=     "    ,   Tick);
Pr=LoU;
LoU=Bid;
}
}
Pr é uma variável para que apenas 1 pedido seja aberto após 30 pips. Sem esta variável eles abrem em cada carrapato
Razão: