Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 1458

 

Ajude-me a entender. Na linha ObjectMove(0, "LineAB", prevTime, prevPrice, newAx, newAy); diz que a contagem de parâmetros está errada. Onde está o erro?

 
vitaliy zamkovoy ObjectMove(0, "LineAB", prevTime, prevPrice, newAx, newAy); diz que a contagem de parâmetros está errada. Onde está o erro?

https://www.mql5.com/ru/docs/objects/objectmove

 
Você pode me dizer como instalar um robô no MT que está em um VPS? Antes disso, ele era ativado no MT5 no computador.
 
Arkin Nabirov em um VPS? Antes disso, ele era ativado no MT5 no computador.
Desconecte-o do VPS, ative-o em seu terminal e coloque-o no gráfico
 
Você pode me dizer como descobrir a data do primeiro dia de negociação em janeiro de qualquer ano usando MQL4.5?
 
elzinkhana #:
Como posso descobrir o número do primeiro dia de negociação em janeiro de qualquer ano usando MQL4.5?

Não é possível. Você só pode coletar esses dados por conta própria.

 
elzinkhana #:
Como posso descobrir o número do primeiro dia de negociação em janeiro de qualquer ano usando MQL4.5?
/********************Script program start function*******************/
void OnStart()
 {
  datetime newYear[];
  int bars = Bars(_Symbol, PERIOD_D1, D'2020.01.01', TimeCurrent())-1;
  CopyTime(_Symbol, PERIOD_D1, bars, 1, newYear);
  printf("Первый торговый день %s %s", EnumToString(ENUM_DAY_OF_WEEK((newYear[0]/PeriodSeconds(PERIOD_D1)+4)%7)), TimeToString(newYear[0]));
 }/******************************************************************/

Resultado

2023.05.14 13:37:02.118 !!0 (EURUSD,D1) Первый торговый день MONDAY 2022.01.03 00:00
2023.05.14 13:38:18.547 !!0 (EURUSD,D1) Первый торговый день MONDAY 2021.01.04 00:00
2023.05.14 13:38:35.906 !!0 (EURUSD,D1) Первый торговый день THURSDAY 2020.01.02 00:00
 
Alexey Viktorov #:

Resultado

Por que decidir que era um dia de negociação? A ideia está na presença de cotações? E se houvesse cotações, mas você não pudesse negociar - acho que essa é a questão.

 
Aleksey Vyazmikin #:

O que levou à decisão de que aquele era um dia de negociação? É a ideia de que havia cotações disponíveis? E se havia cotações, mas você não podia negociar - acho que essa é a questão.

Abra o MT e dê uma olhada. Por que fazer essas perguntas sem dar uma olhada? A barra está lá com todos os atributos do OHLC. Todo o resto é apenas sua imaginação.....

 

Percebi que os dias de negociação começam em janeiro em uma das três variantes: 2 de janeiro, 3 de janeiro ou 4 de janeiro.
E até consegui escrever uma sub-rotina em MQL4 para determinar a data do primeiro dia de negociação no ano novo.

int inp_Year=2016; //colocar o número do ano de interesse na variável
datetimefirst_day_New_Year=StringToTime(IntegerToString(inp_Year)+".01.02 00:00"); //variável em que registraremos a data exata do início do ano de negociação, se a negociação de um determinado ano começou no dia 2 de janeiro, se o dia 2 de janeiro foi um dia de semana
if (TimeDayOfWeek(first_day_New_Year)==0) first_day_New_Year=StringToTime(StringSubstr(TimeToString(first_day_New_Year),0,4)+".01.03 00:00"); //3 de janeiro iniciou as negociações de um determinado ano, se 2 de janeiro foi domingo
if (TimeDayOfWeek(first_day_New_Year)==6) first_day_New_Year=StringToTime(StringSubstr(TimeToString(first_day_New_Year),0,4)+"".01.04 00:00"); //4 As negociações de janeiro de um determinado ano começaram, se 2 de janeiro foi sábado
Comment("first trading day in ", inp_Year, " year= ",first_day_New_Year);

Razão: