[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
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. :-)))
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...
É 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...
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:
externint 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);
}
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
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
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.
https://www.mql5.com/ru/code/8781
E há muito na base de código
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
:-))) E eu estava começando a pensar que você tinha engolido e me mandado embora com todas aquelas analogias, exemplos, etc. .... :-)))
:-))) Pensei que você tivesse engolido e me mandado embora com todas essas analogias, exemplos, etc. .... :-)))
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...
É 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 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:
e como utilizá-lo para obter valores indicadores: