Zoltan Paulini: Por favor, se eu tenho 100 ativos de PETR4, ou qualquer outro, e vendo 1 fracionário, o MT registra como mantendo os 100 PETR4 e operando vendido 1 PETR4F? Como fazer essa conversão no MQL? Eu teria que vender o lote inteiro de 100 unidades e comprar os 99 com símbolo fracionário?
São símbolos distintos, com especificações independentes... O MetaTrader não reconhece a relação entre os dois, sendo necessário implementar a lógica de conversão... O processo consiste em vender o lote inteiro do símbolo padrão (PETR4) e comprar a quantidade desejada no símbolo fracionário (PETR4F)... Aqui está um exemplo básico (não testado) do ChatGPT de como isso pode ser feito:
#include <Trade\Trade.mqh> // Criar uma instância da classe CTrade CTrade trade; void OnStart() { // Definir os símbolos string symbol_regular = "PETR4"; string symbol_fractional = "PETR4F"; // Selecionar os símbolos no terminal if (!SymbolSelect(symbol_regular, true) || !SymbolSelect(symbol_fractional, true)) { Print("Erro ao selecionar os símbolos."); return; } // Verificar a posição no ativo regular double volume_pos = 0; if (PositionSelect(symbol_regular)) { volume_pos = PositionGetDouble(POSITION_VOLUME); Print("Posição atual em ", symbol_regular, ": ", volume_pos); } else { Print("Nenhuma posição aberta em ", symbol_regular); return; } // 1. Vender o lote inteiro do ativo regular if (volume_pos > 0) { if (!trade.Sell(volume_pos, symbol_regular)) { Print("Falha ao vender o lote inteiro de ", symbol_regular, ". Erro: ", GetLastError()); return; } else { Print("Venda de ", volume_pos, " unidades de ", symbol_regular, " realizada com sucesso."); } } // 2. Comprar no ativo fracionário double fractional_volume = volume_pos - 1; // Comprar 99 unidades no fracionário if (fractional_volume > 0) { if (!trade.Buy(fractional_volume, symbol_fractional)) { Print("Falha ao comprar o ativo fracionário ", symbol_fractional, ". Erro: ", GetLastError()); return; } else { Print("Compra de ", fractional_volume, " unidades de ", symbol_fractional, " realizada com sucesso."); } } }
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Por favor, se eu tenho 100 ativos de PETR4, ou qualquer outro, e vendo 1 fracionário, o MT registra como mantendo os 100 PETR4 e operando vendido 1 PETR4F?
Como fazer essa conversão no MQL? Eu teria que vender o lote inteiro de 100 unidades e comprar os 99 com símbolo fracionário?