[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 521

 
Por favor, siga-o -- "Meu primeiro indicador" (por sua conta).
 
Roll:
Meu Primeiro Indicador (por mim mesmo).


Funcionou!

Tenho agora o objetivo de escrever um EA para este indicador (vou experimentar com diferentes variantes, tenho algumas idéias que gostaria de verificar no histórico)

Tenho algumas idéias que gostaria de testar em dados históricos.

Muito obrigado por suas respostas rápidas).

 

Não, eu não tenho. Você é um pioneiro.
Um problema semelhante pode ser resolvido como parte de uma EA, usando linhas de tendência como segmentos ou raios.

 
Roll:

Não, eu não tenho. Você é um pioneiro.
Um problema semelhante pode ser resolvido como parte de uma EA, usando linhas de tendência como segmentos ou raios.


Por que linhas de tendência?
 

Boa tarde! Você pode me dizer por que eu não posso de forma alguma desenhar setas no testador? Exemplo

 bool napravlenieCCI=false;
 if( CCI_50S<100&&CCI_50>100 ||CCI_50S<0&&CCI_50>0|| CCI_50S<-100&&CCI_50>-100  )napravlenieCCI=true;
  if(napravlenieCCI){  string strela = DoubleToStr(Time[0], 0); 
  ObjectCreate(strela, OBJ_ARROW, 0, iTime(NULL,0,0),iHigh(NULL,0,0)+0.0004); 
  ObjectSet(strela, OBJPROP_ARROWCODE, 242);
ObjectSet(strela, OBJPROP_COLOR , Red);}
Não consigo ver nenhuma flecha.
 

Olá, Victor Ivanovich!

Algo não está claro?
Preste atenção à "lata", ou seja, a solução proposta, na qual os objetos serão usados, - não está claro para você?
Ou a escolha desses objetos?

Você pode fazer sem qualquer indicação, utilizando níveis de trabalho (condicional). Acho que é mais fácil com linhas de tendência do que com "retângulo", elipse(s) ou níveis phi. As linhas horizontais"bloqueiam as barras".

Sua sugestão?

 

O livro de texto diz o seguinte sobrea diretiva #include:


"A diretiva #include pode ser especificada em qualquer parte do programa, mas geralmente todas as inclusões são colocadas no início do arquivo do código fonte. O pré-processador substitui a linha #include <file_name> (ou a linha #include "file_name") pelo conteúdo do arquivo com o nome especificado.

Parênteses angulares indicam que o arquivo será extraído do catálogo padrãoCatalog_terminal\experts\include(o catálogo atual não é visível). Se o nome do arquivo estiver entre aspas, a busca é realizada no diretório atual, ou seja, aquele que contém o arquivo fonte principal(o diretório padrão não é navegado)."

Presumo que se os parênteses são angulares, então inicialmente não se lê entre parênteses, nem sequer tenta, mas imediatamente se refere ao diretórioDirectory_terminal\experts\include, certo?

E se as citações, procurará imediatamente o caminho entre parênteses sem tentar acessar ocatálogo_terminal_directório_de_especialistas\incluir de imediato.Isto é, você pode escrever qualquer pasta de qualquer partição, por exemplo E:³ folder_1³ folder_2³ folder_N³ etc. Neste caso, para ler este arquivo você precisa usar vírgulas invertidas, caso contrário, o programa não o lerá. Porque no primeiro caso, o programa lerá apenas o diretório padrão. Estou lendo bem?

 
Roll:

Olá Victor Ivanovich!

Algo não está claro?
Observe o "pode", ou seja, a variante de solução, na qual os objetos serão usados, não está claro para você?
Ou a escolha desses objetos?

Você pode prescindir de qualquer indicação usando níveis de trabalho (condicional). Acho que é mais fácil com linhas de tendência do que com "retângulo", elipse (Mi) ou níveis phi. As linhas horizontais "bloqueiam as barras".

Sua sugestão?


double h=High[iHighest(NULL,0,MODE_HIGH,Quant_Bars ,1)];
double l=Low[iLowest( NULL,0,MODE_LOW,Quant_Bars,1)];

Conte os níveis. Então é uma questão de técnica.

É melhor não usar objetos no testador (especialmente durante a otimização)

 
Isto é, a sua escolha é o nível de trabalho. Se você definir uma proibição/ permissão nas variáveis externas para formar objetos (usados para indicação), você pode executar a otimização.
 

Olá novamente. Obrigado pela resposta anterior - muito útil. Por favor, ajude novamente. Tenho a função que preciso de um Expert Advisor que conta o lucro (perda) da conta para hoje (se f0_5(0)), ontem (se f0_5(1)), etc:

double f0_5(int ai_0) {
   double ld_ret_4 = 0;
   for (int pos_12 = 0; pos_12 < OrdersHistoryTotal(); pos_12++) {
      if (!(OrderSelect(pos_12, SELECT_BY_POS, MODE_HISTORY))) break;
               if (OrderCloseTime() >= iTime(OrderSymbol(), PERIOD_D1, ai_0) && OrderCloseTime() < iTime(OrderSymbol(), PERIOD_D1, ai_0) + 86400) ld_ret_4 = ld_ret_4 + OrderProfit() + OrderCommission() + OrderSwap();
   }
   return (ld_ret_4);
}

O resultado deve ser uma fração decimal (supostamente), mas a função retorna um número inteiro por algum motivo. Em geral, por favor, ajude-me a mudar a função para que seja uma fração com duas casas decimais.

Embora eu possa ter feito asneira aqui: verificado usando Print(), mas a função realmente conta normalmente? Em geral, por favor, ajude-me a entender.

Razão: