Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 1021

 
Olá. Ajuda com conselhos. Teste de uma EA sensível à cotação em uma conta real pro-ecn alpari. Como resultado, o gráfico é significativamente diferente no mesmo intervalo, mesmo depois de baixar as citações e dois testes consecutivos. Não tenho certeza do que esperar de verdade.
 

Estabeleça um spread fixo no testador. De modo geral, EAs sensíveis a tais coisas - pela sanita abaixo )

 
Sim, isso mesmo, muito obrigado. Sobre a EA, eu não sei. O autor apresenta apenas a sensibilidade da EA como sua principal vantagem. Porque ele descreve que o Expert Advisor não é baseado em indicadores, mas baseado no movimento de preços. É por isso que ele recomenda trabalhar em contas ecn, e citações da dukascopy. O que você pensa sobre isso?
 
Lians:
Olá, Prezados Profissionais.

Há um roteiro para exportar citações no formato que eu quero para as últimas 100 barras ou até um certo tempo no passado. Funciona como deveria. Mas se for atirado no gráfico de visualização do testador, ele economiza citações com base na última vez que há uma cotação na história, não na data e hora do testador.

Você pode ensiná-lo a salvar as últimas 100 barras com base no tempo de visualização do gráfico de visualização do testador?

Em caso afirmativo, por favor, informe como fazer isso. Eu não consigo entender.
PS: o fato de usar a função de Kim para substituição, em vez de StringReplace - é assim que é projetado, não preste atenção.


Vou responder a mim mesmo. Se eu fizer um indicador a partir deste roteiro, ele funciona corretamente por alguma razão.
Assim, foi encontrada uma solução. Embora um par de cliques seja menos conveniente, mas ainda assim melhor do que nada.
 

indicador - ATS (Alpha Trend Spotter Price Action free)

CandleHigh=High[Highest(NULL, 0,2,3,i)];
CandleLowS=Low[Lowest(NULL,0,1,3,i)];
CandleOpenS=Open[i];
CandleHighF=High[Highest(NULL, 0, 2, 3, (i+3))];
CandleHighL=Low[Lowest(NULL,0,1,3,(i+3))];
CandleOpenL=Open[i+3];
//---
if((CandleHigh>CandleHighF) && (CandleOpenS<CandleHighL))
{
BufferMap1[i]=High[i+3]+0.0010;
}
//---
if((CandleLowS<CandleHighL) && (CandleOpenS>CandleHighF))
{
BufferMap2[i]=Low[i+3]-0.0010;

perguntas:

1. Quantos candelabros são analisados?
2. Em qual candelabro a flecha está colocada?
3.
como O1>C2

este é o código para mq5 do mesmo indicador

{
CandleHigh=high[ArrayMaximum(high,bar,iPeriod)];
CandleLow=low[ArrayMinimum(low,bar,iPeriod)];
CandleOpen=open[bar];
CandleHigh1=high[ArrayMaximum(high,bar+iPeriod,iPeriod)];
CandleLow1=low[ArrayMinimum(low,bar+iPeriod,iPeriod)];
CandleOpen1=open[bar+iPeriod];
//---
BuyBuffer[bar]=0.0;
SellBuffer[bar]=0.0;
//---
if(CandleLow<CandleLow1 && CandleOpen>CandleHigh1) BuyBuffer[bar]=low[bar]-ATR[bar]*3/8;
if(CandleHigh>CandleHigh1 && CandleOpen<CandleLow1) SellBuffer[bar]=high[bar]+ATR[bar]*3/8; }

Entendi isso como mq5:

bool UP = Low[i+2] < Low[i+1] && Open[i+2] > High[i+1] ;

bool DOWN = High[i+2] > High[i+1] && Open[i+2] < Low[i+1] ;

Será que acertei?

==

ATS mq4 https://www.mql5.com/en/code/12941

 
Olá usuários do fórum.
Estou tentando integrar uma biblioteca para trabalhar com arquivos fora da caixa de areia de arquivos https://www.mql5.com/ru/code/11140.
Na fase inicial, no entanto, estou tendo problemas com a abertura de arquivos básicos. Talvez alguém tenha feito algo com base nesta biblioteca, por favor, ajude. Muito obrigado!
#include <FileFunctions.mqh>
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   string name=StringConcatenate(Year(),TransformToFileName(Month()),TransformToFileName(Day()),".log");
//---
   string path=TerminalPath()+"\\MQL4\\Logs\\"+name;
//---
   if(FileCheckW(path))
     {
      //---
      int handle=-1;
      handle=FileOpenExistingW(path,GENERIC_READ,SHARE_READ);
      if(handle!=NULL)
        {
         Alert(handle);
         FileCloseHandle(handle);

        }
     }
//
  }
