[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 500

 

Consultor especializado baseado na ZUP com forquilhas de passo modificado

Ao utilizar o indicador com forquilhas, no testador, por alguma razão as forquilhas indicadoras giram na direção oposta (para trás)

O que pode causar esta inversão

 
Cmu4:
Cavalheiros, se não se importam, por favor, enviem-me a função que arrasta a equidade. Não consigo encontrá-lo...

https://www.mql5.com/ru/code/8781

E há muita coisa na base de código.

 
Ajude-me a encontrar uma função de colocação de pedidos consciente de erros, sem erros de 130-134.
 
xrust:

https://www.mql5.com/ru/code/8781

E há muito na base de código

Vou acrescentar o assessor de Igor Kim.
 
Roman.:


Olá, Dimitri. De minha parte, estou pronto para sugerir-lhe a seguinte variante. Para analogia, veja o acionamento dos critérios comerciais deste artigo - há também dois sinais - a saber, veja após a segunda figura "A primeira coisa que você deve esperar no gráfico do DeMarker é o momento em que o DeMarker cruza a linha MA rápida e lenta perto de 0,7 para uma posição curta". Este é o primeiro sinal preliminar. Em seguida, esperamos pela travessia das próprias linhas MA. Este é o sinal principal, após o qual as leituras do indicador de Taichi podem ser feitas. Se as linhas MA não forem cruzadas, é considerado um sinal falso e o movimento de preços continuará. Eis como ele é implementado no meu código - na inclusão incluída das corujas que são responsáveis pelo acionamento dos critérios comerciais.

O truque principal é que trabalhamos através dos dois fi nds abaixo mencionados, ajustando e zerando as bandeiras quando um ou outro critério comercial é acionado.

Além disso, você salvará o tempo atual quando o critério principal for acionado usando TimeCurrent, ou seja, você especificará uma expressão do tipo x = TimeCurrent antes doretorno(OP_BUY); oureturn(OP_SELL); onde x é uma variável global do tipo datetime por analogia na primeira funçãoint_op_DeMarker. Depois faça o mesmo com a segunda funçãoint type_op_MA. - aí você memoriza a variável y = TimeCurrent;

Então você compara o valor dessas duas variáveis com o sinal de mais no cálculo do bloco de critérios comerciais (acontece que você não precisa do análogo de trabalhar com valores UTC - em vez disso, você faz uma comparação do tempo de recebimento de seus dois sinais comerciais):

P.S. Mais, estou lhe enviando uma função para a possibilidade de otimizar o valor do TF de trabalho.

P.P.S. É assim que esta estrutura de código está organizada em meu código. Não excluo que existam variantes de código muito melhores para o cumprimento de tais condições da EA. :-)))

Muito obrigado, sua resposta foi muito útil
 
demlin:
Muito obrigado, sua resposta foi muito útil

:-))) E eu estava começando a pensar que você tinha engolido e me mandado embora com todas aquelas analogias, exemplos, etc. .... :-)))
 
Roman.:

:-))) Pensei que você tivesse engolido e me mandado embora com todas essas analogias, exemplos, etc. .... :-)))
Não cheguei perto de meu computador por algum tempo))))). Apenas não entendia bem a função de otimização do TF de trabalho. O que é isso?
 
demlin:
Não tenho estado perto do computador há algum tempo)))). Apenas não entendia bem a função de otimizar o TF de trabalho. O que é isso?

É apenas uma espécie de "adaptador", que permite otimizar os prazos da EA através de variáveis externas de coruja para definir o melhor (- aquelas, no caso de coruja trabalhando em várias TFs) para seu funcionamento... Uma característica boa e útil...
 
Roman.:

É apenas uma espécie de "adaptador" que permite otimizar os tempos de EA através de variáveis externas de coruja para definir o melhor (- aquelas, no caso de operação de coruja em várias TFs) para seu funcionamento... Uma característica boa e útil...
Como obtê-lo?
 
demlin:
Como você consegue isso?


Em minha resposta, olhe atentamente o código - ele está listado logo após o final do Critério {... retornar (0)}... no bloco de variáveis externas:

extern int t_trend_period =6; // для оптимизации по всем периодам от 0 до 7 шаг 1
                              // на каком ТФ работаем: 1-М1, 2-М5, 3-М15, 4-М30, 5-Н1, 6 - Н4, 7-день

e como utilizá-lo para obter valores indicadores:

//--------------------------------------------------------------- 3 --
int Criterion()                        // Пользовательская функция
  {
  //--------------------------------------------------------------- 4 --
int trend_period=GetPeriod(t_trend_period); // для выбора оптимального значения рабочего ТФ

   // Параметры технич. индикат:
                 
double Taichi_1 = iCustom (Symbol(), trend_period, "Cronex Taichi",Tenkan, Kijun, Senkou, FlatSE, 0, 1);
...
...
//--------------------------------------------------------------- 6 --
   return(0);                          // Выход из пользов. функции
  }
//--------------------------------------------------------------- 7 --

//для оптимизации по всем ТФ
int GetPeriod(int period)
{int periodres;
 switch(period)
  {
   case 1: periodres=1;break;
   case 2: periodres=5;break;
   case 3: periodres=15;break;
   case 4: periodres=30;break;
   case 5: periodres=60;break;
   case 6: periodres=240;break;
   case 7: periodres=1440;break;
   case 8: periodres=10080;break;
   default: periodres=1;break;
  }
return(periodres);
}