[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 297

 
Urain >> :
Ou então: Tempo[0]+(Tempo[0]-Tempo[1]) ou 2*Tempo[0]-Tempo[1].

intestino :)

 

Meus cumprimentos à escrita (código), irmãos!

Entendo que esta pergunta deveria irritar a todos, mas não encontrei nada de útil nela. Portanto, estou confuso com algo. Ajude um recém-chegado a agarrar!

Eu não tinha uma idéia original - em uma janela indicadora para exibir linhas para prazos atuais e maiores (no meu caso, uma hora e um dia).

Meu primeiro pensamento foi... No entanto, não tive tempo - minhas mãos fizeram tudo sozinhas:

Buf_1[ i]=iCCI(NULL,1440,14,PRICE_TYPICAL, i);

O resultado estava claramente fora de sincronia com o cronograma. Bem, é compreensível - é mais fácil tomar uma barra de tempo do que criá-la dinamicamente. Bem, comeremos lagostim se não tivermos peixe. Sincronizei o início do desenho por tempo e substituí-o por uma identificação que é atualizada a cada mudança de dia. A escada com segmentos horizontais, passando a cada hora de um dia, não é grande coisa, mas pelo menos é alguma coisa. Logicamente, as seções retas devem ter se dobrado em tempo real. E assim foi. Mas leva muito tempo para permanecer conectado ao servidor por semanas em nome de uma imagem viável, e o visualizador do testador simula isso muito real. Eu dirigi um Expert Advisor vazio e o joguei através da janela de visualização de um interstício. Maldição! Não há simulação! Quando mudo o dia, recebo uma barra totalmente formada da história, que ainda não está formada. A saída foi a mesma escadaria. Acontece que a barra zero no projeto acima não é adequada para o trabalho, pois durante os testes ela será falsa. O passo seguinte foi feito de pura teimosia para garantir que nada fosse deixado por dizer e que os "i "s fossem pontilhados. Dirigi-me do Conselheiro Especialista a esta mesma barra zero através do meu indicador e filtrei suas ações (do Conselheiro Especialista) pelo estado da CCI (mais ou menos do que no dia anterior). A julgar por aquele lixo no provador, algumas mudanças na barra ocorreram, mas euestava muito curto para chegar ao fundo da questão. Mais uma vez eu me repreendi por falta de depuração passo a passo do código com variáveis de controle. (Claro, eu poderia registrá-lo, mas para casos mais complicados seria um fiasco total).

Uma digressão.

Fiquei comovido com as lágrimas pelas fotos da versão 5. Uma ferramenta muito poderosa! O reprodutor de mídia provavelmente aparecerá na versão 6. )))))))))) Mas por que não dar-lhes um objeto como "barra" com todos os seus atributos? Isso seria muita dor de uma só vez, não é mesmo?

De volta aos "eus". Ao final do testador foi aberto um indicador no qual a linha em questão estava absolutamente reta por um ano e não mostrava absolutamente nada.

É isso aí.

Fora.

Uma e a mesma construção sobre a história, em tempo real, na janela de visualização e no programa se comporta de maneira completamente diferente.

Eu me sento agora e tento entender, é um bug isto, ou tal chip ou armadura é forte e nossos tanques são rápidos?

Z.U. Não, devido à minha teimosia, finalmente consegui o que queria, simulando uma série de tempos a partir dos dados atuais (você também pode pedir um minuto para maior certeza) e o cálculo de suas próprias forças, mas é demais para mim, desculpe, conseguir. E gostaria de entender as regras de referência a outros prazos em tais construções.

 
hot писал(а) >>

Meus cumprimentos à escrita (código), irmãos!

Entendo que esta pergunta deveria irritar a todos, mas não encontrei nada de útil nela. Portanto, estou confuso com algo. Ajude um recém-chegado a agarrar!

Eu não tinha uma idéia original - em uma janela indicadora para exibir linhas para os prazos atuais e maiores (no meu caso, uma hora e um dia).

Meu primeiro pensamento foi... No entanto, não tive tempo - minhas mãos fizeram tudo sozinhas:

