Molanis Erra Alguém? - página 3

 

RJo:

Tendo dito isto, ainda não vi um ex4 funcional com um mq4 defeituoso da SB.

Você postou um código mql4 defeituoso. . parece que o Molanis não é melhor que o EA Builder.
 
RJo:


Ah, então... os computadores são os melhores no comércio e, portanto, o humano deve ser dispensado.


No.... os computadores são os melhores em Automated Trading ;)
 
RaptorUK:
Você postou um código mql4 defeituoso. . parece que Molanis não é melhor que o EA Builder.


"Defeituoso" em relação ao arquivo do ex4, como no ex4 sendo mais funcional do que o mq4. Como foi dito em meu primeiro posto, não sou um codificador. Sim. Obrigado por seu diagnóstico específico. Ah, sim... você não tinha um.

 
RJo:


"Defeituoso" em relação ao arquivo do ex4, como no ex4 sendo mais funcional do que o mq4. Como foi dito em meu primeiro posto, não sou um codificador. Sim. Obrigado por seu diagnóstico específico. Ah, sim... você não tinha um.

Não preciso duplicar o que o WHRoeder já deu ...
 
JDeel:

Por que não começamos a programar em assembler? Podemos controlar tudo no nível mais baixo disponível (após o código da máquina). Sim, é preciso mais esforço para aprender isso, mas certamente conseguiremos um código tão pequeno e super otimizado! Isto é tão surpreendente, não acham, pessoal?

deVries, Molanis não é minha ferramenta e eu nunca fiz EA's usá-la. Mas vejo que vocês não são fãs dos Construtores da EA e posso aconselhá-los a nunca tentarem trabalhar com eles. Basta usar MQL4/MQL5, isto não é proibido. Há pessoas que gostam mais da cor rosa, e pessoas que gostam mais da cor azul. Sempre foi assim e continuará a ser.


Não mude minhas palavras.... Comprove-nos que você pode codificar corretamente um Expert Advisor usando sua ferramenta que eu escrevi. Ainda assim, quero dizer que...

Eu nunca escrevi Molanis é sua ferramenta. Se você procurar no Google por EABuilders, encontrará outros. Talvez você seja um usuário do NoProgra Builder.

e você acha que é uma ferramenta que pode codificar corretamente seus EA para o MetaTrader4, então prove-o com esse construtor.

Mas há pessoas que aconselham o uso do EABuilders ou o promovem para usá-lo...

Se você quiser promover qualquer produto, então tenha certeza de que o produto é bom, provando-o

E ainda não vi alguém conseguir fazer isso....

A grande desvantagem dessas ferramentas é que haverá pessoas pensando que não é necessário conhecer o básico do mq4, quando uma ferramenta pode fazer seu produto

Mas eles não sabem a qualidade que obtêm.... dessa ferramenta. Ou não reconhecem erros em programas que podem obter (grátis ou não grátis) usando a internet

 
RJo:

Obrigado por seu diagnóstico específico. Ah, sim... você não tinha um.

Vou lhe dar um exemplo específico . . .

int CLOSELONG(string symbol_c) {
 CloseAllPositions(symbol_c,OP_BUY,MagicNumberLong);
 CloseAllPositions(symbol_c,OP_BUY,MagicNumberLong);
 return(0);
}

//CLOSESHORT closes short positions
/*
*** Generated with Molanis Strategy Builder 3.1 ***
*** www.molanis.com ***
*** Released 2010-02-20 ***
*/
int CLOSESHORT(string symbol_c) {
 CloseAllPositions(symbol_c,OP_SELL,MagicNumberShort);
 CloseAllPositions(symbol_c,OP_SELL,MagicNumberShort);
 return(0);
}

Estas 2 funções chamam a mesma função duas vezes . . CloseAllPositions, a primeira para Longs, a segunda para Shorts . . por que faria isso ? faz isso para limpar as Ordens que não fechou na primeira vez que CloseAllPositions é executado, por que não fecha as posições ? porque o loop usado para fechar essas posições conta para cima e agora para baixo . . e você já sabe por que isso falha ao ler o thread que eu criei sobre esse mesmo assunto.

