Características úteis da KimIV - página 73

 
A função retorna o fractal por seu número. A numeração é separada para fractal superior e fractal inferior. Isto pode ser útil para desenvolver Conselheiros Especializados que analisam o posicionamento relativo do último número de fractais a fim de tomar uma decisão sobre a entrada no mercado. Feito modificando a função KimIV.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru  & khorosh        |
//+----------------------------------------------------------------------------+
//|  Версия   : 08.02.2009                                                     |
//|  Описание : Возвращает фрактал по его номеру.                              |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента        ("" или NULL - текущий символ)     |
//|    tf - таймфрейм                       (    0       - текущий ТФ)         |
//|    nf - номер фрактала                  (    0       - последний)          |
//+----------------------------------------------------------------------------+
double GetFractal(string sy="0", int tf=0, int nf=0, int mode=MODE_UPPER) {
  if ( sy=="" || sy=="0") sy=Symbol();
  double f=0;
  int    i, k=iBars( sy, tf), kf;
  for ( i=3; i< k; i++) {
    if( mode==MODE_LOWER){
    f=iFractals( sy, tf, MODE_LOWER, i);
    if ( f!=0) {
      kf++;
      if ( kf> nf) return(iLow( sy, tf, i));
     } 
    }
    if( mode==MODE_UPPER){
    f=iFractals( sy, tf, MODE_UPPER, i);
    if ( f!=0) {
      kf++;
      if ( kf> nf) return(iHigh( sy, tf, i));
      }
    }
  }
  Print("GetFractalBar(): Фрактал не найден");
  return(-1);
}
 

Olá Igor!

Estou tentando aprender MQL4 e, devido à falta de descrição dos operadores de idiomas, um problema me deixou perplexo. Tenho um indicador com 8 buffers de dados acumulados. Preciso que ele seja exibido em um período de tempo que eu tenha escolhido e com o período do próximo período de tempo. Para este fim, ele utiliza o operador iCustom(). Mas retorna um valor duplo e não sei como e se o iCustom pode e deve ser usado neste caso.

Espero realmente a sua ajuda.

 

Olá Igor! E boa tarde a todos!

Estou interessado no código que deve ser inserido para que o Expert Advisor não faça mais negócios naquele dia em que fecha um negócio...


Encontrei-o mas não funciona no testador de estratégias, quero testá-lo, que código devo usar em seu lugar?

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

  if (sy=="" || sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()==sy) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderCloseTime()) t=OrderCloseTime();
            }
          }
        }
      }
    }
  }
  return(iBarShift(sy, tf, t, True));
}

Então você deve colocar nas condições de entrada

if (NumberOfBarCloseLastPos(NULL, 1440,-1, Magic)  !=0) {
                                                      }
 
LeoV писал(а) >>

Olá Igor!

Você tem um roteiro que modifica todas as posições abertas por volume (lotes) para todos os instrumentos em uma certa porcentagem? Tanto para cima como para baixo com a economia do Magic Number para cada posição?

Olá Leonid!

Eu não... Eu escrevi... ChangeLots

 
KimIV писал(а) >>

Olá, Leonid!

Não... escreveu... ChangeLots

Igor, muito obrigado! Eu poderia realmente usar isto para meu pamm. )))))
 

Olá Igor!

Ao utilizar seu Expert Advisor "e-SampleCase", quando eu estabeleço uma parada

menos de 100 (10 pips), meu testador gera erro 130.

Não sei por que não funciona corretamente.

Por favor, responda!

 
6232 >> :

Ao utilizar seu Expert Advisor "e-SampleCase", ao definir uma parada

menos de 100 (10 pips), meu testador dá erro 130.

Parar funciona bem. Por quê?

Corredor min. estendido a BC para definir paradas e decolagens

 
BARS писал(а) >>

Expandiu o corredor min. de DC para definir paradas e aquisições

>> Obrigado! Entendi.

 
6232 >> :

Olá Igor!

Ao utilizar seu Expert Advisor "e-SampleCase", quando eu estabeleço uma parada

menos de 100 (10 pips), meu testador gera erro 130.

Não sei por que não funciona corretamente.

>> Por favor, me dê uma resposta.

é provavelmente por causa da introdução do quinto dígito, na alpari pela maneira como eles disseram que você tem que aumentar suas paradas em 10 vezes porque seus 100 pips se tornam 10 pips, daí os erros na maioria dos pares...

 
stalkervr писал(а) >>

Se você não se importa, diga-me como usar sua função

Determinar a presença e o volume de uma posição aberta, bem como a presença e o volume de pedidos pendentes definidos

Eugene, eu acho sua pergunta um pouco redundante porque um volume não zero significará automaticamente presença.

Veja as funções:

Talvez, você possa fazer algo útil para si mesmo.