//+------------------------------------------------------------------+
string TransformToFileName(int val)
  {
   string res;
//---
   if(val<10)
     {
      res=StringConcatenate(0,val);
     }
   else
     {
      res=StringConcatenate(val);
     }
//---
   return(res);
  }
//+------------------------------------------------------------------+
Erro
 
bistreevseh:
Olá usuários do fórum.
Estou tentando integrar uma biblioteca para trabalhar com arquivos fora da caixa de areia de arquivos https://www.mql5.com/ru/code/11140.
Na fase inicial, porém, estou tendo problemas com a abertura de arquivos elementares. Talvez alguém tenha feito algo com base nesta biblioteca, por favor, ajude. Muito obrigado!

Talvez este seja o problema, pois

StringConcatenate()

"Nota.

Os parâmetros podem ser de qualquer tipo. O número de parâmetros não pode ser inferior a 2 e não pode exceder 64".

 
bistreevseh:
Olá usuários do fórum.
Estou tentando integrar minha biblioteca para trabalhar com arquivos fora do sistema de arquivos sandbox https://www.mql5.com/ru/code/11140.
No estágio inicial, tenho problemas com a abertura de arquivos básicos. Talvez alguém tenha feito algo com base nesta biblioteca, por favor, ajude. Muito obrigado!

O roteiro de teste está funcionando corretamente?

Direitos e proprietário da unidade do sistema?

Eu tenho um roteiro como este:

#include <FileFunctions.mqh>
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
 {
  string sName = TimeToString(TimeLocal(), TIME_DATE) + ".log";
  sName = StringSubstr(sName, 0, 4) + StringSubstr(sName, 5, 2) + StringSubstr(sName, 8);
  string sPath = TerminalPath() + "\\MQL4\\Logs\\" + sName;
  Print(sPath);
  if (FileCheckW(sPath))
   {
    int hFile = FileOpenExistingW(sPath, GENERIC_READ,SHARE_READ);
    if (hFile != NULL)
     {
      Print("hFile = ", hFile);
      FileCloseHandle(hFile);
     }
    else Print("Файл не открыт!");
   }
  else Print("Файл отсутствует!");
 }

trabalha:

0 07:46:55.195 Check_FileLib EURUSD,Daily: inicializado
0 07:46:55.196 Check_FileLib EURUSD,Daily: E:\Market\Forex\Brokers\Alpari\MetaTrader 4.00\MQL4\MQL4\Logs\20160305.log
0 07:46:55.239 Check_FileLib EURUSD,Diário: hFile = 2020
0 07:46:55.240 Check_FileLib EURUSD,Daily: uninit reason 0
0 07:46:55.241 Script Check_FileLib EURUSD,Daily: removido

 
Zhunko:

O roteiro de teste está funcionando corretamente?

Direitos e proprietário da unidade do sistema?

Eu tenho um roteiro como este:

trabalha:

0 07:46:55.195 Check_FileLib EURUSD,Daily: inicializado
0 07:46:55.196 Check_FileLib EURUSD,Diário: E:\Market\Forex\Brokers\Alpari\MetaTrader 4.00\MQL4\Logs\20160305.log
0 07:46:55239 Check_FileLib EURUSD,Daily: hFile = 2020
0 07:46:55.240 Check_FileLib EURUSD,Daily: uninit reason 0
0 07:46:55.241 Script Check_FileLib EURUSD,Daily: removido


Muito obrigado! Funciona de forma estranha, tenho direitos de administração, dei especificamente todas as destruições ao proprietário da pasta do terminal, ajudou, mas depois parou de funcionar. Depois tentou ler o arquivo de log usando o FileReadStrArrayW (se não me engano com o nome) ler as linhas vazias, o script fica pendurado em modo ansi. Somente FileReadCharArr foi capaz de ler os códigos ansi. Talvez você tenha algum exemplo de como analisar o arquivo de registro com sua biblioteca? Eu ficaria muito grato!
 
Não sei bem como usá-lo e não sei como resolver este problema. No indicador é suposto realizar um cálculo comparativo utilizando o ciclo, em tempo real nos dias de mercado o indicador funciona (embora lentamente), mas hoje eu notei que o cálculo não é realizado.
Razão: