Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1272 1...126512661267126812691270127112721273127412751276127712781279...1599 Новый комментарий Alexey Viktorov 2021.01.10 17:36 #12711 Valeriy Yastremskiy: а с нумерацией баров ничего не надо разве делать. Т.е. код из четверки с первым баром для пятерки будет тоже с первым баром без переворота нумерации? Из документации shift [in] Индекс получаемого значения из таймсерии (сдвиг относительно текущего бара на указанное количество баров назад). Относительно текущего бара сдвиг 0 и будет текущий бар. А если 1, то предыдущий. Valeriy Yastremskiy 2021.01.10 18:56 #12712 Igor Makanu: можно и так: У Close[shift] квадратные скобки. не получилось. Alexey Viktorov: Из документации Относительно текущего бара сдвиг 0 и будет текущий бар. А если 1, то предыдущий. Правильно понимаю в таймсерии нумерация в 5ке такая же как в 4ке? Igor Makanu 2021.01.10 19:19 #12713 Valeriy Yastremskiy: У Close[shift] квадратные скобки. не получилось. получилось, вот код от @fxsaber // Позволяет, как в MT4, работать с таймсериями: Open[Pos], High[Pos], Low[Pos], Close[Pos], Time[Pos], Volume[Pos]. // А так же задает привычные MT4-функции: iOpen, iHigh, iLow, iClose, iTime, iVolume. #define DEFINE_TIMESERIE(NAME,FUNC,T) \ class CLASS##NAME \ { \ public: \ static T Get(const string Symb,const int TimeFrame,const int iShift) \ { \ T tValue[]; \ return((Copy##FUNC((Symb == NULL) ? _Symbol : Symb, _Period, iShift, 1, tValue) > 0) ? tValue[0] : -1); \ } \ T operator[](const int iPos) const \ { \ return(CLASS##NAME::Get(_Symbol, _Period, iPos)); \ } \ }; \ CLASS##NAME NAME; \ T i##NAME(const string Symb,const int TimeFrame,const int iShift) \ { \ return(CLASS##NAME::Get(Symb, TimeFrame, iShift)); \ } //+------------------------------------------------------------------+ DEFINE_TIMESERIE(Volume, TickVolume, long) DEFINE_TIMESERIE(Time, Time, datetime) DEFINE_TIMESERIE(Open, Open, double) DEFINE_TIMESERIE(High, High, double) DEFINE_TIMESERIE(Low, Low, double) DEFINE_TIMESERIE(Close, Close, double) //+------------------------------------------------------------------+ можете теперь писать Close[1] > Close[2] [Удален] 2021.01.10 19:31 #12714 Sergey: Здравствуйте. Пытаюсь прописать условие, но что-то делаю не так. Помогите разобраться. В момент пересечения ценой снизу вверх линии индикатора открывается позиция на покупку. Для этого же бара пытаюсь прописать условие: если цена закрытия текущей свечи выше линии индикатора и цена Bid на любом из последующих баров больше линии индикатора - ..условие 1 Как это правильно сделать? в самом терминале есть образец Moving Average.mq5 если я правильно понял Вам нужно так ? Valeriy Yastremskiy 2021.01.10 19:42 #12715 Igor Makanu: получилось, вот код от @fxsaber можете теперь писать Close[1] > Close[2] ну так будет работать. подумал мт4стайл должен решить проблему. счас попробую. спасибо Alexey Viktorov 2021.01.10 20:03 #12716 Valeriy Yastremskiy: У Close[shift] квадратные скобки. не получилось. Правильно понимаю в таймсерии нумерация в 5ке такая же как в 4ке? Нет не правильно. В данном случае просто совпадение интересов))) Valeriy Yastremskiy 2021.01.10 20:47 #12717 Igor Makanu: получилось, вот код от @fxsaber можете теперь писать Close[1] > Close[2] получилось индикатор перенести. var1=TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS); //не получилось все дефайнами заменить в лоб. пришлось просто заменить. Осталось с приведением типов разобраться. Конечно понятно что МТ5 ближе к рынку. Но тяга к длинным именам не понятна мне. Vitaly Muzichenko 2021.01.10 21:02 #12718 Valeriy Yastremskiy: получилось индикатор перенести. Осталось с приведением типов разобраться. Конечно понятно что МТ5 ближе к рынку. Но тяга к длинным именам не понятна мне. TimeToString(TimeCurrent(),TIME_DATE|TIME_SECONDS); Valeriy Yastremskiy 2021.01.11 13:56 #12719 Vitaly Muzichenko: Да)))) Смешно получилось, нашел только преобразование в структуру, (в справочнике в структуру и в текст в разных местах), переделал, и только потом пришла мысль, что в 5ке обязательно должно быть преобразование в текст)))) бывает. И не зря длинные наименования нужны))) BillionerClub 2021.01.16 21:33 #12720 Почему то это код выдает: 2021.01.16 20:24:53.543 (FUTSP500CONT,H1) 1980.12.31 03:00:00 При том нулевой бар есть другим временем. Выдает эту ошибку с низкой частотой один раз из 20-40 в индикаторе. Все происходит при старте индикатора, получается если нормально включился то есть работа нет так ошибка. int OnCalculate(const int rates_total, const int prev_calculated, const datetime& time[], const double& open[], const double& high[], const double& low[], const double& close[], const long& tick_volume[], const long& volume[], const int& spread[]) { Print(time[0]); } Ошибки, баги, вопросы Мультитаймфреймовые индикаторы два вопроса к разработчикам 1...126512661267126812691270127112721273127412751276127712781279...1599 Новый комментарий
а с нумерацией баров ничего не надо разве делать. Т.е. код из четверки с первым баром для пятерки будет тоже с первым баром без переворота нумерации?
Из документации
[in] Индекс получаемого значения из таймсерии (сдвиг относительно текущего бара на указанное количество баров назад).
Относительно текущего бара сдвиг 0 и будет текущий бар. А если 1, то предыдущий.
можно и так:
У Close[shift] квадратные скобки. не получилось.
Из документации
Относительно текущего бара сдвиг 0 и будет текущий бар. А если 1, то предыдущий.
Правильно понимаю в таймсерии нумерация в 5ке такая же как в 4ке?
У Close[shift] квадратные скобки. не получилось.
получилось, вот код от @fxsaber
можете теперь писать Close[1] > Close[2]
Здравствуйте. Пытаюсь прописать условие, но что-то делаю не так. Помогите разобраться.
В момент пересечения ценой снизу вверх линии индикатора открывается позиция на покупку.
Для этого же бара пытаюсь прописать условие:
если цена закрытия текущей свечи выше линии индикатора и цена Bid на любом из последующих баров больше линии индикатора - ..условие 1
Как это правильно сделать?
в самом терминале есть образец Moving Average.mq5
если я правильно понял Вам нужно так ?
получилось, вот код от @fxsaber
можете теперь писать Close[1] > Close[2]
ну так будет работать. подумал мт4стайл должен решить проблему. счас попробую. спасибо
У Close[shift] квадратные скобки. не получилось.
Правильно понимаю в таймсерии нумерация в 5ке такая же как в 4ке?
Нет не правильно. В данном случае просто совпадение интересов)))
получилось, вот код от @fxsaber
можете теперь писать Close[1] > Close[2]
получилось индикатор перенести.
Осталось с приведением типов разобраться.
Конечно понятно что МТ5 ближе к рынку. Но тяга к длинным именам не понятна мне.
получилось индикатор перенести.
Осталось с приведением типов разобраться.
Конечно понятно что МТ5 ближе к рынку. Но тяга к длинным именам не понятна мне.
Да)))) Смешно получилось, нашел только преобразование в структуру, (в справочнике в структуру и в текст в разных местах), переделал, и только потом пришла мысль, что в 5ке обязательно должно быть преобразование в текст)))) бывает.
И не зря длинные наименования нужны)))
Почему то это код выдает: 2021.01.16 20:24:53.543 (FUTSP500CONT,H1) 1980.12.31 03:00:00
При том нулевой бар есть другим временем. Выдает эту ошибку с низкой частотой один раз из 20-40 в индикаторе.
Все происходит при старте индикатора, получается если нормально включился то есть работа нет так ошибка.