Funciona no meu sem problema!
int OnInit(){ return(INIT_SUCCEEDED); }; void OnDeinit(const int reason){ }; void OnTick(){ };
Obrigado pela ajuda, penso que tenha descoberto o porquê de não estar correndo.
A figura que postou ajudou muito na solução, penso que tenha sido pelo fato de eu estar testando em um dia que estaria associado ao mini indice passado(WINJ22 no dia 21-2-2022 ate 22-2-2022). No entanto na configuração do ST apenas aparece o simbolo atual(WINM22). Pus uma data nessa(18-4-2022) semana e funcionou perfeitamente.
Se realmente é desse jeito há alguma maneira de usar o ST durante um ano do mini índice (já que ele muda de 2 em dois meses)?
novamente obrigado pela ajuda,

- mvcorrea-ufc
- github.com
Agora tive uma ideia, como já tenho um EA base para experimentar vou aproveitar esse post para ir pondo as atualizações que irei fazer no mesmo.
A ideia de início seria um EA que auxiliasse na decisão de manualmente abrir uma posição ou não.
link: https://github.com/mvcorrea-ufc/learning-mql5
como utilizar: após instalar o git fazer um git clone na pasta "Expert Advisors" do metatrader.
pode ser que dê jeito para alguém,

- mvcorrea-ufc
- github.com
A ideia de início seria um EA que auxiliasse na decisão de manualmente abrir uma posição ou não. link: https://github.com/mvcorrea-ufc/learning-mql5. como utilizar: após instalar o git fazer um git clone na pasta "Expert Advisors" do metatrader. pode ser que dê jeito para alguém,
Em vez de usar o GitHub, porque não simplesmente utilizar MLQ5 Storage e partilhar publicamente o projecto.
Sei, que o MQL5 Storage não é tão poderoso como o Git, mas é bem mais conveniente para a maioria e assim, qualquer utilizador pode lhe seguir no MetaEditor sem dificuldade alguma.
Otima ideia, irei ver como utilizar o storage, e eventualmente deixar em ambos locais.
Obrigado pela dica,
Não sei se podem ajudar em uma situação que acabei de implementar (em que somente tenho atualizações quando surge um novo candle, e supostamente deveria acontecer a cada tick)?
Sei algum cpp no entanto estou no início da aprendizagem do mql5!
class Demo { public: int rsiHandle, lineTop, lineBot; double rsi[]; double rsiValue, rsiV0, rsiV1, rsiV2; string rsiStr1, rsiStr2; Demo(void) { lineBot = 30; lineTop = 70; rsiHandle = iRSI(_Symbol,_Period, 14, PRICE_CLOSE); ArraySetAsSeries(rsi, true); }; ~Demo(void){ IndicatorRelease(rsiHandle); ArrayFree(rsi); }; string getSignalStr1(){ return rsiStr1; } string getSignalStr2(){ return rsiStr2; } double getSignalValue(){ return rsiV0; } void eachTick(double&); }; void Demo::eachTick(double &rsiVal){ CopyBuffer(rsiHandle,0,0,3,rsi); rsiV0 = NormalizeDouble(rsi[0], 2); // current value rsiV1 = NormalizeDouble(rsi[1], 2); rsiV2 = NormalizeDouble(rsi[2], 2); // singnal as value rsiVal = rsiV0; // testing passing references // signal descriptor rsiStr1 = (rsiV0 > lineTop) ? "top" : (rsiV0 < lineBot) ? "bottom" : "middle"; // se o sinal cruzar a linha de topo no sentido descendente diremos que queremos comprar. // se o sinal cruzar a linha de fundo no sentido ascendente diremos que queremos vender. // caso contrário nao iremos fazer nada. // no caso irei testar se ja temos 2x ticks na area superior ou inferior antes de tomar decisão (estabilizando o sinal). rsiStr2 = (rsiV2 > lineTop && rsiV1 > lineTop && rsiV0 < lineTop) ? "sell" : (rsiV2 < lineBot && rsiV1 < lineBot && rsiV0 > lineBot) ? "buy" : "no action"; }
E no EA propriamente dito!
Penso que poderia substituir ambas strings por booleans (como temos 3 estados em cada precisamos de 2 bools para os codificar). Ajudaria na performance(nada bom comparar strings)?
*** corrigindo no strategy tester corre perfeitamente, já quando incluo o EA no grafico do mini indice não vejo os "comments" a mudar (somente na mudança dos candles) ***
#include <..\Experts\learning-mql5\tradeAssist\demoClass.mqh> double rsiVal; Demo* ta; int OnInit(){ ResetLastError(); ta = new Demo(); Print("onInit finished"); return(INIT_SUCCEEDED); } void OnDeinit(const int reason){ } void OnTick(){ ta.eachTick(rsiVal); Comment("var1: ", rsiVal, "\nvar2: ", ta.getSignalValue(), "\nvar3: ", ta.getSignalStr1(), "\nvar4: ", ta.getSignalStr2() ); }
de ja Obrigado,
Ja funciona.. Penso que por estar a correr em um mac(não há versão nativa, isso corre dentro do wine) isso não deve ser essa maravilha toda..
Obrigado

- 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
quando utilizando o template de EA dado pelo MT5 no strategy tester, esse corre e logo aborta a execução.
como correr esse EA em visual mode (vendo os candles a passar) no strategy tester?