Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 862

 
Konstantin Erin:
if(OrdersTotal() < OrdersMax) OrderSend(...); else Alert("The required number of orders opened");

Obrigado!

 
pode dizer-me, por favor, onde se encontra o indicador de volume e onde posso encontrar os volumes de volume? !
 
int TotalGridBuyOrders=0;
   Print(__FUNCTION__);
   for(int i=OrdersTotal()-1;i>=0;i--) // returns the number of current orders
   if(m_order.SelectByIndex(i))     // selects the pending order by index for further access to its properties
         if(m_order.Symbol()==m_symbol.Name() && m_order.Magic()==m_magic && m_order.OrderType()== ORDER_TYPE_BUY_STOP)
           TotalGridBuyOrders++;
    Print("Количество buy ордеров grid ", TotalGridBuyOrders);
           if (TotalGridBuyOrders>=1)
           {
           grid_buy_price_memory=m_order.PriceOpen();        
           Print("Цена ближайшего buy grid ордера: ", grid_buy_price_memory);
           
          
int TotalGridSellOrders=0;
   Print(__FUNCTION__);
   for(int i=OrdersTotal()-1;i>=0;i--) // returns the number of current orders
   if(m_order.SelectByIndex(i))     // selects the pending order by index for further access to its properties
         if(m_order.Symbol()==m_symbol.Name() && m_order.Magic()==m_magic && m_order.OrderType()== ORDER_TYPE_SELL_STOP)
           TotalGridSellOrders++;
    Print("Количество sell ордеров grid ", TotalGridSellOrders);
           if (TotalGridSellOrders>=1)   
            {
           grid_sell_price_memory=m_order.PriceOpen();    
           Print("Цена ближайшего sell grid ордера: ", grid_sell_price_memory);

Porque é que a última impressão mostra o preço doORDER_TYPE_BUY_STOP

e não deORDER_TYPE_SELL_STOP

Onde está o erro ?

 
ilyav:

Porque é que a última impressão mostra o preço doORDER_TYPE_BUY_STOP

e não deORDER_TYPE_SELL_STOP

Onde está o erro?

Use o modelador (Ctrl + ,) e verá os seus erros...

 
Vladimir Karputov:

Use o modelador (Ctrl + ,) e verá os seus erros...

Não tenho um erro de compilação.

Este código deve imprimir o preço das encomendas de compra e venda.

O preço da ordem de compra é produzido correctamente, mas a ordem de venda produz o preço da ordem de compra!

 
ilyav:

Não tenho um erro de tempo de compilação.

Este código deve imprimir o preço das encomendas de compra e venda.

O preço de uma ordem de compra é correcto, mas o preço de uma ordem de venda é correcto!

Neste ponto o conselho é o mesmo: use o modelador - verá visualmente os erros.

... e só então lhe mostrarei onde se encontra o seu erro.
Стилизатор - Работа с исходным кодом - MetaTrader 5
Стилизатор - Работа с исходным кодом - MetaTrader 5
  • www.metatrader5.com
Данная функция предназначена для оформления исходного кода в соответствии с рекомендуемым стандартом. Это позволяет сделать код более читаемым, выглядящем профессионально. Грамотно оформленный код гораздо проще анализировать в последующем как его автору, так и другим пользователям. Для того чтобы запустить стилизатор, необходимо выполнить...
 
Vladimir Karputov:

De momento, o conselho permanece o mesmo: use um estilizador - verá os erros visualmente.

... E só depois disso é que lhe mostrarei onde está o seu erro.
int TotalGridBuyOrders=0;
         Print(__FUNCTION__);
         for(int i=OrdersTotal()-1;i>=0;i--) // returns the number of current orders
            if(m_order.SelectByIndex(i)) // selects the pending order by index for further access to its properties
               if(m_order.Symbol()==m_symbol.Name() && m_order.Magic()==m_magic && m_order.OrderType()==ORDER_TYPE_BUY_STOP)
                  TotalGridBuyOrders++;
         Print("Количество buy ордеров grid ",TotalGridBuyOrders);
         if(TotalGridBuyOrders>=1)
           {
            grid_buy_price_memory=m_order.PriceOpen();
            Print("Цена ближайшего buy grid ордера: ",grid_buy_price_memory);

            int TotalGridSellOrders=0;
            Print(__FUNCTION__);
            for(int i=OrdersTotal()-1;i>=0;i--) // returns the number of current orders
               if(m_order.SelectByIndex(i)) // selects the pending order by index for further access to its properties
                  if(m_order.Symbol()==m_symbol.Name() && m_order.Magic()==m_magic && m_order.OrderType()==ORDER_TYPE_SELL_STOP)
                     TotalGridSellOrders++;
            Print("Количество sell ордеров grid ",TotalGridSellOrders);
            if(TotalGridSellOrders>=1)
              {
               grid_sell_price_memory=m_order.PriceOpen();
               Print("Цена ближайшего sell grid ордера: ",grid_sell_price_memory);

Aqui está com o estilizador. Mas não consigo ver o erro. É por isso que pergunto no assunto

Perguntas de principiantes em MQL5

 
ilyav:

Aqui está o que tem o estilizador. Mas não vejo o erro. É por isso que estou a perguntar neste tópico

Perguntas de principiantes em MQL5

O estilizador mostrou claramente que o seu código contém problemas com os parênteses de fecho. É preciso consertá-lo.

 

Merda, alguém aqui pode ajudar?

Se o estilista lhe mostrasse claramente algo - não poderia dizer-me onde deveria estar o suporte?

Porque não me mostrou claramente nada.

Preciso do preço da paragem de compra e da paragem de venda mais próximas. Como posso fazer o código de forma diferente?

 
ilyav:

Merda, alguém aqui pode ajudar?

Se o estilista lhe mostrasse claramente algo - não poderia dizer-me onde deveria estar o suporte?

Porque não me mostrou claramente nada.

Preciso do preço da paragem de compra e da paragem de venda mais próximas. Como posso fazer o código de forma diferente?

Destaquei os parênteses que faltam:

int TotalGridBuyOrders=0;
         Print(__FUNCTION__);
         for(int i=OrdersTotal()-1;i>=0;i--) // returns the number of current orders
            if(m_order.SelectByIndex(i)) // selects the pending order by index for further access to its properties
               if(m_order.Symbol()==m_symbol.Name() && m_order.Magic()==m_magic && m_order.OrderType()==ORDER_TYPE_BUY_STOP)
                  TotalGridBuyOrders++;
         Print("Количество buy ордеров grid ",TotalGridBuyOrders);
         if(TotalGridBuyOrders>=1)
           {
            grid_buy_price_memory=m_order.PriceOpen();
            Print("Цена ближайшего buy grid ордера: ",grid_buy_price_memory);

            int TotalGridSellOrders=0;
            Print(__FUNCTION__);
            for(int i=OrdersTotal()-1;i>=0;i--) // returns the number of current orders
               if(m_order.SelectByIndex(i)) // selects the pending order by index for further access to its properties
                  if(m_order.Symbol()==m_symbol.Name() && m_order.Magic()==m_magic && m_order.OrderType()==ORDER_TYPE_SELL_STOP)
                     TotalGridSellOrders++;
            Print("Количество sell ордеров grid ",TotalGridSellOrders);
            if(TotalGridSellOrders>=1)
              {
               grid_sell_price_memory=m_order.PriceOpen();
               Print("Цена ближайшего sell grid ордера: ",grid_sell_price_memory);

Onde colocar exactamente os pares depende da lógica do seu código.

Razão: