Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
вот данные из файлов
а вот этот бар на графике
причем это не единственный случай, это всего лишь один пример из множества.
все эти бары имеют отношение к "воскресным" барам.
но вот то , что на нем нельзя спозиционировать объект (построить линию), наверное еще что-то с базой котировок, если считаешь что она нужна, попробуй сначала ее прибить, а потом ручками добавить
int iBarShift( string symbol, int timeframe, datetime time, bool exact=false)
Поиск бара по времени. Функция возвращает смещение бара, которому принадлежит указанное время. Если для указанного времени бар отсутствует ("дыра" в истории), то функция возвращает, в зависимости от параметра exact, -1 или смещение ближайшего бара.
Параметры:
symbol - Символьное имя инструмента. NULL означает текущий символ.
timeframe - Период. Может быть одним из периодов графика. 0 означает период текущего графика.
time - Значение времени для поиска.
exact - Возвращаемое значение если бар не найден. FALSE - iBarShift возвращает ближайший. TRUE - iBarShift возвращает -1.
Пример:
datetime some_time=D'2004.03.21 12:00';
int shift=iBarShift("EUROUSD",PERIOD_M1,some_time);
Print("shift of bar with open time ",TimeToStr(some_time)," is ",shift);
Я постараюсь глянуть на котировках MiG, попозже.
Нет, не показалось.
Это обычный "воскресный" бар, и он действительно открывается в 23:00. А например, у FIBO "воскресные" бары начинаются в 22:00.
Учтены как разное время прихода баров, так и пропуски в истории.
Критика приветствуется.
#property copyright "Copyright Quark" #property link "" #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Lime // indicator parameters extern int nPeriod = 6; double arrOpen[]; int nExtCountedBars = 0; int nBars; int nBarsUsdChf; //////////////////////// int init() { nBars = 0; nBarsUsdChf = 0; string strIndicatorShortName = "Test_1(" + Symbol() + " " + nPeriod + ")"; IndicatorShortName(strIndicatorShortName); // drawing settings SetIndexStyle(0, DRAW_LINE); SetIndexShift(0, 0); IndicatorDigits(4); // indicator buffers mapping SetIndexBuffer(0, arrOpen); return(0); } /////////////////////////// int start() { if(Bars <= nPeriod) return(0); if(nBars == Bars || nBarsUsdChf == iBars("USDCHF", 0)) return(-1); int nPos = Bars - nBars; int nPosUsdChf = nPos; nBars = Bars; nBarsUsdChf = iBars("USDCHF", 0); while(nPos >= 0) { // Adjust nPosUsdChf, so that time is the same as in EURUSD // If Time(USDCHF) < Time(EURUSD), decrease nPosUsdChf while(nPosUsdChf > 0 && TimeDay(Time[nPosUsdChf]) < TimeDay(Time[nPos]) || // Yerterday vs. Today (TimeDay(Time[nPosUsdChf]) == TimeDay(Time[nPos]) && // Same day TimeHour(Time[nPosUsdChf]) < TimeHour(Time[nPos]))) nPosUsdChf--; // Now, if Time(USDCHF) > Time(EURUSD), increase nPosUsdChf while(nPosUsdChf < Bars && TimeDay(Time[nPosUsdChf]) > TimeDay(Time[nPos]) || // Yerterday vs. Today (TimeDay(Time[nPosUsdChf]) == TimeDay(Time[nPos]) && // Same day TimeHour(Time[nPosUsdChf]) > TimeHour(Time[nPos]))) nPosUsdChf++; arrOpen[nPos] = iOpen("USDCHF", 0, nPosUsdChf); nPos--; nPosUsdChf--; } return(0); }Э... Просто там была МА, а потом я ее убрал. Но не до конца :)