Ordens Limit

 
Cordial Boa noite, Alguém poderia me oferecer mais detalhes que me ajude a resolver esse problema. É o seguinte, tem uma ordem limite de compra e deve esperar ser preenchida para que as ordens de stop e tp sejam posicionadas.

No código que tenho abaixo, somente a ordem de compra é posicionada, não entrando na condição para posicionar ordem sl e tp.

   if(OrdersTotal()==0 && PositionsTotal()==0 && (currentPrice<=recent_candle_high && currentPrice>=recent_candle_low))
     {
      ulong scalp1 = m_trade.BuyLimit(InpScalp_1,positionScalp1,_Symbol,0,0);
      ticket_scalp1 = scalp1;
      Alert("scalp1 é: ", scalp1);
      Alert("ticket_scalp1 é: ", ticket_scalp1);
     } 
if (ticket_scalp1 != 0 && OrderSelect(ticket_scalp1))
{
    if (OrderGetInteger(ORDER_STATE) == ORDER_STATE_FILLED)
    {
        Alert("Scalp1 foi preenchida");
        double sell_high = 0, sell_low = 0;
        sell_high = m_trade.SellLimit(InpScalp_1, recent_candle_high, _Symbol, 0, 0);
        if (sell_high > 0)
        {
            Alert("Ordem de venda para o nível mais alto foi posicionada.");
        }
        else
        {
            Alert("Não foi possível posicionar a ordem de venda para o nível mais alto.");
        }
        sell_low = m_trade.SellLimit(InpScalp_1, recent_candle_low, _Symbol, 0, 0);
        if (sell_low > 0)
        {
            Alert("Ordem de venda para o nível mais baixo foi posicionada.");
        }
        else
        {
            Alert("Não foi possível posicionar a ordem de venda para o nível mais baixo.");
        }
    }
}


Minha intenção é fazer um EA que posicione 3 ordens limit que são reposicionadas depois que atinge o tp ou sl, e essas 3 ordens ficam entre a máxima e a mínima do candle anterior. Agradeço desde já.
 
Frank Schwertz Jungblut:
ulong scalp1 = m_trade.BuyLimit(InpScalp_1,positionScalp1,_Symbol,0,0);

A função retorna um bool true/false, ou seja scalp1 não é o TICKET DA ORDEM!