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

 
snowman647 >> :

Isto está longe de ser aleatório. Eu quero um Expert Advisor usando variáveis aleatórias o mais aleatórias possível)) se eu não o encontrar, eu o postarei.

Tanto quanto sei não há um número aleatório no MCL. há um número pseudo-aleatória. portanto é praticamente o mesmo que o esquema que eu sugeri.

Na verdade, sobre números pseudo-aleatórios, leia aqui https://www.mql4.com/ru/search/?keyword=%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D0%BE%D0%B5+%D1%87%D0%D0%B8%D1%81%D0%BB%D0%BE

 
vik-777 >> :
>> Olá, você poderia me dizer como procurar um bar pelo tempo e exibir o preço aberto, fechado?

Mais uma vez, realmente preciso

 
Stepan241 >> :

Antes de mais nada, a entrada não é totalmente correta

MA_1 = iMA(NULL,0,Period_MA_1,Sdvig_1,MODE_SMA,PRICE_CLOSE,0); // Indicador da função de chamada
MA_2 = iMA(NULL,0,Period_MA_2,Sdvig_2,MODE_SMA,PRICE_CLOSE,0);

Os zeros devem ser substituídos por 1

Para determinar o momento da travessia, não apenas o valor atual (acima ou abaixo, mas também o valor anterior) deve ser considerado

Portanto, devemos acrescentar

MA_1_Prev = iMA(NULL,0,Period_MA_1,Sdvig_1,MODE_SMA,PRICE_CLOSE,2); // Função indicadora de chamada
MA_2_Prev= iMA(NULL,0,Period_MA_2,Sdvig_2,MODE_SMA,PRICE_CLOSE,2);

nota número 2

Em outras palavras, este bloco agora será parecido

MA_1 = iMA(NULL,0,Period_MA_1,Sdvig_1,MODE_SMA,PRICE_CLOSE,1); // Indicador da função de chamada
MA_2 = iMA(NULL,0,Period_MA_2,Sdvig_2,MODE_SMA,PRICE_CLOSE,1);

MA_1_Prev = iMA(NULL,0,Period_MA_1,Sdvig_1,MODE_SMA,PRICE_CLOSE,2); // Função indicadora de chamada
MA_2_Prev= iMA(NULL,0,Period_MA_2,Sdvig_2,MODE_SMA,PRICE_CLOSE,2);

A linha

if (MA_2 < MA_1 && Fact_Up == verdadeiro)

substituir por if (MA_2 < MA_1 && MA_2_Prev>MA_1_Prev && Fact_Up == verdadeiro)


Faça a mesma substituição para a segunda condição e condição de saída. A nova condição é marcada em azul. Entraremos agora numa posição longa quando a Primeira Média Móvel for maior que a Segunda, enquanto o valor anterior da Primeira Média Móvel for menor que o valor anterior da Segunda.

Obrigado.

 
vik-777 писал(а) >>

>> novamente, eu realmente preciso

 
DDFedor >> :

>> é isso, ele encontra quantos segundos até aquele bar.

datetime some_time=D'2004.03.21 12:00';

int shift=iBarShift("EUROUSD",PERÍODO_M1,some_time);

 
vik-777 >> :

>> é isso, ele encontra quantos segundos até aquele bar.

mas como saber o preço de abertura e fechamento deste bar

 
vik-777 писал(а) >>

e como descobrir o preço de abertura e fechamento deste bar

https://docs.mql4.com/ru/series

Depois, o número da barra encontrada é usado nas funções de timeseries.

double MyOpenPrice =  iOpen(Symbol(),Period(),iBarShift(Symbol(),Period(), some_time));
 

Não entendo como fazê-lo, já procurei um exemplo na Internet (2 dias) e não consegui encontrá-lo.

 
DDFedor >> :

https://docs.mql4.com/ru/series

Depois, o número da barra encontrada é usado nas funções de timeseries.

muito obrigado

 
vik-777 >> :
>> Olá, você poderia me dizer como procurar um bar pelo tempo e exibir o preço aberto, fechado?


datetime some_time=D'2009.12.07 01:15';
int shift=iBarShift("EURUSD",PERIOD_M1,some_time);

Alert("бар: ",shift," * время: ",TimeToStr(some_time)," * цена откр.: ",
iOpen("EURUSD",PERIOD_M1,shift)," * цена закр.: ",iClose("EURUSD",PERIOD_M1,shift));