O resultado estava claramente fora de sincronia com o cronograma. Bem, é compreensível - é mais fácil tomar uma barra de tempo do que criá-la dinamicamente. Bem, comeremos lagostim se não tivermos peixe. Sincronizei o início do desenho por tempo e substituí-o por uma identificação que é atualizada a cada mudança de dia. A escada com segmentos horizontais, passando a cada hora de um dia, não é grande coisa, mas pelo menos é alguma coisa. Logicamente, as seções retas devem ter se dobrado em tempo real. E assim foi. Mas leva muito tempo para permanecer conectado ao servidor por semanas em nome de uma imagem viável, e o visualizador do testador simula isso muito real. Eu dirigi um Expert Advisor vazio e o joguei através da janela de visualização de um interstício. Maldição! Não há simulação! Quando mudo o dia, recebo uma barra totalmente formada da história, que ainda não está formada. A saída é a mesma escadaria. Acontece que a barra zero no desenho acima não é adequada para o trabalho, pois durante os testes ela será falsificada. O passo seguinte foi feito de pura teimosia para garantir que nada fosse deixado por dizer e que os "i "s fossem pontilhados. Dirigi-me do Conselheiro Especialista a esta mesma barra zero através do meu indicador e filtrei suas ações (do Conselheiro Especialista) pelo estado da CCI (mais ou menos do que no dia anterior). A julgar por aquele lixo no provador, algumas mudanças na barra ocorreram, mas euestava muito curto para chegar ao fundo da questão. Mais uma vez eu me repreendi por falta de depuração passo a passo do código com variáveis de controle. (Claro, eu poderia registrá-lo, mas para casos mais complicados seria um fiasco total).

Uma digressão.

Fiquei comovido com as lágrimas pelas fotos da versão 5. Uma ferramenta muito poderosa! O reprodutor de mídia provavelmente aparecerá na versão 6. )))))))))) Mas por que não dar-lhes um objeto como "barra" com todos os seus atributos? Isso seria muita dor de uma só vez, não é mesmo?

De volta aos "eus". Ao final do testador foi aberto um indicador no qual a linha em questão estava absolutamente reta por um ano e não mostrava absolutamente nada.

É isso aí.

Fora.

Uma e a mesma construção sobre a história, em tempo real, na janela de visualização e no programa se comporta de maneira completamente diferente.

Eu me sento agora e tento entender, é um bug isto, ou tal chip ou armadura é forte e nossos tanques são rápidos?

Z.U. Não, devido à minha teimosia, finalmente consegui o que queria, simulando uma série de tempos a partir dos dados atuais (você também pode pedir um minuto para maior certeza) e o cálculo de suas próprias forças, mas é demais para mim, desculpe, conseguir. E quero entender as regras de referência a outros prazos em estruturas similares.

Escreva-me em meu ...

 
Vinin >> :

>> escreva-me pessoalmente

Obrigado pela atenção, mas eu preciso da teoria e prefiro lidar pessoalmente com a prática. )))))))))))))

 

Olá, eu tenho esta pergunta:

Como posso forçar a EA a fazer apenas uma negociação em um determinado momento? Isto é, por exemplo, todos os dias de negociação para fazer apenas uma ordem de compra exatamente às 15 horas? Eu tentei fazer desta maneira:

int ct = Hour();
int cm = Minute();
int sd = Seconds();

if(ct == 15 && cm == 0 && sd == 0)
{
int tick = OrderSend(Symbol(),OP_BUY,A_lot,Ask,5,Ask-A_sl*Point,Ask+A_tp*Point,"Покупка.",3,0,CLR_NONE);
}

Funciona em princípio, mas somente a EA faz muitas compras ao mesmo tempo, já que o primeiro segundo da 16ª hora vem com vários carrapatos (também depende do depósito e do lote).

Tentou verificar por mag e dia da transação, mas ainda assim acabou com uma bagunça:

int ct = Hour();
int cm = Minute();
int sd = Seconds();

if(ct == 15 && cm == 0 && sd == 0)
{
for (int i=1; i<=OrdersTotal(); i++)
{
if(OrderSelect(i-1, SELECT_BY_POS, MODE_TRADES)==true)
{
if(OrderMagicNumber() == 3 && OrderOpenTime() == Day())
{
bool A_order = true; break;
}
A_order = false;

}
}

if(A_order == false)
int tick = OrderSend(Symbol(),OP_BUY,A_lot,Ask,5,Ask-A_sl*Point,Ask+A_tp*Point,"Покупка.",3,0,CLR_NONE);
}

Se alguém souber, por favor, avise! Não tenho idéia do que fazer com este tipo de coisa.

 
JackaLrus >> :

Olá, eu tenho esta pergunta:

Como posso forçar a EA a fazer apenas uma negociação em um determinado momento? Isto é, por exemplo, todos os dias de negociação para fazer apenas uma ordem de compra exatamente às 15 horas? Tentei fazer isso dessa maneira:


Se alguém souber, por favor, avise! Obrigado!

Tente olhar no fio de I. Kim -

Função isTradeToDay(). Página 21

Esta função retorna a bandeira comercial para hoje. A bandeira está hasteada - Verdade - as posições foram abertas hoje. Bandeira para baixo - Falso - nenhuma posição aberta hoje

https://www.mql5.com/ru/forum/107476/page21

//-

Com esta função, você pode criar facilmente uma condição de abertura:

