Ajuda, venda descoberta.

 

Galera, estou desenvolvendo um robo para operar daytrade mini indice, 

E como sabemos, podemos fazer a ordem de venda descoberta sem ter o papel.

No entanto quando programei aqui, percebei que o ele não vende, se eu tenho tenho o papel comprado na carteira, tem como eu forçar o mql vender sem eu ter o papel?

Segue o meu codigo de venda

 

 if (comprovar_venda() == true) {    //verifica se as condições do trade são passives de venda.

 if (venda_aberta == true)

  { return;   }

 double mprice = NormalizeDouble(Msimbolo.Ask(), _Symbol);

 double stloss = NormalizeDouble(Msimbolo.Ask() + Prejuiso, _Digits);

 double takep = NormalizeDouble(Msimbolo.Ask() - Lucro, _Digits);

 Mtrade.Sell(NumeroPapeis, _Symbol , mprice, (stloss), takep);  

  }

 
lml.lucas:

Galera, estou desenvolvendo um robo para operar daytrade mini indice, 

E como sabemos, podemos fazer a ordem de venda descoberta sem ter o papel.

No entanto quando programei aqui, percebei que o ele não vende, se eu tenho tenho o papel comprado na carteira, tem como eu forçar o mql vender sem eu ter o papel?

...

Boa tarde lml.lucas,

Você pode abrir tanto uma posição comprada como vendida no mini índice no MT5, e a forma para isso é exatamente a mesma, só muda o sentido da ordem.

Mas, em ambos os casos, deve especificar corretamente a ordem, e claro, o instrumento financeiro, independentemente de já ter ou não uma posição aberta dele.

Evidentemente, no daytrade, como você refere, espera-se que até o final do dia você tenha um algoritmo que encerre todas posições, o que vai evitar você 'dormir' vendido (ou comprado).

Portanto, acredito que teu maior problema seja justamente estar tratando de forma diferente a venda.

Sds.,

Rogério Figurelli 

 

Certo,

Rogerio, obrigado pela resposta.

No entanto quando tento fazer o backteste, percebo que ele só faz compras, e as vendas ele deixa passar, percebi que é por que ele não consegue abrir uma posição e ficar com a carteira -1 por exemplo.

 

 obs: Tenho o algorítimo que  zera as posições no fim do dia, exatamente as 17:30, todas as posições zeram. 

 
lml.lucas:

Certo,

Rogerio, obrigado pela resposta.

No entanto quando tento fazer o backteste, percebo que ele só faz compras, e as vendas ele deixa passar, percebi que é por que ele não consegue abrir uma posição e ficar com a carteira -1 por exemplo.

 

 obs: Tenho o algorítimo que  zera as posições no fim do dia, exatamente as 17:30, todas as posições zeram. 

Então, pela mesma lógica, provavelmente sua ordem SELL está mal programada.

Por exemplo, tem certeza que o S/L e/ou T/P foram ajustados corretamente?

Outro ponto, ainda mais relevante, você está tratando as mensagens de retorno e verificando os possíveis erros de execução das ordens de venda? 

 
Rogerio Figurelli:

Então, pela mesma lógica, provavelmente sua ordem SELL está mal programada.

Por exemplo, tem certeza que o S/L e/ou T/P foram ajustados corretamente?

Outro ponto, ainda mais relevante, você está tratando as mensagens de retorno e verificando os possíveis erros de execução das ordens de venda? 

Vc tem razão Rogério.

Revisei o código e estava com erros.

Obrigado! 

 
lml.lucas:

Vc tem razão Rogério.

Revisei o código e estava com erros.

Obrigado! 

Ótimo, obrigado por compartilhar.
Razão: