Спрашивайте! - страница 95

 

Короткий ответ - нет.

Как всегда, бар 0 является временно неполным как для советников, так и для индикаторов, и его максимум, минимум, закрытие и объем почти наверняка отличаются от того, как они заканчиваются, когда этот бар завершается и становится баром 1. Точнее говоря, значение StochRSICurr в конце дневного бара известно только на первом тике следующего дневного бара (и позже). Я думаю, что вы оказываете себе плохую услугу, пытаясь использовать значения бара 0, поскольку они, за редким исключением, отражают лишь частичное состояние незавершенного бара.

Насколько я знаю, индикатор вызывается во время первого вызова iCustom с определенной комбинацией значений параметров, во время каждого вызова функции EA start(). Последующие вызовы iCustom во время одного вызова функции запуска советника, к одному и тому же индикатору, с одной и той же комбинацией значений параметров, повторно используют все, что было получено при первом вызове. Следующая функция EA start(), снова вызывающая iCustom, снова вызовет индикатор в контексте тика, который вызвал функцию start.

Таким образом, в глазах индикатора он вызывается один раз для каждого тика, для которого советник позволяет его вызвать. Указывая MA использовать цену открытия или цену максимума и т.д., вы лишь меняете, на какие значения баров он смотрит, а способ вызова остается прежним: он вызывается на каждом тике (который позволяет советник).

 
 

Пожалуйста, помогите мне

Привет всем,

Никто не хочет мне помочь. Я пишу еще раз о своей проблеме и прошу помочь мне.

Я просто хочу понять, почему результат не совпадает при двух способах кодирования одного и того же индикатора (см. код и картинку).

Мануэль

Файлы:
 

медленное бэктестирование

Просто хотел сказать спасибо Ральфу Роннквисту. Теперь у меня эта часть работает правильно.

У меня есть еще один вопрос ко всем, кто может помочь. Когда я пытаюсь использовать Strategy Tester с моим советником, он работает очень медленно. Я знаю, что он работает, поскольку я получаю некоторые результаты, но мне нужно оставить его на ночь, чтобы получить результаты за 3 месяца.

Мой советник основан на дневном тренде с использованием пересечения Stochastic RSI (тестирование), а затем только на ценовом действии. Каковы могут быть основные причины того, что он работает так медленно. Это в программировании, или потому что я вызываю внешний индикатор, или потому что Stochastic RSI потребляет много энергии.

Я запускаю много других советников, и все они работают намного быстрее, чем мой. Моя система достаточно мощная с 3 ГБ оперативной памяти и процессором Intel Centrino Duo.

Буду признателен за любые предложения и идеи.

Putz

 

Как написать

Привет кодеры

Я полный новичок в кодировании Mql.4. Все еще учусь, модифицируя существующие советники.

Следующий пример для плавающего Pivot:

для текущего бара;

double Flow_Pivot0 = (iHigh(NULL,1440,0)+iLow(NULL,1440,0)

+ iClose(NULL,0,0))/3.0;

для одного бара назад

где я должен установить "число" или переменную "shift_bars"

double Flow_Pivot1 = (iHigh(NULL,1440,0)+iLow(NULL,1440,0)

+ iClose(NULL,TimeFrame_Flow,0))/3.0;

Большое спасибо

 

BadGay,

перейти на:

https://www.mql5.com/en/forum/173124

B.

 

Решение не найдено

Привет Бонго

Извините, но по этой ссылке я не нашел ответа.

Обычный случай

double High1 = iHigh(NULL,0,0); // Цена высокая сейчас

когда мне нужен внешний вход

double iHigh1 = iHigh(NULL,iHigh12_TimeFrame,Barsback_iHigh1); // Цена на максимуме сейчас.

Зеленый цвет означает, сколько баров назад

но в моем случае, где я должен вставить Barback_xxx, вся строка ниже должна быть на один бар назад

double Flow_Pivot1 = (iHigh(NULL,1440,0)+iLow(NULL,1440,0)

+ iClose(NULL,TimeFrame_Flow,0))/3.0;

Bongo:
BadGay,

перейти на:

https://www.mql5.com/en/forum/173124

B.
 

Назад Времена

Badguy:
Привет Бонго

извините, но по этой ссылке я не нашел ответа.

Обычный случай

double High1 = iHigh(NULL,0,0); // Цена сейчас высокая

когда мне нужен внешний вход

double iHigh1 = iHigh(NULL,iHigh12_TimeFrame,Barsback_iHigh1); // Цена достигла максимума сейчас.

Зеленый цвет означает, сколько баров назад

но в моем случае, где я должен вставить Barback_xxx, вся строка ниже должна быть на один бар назад

double Flow_Pivot1 = (iHigh(NULL,1440,0)+iLow(NULL,1440,0))

+ iClose(NULL,TimeFrame_Flow,0))/3.0;

Привет

Если вы хотите сместить линию назад на 1 бар за раз.

double Flow_Pivot1 = (iHigh(NULL,1440,0)+iLow(NULL,1440,0)

+ iClose(NULL,TimeFrame_Flow,0))/3.0; = Текущий день

double Flow_Pivot1 = (iHigh(NULL,1440,1)+iLow(NULL,1440,1)

+ iClose(NULL,TimeFrame_Flow,1))/3.0; = Назад на 1 день

double Flow_Pivot1 = (iHigh(NULL,1440,2)+iLow(NULL,1440,2)

+ iClose(NULL,TimeFrame_Flow,2))/3.0; = Назад на 2 дня

double Flow_Pivot1 = (iHigh(NULL,1440,Barback_xxx)+iLow(NULL,1440,Barback_xxx)

+ iClose(NULL,TimeFrame_Flow,Barback_xxx))/3.0;

Barback_xxx = 1, 2, 3, 4 и т.д. будет смещаться назад на 1 бар за раз.

 

Привет, Чая

это не то, что я имел в виду.

cja:
Привет

Если вы хотите сместить линию назад на 1 бар за раз.

Это плавающий PIVOT. Правильно?

#1

double Flow_Pivot1 = (iHigh(NULL,1440,0)+iLow(NULL,1440,0)

+ iClose(NULL,TimeFrame_Flow,0))/3.0; = Текущий день

Это нормальный PIVOT на сегодня. Верно??

#2

double Flow_Pivot1 = (iHigh(NULL,1440,1)+iLow(NULL,1440,1)

+ iClose(NULL,TimeFrame_Flow,1))/3.0; = Назад на 1 день.

Это обычный PIVOT, но со вчерашнего дня. Правильно???

#3

double Flow_Pivot1 = (iHigh(NULL,1440,2)+iLow(NULL,1440,2))

+ iClose(NULL,TimeFrame_Flow,2))/3.0; = Назад на 2 дня.

Мне нужно #1, но xx баров назад в любом таймфрейме.

Та же функция, что и в этом Indi : PrevDayAndFloatingPivot_O.mq4. (но только FloatingPivot).

Инди прилагается

double Flow_Pivot1 = (iHigh(NULL,1440,Barback_xxx)+iLow(NULL,1440,Barback_xxx)

+ iClose(NULL,TimeFrame_Flow,Barback_xxx))/3.0;

Barback_xxx = 1 ,2, 3, 4 и т.д. будет смещаться назад на 1 бар за раз.
Файлы:
 

возможно это глупый вопрос... но я надеюсь, что вы мне поможете.

.... как закрыть или открыть ордер(отложенный ордер), когда другой ордер достигает tp?

спасибо!