Portanto, em vez de entender por que algumas posições são deixadas em aberto, as boas pessoas em Molanis têm sido um bom presságio . . . chamam a mesma função uma segunda vez para arrumar depois da primeira.

 

Obrigado por postar o código Molanis, RJo, vou revisá-lo mais tarde - o cálculo dos lotes de Molanis é muito terrível. Pense que os usuários de Molanis / EA SB são usuários felizes, até que aprendam mql, e até lá verão Molanis / EA SB de um ponto de vista totalmente diferente.

Acho melhor defender nosso dinheiro primeiro do que defender Molanis/EA SB - ou nossa decisão de usar um ;).

 
RJo:
Indi:


Obrigado por publicar os códigos ....

Tão bom quanto WHRoeder é em apontar erros tão rapidamente que eu não sou e não tem sentido dizer isso de novo

Mas se você não sabe como codificar você pode fazer algo mais que você vê aqui....

.

Eu fiz um teste para ver o comportamento do indicador e isso também dá algum tipo de aviso feito duas imagens

Teste em 1 Minuto (faz com que a EA não negocie) a partir de 1 jan 2012

Você vê o comportamento antes do teste do indicador nesta imagem

E o comportamento quando o teste começa

Este comportamento você também verá se você coloca no teste um EA que não está usando o indicador

.

Parece um comportamento totalmente diferente Este também é um aviso para dar uma olhada mais de perto no código ou no comportamento do indicador antes de usá-lo.

.

Parece que este código do indicador não é feito por Molanis porque ele começa com ......

// This is Not Tested , Use At Your Own Risk !

//+--------------------------------------------------------------------------+
//| 3 MA Cross w_Alert v2.mq4                                                |
//| Copyright © 2005, Jason Robinson (jnrtrading)                            |
//| http://www.jnrtading.co.uk                                               |
//| 3 ma conversion and Alert , David Honeywell , transport.david@gmail.com  |
//| http://finance.groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/ |
//+--------------------------------------------------------------------------+

/*
  +-------------------------------------------------------------------------------+
  | Allows you to enter 3 ma periods and it will then show you and alert you at   |
  | which point the 2 faster ma's "OPEN" are both above or below the Slowest ma . |
  +-------------------------------------------------------------------------------+
*/   

