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

 
Rosh писал(а) >>

Não existe tal função. Os objetos só podem ser criados e gerenciados no gráfico ao qual a EA está anexada.

Obrigado por sua pronta resposta. Estará disponível na versão 5 do Metatrader?

 
KimIV, não há um roteiro em sua coleção que feche toda a Oredar aberta: comprar, vender, comprar, vender, vender, buylimit, selllimit - à força, ciclicamente, para fechar sem erros e tudo mais?
 

http://forum.alpari-idc.ru/showpost.php?p=368730&postcount=24

Já o encontrei aqui.

 
KimIV, você tem um roteiro em sua coleção, como este - ByMarketBuySymbols e ByMarketSellSymbols, só que comum, então digamos que o roteiro abre 5 posições para compra e 2 para venda?
 
Prezado KimIV,

Muito obrigado por um trabalho bem feito.

Uma sugestão: se possível, no primeiro post, poste e atualize uma lista de suas características/escritas com links para as páginas relevantes da filial e uma breve descrição. Então será uma superferramenta! Caso contrário, alguém em algum lugar sobre algo "vai mandar para Kim" e então você tem que rolar aqui por um longo tempo para encontrar ...

 

Função MovingInWL().

Move o nível de preço StopLoss das posições abertas para o Breakeven. Função MovingInWL() aceita os seguintes parâmetros opcionais:

  • sy - Nome do instrumento. "" - qualquer símbolo, NULL - símbolo atual. O valor padrão é "".
  • op - Operação comercial. Valores válidos: -1, OP_BUY, OP_SELL. O valor padrão é -1 - qualquer comércio.
  • mn - Identificador comercial, MagicNumber. Valor por default -1 - qualquer magik.

Além disso, a função MovingInWL() tem variáveis globais (parâmetros externos de script ou Expert Advisor):

  • int LevelProfit - Nível de lucro em pontos, que uma posição deve alcançar para ter sua parada movida para o nível de Breakeven.
  • int LevelWLoss - Nível de equilíbrio em pontos, para o qual a parada será transferida após seu lucro atingir o nível LevelProfit em pontos.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 11.09.2008                                                     |
//|  Описание : Перенос уровня стопа в безубыток                               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ( ""  - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   ( -1  - любая позиция)                  |
//|    mn - MagicNumber                ( -1  - любой магик)                    |
//+----------------------------------------------------------------------------+
void MovingInWL(string sy="", int op=-1, int mn=-1) {
  double po, pp;
  int    i, k=OrdersTotal();

  for ( i=0; i< k; i++) {
    if (OrderSelect( i, SELECT_BY_POS, MODE_TRADES)) {
      po=MarketInfo(OrderSymbol(), MODE_POINT);
      if (OrderType()==OP_BUY) {
        if (OrderStopLoss()-OrderOpenPrice()< LevelWLoss* po) {
          pp=MarketInfo(OrderSymbol(), MODE_BID);
          if ( pp-OrderOpenPrice()> LevelProfit* po) {
            ModifyOrder(-1, OrderOpenPrice()+ LevelWLoss* po, -1);
          }
        }
      }
      if (OrderType()==OP_SELL) {
        if (OrderStopLoss()==0 || OrderOpenPrice()-OrderStopLoss()< LevelWLoss* po) {
          pp=MarketInfo(OrderSymbol(), MODE_ASK);
          if (OrderOpenPrice()- pp> LevelProfit* po) {
            ModifyOrder(-1, OrderOpenPrice()- LevelWLoss* po, -1);
          }
        }
      }
    }
  }
}

SZZ. Você pode encontrar um Expert Advisor com um exemplo de utilização da função MovingInWL() aqui.

 
mamma писал(а) >>
Se for possível, no primeiro post, colocar e atualizar a lista de suas características/escritas com links para páginas de filiais e breves descrições.

Já é impossível na primeira página...

Vou afixar aqui... Se o posto a ser atualizado for bloqueado, eu o re-postarei. Portanto, fique de olho no fio :-)

Arquivos anexados:
f_kimiv_1.rar  11 kb
 

Função SimpleTrailing().

Move o nível de preço StopLoss das posições abertas usando o algoritmo TrailingStop. A função SimpleTrailing() aceita os seguintes parâmetros opcionais:

  • sy - Nome do instrumento. "" - qualquer símbolo, NULL - símbolo atual. O valor padrão é "".
  • op - Operação comercial. Valores válidos: -1, OP_BUY, OP_SELL. O valor padrão é -1 - qualquer comércio.
  • mn - Identificador comercial, MagicNumber. Valor por default -1 - qualquer magik.

Além disso, a função SimpleTrailing() implica variáveis globais (parâmetros externos do script ou Expert Advisor):

  • bool TSProfitOnly - Altera a zona em que a rede de arrasto começa. Se Verdadeiro, a rede de arrasto só começará a funcionar quando o lucro da posição atingir o valor de TStop.Buy/Sell+TrailingStep points. Se falso, o Expert Advisor simplesmente se certificará de que a posição de parada em relação ao preço atual não seja sempre maior do que TStop.Buy/Sell+TrailingStep pips. Em outras palavras, se Verdadeiro, o Expert Advisor trabalha somente na zona de lucro da posição enquanto que se Falso, trabalha na zona negativa da posição.
  • int TStop.Buy - Tamanho do carrinho em pontos para comprar.
  • intTStop.Sell - Tamanho da rede de arrasto em pontos de venda.
  • int TrailingStep - Passo de trilha em pontos. Isto é necessário para evitar pedidos frequentes ao revendedor.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 11.09.2008                                                     |
//|  Описание : Сопровождение позиций простым тралом                           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ( ""  - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   ( -1  - любая позиция)                  |
//|    mn - MagicNumber                ( -1  - любой магик)                    |
//+----------------------------------------------------------------------------+
void SimpleTrailing(string sy="", int op=-1, int mn=-1) {
  double po, pp;
  int    i, k=OrdersTotal();

  if ( sy=="0") sy=Symbol();
  for ( i=0; i< k; i++) {
    if (OrderSelect( i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()== sy || sy=="") && ( op<0 || OrderType()== op)) {
        po=MarketInfo(OrderSymbol(), MODE_POINT);
        if ( mn<0 || OrderMagicNumber()== mn) {
          if (OrderType()==OP_BUY) {
            pp=MarketInfo(OrderSymbol(), MODE_BID);
            if (! TSProfitOnly || pp-OrderOpenPrice()> TStop. Buy* po) {
              if (OrderStopLoss()< pp-( TStop. Buy+ TrailingStep-1)* po) {
                ModifyOrder(-1, pp- TStop. Buy* po, -1);
              }
            }
          }
          if (OrderType()==OP_SELL) {
            pp=MarketInfo(OrderSymbol(), MODE_ASK);
            if (! TSProfitOnly || OrderOpenPrice()- pp> TStop. Sell* po) {
              if (OrderStopLoss()> pp+( TStop. Sell+ TrailingStep-1)* po || OrderStopLoss()==0) {
                ModifyOrder(-1, pp+ TStop. Sell* po, -1);
              }
            }
          }
        }
      }
    }
  }
}

SZZ. Um Expert Advisor com um exemplo de uso da função SimpleTrailing() pode ser encontrado aqui.

 

//------- Conexão de módulos externos -----------------------------------------+

#incluir "b-Positions.mqh" // Trabalhar com posições

Onde encontrar este arquivo?

 
beginner писал(а) >>

//------- Conexão de módulos externos -----------------------------------------+

#incluir "b-Positions.mqh" // Trabalhar com posições

Onde encontrar este arquivo?

aqui

Razão: