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

 
Na MQL5 para fechar uma encomenda tem de abrir uma contra-ordem de espelhos e não há outra forma?
 
new-rena:
Na MQL5 para fechar uma encomenda tem de abrir uma contra-ordem de espelhos e nada mais?

Use a sua biblioteca padrão:

#include <Trade\Trade.mqh>
CTrade         m_trade;                      // trading object
...
m_trade.PositionClose(....
или
m_trade.PositionCloseBy(..

e não têm de pensar em nada.

 
Vladimir Karputov:

Use a sua biblioteca padrão:

#include <Trade\Trade.mqh>
CTrade         m_trade;                      // trading object
...
m_trade.PositionClose(....
или
m_trade.PositionCloseBy(..

e não têm de pensar sobre isso.

Como é que não se pode pensar nisso? Estou a escrever um programa em MQL5 para comércio real, ou seja, com o MEU dinheiro real!

Li a documentação. Não vejo qualquer problema em fechar uma posição.

A questão é diferente. - A nossa VENDA é bloqueada por BUY, enquanto SELL e BUY são fundidos numa encomenda com um volume igual a zero - será isto um encerramento?

Então a MQL5 exclui lotes? O que significa que não tenho hipóteses de ter sorte, excepto no caso de perda final e irrevogável na inversão do sinal (ordem)?

Olha para os sinais - MQL5 não é tão bom como MQL4, para o dizer de forma suave...

É melhor melhorar a situação e remover um disparate como "posição" da MQL5

 
new-rena:

Li a documentação.

Mostra.

nova-rena:

...

Então a MQL5 exclui as fechaduras? Significa que não tenho hipótese de fazer um único movimento e ter uma perda permanente?

Olha para os sinais - a MQL5 é coxa em comparação com a MQL4, para o dizer de forma suave...

É melhor melhorar a situação e remover um disparate como "posição" da MQL5

Deve consultar a Ajuda por vezes, manter-se a par das actualizações e ler os artigos: osistema de cobertura para a contabilidade de posições foi adicionado ao MetaTrader 5

 
new-rena:

Como é que não se pode pensar nisso? Estou a escrever um programa em MQL5 para comércio real, ou seja, com o MEU dinheiro real!

Li a documentação. Não vejo qualquer problema em fechar uma posição.

A questão é diferente. - A nossa VENDA é bloqueada por BUY, enquanto SELL e BUY são fundidos numa encomenda com um volume igual a zero - será isto um encerramento?

Então a MQL5 exclui lotes? O que significa que não há hipótese de eu ter sorte, para além de, incontestavelmente e irrevogavelmente, ter uma perda?

Olha para os sinais - a MQL5 é coxa em comparação com a MQL4, para o dizer de forma suave...

É necessário corrigir a situação e remover um disparate como "posição" da MQL5

Aqui está um exemplo para uma conta de cobertura:

A primeira operação é Comprar 0,02 e a segunda operação é Vender 0,01. O total de duas posições: Comprar 0,02 e Vender 0,001. Depois fechamos a posição Vender 0,01 e fechamos a posição Comprar 0,02:

//+------------------------------------------------------------------+
//|                                                       TestEA.mq5 |
//|                              Copyright © 2016, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2016, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
CTrade         m_trade;                      // trading object
CPositionInfo  m_position;                   // trade position object
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   static long counter=0;
   counter++;
   if(counter%300==0 && counter<700)
     {
      static int number=0;
      number++;
      if(number==1)
         m_trade.Buy(0.02);
      if(number==2)
         m_trade.Sell(0.01);
     }
   if(counter>7000)
     {
      int positions= PositionsTotal();
      if(positions == 0)
         return;
      int positions_total=PositionsTotal();
      for(int i=positions_total-1;i>=0;i--)
         if(m_position.SelectByIndex(i))
            m_trade.PositionClose(m_position.Ticket(),-1);
     }
  }
//+------------------------------------------------------------------+

e Jornal:

Trade   2016.02.25 00:13:35   instant buy 0.02 EURUSD at 1.10167 (1.10158 / 1.10167 / 1.10158)
Trades  2016.02.25 00:13:35   deal #2 buy 0.02 EURUSD at 1.10167 done (based on order #2)
Trade   2016.02.25 00:13:35   deal performed [#2 buy 0.02 EURUSD at 1.10167]
Trade   2016.02.25 00:13:35   order performed buy 0.02 at 1.10167 [#2 buy 0.02 EURUSD at 1.10167]
TestEA (EURUSD,H1)      2016.02.25 00:13:35   CTrade::OrderSend: instant buy 0.02 EURUSD at 1.10167 [done at 1.10167]
Trade   2016.02.25 00:30:17   instant sell 0.01 EURUSD at 1.10157 (1.10157 / 1.10164 / 1.10157)
Trades  2016.02.25 00:30:17   deal #3 sell 0.01 EURUSD at 1.10157 done (based on order #3)
Trade   2016.02.25 00:30:17   deal performed [#3 sell 0.01 EURUSD at 1.10157]
Trade   2016.02.25 00:30:17   order performed sell 0.01 at 1.10157 [#3 sell 0.01 EURUSD at 1.10157]
TestEA (EURUSD,H1)      2016.02.25 00:30:17   CTrade::OrderSend: instant sell 0.01 EURUSD at 1.10157 [done at 1.10157]
TestEA (EURUSD,H1)      2016.02.25 02:12:06   PositionClose #3 POSITION_TYPE_SELL 0.01
Trade   2016.02.25 02:12:06   instant buy 0.01 EURUSD at 1.10131, close #3 (1.10123 / 1.10131 / 1.10123)
Trades  2016.02.25 02:12:06   deal #4 buy 0.01 EURUSD at 1.10131 done (based on order #4)
Trade   2016.02.25 02:12:06   deal performed [#4 buy 0.01 EURUSD at 1.10131]
Trade   2016.02.25 02:12:06   order performed buy 0.01 at 1.10131 [#4 buy 0.01 EURUSD at 1.10131]

TestEA (EURUSD,H1)      2016.02.25 02:12:06   CTrade::OrderSend: instant buy 0.01 position #3 EURUSD at 1.10131 [done at 1.10131]
TestEA (EURUSD,H1)      2016.02.25 02:12:06   PositionClose #2 POSITION_TYPE_BUY 0.02
Trade   2016.02.25 02:12:06   instant sell 0.02 EURUSD at 1.10123, close #2 (1.10123 / 1.10131 / 1.10123)
Trades  2016.02.25 02:12:06   deal #5 sell 0.02 EURUSD at 1.10123 done (based on order #5)
Trade   2016.02.25 02:12:06   deal performed [#5 sell 0.02 EURUSD at 1.10123]
Trade   2016.02.25 02:12:06   order performed sell 0.02 at 1.10123 [#5 sell 0.02 EURUSD at 1.10123]
TestEA (EURUSD,H1)      2016.02.25 02:12:06   CTrade::OrderSend: instant sell 0.02 position #2 EURUSD at 1.10123 [done at 1.10123]

O que é que não é exactamente claro? Que precisa de abrir uma ordem oposta com o mesmo volume para fechar a posição?

Arquivos anexados:
TestEA.mq5  5 kb
 
Anatoli Kazharski:

Estou a ver que sim.

Tolyana, estou farto de ti.

Não se pode escrever em negócios sem ser sarcástico?

 
new-rena:

Tolyana, estou farto de ti.

Pode escrever em negócios sem ser sarcástico?

O que é isto?

Deve consultara Ajuda de vez em quando,estar atento a actualizações e ler artigos:MetaTrader 5 adicionou um sistema de cobertura para a contabilidade de posições

 
Anatoli Kazharski:

O que é isto?

Deve consultara Ajuda de vez em quando,estar atento a actualizações e ler artigos:MetaTrader 5 adicionou um sistema de cobertura para a contabilidade de posições

Este aqui -"Mostra. "não mais!!!!!!!!!!!!!!!

Se puder responder, então escreva uma resposta e basta.

Então eu diria: "Obrigado".

Mas neste caso, por favor, posso simplesmente enviá-lo.

 
new-rena:

Tolyana, estou farto de ti.

Pode escrever em negócios sem ser sarcástico?

Parece estar tudo em causa e mesmo com referências... Quando alguém declara que leu a documentação e pede para remover a rede (que, a propósito, é utilizada em FORTS)... não há aqui lugar para o sarcasmo.
 
new-rena:

É isso mesmo -"Mostra. "não mais!!!!!!!!!!!!!!!

Se puder responder, basta escrever de volta e basta.

Então eu diria: "Obrigado".

Mas neste caso, por favor, posso simplesmente enviá-lo.

Certifique-se de que não é enviado. )
Razão: