[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 459

 
Maximov7:

Aqui está outra pergunta .... Tenho uma ordem em aberto como esta:

OrderSend("EURUSD",OP_BUY,0.1,C1,10,Bid-0.0017-0.0017,Ask+0.0017);

como abrir outro pedido se este fechar em takeprofit????


você leuo livro ? (pelo menos por diversão)
 
Releia-o três vezes..... e ainda?
 
Maximov7:
Eu já li 12 ..... 3 vezes e ainda?


No loop sobre o histórico das ordens fechadas, encontre "esta" ordem, depois verifique se ela fechou na TP, se for o caso, então abra uma "diferente". Isso é tudo.

Veja aqui para mais detalhes - selecione os fi ries que você precisa, conecte-os ao seu software e pronto.

 
Muito obrigado!
 
Maximov7:
Muito obrigado!

Aproveite-o.
 

Boa noite!

Por favor, dê uma olhada no código:

for(i=1;i<=OrdensTotal();i++) // recuperar pedidos de arrasto

{

se(OrderSelect(i-1,SELECT_BY_POS)==verdadeiro)

{

se (OrderSymbol()!=Instr)

continuar;

if(OrderType()==0)

{

se ((Bid-(OrderOpenPrice()+TralingStop*Point))>0)

retorno(55);}

if(OrderType()==1)

{

se ((Ask-(OrderOpenPrice()-TralingStop*Point))<0)

retorno(55);

}

}

Não entendo qual é o problema, estou testando com um Alerta interno, não funciona em nenhum outro lugar depois da Instr

 
demlin:

Boa noite!

Por favor, dê uma olhada no código:

for(i=1;i<=OrdensTotal();i++) // recuperar pedidos de arrasto

{

se (OrderSelect(i-1,SELECT_BY_POS)==verdadeiro)

{

se (OrderSymbol()!=Instr)

continuar;

if(OrderType()==0)

{

se ((Bid-(OrderOpenPrice()+TralingStop*Point))>0)

retorno(55);}

if(OrderType()==1)

{

se ((Ask-(OrderOpenPrice()-TralingStop*Point))<0)

retorno(55);

}

}

Não entendo qual é o problema, estou testando com um Alerta interno, não funciona em nenhum outro lugar depois da Instr


Existe uma linha como esta acima do código?
string Instr;
Insira o código corretamente - via SRC no editor... :-)))
 
Roman.:

Existe uma linha como esta acima do código? Insira o código corretamente - via SRC no editor... :-)))
Sim Instr é, desculpe não saber o que é SRC
 
demlin:
Sim Instr é, desculpe não saber o que é SRC

Quando você colar o código em seu posto pressione CTRL+ALT+M - depois coloque o código lá (através do buffer CTRL+C - copiar, CTRL+V - colar), depois pressione o botão "colar" na parte inferior da janela.
 
demlin:

Boa noite!

Por favor, dê uma olhada no código:

for(i=1;i<=OrdensTotal();i++) // recuperar pedidos de arrasto

{

se (OrderSelect(i-1,SELECT_BY_POS)==verdadeiro)

{

se (OrderSymbol()!=Instr)

continuar;

if(OrderType()==0)

{

se ((Bid-(OrderOpenPrice()+TralingStop*Point))>0)

retorno(55);}

if(OrderType()==1)

{

se ((Ask-(OrderOpenPrice()-TralingStop*Point))<0)

retorno(55);

}

}

Não entendo qual é o problema, estou testando com um Alerta interno, não funciona em nenhum outro lugar depois da Instr


Tente esta opção - é assim que eu tenho um projeto semelhante organizado.


// ------------------------------------------------Ищем наш ордер---------------------------------

int orderType;
   for (int orderIndex = (OrdersTotal() - 1); orderIndex >= 0; orderIndex--)
   {
      if (!OrderSelect(orderIndex, SELECT_BY_POS))
      {
         continue;
      }

      if ((OrderSymbol() != Symbol()) || (OrderMagicNumber() != MagicNumber))
      {
         continue;
      }

      orderType = OrderType();
      if ((orderType != OP_BUY) && (orderType != OP_SELL))
      {
         continue;
      }
          ticket = OrderTicket( );                         // Номер ордера
          orderLots = OrderLots();                         // Lots   
          orderProfit = OrderProfit() + OrderSwap();       // Profit
          Price = OrderOpenPrice();                        // Цена открытия рыночного ордера
          SL =  OrderStopLoss();                           // Значение StopLoss ордера
          TP = OrderTakeProfit();                          // Значение TakeProfit ордера
          
             if (ticket>0)                                               // Если позиция открылась
                    {
                             while(OrderSelect(ticket,SELECT_BY_TICKET)==false)       // Если ордер выбран
                                 {
                                   Sleep(100);
                                 }
                                  double OpenPrice=OrderOpenPrice();
                                      
                                  
                    
                                if (orderType == OP_BUY) 
                                     {
                                       //здесь трал покупки
                                     }
            
                                if (orderType == OP_SELL) 
                                      {
                                        //здесь трал продажи
                                      }   
                            
                    }
        
   }