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

 
barabashkakvn:
O número de sequência em "Market Watch" ou o preço actual?

O número de sequência em Market Watch.

Compreendo como obter uma descrição de um símbolo com SymbolInfoString, mas não consigo encontrar o número em lado nenhum (:

 
Crucian:

Um número de série na Market Review.

Primeiro

int  SymbolsTotal(
   bool  selected      // true – только символы в MarketWatch
   );

então

string  SymbolName(
   int   pos,          // номер в списке
   bool  selected      // true – только символы в MarketWatch
   );

e uma vez SymbolName==Seu símbolo, conhecerá a sua pos.

 
barabashkakvn:

Primeiro

então

e uma vez SymbolName==Seu símbolo, conhecerá a sua pos.

Obrigado!

Mas por alguma razão não funciona, pos sempre = 0. Talvez esteja a fazer algo de errado, descobrirei pela manhã :).

 
Crucian:

Obrigado!

Mas por alguma razão não está a funcionar, ros sempre = 0. Talvez esteja a fazer algo de errado, descobrirei pela manhã :).

Em SymbolName passa pos e verifica a saída para o parâmetro strung.
 
Crucian:

Obrigado!

Mas por alguma razão não está a funcionar, ros sempre = 0. Talvez esteja a fazer algo de errado, descobrirei pela manhã :).

//+------------------------------------------------------------------+
   int PositionsSymbolInList(string sy) {
      for(int i=0; i<SymbolsTotal(false); i++) {
         string symbol_name=SymbolName(i,false);
         if(sy==symbol_name) return i;
         }
      return -1;
   }
//+------------------------------------------------------------------+
 
Crucian:

Obrigado!

Mas por alguma razão não está a funcionar, ros sempre = 0. Talvez esteja a fazer algo de errado, descobrirei pela manhã :).

//+------------------------------------------------------------------+
int IndexSymbolInMarketWatch(string sy)
  {
   for(int i=SymbolsTotal(true)-1; i>=0; i--)
     {
      if(SymbolName(i,true)==sy)
         return (i);
     }
   return (-1);
  }
//+------------------------------------------------------------------+
 
artmedia70:

Obrigado que o seu código funciona, mas o código paladin800 não (.

Mas, não há nenhuma sequência nos números. Por exemplo EUR=21 , GBP=28, CHF=36, JPY=40, EUR/JPY=16. Deveria ser assim?

 
Crucian:

Obrigado que o seu código funciona, mas o código paladin800 não funciona por qualquer razão (.

Mas, não há nenhuma sequência nos números. Por exemplo EUR=21 , GBP=28, CHF=36, JPY=40, EUR/JPY=16. É suposto ser assim?

SymbolsTotal(false)

É uma pesquisa na lista de símbolos disponíveis, se for verdade, então apenas os seleccionados em Market Watch.

A ordem em que são colocados na lista de símbolos disponíveis é a ordem em que os índices são devolvidos. Enquanto que, se retirar da lista no MarketWatch (se for verdade), então os índices dependem da classificação dos símbolos (podem ser arrastados e largados com o rato) no Market Watch, o que nem sempre é conveniente - há dependência de "canetas maliciosas de utilizador".

 

Mais uma pergunta.

Ao compilar o MetaEditor, ele começou a exibir um aviso:

Valor de retorno de'OrderSend' deve ser verificado Bollinger_Bands_strategy_4.mq5 690 7

Verifico o resultado após o envio do pedido:

           OrderSend(mrequest,mresult);
            if(mresult.retcode==10009 || mresult.retcode==10008)
              { 
             
               Print("Set pending order SellStop"  );
               ModificationPosition=0;
            }else
              {
               Print(ResultRetcodeDescription(mresult.retcode));
               return;
              }

Ou isto não é suficiente? O que é que o MetaEditor quer?

 
Crucian:

Mais uma pergunta.

Ao compilar o MetaEditor, começou a exibir um aviso:

valor de retorno de 'OrderSend' deve ser verificado Bollinger_Bands_strategy_4.mq5 690 7
(O valor de retorno de "OrderSend" deve ser verificado)

Verifico o resultado após o envio de uma consulta:

Ou isso não é suficiente? O que é que o MetaEditor quer?

if(OrderSend(...))

Ou

bool res=OrderSend(...);

Não, erro meu. Já estou a dormir. Sou eu por hábito das minhas funções de turma... Embora seja para mql4, como em Five - dunno... :)

int ticket=OrderSend()
Razão: