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?
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*******************/voidOnStart()
{
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.1413:37:02.118 !!0 (EURUSD,D1) Первый торговый день MONDAY2022.01.0300:002023.05.1413:38:18.547 !!0 (EURUSD,D1) Первый торговый день MONDAY2021.01.0400:002023.05.1413:38:35.906 !!0 (EURUSD,D1) Первый торговый день THURSDAY2020.01.0200:00
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.
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);
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?
https://www.mql5.com/ru/docs/objects/objectmove
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.
Como posso descobrir o número do primeiro dia de negociação em janeiro de qualquer ano usando MQL4.5?
Resultado
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.
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);