Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Первый бар дня должен быть первым баром после того, как TimeHour() начал отсчет.
Это будет, конечно, первый бар чего-либо M1, M5, M15 и т.д. Они все начинают новые бары.
Я попробую это сделать в ближайшее время, также я работаю над этим вопросом.
Большое спасибо.
Я все еще читаю форумы и исследую, я могу найти похожие форумы, но не могу найти именно то, что мне нужно. (Возможно, я не понимаю их стиль кода или ...)
Я быстро сделал скриншот, надеюсь, это поможет вам понять меня.
Заранее спасибо.
open=iOpen(Symbol(),PERIOD_D1,0);
// put in ontick
if(iOpen(Symbol(),PERIOD_D1,0)!=open)
{
if(TimeHour(open)==0)
{
Alert("New Day !!");
}
open=iOpen(Symbol(),PERIOD_D1,0); // assign new value every hour
}
Я выпил немного пива, так что, надеюсь, вы поняли, что я уверен, что это неправильно во всех возможных отношениях.
Я думаю, что open нужно заменить на time.
Или, может быть, вы даже можете это сделать:
{
Alert("NEw DAy m8");
}
Я выпил немного пива, так что, надеюсь, вы поняли, что я уверен, что это неправильно во всех возможных отношениях.
ps. что случилось с другой темой? Она была почти 40 страниц?Или, может быть, вы даже можете это сделать:
(Я попытался объяснить свою проблему в разделе исходного кода)
// this code gives me Hour 00:00 - but actually D1 time should show Hour 01:00 | this mean my broker shows absolutely wrong Hour for period PERIOD_D1
// But I need to write code to get first H1 bar Time of the day ( e.g: if first H1 bar 00:00 or 01:00 or ... ) instead of PERIOD_D1
// But I really struggle to write code for get today first H1 time
---
P.S.
Вы думаете, почему я не открываю подтемы?
Я все еще работаю над этим. Я могу найти решения на форумах. Сейчас все идет хорошо, но медленно.
Дополнительно:
Когда я начал писать советника для торговой панели, я думал, что мне нужно написать 4 функциональных скрипта Sell, Buy, Close all Order, EXIT (удалить) советника.
Пока я работал над ним, у меня появилось много идей... теперь советник состоит из более чем 3 тысяч строк.
И все же я должен написать еще почти 10 полезных функций, если я решусь на все из них.
Также, возможно, когда я закончу свой советник Trade Panel, я напишу небольшую историю о том, как я начал писать скрипт для своего советника Trade Panel. (Даже если я не закончу его - правда, я верю, что те, кто увидит его, скажут: Wow awesome! ) хехе :)
---
Спасибо, мистер Марко.
Спасибо всем вам (кто отвечает на мои комментарии) большое и за вашу помощь.
#property show_inputs
#define HOUR 3600
#define DAY 86400
extern int local_offset = 1; // local time offset from broker (hours)
void OnStart()
{
local_offset*=HOUR;
int D1_shift = (TimeCurrent()%DAY > local_offset) ? 0 : 1;
datetime broker_midnight = iTime(_Symbol,PERIOD_D1,D1_shift);
datetime local_midnight = broker_midnight + local_offset;
int M5_shift = iBarShift(_Symbol,PERIOD_M5,local_midnight);
datetime M5_time = iTime(_Symbol,PERIOD_M5,M5_shift);
double M5_open = iOpen(_Symbol,PERIOD_M5,M5_shift);
printf("M5_time: %s M5_open: %f", TimeToString(M5_time),M5_open);
}
Спасибо за ваш отличный пример.
Возможно, если у меня будет время, я попробую объяснить с помощью видео / изображения завтра.
Я так усердно изучаю этот вопрос.
(также я ищу такие ключевые слова в google seo (пока не очень полезный комментарий в seo): site:mql4.com | site:mql5.com первый бар дня).
Вы ищете способ автоматического определения местного > смещения времени брокера? Например, +1 час.
Если вы собираетесь использовать ручную настройку (это лучше, потому что иногда вы хотите использовать не местное время, а другой часовой пояс), шаги, которые вы должны выполнить, как в моем сценарии выше:
1. Получите полночь по времени брокера (с помощью iTime или путем вычисления).
2. Преобразуйте ее в местную полночь, используя настройку смещения.
3. Переведите местную полночь через iBarShift, чтобы получить нужный бар на выбранном таймфрейме.
Вы ищете способ автоматического определения смещения местного > брокерского времени? Например, +1 час
Если вы собираетесь использовать ручную настройку (это лучше, потому что иногда вы хотите использовать не местное время, а другой часовой пояс), шаги, которые вы должны выполнить, как в моем сценарии выше:
1. Получите полночь по брокерскому времени (с помощью iTime или путем вычисления)
2. Преобразуйте ее в местную полночь, используя вашу настройку смещения. Конвертируйте ее в местную полночь, используя настройки смещения
3. Вводим локальную полночь через iBarShift, чтобы получить нужный бар на выбранном таймфрейме.
Вы абсолютно правильно меня поняли - что я ищу способ автоматически... - Итак, почему? У меня есть несколько важных индикаторов (сделанных самостоятельно - с помощью разных форумов), если бы я выбрал ручной способ - я мог бы изменить их настройки... это долгий путь - я такой ленивый. :)
Спасибо большое!
Возможно я нашел решение (на данный момент вроде работает - я уже попробовал 2 разных брокера, получаю правильное время).
Думаю, что вопрос от недостатка опыта.
Q: Как я могу сохранить только час 1 в нижеприведенном результате, пожалуйста?
( На самом деле я нашел, как я могу сохранить только " 1 " из нижеприведенного результата - но мне нужен профессиональный метод, пожалуйста )
( например: результат: 2017.02.2701:00:00 - Но мне нужно сохранить только: 1 )
Спасибо большое за все.
(Я буду делиться тем, как я нашел решение. - Если вы не помогли, я не могу найти решение - еще одно большое спасибо. )
Я искал именно нижеприведенный код.
Но мне все еще нужно проверить его.
Period_Shift=iBarShift(Symbol(),PERIOD_H4,Period_Look);
Period_Time=iTime(Symbol(),PERIOD_H4,Period_Shift-1);
GMT_Offset=(Period_Time-iTime(Symbol(),PERIOD_W1,0)-PeriodSeconds(PERIOD_D1))/PeriodSeconds(PERIOD_H1); // result: 1
Если приведенный выше код не подходит, пожалуйста, дайте мне знать.
Большое спасибо @honest_knave и @Marco.
Ну, Макс, подумайте вот о чем: если вы сканируете паттерн, и он формируется, то ваш триггер сработает независимо от отметки времени.
Таким образом, триггер может иметь несколько временных меток у разных брокеров, но точный момент срабатывания будет примерно одинаковым у всех брокеров.
Не совсем, но достаточно близко.