Eu fiz uma dessas coisas uma vez ... - página 14

 

Privaval é banido e de alguma forma silencioso, por isso vou começar com uma mensagem para ele: Sergey, se você estiver lendo isto, me avise algum dia se você recebeu minha resposta ao seu e-mail.


Entretanto, eu fiz um roteiro, marcando os níveis de acordo com outra idéia - e estes níveis parecem ótimos. Infelizmente, é um pouco pesado para a coleta de boas estatísticas. Mas tenho uma suspeita de que quase qualquer sistema de níveis pode parecer bom em uma tabela de preços :)


Além disso, tomei o tempo necessário para escrever um Strategy Tester Expert Advisor usando o algoritmo descrito acima. No entanto, ainda não o testei porque acabei de terminá-lo e não gosto dos Expert Advisors. No entanto, parece funcionar. Aqui está o código completo em anexo para demonstração.

int start() {
  if (Start) {
    Start = false;
    HalfPoint = 0.5*Point;
    DLvl = 1000*Point;
    RecDLvl = 1.0/DLvl;
    dStopLevel = StopLevel*Point;
  }

// Блок сопровождения ордеров
  double Price;
  bool IsBuyStop = false;
  bool IsSellStop = false;
  for(int ord=OrdersTotal();ord>=0;ord--) {
    if(OrderSelect(ord,SELECT_BY_POS,MODE_TRADES)==false) continue;
    switch(OrderType()) {
      case OP_BUY: 
        if (TimeCurrent()-OrderOpenTime() > LT) OrderClose(OrderTicket(),OrderLots(),Bid,5,Blue);
        break;
      case OP_SELL: 
        if (TimeCurrent()-OrderOpenTime() > LT) OrderClose(OrderTicket(),OrderLots(),Ask,5,Yellow);
        break;
      case OP_BUYSTOP: 
        IsBuyStop = true;
        Price = GetBuyStopLevel(dStopLevel);
        if (OrderOpenPrice()-Price > HalfPoint) OrderModify(OrderTicket(),NormalizeDouble(Price,Digits),0,0,0,Blue);
        break;
      case OP_SELLSTOP: 
        IsSellStop = true;
        Price = GetSellStopLevel(dStopLevel);
        if (Price-OrderOpenPrice() > HalfPoint) OrderModify(OrderTicket(),NormalizeDouble(Price,Digits),0,0,0,Yellow);
        break;
    }  //  switch(OrderType())
  }  //  for(int ord=OrdersTotal();ord>=0;ord--)
  
//  Блок установки орлеров  
  static int Mnt;
  static int PreMnt;
  Mnt = TimeMinute(TimeCurrent());
  if (Mnt != PreMnt) {
    PreMnt = Mnt;
    if (!IsBuyStop) OrderSend(Symbol(),OP_BUYSTOP,Lots(),NormalizeDouble(GetBuyStopLevel(dStopLevel),Digits),5,0,0,NULL,0,0,Blue);
    if (!IsSellStop) OrderSend(Symbol(),OP_SELLSTOP,Lots(),NormalizeDouble(GetSellStopLevel(dStopLevel),Digits),5,0,0,NULL,0,0,Yellow);
  }
  return(0);
}

Não posso seguir em frente sem Prival, ele terá que dizer se o teste é dele ou não.


P.S. Expert Advisor apenas por cinco dígitos.

Arquivos anexados:
 

Mudou o Expert Advisor, se estamos focados na reversão no nível, então na primeira abordagem ao nível não deve ser colocada uma ordem de parada. Grosso modo, o EA anterior deveria dar a mesma quantidade de bais e vender em cada nível, enquanto este EA deveria dar mais uma compra ao se aproximar de cima e mais uma venda ao se aproximar de cima e vice versa.

A inclinação da ameixa para o nível 00 e a stopwave de 20 ppt (cinco dígitos) tem um spread um pouco menor por comércio, é eurodólar a partir do verão de 2004

A dependência de equilíbrio no nível (ou seja, otimização por parâmetro Delta em incrementos de 50 pontos (cinco dígitos)) é bastante consistente com os dados obtidos anteriormente sobre as interseções de barras de um minuto


Logicamente, agora é hora de falar sobre muitas coisas; sobre deslizamentos, sobre navios, sobre selos , sobre couves e reis, e sobre outros contextos e filtros.:)

 

tentar introduzir paradas e separar estratégias de fuga e ressalto por tempo/volatilidade.

 