if (isTradeToDay(NULL,-1,Magic)<1 ) {//  если сегодня не было сделок
//- то торговля разрешена

E o tempo de abertura é muito fácil de definir.

Além disso, o Igor tem funções temporais semelhantes lá.

 

Obrigado pelo link! Eu descobri!

Você precisa usar TimeDay(OrderOpenTime())==Day() na comparação, então tudo funciona como deveria!

 

Precisa de ajuda. Estou mudando os critérios de negociação no Criterion's MACD_Simple na documentação (regra de 4 semanas, busca por mínimos e máximos de 20 e 10 dias - veja código comentado para detalhes) mas quando eu o executo no histórico do testador, o Expert Advisor não abre ordens.

Entendo que estou perdido em três árvores, no entanto, se você tiver tempo e oportunidade, por favor, avise...

//--------------------------------------------------------------------
// Criterion.mqh
// Правило 4-х недель
//--------------------------------------------------------------- 1 --
// Функция вычисления торговых критериев.
// Возвращаемые значения:
// 10 - открытие Buy  цена закрытия выше максим-ой за последние 20 дней
// 20 - открытие Sell цена закрытия ниже минимальной за последние 20 дней 
// 11 - закрытие Buy  цена закр ниже минимальной за последние 10 дней
// 21 - закрытие Sell цена закрытия выше максимальной за последние 10 дней
// 0  - значимых критериев нет
// -1 - используется другой финансовый инструмент
//--------------------------------------------------------------- 2 --
// Внешние переменные:
extern int                                 
       Counted_bars1=20,                         // Количество просчитанных баров 
       Counted_bars2=10;                         // Количество просчитанных баров 
       




//--------------------------------------------------------------- 3 --
int Criterion()                                                   // Пользовательская функция
  {
   double
        Max_20 = High [1], Min_20 = Low [1],                      // Присваиваем значения максимуму и  
        Max_10 = High [1], Min_10 = Low [1];                      // минимуму на 1-ом баре
   int i=0;                                                       // Индекс бара  
          
   
   //--------------------------------------------------------------- 4 --
   // Параметры торговых критериев:
   
  for( i = 2; i <= Counted_bars1+1; i++)                             // цикл для 20 дней 
         {                                        
         if (Low[ i] <  Min_20)                               // Если текущее значение < известного   
               Min_20 = Low[ i];                              // то оно и будет минимум   
         
         if (High[ i] > Max_20)                               // Если > известного    
               Max_20 = High[ i];                             // то оно и будет максимум  
           }   
  
  for( i = 2;  i <= Counted_bars2+1; i++)                     // цикл для 10 дней 
         {                                        
         if (Low[ i]< Min_10)                                 // Если текущее значение < известного   
               Min_10=Low[ i];                                // то оно и будет мин   
               
         if (High[ i] > Max_10)                                   // Если > известного    
               Max_10=High[ i];                                   // то оно и будет макс  
           }   

   
    //--------------------------------------------------------------- 5 --
   
    // Вычисление торговых критериев
    
   if(Close[0]> Max_20)
   return(10);                                           // Открытие Buy    
   
     
   if (Close[0]< Min_20)  
   return(20);                                           // Открытие Sell
     
   if(Close[0]< Min_10)
   return(11);                                           // Закрытие Buy    
  
   
   if(Close[0]> Max_10)
   return(21);                                           // Закрытие Sell    
   
     
   
  
      
       
//--------------------------------------------------------------- 6 --
   return(0);                          // Выход из пользов. функции
  }
//--------------------------------------------------------------- 7 --
 

Olá membros do fórum, comecei a estudar TS muito recentemente e tenho uma pergunta para vocês. Eu vi um consultor especializado chamado EURONIS em um site conhecido. Ao pesquisar no Google, encontrei várias revisões positivas e nenhuma negativa. No mesmo Google havia um link para este fórum com tópico em discussão para este conselheiro, que expressou opiniões céticas, mas o tópico foi aparentemente excluído (agora a busca no site não rendeu nada).

É por isso que eu quero saber o que é esta EA? Traz lucros estáveis? Algum de vocês negociou em conta real? Estou aguardando seus comentários.

Aguardo seus comentários. Obrigado de antemão.

 
Roman. >> :

Precisa de ajuda. Estou mudando a inclusão do Critério MACD_Simple da documentação o critério de negociação (usando a regra de 4 semanas, busca por mínimos e máximos de 20 e 10 dias - detalhes no código comentado) mas quando eu o executo sobre o histórico no testador, o Expert Advisor não abre ordens.

Entendo que estou perdido em três pinheiros, no entanto, se você tiver tempo e oportunidade - me diga...

Adicione o código completo, se você não quiser mostrar sua idéia, mude o critério, por exemplo:

if(Close[0]>Open[1])
   return(10);                                           // Открытие Buy    
   
     
   if (Close[0]<Open[1])  
   return(20);                                           // Открытие Sell
     
   if(Close[0]<Open[1])
   return(11);                                           // Закрытие Buy    
  
   
   if(Close[0]> Open[1])
   return(21);                                           // Закрытие Sell    

Mas sem ver o quadro inteiro, é impossível dizer onde o artista errou.

Razão: