Ótimo...
O artigo é um pequeno extrato de outro. Nada foi feito para que ele funcione de forma eficiente. Não há armazenamento em cache de indicadores e séries temporais. Não há High[i], Low[i], etc. Nada de iCustom.
Esperava-se ver algo completamente diferente. Além disso, qual é o objetivo do fast food nos Expert Advisors, se ele nem sequer está nos códigos-fonte?
for(int i=PositionsTotal()-1;i>=0;i--) if(m_position.SelectByIndex(i)) // seleciona a posição por índice para acesso posterior às suas propriedades if(m_position.Symbol()==m_symbol.Name()) { //--- a posição longa é aberta if(m_position.PositionType()==POSITION_TYPE_BUY) { //--- ela deve ser fechada? if(MacdCurrent>0 && MacdCurrent<SignalCurrent && MacdPrevious>SignalPrevious && MacdCurrent>(MACDCloseLevel*m_adjusted_point)) { //--- fechar a posição e sair if(!m_trade.PositionClose(m_position.Ticket())) Print("PositionClose error ",m_trade.ResultRetcodeDescription()); return; } //--- verificar o trailing stop if(TrailingStop>0) { if(m_position.PriceCurrent()-m_position.PriceOpen()>m_adjusted_point*TrailingStop) { if(m_position.StopLoss()<m_symbol.Bid()-m_adjusted_point*TrailingStop) { //--- modificar a posição e sair if(!m_trade.PositionModify(m_position.Ticket(), m_symbol.NormalizePrice(m_position.PriceCurrent()-m_adjusted_point*TrailingStop), m_position.TakeProfit())) Print("PositionModify error ",m_trade.ResultRetcodeDescription()); return; } } } } if(m_position.PositionType()==POSITION_TYPE_SELL) { //--- ela deve ser fechada? if(MacdCurrent<0 && MacdCurrent>SignalCurrent && MacdPrevious<SignalPrevious && MathAbs(MacdCurrent)>(MACDCloseLevel*m_adjusted_point)) { //--- fechar a posição e sair if(!m_trade.PositionClose(m_position.Ticket())) Print("PositionClose error ",m_trade.ResultRetcodeDescription()); return; } //--- verificar o trailing stop if(TrailingStop>0) { if((m_position.PriceOpen()-m_position.PriceCurrent())>(m_adjusted_point*TrailingStop)) { if((m_position.StopLoss()>(m_symbol.Ask()+m_adjusted_point*TrailingStop)) || (m_position.StopLoss()==0.0)) { //--- modificar a posição e sair if(!m_trade.PositionModify(m_position.Ticket(), m_symbol.NormalizePrice(m_symbol.Ask()+m_adjusted_point*TrailingStop), m_position.TakeProfit())) Print("PositionModify error ",m_trade.ResultRetcodeDescription()); return; } } } } }
- 2010.05.11
- Sergey Pavlov
- www.mql5.com
O artigo é um pequeno extrato de outro. Nada foi feito para que ele funcione de forma eficiente. Não há armazenamento em cache de indicadores e séries temporais. Não há High[i], Low[i], etc. Nada de iCustom.
Esperava-se ver algo completamente diferente. Além disso, qual é o objetivo do fast food nos Expert Advisors, se ele nem sequer tem cheiro nas fontes?
Aqui está um exemplo de um típico MQL4-ca - sem ler ou olhar o código, você vai direto para o pódio com bandeiras :) .
Aqui está um exemplo de um típico MQL4-ca - sem ler, sem olhar o código, direto para o pódio com bandeiras :) .
Antes de comentar, li não apenas o texto do artigo, mas também todas as fontes anexas (incluindo a análise de IndicatorsMQL4.mqh VS IndicatorsMQL5.mqh).
Antes de comentar, você leu não apenas o texto do artigo, mas também todas as fontes anexas (incluindo a análise de IndicatorsMQL4.mqh VS IndicatorsMQL5.mqh).
Você deve ter dado uma olhada (perdida) no arquivo MQL5\Include\SimpleCall\Series.mqh.
Sobre o armazenamento em cache - essas são suas suposições pessoais (expectativas).
Este artigo não tem a intenção de enganar os usuários de MQL4 com "conecte meu arquivo e você pode continuar a trabalhar sem pensar no estilo de MQL4", ele mostra como transferir a abordagem antiga na abordagem de indicadores para MQL5.
Você deve ter esquecido o arquivo MQL5\Include\SimpleCall\Series.mqh.
Leia-o com atenção. Onde está High[i], etc.?
Sobre o armazenamento em cache - essas são suas suposições pessoais (expectativas).
Este artigo não tem a intenção de enganar os usuários de MQL4 com "conecte meu arquivo e você pode continuar a trabalhar sem pensar no estilo de MQL4", ele mostra como transferir a abordagem antiga na abordagem de indicadores para MQL5.
Onde está o iCustom? Você, sem pensar, quase copiou e colou uma parte de outro artigo e obteve uma falha no desempenho. Na verdade, enganando os usuários de que esse é o custo do estilo MQL4, não da sua implementação.
Aqui você tem medições de desempenho que mostram que o estilo MQL4 não é inferior ao MQL5 em alguns aspectos. Você poderia fazer o mesmo com os indicadores.
Aqui está uma das realizações de séries temporais. Você pode ver que o autor fez um esforço, enfatizando o desempenho e se afastando do estilo MQL4 (você pode refinar a ideia, se quiser).
- votos: 25
- 2017.05.25
- nicholishen
- www.mql5.com
Leia com atenção. Onde está o High[i], etc.?
Onde está o iCustom? Sem pensar, você quase copiou e colou uma parte de outro artigo e obteve uma falha no desempenho. Na verdade, enganando os usuários de que esse é o custo do estilo MQL4, não da sua implementação.
Aqui você tem medições de desempenho que mostram que o estilo MQL4 não é inferior ao MQL5 em alguns aspectos. Você poderia fazer o mesmo com os indicadores.
Aqui está uma das realizações de séries temporais. Você pode ver que o autor tentou enfatizar o desempenho e se afastou um pouco (é mais conveniente para ele) do estilo MQL4 (você pode refinar a ideia se quiser).
Para se acostumar com a MQL5 mais rapidamente, apenas as funções iXXXX de séries foram deixadas, pois elas têm parâmetros mais completos (símbolo, período de tempo, deslocamento), que substituirão facilmente as funções High[], etc., mais altamente especializadas. O objetivo não é que o usuário continue a usar a MQL4 sem pensar, mas que comece a reescrever lentamente seu código MQL4.
O iCustom nem sequer estava nos planos - apenas os indicadores padrão foram considerados.
Sobre o armazenamento em cache - isso definitivamente não está no artigo para o público em geral.
Adicionado: a propósito, o feedback dos usuários deixará claro se High[] e funções semelhantes são necessárias ou se podemos dispensar a série iXXXX.
O objetivo não é que o usuário continue a usar a MQL4 sem pensar, mas que comece a reescrever lentamente seu código MQL4.
O estilo MQL4 é MQL5 puro. Não é pior do que SB. Não lute com moinhos de vento em sua imaginação. Você não está brigando com o estilo da StandardLibrary.
O iCustom nem sequer estava nos planos - apenas os indicadores padrão foram considerados.
Sobre o armazenamento em cache - definitivamente não está no artigo para o público em geral.
Nos tópicos sobre indicadores do MT4 vs MT5, os indicadores padrão foram os menos discutidos. Quase todo mundo falou sobre os indicadores personalizados. Os indicadores padrão foram escritos há décadas e estão irrevogavelmente desatualizados. Trabalhar em MQL5 avançada com indicadores antigos parece estranho.
O armazenamento em cache não deveria ter sido explicado no artigo, mas deveria ter sido feito, já que você tirou a objetividade de suas conclusões em relação ao estilo MQL4.
Uma queda na velocidade de teste com acesso simultâneo a mais de um indicador;
Adicionado: a propósito, o feedback do usuário mostrará se High[] e recursos semelhantes são necessários ou se a série iXXXX pode ser dispensada.
Faça uma enquete e veja o resultado sem dizer nada na forma de comentários. O mesmo se aplica até mesmo a coisas simples como as variáveis Bid/Ask.
O artigo deveria se chamar "como você não pode escrever código tentando salvar a representação MQL4".
Um horror difícil com alças vazadas (por que fechar a alça do indicador?) e uma sobrecarga incrível (tentar recriar o indicador, caindo dentro do gerenciador de indicadores). E muitas pessoas o copiarão sem olhar e sem entender.
Além disso, a extração ineficiente de um valor do indicador.
Eu li o artigo por completo e examinei os códigos o suficiente.
- 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
Novo artigo LifeHack para traders: preparemos "fast-food" de indicadores foi publicado:
Se você estiver mudando para MQL5 agora, você vai precisar deste artigo, porque, por um lado, o acesso aos dados dos indicadores e às séries é realizado na nossa conhecida linguagem MQL4, por outro lado, toda a realização é escrita em MQL5. Todas as funções são o mais claras quanto possível e são perfeitamente adequadas para a depuração passo a passo.
Eu inseri "Comment" exclusivamente para verificação. No testador, pode-se confrontar o trabalho iniciando "MACD MQL4 style EA short.mq5", em modo visual, e colocando o cursor na barra com o índice #1:
Fig. 1. "MACD MQL4 style EA short.mh5" in tester
Autor: Vladimir Karputov