Script de Sell/Buy Stop Order não funciona

 

Estou escrevendo um script para aprender mql5, é um script simples de ordem buy/sell stop, mas não está funcionando.

Usei a função PRINT para ver se o código chegava a entrar no if e o PRINT foi executado, então a função trade.BuyStop foi executada também, mas nada aconteceu quando o script rodou.

Estou usando o trade.BuyStop e trade.SellStop de forma errada?


#include<Trade\Trade.mqh>;
#property version   "1.00"
#property script_show_inputs
//--- input parameters
input double   Price=72200;
input double   StopLoss=100;
input double   TakeProfit=200;
input double   Lot=1;
input int      Type=1;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+

Ctrade trade;
void OnStart()
  {
//---
      if (Type==1)
      {
         trade.BuyStop(Lot,Price*_Point,_Symbol,Price-StopLoss*_Point,Price+TakeProfit*_Point,ORDER_TIME_GTC,0,0);
               Print("print if the code gets here");
      }
      else
         trade.SellStop(Lot,Price*_Point,_Symbol,Price+StopLoss*_Point,Price-TakeProfit*_Point,ORDER_TIME_GTC,0,0);

   }
  
  
//+------------------------------------------------------------------+
 

Olá,

acho você não está conseguindo compilar né?!   

Ctrade trade;  ===> CTrade trade;
 
Rogerio Giannetti Torres:

Olá,

acho você não está conseguindo compilar né?!   

Essa parte eu errei só aqui no fórum mesmo kk Já compilei e executei, mas nenhuma ordem é criada. O curioso é que "print if the code gets here" que está dentro do if aparece, então o trade.BuyStop também é executado, só que nenhuma ordem aparece na tela :(

 
Marcus Dantas:
Essa parte eu errei só aqui no fórum mesmo kk Já compilei e executei, mas nenhuma ordem é criada. O curioso é que "print if the code gets here" que está dentro do if aparece, então o trade.BuyStop também é executado, só que nenhuma ordem aparece na tela :(

O Marcus,

1) Tecle F8 e veja se o terminal está configurado para mostrar níveis de negociação.

2) O preço  está muito longe para aparecer no gráfico o win agora está em 70400.

 
Rogerio Giannetti Torres:

O Marcus,

1) Tecle F8 e veja se o terminal está configurado para mostrar níveis de negociação.

2) O preço  está muito longe para aparecer no gráfico o win agora está em 70400.

Foi só de exemplo o valor dado, testei outros valores e ainda assim não foi. O terminal está configurado para mostrar níveis de negociação sim.
 

Verifica se tem alguma mensagem de erro no "journal" do MT5.

Vc está usando conta real ou conta demo?

Se for conta real, verifique se não é problema de margem junto à corretora.

Em algumas corretoras, não adianta apenas vc ter saldo suficiente em conta. Algumas corretoras requerem que você configure os valores das garantias especificamente para a plataforma MT5, especificamente para daytrade, etc.

Razão: