//+------------------------------------------------------------------+ //| Modifica a posição selecionada no tíquete. //+------------------------------------------------------------------+ bool PositionModifyByTicket(const string symbol_name,const ulong magic_number,const ulong ticket,const double sl,const double tp) { //--- verificação interrompida if(IsStopped()) return(false); //--- limpo ZeroMemory(g_request); ZeroMemory(g_result); //--- solicitação de configuração g_request.action =TRADE_ACTION_SLTP; g_request.position=ticket; g_request.symbol =symbol_name; g_request.magic =magic_number; g_request.sl =sl; g_request.tp =tp; //--- ação e retorna o resultado return(OrderSend(g_request,g_result)); }
Supérfluo.
//+------------------------------------------------------------------+ //|| Função de rastreamento| //+------------------------------------------------------------------+ void Trailing(void) { int total=PositionsTotal(); for(int i=total; i>=0; i--) { ulong ticket=PositionGetTicket(i); if(ticket==0) continue; string symbol_name=PositionGetString(POSITION_SYMBOL); ulong magic_number=(ulong)PositionGetInteger(POSITION_MAGIC); ENUM_POSITION_TYPE type=(ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); if(InpPositionType>WRONG_VALUE && type!=(ENUM_POSITION_TYPE)InpPositionType) continue;
É muito dispendioso (especialmente em strings) criar variáveis dedicadas antes de todas as verificações contínuas.
Imagine uma otimização simples para 100.000 passagens de 10.000.000 de ticks. Então, OnTick será chamado um TRILHÃO de vezes. Qualquer ação extra chamada um trilhão de vezes levará mais segundos/minutos/horas. Valorize seu próprio tempo e o dos outros.
É muito dispendioso (especialmente em strings) criar variáveis dedicadas antes de todas as verificações contínuas.
Imagine uma otimização simples para 100.000 passagens de 10.000.000 de ticks. Então, OnTick será chamado um TRILHÃO de vezes. Qualquer ação extra chamada um trilhão de vezes levará mais segundos/minutos/horas. Valorize seu tempo e o tempo de outras pessoas.
Este não é um EA de negociação. Por que otimizá-lo? É apenas uma rede de arrasto. E é estranho.
É uma função Trailing migratória para fins de treinamento.
Esta é uma função Trailing migratória para fins de treinamento.
Insuficiente para a migração. Somente no contexto do código em questão.
Migratório - quando 90% do código é emprestado.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
TrailingTakeProfit:
Este Expert Advisor não comercial se destina ao trailing simples de ordens de take-profit de posições abertas.
Autor: Scriptor