Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 214

 
solnce600:

É isso mesmo ..... Eu já estou com o cérebro em pé.

Eu achei que a SEGUNDA CONDIÇÃO estava errada?


Eu escrevi um exemplo SEM o seu código. Este é um exemplo de onde há aparelho encaracolado { } e onde não há nenhum... Eu escrevi quais linhas serão executadas e quando. Eu só queria que você entendesse como organizar a lógica em seu código. VOCÊ NÃO TEM APARELHO DE CURATIVOS... Portanto, veja no meu exemplo o que acontece neste caso.

Você não precisa adivinhar 17 Basta tentar entender...

 
artmedia70:

Eu escrevi um exemplo SEM o seu código. Este é um exemplo de onde há aparelho encaracolado { } e onde não há nenhum... Eu escrevi quais linhas serão executadas e quando. Eu só queria que você entendesse como organizar a lógica em seu código. VOCÊ NÃO TEM APARELHO DE CURATIVOS... Portanto, veja no meu exemplo o que acontece neste caso.

Você não precisa adivinhar 17 Basta tentar entender...


Muito obrigado. Amanhã, com a cabeça limpa, vou tentar colocar as coisas em perspectiva.
 

Boa noite, você poderia me dizer como implementar a seguinte tarefa?

Há uma entrada em um comércio em certas condições. depois vem a ação, mas aqui está o problema, como fazer a ação não abrir se o preço estiver mais próximo do que uma certa distância do comércio anterior. Se o preço estiver mais próximo da entrada anterior (não importa se foi a primeira ou 5,10 etc.) do que 30 pips então o pedido não deve ser aberto.

Obrigado pelas respostas.

 
teplovoz:

Boa noite, você poderia me dizer como implementar a seguinte tarefa?

Há uma entrada em um comércio em certas condições. depois vem a ação, mas aqui está o problema, como fazer a ação não abrir se o preço estiver mais próximo do que uma certa distância do comércio anterior. Se o preço estiver mais próximo da entrada anterior (não importa se foi a primeira ou 5,10 etc.) do que 30 pips então o pedido não deve ser aberto.

Obrigado por suas respostas.

Entre o mercado e a posição mais próxima, eu acho que sim.

Função

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает расстояние в пунктах между рынком и ближайшей       |
//|             позицей                                                        |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ("" или NULL - текущий символ)          |
//|    op - торговая операция          (    -1      - любая позиция)           |
//|    mn - MagicNumber                (    -1      - любой магик)             |
//+----------------------------------------------------------------------------+
int DistMarketAndPos(string sy="", int op=-1, int mn=-1) {
  double d, p;
  int i, k=OrdersTotal(), r=1000000;

  if (sy=="" || sy=="0") sy=Symbol();
  p=MarketInfo(sy, MODE_POINT);
  if (p==0) if (StringFind(sy, "JPY")<0) p=0.0001; else p=0.01;
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()==sy) && (op<0 || OrderType()==op)) {
        if (mn<0 || OrderMagicNumber()==mn) {
          if (OrderType()==OP_BUY) {
            d=MathAbs(MarketInfo(sy, MODE_ASK)-OrderOpenPrice())/p;
            if (r>d) r=NormalizeDouble(d, 0);
          }
          if (OrderType()==OP_SELL) {
            d=MathAbs(OrderOpenPrice()-MarketInfo(sy, MODE_BID))/p;
            if (r>d) r=NormalizeDouble(d, 0);
          }
        }
      }
    }
  }
  return(r);
}

Ligue para

if(DistMarketAndPos()>30)
   {
//открываемся
   }
 
r772ra:
entre o mercado e a posição mais próxima, eu acho que sim.

Eu entendo a lógica, como calcular o preço de abertura da última negociação?
 
Adição acima
 
Eu entendo que o preço é devolvido por OrderOpenPrice()
Entendo que a ordem pode ser selecionada com a função OrderSelect(), mas como seleciono esta última?
 
r772ra:
Adendo acima

não conseguiu...
 
teplovoz:

Eu não entendo...


Entender o quê, exatamente?

 
r772ra:


O que é exatamente?


o que você quer dizer com a adição acima?

Em geral, o significado é :

if(Bid<==(N-30*Point) && outra condição)

{

Abrir uma ordem de venda;

}

N é o preço aberto do último pedido - como posso saber?