O número de variantes possíveis é muito grande, e é por isso que faz sentido investigar coletivamente. É claro que é necessário variar o código, ou seja, sem algumas habilidades iniciais em mql será difícil de fazer. O principal é que os resultados e a forma como eles são obtidos só serão úteis se forem publicados. Bem, está bem, o graal pode ser proibido :), mas certamente as pessoas devem conhecer os resultados negativos.


Pára para entrar - é uma inserção bastante padrão no código. Mas, na minha opinião, se não for um "seguro" distante, ele não dará nada além de uma outra forma de encaixe.


É muito fácil fazer uma estratégia de fuga como se fosse - basta desativar a definição de ordens se houver alguma ordem na mesma direção (não apenas pendente) e definir uma parada suficientemente grande (comparável à distância entre níveis). Mas fazer um ressalto correto apenas daquele esquema simples e belo não foi tão fácil para mim. Na idéia, devemos cronometrar o fato da passagem de nível e fazer um pedido somente depois de feito. A sutileza é que este fato não pode ser registrado para o nível mais próximo de uma maneira padrão - afinal, o nível mais próximo salta no momento em que é atravessado. Pode durar até três carrapatos se o nível médio estiver exatamente no mesmo nível. É por isso que os resultados do post anterior foram obtidos usando o Expert Advisor consideravelmente alterado. Eu não postei aqui porque foi sugerido para o Codobase (de que outra forma entender o nível de interesse real neste assunto :)).


Os filtros de tempo são considerados um dos mais eficazes e geralmente bastante simples de implementar, seria interessante ver os resultados. Você está convidado a me enviar uma mensagem :)


É claro que os filtros de volatilidade também são de grande interesse, mas existem ainda mais variantes de construção, precisamos de variantes e resultados específicos para eles.

 
Você pode obter um especialista aqui.
 

Foi encontrada uma imprecisão no LevelsTrade_1.mq4 que leva à assimetria de uma compra-venda. Aqui precisamos substituir uma linha nesta função:

double GetSellStopLevel(double StopLvl) {
  int ILvl = (Bid+HalfPoint)*RecDLvl;
  double DownLvl = DLvl*ILvl;
//  if (DownLvl > Bid-StopLvl-HalfPoint) DownLvl -= DLvl ;
  if (Bid-StopLvl < DownLvl-HalfPoint) DownLvl -= DLvl ;
  return (DownLvl);
}

A linha errada é comentada aqui. A versão correta é anexada ao correio.

Arquivos anexados:
 
Balbesik06:



Candidato!

Eu o vi e estou me dirigindo a você.

Pergunta fora de tópico.

Você gostaria de voltar ao Zig-Zag?

Escrevi para você em "particular", não houve resposta.

E na EA (discutir ou não), eu tenho estatísticas (na minha) 7(+) - 1(-), mas a EA de outro autor.

E há muitas perguntas.

Se você verificar (em particular) e as estatísticas forem confirmadas, então você corrige o Zig-Zag para mim de acordo com seu esquema.

E algoritmo (para o Expert Advisor) você tem o direito de postar mais tarde.

Você gosta?

Sinceramente.

 
Balbesik06:

...

Escrevi para você na seção "privada" e não houve resposta.

Eu não ouvi nada em particular, tente novamente. Como último recurso você pode me enviar um e-mail, meu perfil tem o endereço da minha página, é fácil encontrar meu e-mail lá.
 
Balbesik06:

"... No mínimo, você pode enviar um e-mail",...

Sim, tente - passado o assunto.

O ponto é simples - demonstrado na ONIX todos "voam fora", exceto o seu.

Não vejo qual é o sentido em nenhuma citação sevetnik se ela "NÃO SE ACOMPANHA".

Cumprimentos.


P.S. Tente (se não for muito difícil) escrever - Olá.
 

Hmm, chequei a caixa postal Onyx (e raramente olho lá), ela está vazia. E os problemas com o correio são bastante misteriosos.

Eugene, deixe-me colocar desta forma: verifique sua conta pessoal neste fórum, deve haver uma mensagem minha lá desde anteontem. Basta respondê-lo, descrever o problema ou dar um link para sua descrição, escrever exatamente o que você precisa.

Tanto quanto sei, há um problema com os vértices pendurados de diferentes Zigzags. O meu não tem este problema. Lembro-me, quando escrevi que o problema de suspensão do vértice em ziguezague (muito provavelmente era CZZ) era quase universal. Tentei entender sua causa, e acho que entendi. Mas muita água passou desde então, e eu acho que agora muitos ziguezagues também não congelam mais.

Em todo caso, não está claro o que exatamente você precisa? Para que eu refaça todos os ziguezagues incluídos com o ZUP?

Razão: