Bibliotecas: MT4Orders - página 75

 

Quando percebi que não receberia a comissão via POSITION_COMMISSION, li no fórum que a biblioteca MT4Orders pode fazer isso. Testei-a, mas ela também não funcionou. Posso escrever uma função via DEAL_COMMISSION, mas queria esclarecer por que a biblioteca MT4Orders não ajudou?

void TestComision(string sy, int op=-1, int mn=-1)
  {
   if(!m_symbol.Name(sy)) // define o nome do símbolo
      return;
   m_symbol.RefreshRates();

   for(int i=PositionsTotal()-1; i>=0; i--) // retorna o número de posições abertas
      if(m_position.SelectByIndex(i))
         if((m_position.Symbol()==sy || sy=="") && (op<0 || m_position.PositionType()==op))
            if(mn<0 || m_position.Magic()==mn)
               if(m_position.PositionType()==POSITION_TYPE_SELL)
                 {
                  Print(i," sy: ",sy,"-88880- mProfit: ",m_position.Profit()," MT4OrderCommission(): ",OrderCommission());
                 }

  }
2020.04.14 23:45:00   5 sy: AUDNZD-88880- mProfit: 7.84 MT4OrderCommission(): 0.0
2020.04.14 23:45:00   4 sy: AUDNZD-88880- mProfit: -11.72 MT4OrderCommission(): 0.0
2020.04.14 23:45:00   3 sy: AUDNZD-88880- mProfit: -14.51 MT4OrderCommission(): 0.0
2020.04.14 23:45:00   2 sy: AUDNZD-88880- mProfit: -11.25 MT4OrderCommission(): 0.0
2020.04.14 23:45:00   1 sy: AUDNZD-88880- mProfit: -7.48 MT4OrderCommission(): 0.0
2020.04.14 23:45:00   0 sy: AUDNZD-88880- mProfit: -10.17 MT4OrderCommission(): 0.0
 
Nauris Zukas POSITION_COMMISSION, li no fórum que a biblioteca MT4Orders pode fazer isso. Testei-a, mas ela também não funcionou. Posso escrever uma função via DEAL_COMMISSION, mas queria esclarecer por que a biblioteca MT4Orders não ajudou?
#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>

CPositionInfo m_position;
CSymbolInfo m_symbol;

#include <MT4Orders.mqh> // https://www.mql5.com/pt/code/16006

void TestComision(string sy, int op=-1, int mn=-1)
  {
   if(!m_symbol.Name(sy)) // define o nome do símbolo
      return;
   m_symbol.RefreshRates();

   for(int i=PositionsTotal()-1; i>=0; i--) // retorna o número de posições abertas
      if(m_position.SelectByIndex(i))
         if((m_position.Symbol()==sy || sy=="") && (op<0 || m_position.PositionType()==op))
            if(mn<0 || m_position.Magic()==mn)
               if(m_position.PositionType()==POSITION_TYPE_SELL)
                 {
                  OrderSelect(INT_MAX, SELECT_BY_POS);
                  
                  Print(i," sy: ",sy,"-88880- mProfit: ",m_position.Profit()," MT4OrderCommission(): ",OrderCommission());
                 }

  }

void OnStart()
{
  TestComision(_Symbol);
}
 
fxsaber #:

Obrigado, funcionou.

 
Instalei o 5 em um vin de 32 eixos. A edição mais recente apresentou 8 erros. Mas a edição de 2018 funciona.
 
Valeriy Yastremskiy #:
Instalei o 5 em um vin de 32 eixos. A edição mais recente apresentou 8 erros. Mas a edição de 2018 funciona.

Seria bom fornecer mais informações técnicas. Presumo que a última compilação x32 funcional do MT5 ainda não suportava algo. Por exemplo, MQL_HANDLES_USED.

Eu só uso b2958_x64 em combate e compilo para b3260.
 
fxsaber #:

Seria bom fornecer mais informações técnicas. Presumo que a última compilação x32 funcional do MT5 ainda não suportava algo. Por exemplo, MQL_HANDLES_USED.

Eu só uso b2958_x64 em combate e compilo para b3260.

Instalei a compilação 2361 de 8 de março de 2020. Sim, exatamente MQL_HANDLES_USED nos erros da versão mais recente. 8 erros. Versão // 08.02.2022

Compilável sem erros na versão de 32 bits // 30.05.2018

 
Valeriy Yastremskiy #:

Instalei a compilação 2361 de 8 de março de 2020. Sim, exatamente MQL_HANDLES_USED nos erros da versão mais recente. 8 erros. Versão // 08.02.2022

#define  MQL_HANDLES_USED MQL_MEMORY_USED
#include <MT4Orders.mqh>
 
fxsaber #:
'DEAL_SL' - undeclared identifier       MT4Orders2021.mqh       1281    89
'HistoryDealGetDouble' - no one of the overloads can be applied to the function call    MT4Orders2021.mqh       1281    60
could be one of 2 function(s)   MT4Orders2021.mqh       1281    60
   built-in: double HistoryDealGetDouble(ulong,ENUM_DEAL_PROPERTY_DOUBLE)       MT4Orders2021.mqh       1281    60
   built-in: bool HistoryDealGetDouble(ulong,ENUM_DEAL_PROPERTY_DOUBLE,double&) MT4Orders2021.mqh       1281    60
'DEAL_TP' - undeclared identifier       MT4Orders2021.mqh       1282    91
'HistoryDealGetDouble' - no one of the overloads can be applied to the function call    MT4Orders2021.mqh       1282    62
could be one of 2 function(s)   MT4Orders2021.mqh       1282    62
   built-in: double HistoryDealGetDouble(ulong,ENUM_DEAL_PROPERTY_DOUBLE)       MT4Orders2021.mqh       1282    62
   built-in: bool HistoryDealGetDouble(ulong,ENUM_DEAL_PROPERTY_DOUBLE,double&) MT4Orders2021.mqh       1282    62

Obrigado, ele desapareceu. Também as linhas 1281 e 1282. Variáveis DEAL_SL DEAL_TP.

Se você tiver tempo. Em geral, instalei acidentalmente neste notebook 5ku. E então o desejo de testar apareceu))))))

 
Valeriy Yastremskiy #:

Obrigado, ele desapareceu. Também as linhas 1281 e 1282. Variáveis DEAL_SL DEAL_TP

#define  MQL_HANDLES_USED MQL_MEMORY_USED
#define  DEAL_TP DEAL_PRICE
#define  DEAL_SL DEAL_PRICE
#include <MT4Orders.mqh>
O mecanismo do site também não é compatível com esses ENUMs - ele não os destaca em vermelho.
 
fxsaber #:
ZY O mecanismo do site também não é compatível com esses ENUMs - ele não os destaca em vermelho.

Obrigado. Não há erros.