externint iOpenHour = 6;
int start()
{
int b, scannedhour;
datetime bartime;
double dibsclose, dibsopen, prevdayrange[4]; // prevdayrange Array Categorys ( 1 EURUSD, 2 GBPUSD, 3 USDCHF, 4 USDJPY )//----------------------------------------------------------------------------------------------// EURUSD PREV DAY RANGE CALCfor(b=0; b<=24; b++) // scans the last 24 bars on eurusd
{
bartime = iTime("EURUSD", 60, b); // checks the open time of each bar
scannedhour = TimeHour(bartime); // extracts the hour of that barif ( scannedhour == iOpenHour ) // Check to see if scanned hour = Dibs hour
{
dibsclose = iOpen("EURUSD", 60, b); // Get the open value of that bar (Close of 6gmt day)
dibsopen = iOpen("EURUSD", 60, b+24); // Get the value of the bar 24 bars before the Dibs bar (Open of 6gmt day)
prevdayrange[1] = (dibsclose-dibsopen); // Calculate the range of the Dibs day
} // End of if statement
} // End of for statement//----------------------------------------------------------------------------------------------// GBPUSD PREV DAY RANGE CALCfor(b=0; b<=24; b++) // scans the last 24 bars on eurusd
{
bartime = iTime("GBPUSD", 60, b); // checks the open time of each bar
scannedhour = TimeHour(bartime); // extracts the hour of that barif ( scannedhour == iOpenHour ) // Check to see if scanned hour = Dibs hour
{
dibsclose = iOpen("GBPUSD", 60, b); // Get the open value of that bar (Close of 6gmt day)
dibsopen = iOpen("GBPUSD", 60, b+24); // Get the value of the bar 24 bars before the Dibs bar (Open of 6gmt day)
prevdayrange[2] = (dibsclose-dibsopen); // Calculate the range of the Dibs day
} // End of if statement
} // End of for statement//----------------------------------------------------------------------------------------------// USDCHF PREV DAY RANGE CALCfor(b=0; b<=24; b++) // scans the last 24 bars on eurusd
{
bartime = iTime("EURUSD", 60, b); // checks the open time of each bar
scannedhour = TimeHour(bartime); // extracts the hour of that barif ( scannedhour == iOpenHour ) // Check to see if scanned hour = Dibs hour
{
dibsclose = iOpen("USDCHF", 60, b); // Get the open value of that bar (Close of 6gmt day)
dibsopen = iOpen("USDCHF", 60, b+24); // Get the value of the bar 24 bars before the Dibs bar (Open of 6gmt day)
prevdayrange[3] = (dibsclose-dibsopen); // Calculate the range of the Dibs day
} // End of if statement
} // End of for statement//----------------------------------------------------------------------------------------------// USDJPY PREV DAY RANGE CALCfor(b=0; b<=24; b++) // scans the last 24 bars on eurusd
{
bartime = iTime("USDJPY", 60, b); // checks the open time of each bar
scannedhour = TimeHour(bartime); // extracts the hour of that barif ( scannedhour == iOpenHour ) // Check to see if scanned hour = Dibs hour
{
dibsclose = iOpen("USDJPY", 60, b); // Get the open value of that bar (Close of 6gmt day)
dibsopen = iOpen("USDJPY", 60, b+24); // Get the value of the bar 24 bars before the Dibs bar (Open of 6gmt day)
prevdayrange[4] = (dibsclose-dibsopen); // Calculate the range of the Dibs day
} // End of if statement
} // End of for statement//----------------------------------------------------------------------------------------------Comment("EURUSD RANGE=", prevdayrange[1], //Display Ranges of each pair"GBPUSD RANGE=", prevdayrange[2],
"USDCHF RANGE=", prevdayrange[3],
"USDJPY RANGE=", prevdayrange[4]);
return(0);
}
Итак, я исправил его так, чтобы prevdayrange был единственным массивом. Теперь по какой-то причине секция кода USDJPY не работает. Это то же самое, что и остальные 4 утверждения с измененной парой в iopen's и правильным значением массива...
Вот что это делает ---> http://clip2net.com/s/13WDY
Как вы ставите пробелы в функции комментария и можете ли вы заставить ее печатать на следующей строке?
Итак, я исправил его так, чтобы prevdayrange был единственным массивом. Теперь по какой-то причине секция кода USDJPY не работает. Это то же самое, что и остальные 4 утверждения с измененной парой в iopen's и правильным значением массива...
Вот что это делает ---> http://clip2net.com/s/13WDY
Как вы ставите пробелы в функции комментария и можете ли вы заставить ее печатать на следующей строке?
Хорошо, этот код в основном делает то, что он должен делать, за исключением того, что когда открывается новая 6:00 свеча, он не обновляет информацию. Если текущая свеча является 6:00 свечой, я хочу, чтобы он просканировал этот открытый бар и вернулся на 24 бара назад, просканировал этот открытый бар и сделал все расчеты, и если текущий бар не является 6:00 баром, то продолжал отступать на бар назад, пока не нашел последнюю 6:00 свечу. Вроде бы все нормально, но не нравится, если текущая свеча 6:00. Не могу разобраться. Могут ли легенды заметить проблему?
Код становится слишком объемным для размещения здесь, поэтому мне пришлось загрузить исходный код.
Кажется, что он отступает назад нормально, но ему не нравится, если текущая свеча 6:00. Не могу разобраться с этим. Могут ли легенды заметить проблему?
Используется ли при этом тестер стратегий? Если да, то...
Я проверю ваш код при следующем изменении часа, потому что не вижу ничего очевидного... Вы уверены, что проверяли в 6 утра по времени сервера? Местное время ПК не обязательно совпадает с временем сервера, время сервера - это то, что используется в вашем коде и на ваших графиках.
Все вроде бы работает нормально, но он не подхватывает 6:00 бар, если он не находится за текущим баром, если это имеет смысл.
Спасибо, что уделили время, Raptor
Да, я думаю, я понимаю, что вы говорите, он не обновляется, когда время меняется с 05:59 на 06:00 ....
Я использую MBT для тестирования, и время сервера для текущего бара H1 - 04:00, поэтому я установил iOpenHour на 5, посмотрим, что произойдет через 20 минут.
Итак, я исправил его так, чтобы prevdayrange был единственным массивом. Теперь по какой-то причине секция кода USDJPY не работает. Это то же самое, что и остальные 4 утверждения с измененной парой в iopen's и правильным значением массива...
Вот что это делает ---> http://clip2net.com/s/13WDY
Как вы ставите пробелы в функции комментария и можете ли вы заставить ее печатать на следующей строке?
Итак, я исправил его так, чтобы prevdayrange был единственным массивом. Теперь по какой-то причине секция кода USDJPY не работает. Это то же самое, что и остальные 4 утверждения с измененной парой в iopen's и правильным значением массива...
Вот что это делает ---> http://clip2net.com/s/13WDY
Как вы ставите пробелы в функции комментария и можете ли вы заставить ее печатать на следующей строке?
Первый элемент в массиве равен 0, если массив состоит из 4 элементов, то последний будет 3, а не 4 ;-) https://docs.mql4.com/basis/variables
Комментарий()
Хорошо, этот код в основном делает то, что он должен делать, за исключением того, что когда открывается новая 6:00 свеча, он не обновляет информацию. Если текущая свеча является 6:00 свечой, я хочу, чтобы он просканировал этот открытый бар и вернулся на 24 бара назад, просканировал этот открытый бар и сделал все расчеты, и если текущий бар не является 6:00 баром, то продолжал отступать на бар назад, пока не нашел последнюю 6:00 свечу. Вроде бы все нормально, но не нравится, если текущая свеча 6:00. Не могу разобраться. Могут ли легенды заметить проблему?
Код становится слишком объемным для размещения здесь, поэтому мне пришлось загрузить исходный код.
Кажется, что он отступает назад нормально, но ему не нравится, если текущая свеча 6:00. Не могу разобраться с этим. Могут ли легенды заметить проблему?
Используется ли при этом тестер стратегий? Если да, то...
Неа, Раптор, это было на живом графике. Должен ли я изменить.
Просто размышляю вслух, не уверен, что это что-то исправит.Неа, Раптор, это было на живом графике. Должен ли я изменить.
Просто размышляю вслух, не уверен, что это что-то исправит.Все вроде бы работает нормально, но он не подхватывает 6:00 бар, если он не находится за текущим баром, если это имеет смысл.
Спасибо за ваше время Raptor
Все вроде бы работает нормально, но он не подхватывает 6:00 бар, если он не находится за текущим баром, если это имеет смысл.
Спасибо, что уделили время, Raptor
Да, я думаю, я понимаю, что вы говорите, он не обновляется, когда время меняется с 05:59 на 06:00 ....
Я использую MBT для тестирования, и время сервера для текущего бара H1 - 04:00, поэтому я установил iOpenHour на 5, посмотрим, что произойдет через 20 минут.
ОК, у меня та же проблема, нет обновления, когда текущая свеча открылась в 05:00 ... интересно.