Duvida no Código de Programação.

 
Bom dia, eu estou com uma duvida em relação a programação de um robô no Metatrader 5 gostaria de saber se pode me ajudar. Ao fazer a programação coloco o seguinte comando para compra utilizando a biblioteca C trade:
trade.Buy(lote,_Symbol,0,0,0,"Compra");
O _Symbol significa que é o ativo corrente correto? eu gostaria de saber se existe algum comando que me permita comprar um ativo especifico. Como exemplo PETR4, ITUB3 etc...
 
CaioNathan:

Caio boa tarde, 

é  só ler a documentação para ver que é uma string contendo o código do ativo que quer operar.  Mas cabe a seguinte observação, o ativo a ser operado tem que estar na janela de observação e deve estar sincronizado com terminal MT5.

bool  Buy(
   double        volume,          // position volume
   const string  symbol=NULL,     // symbol
   double        price=0.0,       // price
   double        sl=0.0,          // stop loss price
   double        tp=0.0,          // take profit price
   const string  comment=""       // comment
   )

 
Boa tarde Rogerio! Eu dei uma lida porem não consegui entender. Poderia me dar um exemplo?
 
CaioNathan:
Boa tarde Rogerio! Eu dei uma lida porem não consegui entender. Poderia me dar um exemplo?

Um exemplo e uma sugestão.

trade.buy( 100,"OIBR3",0,0,0,"Buy");

Sugestão: faça um curso de programação.

 
Muito obrigado Rogerio. Não estava colocando o nome do ativo entre as " ". 
 
CaioNathan:
Muito obrigado Rogerio. Não estava colocando o nome do ativo entre as " ". 
Bom, nesse caso deveria ter feito.

string OIBR3 = "OIBR3";
trade.buy(100,OIBR3,0,0,0,"Buy ";

 

Pelo jeito para funcionar

seria assim

ask = SymbolInfoDouble(Symbol(), SYMBOL_ASK);

bid = SymbolInfoDouble(Symbol(), SYMBOL_BID);

trade.Buy(1, Symbol(), ask, 0, 0, "Compra exemplo1");

trade.Buy(1, Symbol(), ask, ask - 100 * Point(), ask + 100 * Point(), "compra exemplo 2 com tp e sl");

trade.Sell1, Symbol(), bid, 0, 0, 'Venda 1");

trade.sell(1, Symbol(), bid, bid + 100 * Point(), bid - 100 * Point(), "Venda 2");

para evitar abrir ordem sem parar

dentro do sinal identificado

if(inicio != iTime(Symbol(), Period(), 0)){

inicio = iTime(Symbol(), Period(), 0);

}

 fora do sinal identificado

inicio = NULL;

Razão: