[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 915

 
ViktorF:

Olá!

Pergunta sobre o testador:

Quando estou testando EAs, o testador pára de processar os preços após uma violação s/l. O que devo fazer para evitar isso? O que devo fazer, se eu quiser que o testador continue testando a EA depois de violar a parada?


Talvez você tenha um roteiro, não um EA))) e que período de testes você define?

Se tudo estiver bem, poste a EA, alguém lhe dirá o que fazer.

 
gheka:


Talvez você tenha um roteiro, não um EA))) e que período de testes você define?

Se o seu prazo estiver ok, afixe o EA, alguém lhe dirá.


Principalmente 30 minutos.

O mais interessante é que quando eu contornar as stop-losses por fechamento forçado, os preços são processados posteriormente e a curva do gráfico continua a ser desenhada. Mas se eu fechar a mesma ordem em uma parada (mudar um pouco o código EA) - os testes param depois de uma parada... Talvez você devesse mudar alguns parâmetros nas configurações do testador?

 
gheka:

Pessoal! existe alguma função que devolva o valor de uma perda fixa em pips para fechar um pedido?

Eu sei que existe uma OrderStopLoss, mas é uma perda de preço.

Sei que existe uma OrderStopLoss - mas é um valor do preço com prejuízo, mas não encontrei nada, me ajude

Pesquise aqui... :)

 
ViktorF:


A maioria em 30 minutos.

O mais interessante: quando eu contornar paradas por fechamento forçado - os preços são processados mais adiante e a curva do gráfico continua a ser traçada. Mas se eu fechar a mesma ordem por uma parada (mudar um pouco o código do Expert Advisor) - os testes param depois de uma parada... Talvez você devesse mudar alguns parâmetros nas configurações do testador?

 
ViktorF:


A maioria em 30 minutos.

O mais interessante: quando eu contornar paradas por fechamento forçado - os preços são processados mais adiante e a curva do gráfico continua a ser traçada. Mas se eu fechar a mesma ordem por uma parada (mudar um pouco o código do Expert Advisor) - os testes param depois de uma parada... Talvez você devesse mudar alguns parâmetros nas configurações do testador?

Muito provavelmente um erro no código EA e ele pára de abrir novas posições após fechar uma parada
 

Olá!

Pergunta sobre o testador de estratégia: Ao testar no testador de diário não há resultados com os registros, no terminal de registro também não há ..... no final da barra de carregamento, no testador, há um rangido desagradável. conselheiro reside na pasta de especialistas todas as caixas de verificação são definidas cem ajuda plz?

 
artmedia70:

Pesquise aqui... :)


obrigado!!!
 
artmedia70:
Muito provavelmente um erro no código EA e depois de fechar em uma parada ele pára de abrir novas posições

Acho que descobri o erro: a caixa de seleção não muda de valor após o fechamento do pedido por stop (ou seja, não pela própria EA). Como contornar isso?
 
ViktorF:

Acho que descobri o erro: a bandeira não muda o valor após o fechamento do pedido por stop (ou seja, não por Expert Advisor). Como contornar isso de forma inteligente?

Na EA, verifique se o pedido está fechado em uma parada. E se assim for, altere o valor de sua bandeira.

Você pode usar a função pronta de Igor Kim para determinar se a última posição fechada foi fechada por uma parada.

Ou você mesmo pode fazer isso. Em qualquer caso, pode ser um bom exemplo para você começar:

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.05.2008                                                     |
//|  Описание : Возвращает флаг закрытия последней позиции по стопу.           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
bool isCloseLastPosByStop(string sy="", int op=-1, int mn=-1) {
  datetime t;
  double   ocp, osl;
  int      dg, i, j=-1, k=OrdersHistoryTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderCloseTime()) {
                t=OrderCloseTime();
                j=i;
              }
            }
          }
        }
      }
    }
  }
  if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
    dg=MarketInfo(sy, MODE_DIGITS);
    if (dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; else dg=2;
    ocp=NormalizeDouble(OrderClosePrice(), dg);
    osl=NormalizeDouble(OrderStopLoss(), dg);
    if (ocp==osl) return(True);
  }
  return(False);
}
 
artmedia70:

Na EA, verifique se o pedido está fechado em uma parada. E se assim for, altere o valor de sua bandeira.

Você pode usar a função pronta de Igor Kim para determinar se a última posição fechada foi fechada por uma parada.

Ou você mesmo pode fazer isso. Em qualquer caso, será um bom exemplo para você começar:


Obrigado! Vou tentar)