[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 147

 

Descobriu como desenhar o indicador (recursivo com inicialização, em teoria deve ser inicializado com uma data fixa, para que as barras de saída não alterem os valores iniciais do indicador). O idioma parece ser bom, mas há um enorme problema com a documentação do idioma.

Consegui fazer isto desta maneira:

Se (IndicatorCounted<0) retornar com um erro

Se a primeira ocorrência (IndicatorCounted==0) e quisermos calcular todo o histórico

{

if (Bars <= Comprimento) { inicializar variáveis com valores iniciais}

se (Barras > Comprimento) { se IndicadorContado

}

Se NÃO for a primeira inclusão (IndicatorCounted>0) então conte apenas Bars-IndicatorCounted-1 bars

{

if (IndicatorCounted-1 <= Length) { inicializar variáveis com valores iniciais até Length}

{ se (IndicatorCounted-1 > Comprimento) calcular IndicatorCounted-1

}

PERGUNTAS AGORA:

Há alguma maneira de tornar este algoritmo mais simples? (é muito texto)

Como decifrar data e hora, da função Tempo? (acho que precisamos da data e hora de um determinado bar)

Existe em algum lugar um tutorial suficientemente completo de mql4 (exceto no livro e metaeditor do Kirill) descrevendo o que e como ele funciona (como o algoritmo acima)?

Onde posso encontrar uma descrição da biblioteca stdlib mql?

 

Вопрос другого уровня. Лучше свою тему создавать.

OK, obrigado.
 

O que causa o erro 130? Como posso corrigi-lo?

No testador, o Expert Advisor trabalha sem erros. em demonstração não pode abrir nenhum negócio...

 

130 erro - você está especificando o lucro e a interrupção de perdas errados.

Causas prováveis:

- O preço não é normalizado.

- paradas estão muito próximas do mercado. Ele pode flutuar, portanto, também precisa ser monitorado.

Se você os tem a 5-10 pips, veja de onde eles estão vindo - a oferta ou o pedido.

- O problema também pode ser que o corretor não esteja autorizado a colocar paradas durante a execução de ordens de mercado (por exemplo, brokos). Eles têm que ser colocados em um pedido que já está aberto.

 

Nota: Os arquivos só podem ser abertos nos arquivos do terminal_diretório/especialistas(arquivos de teste do terminal_diretório em caso de teste por especialistas) ou em suas subpastas.

Como isto pode ser implementado? O programa não encontra automaticamente o arquivo em subpastas.

 
beruk писал(а) >>

Nota: Os arquivos só podem ser abertos nos arquivos do terminal_diretório/especialistas(arquivos de teste do terminal_diretório em caso de teste por especialistas) ou em suas subpastas.

Como isso pode ser feito? O programa não encontra automaticamente o arquivo em subpastas.

E como pesquisá-los?

 

Essa é a questão - como pesquisar? Não consigo encontrar nada na documentação.

Eu uso :

#importar "kernel32.dll"//function library
int FindFirstFileA(string path, int & answer[]);//finds first file
bool FindNextFileA(int handle, int & answer[]);//finds subsequent files, one after another
bool FindClose(int handle);//does not search
#import

mas a julgar por "ou suas subpastas", isso pode ser feito por meio de MQL

 
beruk писал(а) >>

Essa é a questão - como pesquisar? Não consigo encontrar nada na documentação.

Eu uso :

#importar "kernel32.dll"//function library
int FindFirstFileA(string path, int & answer[]);//define o primeiro arquivo
bool FindNextFileA(int handle, int & answer[]);//define os arquivos subseqüentes um a um
bool FindClose(int handle);// faz a busca
#importar

Mas de acordo com "ou subpastas", você pode fazer isso com MQL.

Você pode usar o MQL para criar um arquivo e escrever algo nele. Você pode abrir um arquivo existente e ler algo. Se este arquivo existe ou não, depende de você.

 

mais uma vez:

Os arquivos só podem ser abertos nos arquivos do terminal_diretório de especialistas(arquivos de teste do terminal_diretório em caso de teste de uma EA) ou em suas subpastas.

Eu uso para abrir o padrão

int handle;
handle=FileOpen('my_data.csv',FILE_CSV|FILE_READ,';');

portanto, o arquivo é criado/aberto em arquivos de terminal_directório_peritos, mas não em subpastas!

Não encontrei instruções sobre como criar/abrir um arquivo nas subpastas, nem no fórum nem na documentação.

talvez seja um erro na documentação?

 
beruk >> :

...ainda não descobri como criar/abrir arquivo em subpastas, nem no fórum nem na documentação.

Talvez tentar desta forma (criando arquivos/minha_dir pasta de antemão)?

handle=FileOpen('my_dir/my_data.csv',FILE_CSV|FILE_READ,';');