Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Требуется кодер!
Всем программистам, мне нужна ваша помощь, чтобы закодировать или сделать для меня советника для моей торговли. У меня нет опыта в создании советников, поэтому мне нужны вы, ребята.
Советник :
LWMA - 5 (закрытие)
SMA - 8 (закрытие)
Покупка - когда обе линии пересекаются, тогда ждем следующего бара и автоматически запускаем триггер. То же самое и для коротких позиций.
Стоплосс - 30
Тейкпрофит - 30
Трейлстоп - 15
Пожалуйста, мне нужна помощь.
Спасибо.
Всем программистам, мне нужна ваша помощь, чтобы написать или сделать для меня советника для моей торговли. У меня нет никакого опыта в создании советников, поэтому мне нужны вы, ребята.
Советник :
LWMA - 5 (закрытие)
SMA - 8 (закрытие)
Покупка - когда обе линии пересекаются, ждем следующего бара и автоматически запускаем триггер. То же самое и для коротких позиций.
Стоплосс - 30
Тейкпрофит - 30
Трейлстоп - 15
Пожалуйста, мне нужна помощь.
Спасибо.Какой таймфрейм?
Помогите, пожалуйста, разобраться в коде пользовательского индикатора
Здравствуйте. Я новичок в MQL4. Я заметил, что многие пользовательские индикаторы содержат следующие строки для подготовки к циклу подсчета баров:
int counted_bars = IndicatorCounted();
if( counted_bars < 0 ) return(-1);
if( counted_bars > 0 ) counted_bars--;
int limit = Bars - counted_bars;
for(int i=0; i<limit; i++)
Согласно руководству с сайта metatrader.info, counted_bars = IndicatorCounted() при первом запуске индикатора будет считать counted_bars равным 0. "После этого он будет считать общее количество баров на графике минус один". После чего? После первого запуска? Нужно ли запускать индикатор дважды, чтобы он заработал? В справочном руководстве по MQL4 тоже нет ясности: "IndicatorCounted() возвращает количество баров, которое не изменилось после последнего запуска индикатора. В большинстве случаев одинаковый счет значений индекса не требует пересчета. Используется для оптимизации вычислений".
Затем есть Bars, который является " количеством баров на графике". Почему бы просто не использовать следующий цикл подсчета баров:
for(int i=1;i<=Bars;i++)
Я бы понял, если бы кто-нибудь мог объяснить на чистом английском, что именно происходит в цикле
int counted_bars = IndicatorCounted();
if( counted_bars < 0 ) return(-1);
if( counted_bars > 0 ) counted_bars--;
int limit = Bars - counted_bars;
for(int i=0; i<limit; i++)
и в каком направлении считать бары: вперед (от самого старого бара к самому новому) или назад? Спасибо в avdance!
Посмотрите, не поможет ли вам эта статья.
https://www.mql5.com/en/articles/1497
удачи.
Спасибо, Маджи. Это помогло. Поправьте меня, если я ошибаюсь:
1. IndicatorCounted полезен на графиках, бары которых обновляются в реальном времени. Таким образом, вместо того, чтобы пересчитывать значения индикатора для всех баров при появлении нового бара, вычисляется только значение индикатора для этого нового бара.
2. "Лимит" - это просто количество новых баров, для которых должен быть рассчитан индикатор.
3. Индекс индикатора считает бары в обратном порядке, при этом i=0 означает новый (текущий) бар.
Думаю, мое замешательство было основано на моем предыдущем опыте работы с Wealth-Lab, где код индикатора написан так, что значения индикатора рассчитываются для всех баров, даже если нужно рассчитать только новые бары. Однако Wealth-Lab обладает некоторым встроенным интеллектом, и возможно, что индикаторы автоматически пересчитываются только для новых баров. У меня складывается ощущение, что MQL4 не хочет принимать такие решения за вас и оставляет эти решения за вами, заставляя вас делать дополнительные шаги программирования. Мне это нравится, потому что я всегда ненавижу, когда программа принимает решения за тебя, и эти решения не совпадают с твоими. Моя единственная проблема с MQL4 заключается в том, что я хотел бы иметь лучшую документацию.
fiqe,
Я считаю, что ваши предположения верны. Я думаю, что MT4 прав в том, что рассчитывает индикаторы один раз, а ресурсы WL hogs делают это по-другому.
Возможно, я ошибаюсь, и я надеюсь, что другие, более сведущие, поправят нас обоих.
Ник,
Проверьте свою электронную почту. Я отправил вам пример.
Дайте мне знать.
Maji
Хорошо, я думаю, что вы можете сделать это так:
Сначала нужно указать, в какой час вы ищете - если ваш брокер GMT+3, то для подсчета Пивотов по времени GMT нужно уменьшить время брокера на 3. Таким образом, если вы ищете час 00.00, то вы будете искать в 21.00 по времени вашего брокера.
Теперь, один день равен 24 часам, и мы начинаем поиск с правой части экрана. Время вашего брокера равно +3, поэтому мы добавим это число к значению сдвига.
for(int i = 3 ; i <= 27 ; i++)
{
if(TimeHour(Time)==21)
{
//This should be your GMT midnight so u can take OHLC values from here
double open = iOpen(Symbol(),60,i);
double high = iHigh(Symbol(),60,i);
double low = iLow(Symbol(),60,i);
double close = iClose(Symbol(),60,i);
}
}
Я не знаю, простой ли это способ, но он работает.
Здравствуйте,
В последней версии SimpleDailyRangeBreakoutExpert вы можете найти код для построения свечей (OHLC) для любого часового пояса.