Características úteis da KimIV - página 78

 
granit77 писал(а) >>

Tanta gente quanto há opiniões. É reconfortante saber que a minha coincidiu com a opinião de Komposter sobre a ligação de Prival.

Como sugestão: no seu caso, se houver dois magiks em sua EA, você pode usar o magik gerado para o par e o TF e seu valor negativo.

Boa idéia.

   if( UpDn)
      Magic_№= GetMagic(StringConcatenate("Expert",Symbol()), TF);
   else
      Magic_№=- GetMagic(StringConcatenate("Expert",Symbol()), TF);
 
Você tem algum script que possa simular a abertura de posições no testador? Por exemplo, o sistema de negociação manual, eu coloco os indicadores necessários no gráfico e executo um Expert Advisor - para fazer o testador funcionar. um sinal dos índices formados e envio o script no gráfico, e ele simula a abertura de um negócio. e assim por diante para cada sinal. e então eu olho se a estratégia é lucrativa ou não.
 
berserker >> :
Você sabe se existe algum script que possa simular a abertura de posições no testador. por exemplo, o sistema de negociação manual, eu coloco no gráfico os indicadores necessários e executo qualquer assessor - para que o testador trabalhe. assim formei o sinal de indyuki e eu atiro o script no gráfico, e ele simula a abertura de um negócio. e assim por diante para cada sinal. e então eu pareço estratégia lucrativa ou não.

Veja Testes de visualização. Manual Trading. e Visual Profitability Testing of Indicators and Signals.

 
berserker >> :
Você sabe se existe algum script que possa simular a abertura de posições no testador. por exemplo, o sistema de negociação manual, eu coloco no gráfico os indicadores necessários e executo qualquer assessor - para que o testador trabalhe. assim formei o sinal de indyuki e eu atiro o script no gráfico, e ele simula a abertura de um negócio. e assim por diante para cada sinal. e então eu pareço estratégia lucrativa ou não.
https://forum.mql4.com/ru/20511
 
Quero obter o valor do preço alto do tempo x(horas minutos) ao tempo y(horas minutos). No momento atual, estou interessado no valor deste intervalo, se passou, e se não passou, o anterior. Ninguém tem nenhum desenvolvimento deste tipo.
double HourlyHigh(string _smb,int StHour,int StMin,int EndHour,int EndMin)
{
 int _hour,_minute;
 double max;
 max=0;
 _hour=TimeHour(iTime(_smb,1,0)); 
 if (_hour>= EndHour+1)
  for (int i=2880; i>=0; i--)
   if (TimeHour(iTime(_smb,1, i))>= StHour&&TimeHour(iTime(_smb,1, i))<= EndHour&& max<iHigh(_smb,1, i)&&TimeDay(iTime(_smb,1, i))==TimeDay(iTime(_smb,1,0)))
       max=iHigh(_smb,1, i);//&&TimeMinute(iTime(_smb,1,i))>=StMin&&TimeMinute(iTime(_smb,1,i))<=EndMin
 else
    for ( i=2880; i>=0; i--)
   if (TimeHour(iTime(_smb,1, i))>= StHour&&TimeHour(iTime(_smb,1, i))<= EndHour&&TimeDay(iTime(_smb,1, i))==TimeDay(iTime(_smb,1, i-1440)))
       max=iHigh(_smb,1, i);
   return ( max);     
}
double HourlyLow(string _smb,int StHour,int StMin,int EndHour,int EndMin)
{
 int _hour,_minute;
 double min;
 min=9999.0;
 _hour=TimeHour(iTime(_smb,1,0)); 
 if (_hour>= EndHour+1)
  for (int i=2880; i>=0; i--)
   if (TimeHour(iTime(_smb,1, i))>= StHour&&TimeHour(iTime(_smb,1, i))<= EndHour&&TimeDay(iTime(_smb,1, i))==TimeDay(iTime(_smb,1,0)))
       min=iLow(_smb,1, i);
 else
    for ( i=2880; i>=0; i--)
   if (TimeHour(iTime(_smb,1, i))>= StHour&&TimeHour(iTime(_smb,1, i))<= EndHour&& min>iLow(_smb,1, i)&&TimeDay(iTime(_smb,1, i))==TimeDay(iTime(_smb,1, i-1440)))
       min=iLow(_smb,1, i);
  return ( min);
  
}
Eu tentei alguma coisa, mas por alguma razão tenho 0 na saída. E está procurando tanto o alto como o baixo.
 
zfs писал(а) >>
Quero obter o valor do preço alto do tempo x(horas minuto) até o tempo y(horas minuto). Ninguém tem nenhum desenvolvimento deste tipo. Eu tentei alguma coisa, mas por alguma razão eu tenho 0 na saída. E está procurando tanto o alto como o baixo.

Você já tentou as funções iHighest e iLowest? Tudo que você tem que fazer é traduzir o tempo necessário em índices e terá o resultado que procura...

 
kharko >> :

Você já tentou as funções iHighest e iLowest? Tudo o que você tem que fazer é converter o tempo necessário em índices e você terá o resultado que procura...

Obrigado. Vou tentar.

 
granit77 >> :

Tanta gente quanto há opiniões. É muito gratificante que a mina tenha coincidido com a opinião de Komposter sobre a ligação de Prival.

Agora desisti de usar o período do gráfico em mejic.

Às vezes eu quero trocar o TF enquanto o Expert Advisor estiver em funcionamento, mas este método de geração "iniciará imediatamente outro EA".


E ao invés de Período() eu tento usar o TimeFrame externo, assim a EA trabalha igualmente em qualquer gráfico de período.

 

Mais uma vez, um grande "Ahem...".

Eu notei isto (para mim) desagradável com o tempo no fim de semana.

StrToTime("01:25")

Assumindo que TODOS os tempos são computados em relação ao tempo do servidor

(ou seu último valor conhecido) (bem, exceto para o TimeLocal () é claro)

No entanto, isso não é verdade e eu perdi muito tempo tentando descobrir

razões para uma filtragem errada... (((( Você vive e aprende...


SZY: Uma função integrada que calcula diretamente o preço em um determinado momento teria sido útil.

Atualmente, estou trabalhando desta forma:

double shvr=iLow(Symbol(),15,iBarShift(Symbol(),15,StrToTime("01:25")));
 
kombat писал(а) >>

Portanto, não é preciso adivinhar. >> Confira...

Print(TimeToStr(StrToTime("01:25"), TIME_DATE| TIME_MINUTES));