Pense que o erro deste indicador é que ele calcula o futuro

   for(i = 0; i <= limit; i++)
    {
      
      counter=i;
      Range=0;
      AvgRange=0;
      for (counter=i ;counter<=i+9;counter++)
       {
         AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
       }
      Range=AvgRange/10;
       
      fasterMAnow      = iMA(NULL, 0, FasterMA, FasterShift, FasterMode, PRICE_CLOSE, i+1);
      fasterMAprevious = iMA(NULL, 0, FasterMA, FasterShift, FasterMode, PRICE_CLOSE, i+2);
      fasterMAafter    = iMA(NULL, 0, FasterMA, FasterShift, FasterMode, PRICE_CLOSE, i-1);
      
      mediumMAnow      = iMA(NULL, 0, MediumMA, MediumShift, MediumMode, PRICE_CLOSE, i+1);
      mediumMAprevious = iMA(NULL, 0, MediumMA, MediumShift, MediumMode, PRICE_CLOSE, i+2);
      mediumMAafter    = iMA(NULL, 0, MediumMA, MediumShift, MediumMode, PRICE_CLOSE, i-1);
      
      slowerMAnow      = iMA(NULL, 0, SlowerMA, SlowerShift, SlowerMode, PRICE_CLOSE, i+1);
      slowerMAprevious = iMA(NULL, 0, SlowerMA, SlowerShift, SlowerMode, PRICE_CLOSE, i+2);
      slowerMAafter    = iMA(NULL, 0, SlowerMA, SlowerShift, SlowerMode, PRICE_CLOSE, i-1);
Quando " i = 0 " então " i-1 " é futuro.....
 
WHRoeder:

Ichi_Cloud_EA.mql4 em nenhuma ordem em particular

  1. Is_micro_account externa em vez de calculá-la via Market_info
  2. Usando micro_conta e NormalizeDouble assume que o loteStep é 0,1 0r 0,01. Nenhum outro corretor de valores definidos é permitido.
  3. 5Digits externos em vez de calculá-lo. Somente o teste para 3 ou 5 permite pares padrão, pares tipo jpy. Comercialização de metais FALHA. Por que o teste para configurações inválidas.
  4. O PipMultiplier global nunca é reinicializado na mudança do gráfico.
  5. muitos bools externos não podem ser testados por estratégia.
  6. Nenhum motivo para usar dois números mágicos
  7. Só será negociado quando houver hora entre TradingStartTime e TradingEndTime. Não há possibilidade de definir a hora durante a meia-noite (por exemplo, início 2000, fim 0600, ou seja, apenas sessão de Sydney)
  8. Utiliza BarCount anterior==Bars. Barras em não confiável (barras máximas no gráfico) O volume não é confiável (você pode perder carrapatos) usar sempre o tempo.
  9. usa iClose(Símbolo(),0,1) em vez do fechamento mais simples e mais rápido[1].
  10. em Init Slippage = Slippage*PipMultiplier; significa CADA VEZ que você muda de gráfico (par ou período) Slippage aumenta 3 , 30, 300, 3000!!
  11. magiccond e outros bool use se (condição) boolVar = verdadeiro; caso contrário boolVar = falso; quando poderia usar o simplier boolVar = condição;
  12. Nunca cative os valores se (iClose() <> iCustom()) as mesmas chamadas iClose e iCustom são chamadas exatamente 4+ vezes.
  13. Conta enquanto fecha. as chamadas funcionam duas vezes. Contagem para cima significa que falhará todas as outras ordens. A função de chamada duas vezes significa que falhará em 4 ou mais ordens abertas. Sempre faça a contagem regressiva.
  14. "M-ERROR : A expiração tem que ser de pelo menos 1 minuto." A contagem deste período de expiração deve ser superior a 10 minutos!
  15. Para pedido pendente, chama Normaliszedouble(preço, dígitos) que não funcionará quando o ticksize for de tamanho != Ponto

Estando mais preocupado com o número 10, investiguei-o primeiro. Eu estava no meio da redação de um gigantesco pedido de apoio ao Molanis quando encontrei isto:

O Slippage como usado no código da EA é uma variável inteira externa (int externa).

"Antes da execução das variáveis externas init(), um usuário configurará valores na barra de ferramentas de configuração e, na execução das variáveis externas init(), terá novos valores definidos por um usuário. Assim, novos valores de variáveis externas tornam-se válidos a partir do momento de uma nova sessão (init - start - deinit) de um Expert Advisor que começa a partir da execução do init()"(https://book.mql4.com/variables/types).

Assim, parece que... enquanto variáveis globais são geralmente ignoradas em favor de valores antigos na execução do init(), variáveis externas são atualizadas na execução do init(). O slippage permanece definido em 3 (ou o que quer que eu configure) não importa quantas vezes eu mude os gráficos. Acredito que é assim que o EA é projetado para operar.

 
RJo:
Assim, parece que... enquanto as variáveis globais são geralmente ignoradas em favor de valores antigos na execução do init(), as variáveis externas são atualizadas na execução do init().

O Slippage permanece ajustado em 3 (ou o que quer que eu tenha ajustado), não importa quantas vezes eu mude de gráfico. Acredito que é assim que a EA foi projetada para operar.

ERRADO Você se deu ao trabalho de LER o link que postou(https://book.mql4.com/variables/types) que diz "As variáveis globais são inicializadas apenas uma vez antes de declarar a execução de funções especiais".

As variáveis globais e estáticas são definidas quando a EA é carregada, não durante o ciclo deinit/init.

Adicione uma declaração de impressão logo após o Slippage = Slippage * 10 e execute-o e mude os gráficos ou os cronogramas e procure no log se não quiser acreditar na documentação de nós...