Не соответствуют сигналы советника и индикатора - страница 2

 
написал в предыдущем ответе
 
evillive:



ЭТО коды из разных файлов, почему-то Вы их обьединили в один исходник и говорите что они работать не будут. Конечно в таком виде не будут :)))

Индикатор как раз работает нормально с переборкой вызываемых индикаторов Форс, Демаркер и Коммодити в цикле, проверял, а вот советник далеко не всегда торгует по сигналам индикатора, хотя совпадения бывают, 1:5 примерно.

В советнике поначалу тоже вызов индикаторов в цикл вписал, но разницы в работе по сравнению с нынешним кодом не заметил.

Как хотите: раз Вы все знаете сами - сами и разбирайтесь )))))))).

А объединил потому, что в них схожие ошибки и потому, что именно из-за этого у Вас не будет соответствия сигналов индикатора и выставления ордеров советником. ;)

 
VladislavVG:

Как хотите: раз Вы все знаете сами - сами и разбирайтесь )))))))).

А объединил - потому, что в них схожие ошибки и потому, что именно из-за этого у Вас не будет соответствия сигналов индикатора и выставления ордеров советником. ;)

Пожалуйста поподробнее про схожие ошибки, если можно. Я не все знаю, всё бы всё знал то не писал бы тут вопросов (:

Считаете ошибка в цикле вызова индикаторов? Что надо было такой же цикл и в советника встроить, с перебором кучи баров? А не будет ли терминал тормозить и флудить сервера ДЦ при этом?

Как же не хватает нормального дебаггера с пошаговым исполнением для этого MQL :(

 
evillive:
написал в предыдущем ответе

double val=iCustom(NULL, 0, "ICCIforse_1",,,,,,,,0,0);

Через запятую передаете параметры индикатора (у вас их много-не стал все вбивать), после запятых следует номер буфера (в вашем случае тех стрелочек которые определены в индикаторе цветом Crimson, для второго буфера вместо 0 поставьте 1), последний нолик указывает что значения индикатора будут для 0 бара, если вам нужен первый поставьте 1. Что-нибудь еще?

 
evillive:
Пожалуйста поподробнее про схожие ошибки, если можно. Я не все знаю, всё бы всё знал то не писал бы тут вопросов (:
Тогда отвечайте на тот пост. Максимально подробно, как понимаете. Я скажу - и забудете через пару месяцев. Самостоятельно разобраться гораздо полезнее. Такие вопросы возникают часто - не Вы первый.
 
ask:

double val=iCustom(NULL, 0, "ICCIforse_1",,,,,,,,0,0);

Через запятую передаете параметры индикатора (у вас их много-не стал все вбивать), после запятых следует номер буфера (в вашем случае тех стрелочек которые определены в индикаторе цветом Crimson, для второго буфера вместо 0 поставьте 1), последний нолик указывает что значения индикатора будут для 0 бара, если вам нужен первый поставьте 1. Что-нибудь еще?


Я так и пишу, разве нет? double order = iCustom(NULL,0,"iCCIforce",fp,dmp,dm1,dm2,ccip,cci1,cci2,1,0);

Если параметры передавать можно только цифрами то не вижу смысла в вызове iCustom, как параметры я пытаюсь передать переменные которые подбираются тестером стратегий.

 
Увидел ваш пост-простите за невнимательность-попробуйте параметры задать числами и все получится =)
 
VladislavVG:
Тогда отвечайте на тот пост. Максимально подробно, как понимаете. Я скажу - и забудете через пару месяцев. Самостоятельно разобраться гораздо полезнее.


Если я правильно понял о чем Вы, то ошибка связана с пониманием "глубинных" вопросов работы советников и индикаторов в МТ4. Вряд ли ТС на данном этапе своего погружения в тему способен это быстро уловить...

evillive:

....


Подумайте например на тему цены закрытия нулевого бара, и общих принципах работы советника и ндикатора. Как обрабатываются индикатором закрытые и открытые бары если берется цена закрытия? Типа подсказка.

 
evillive:


Я так и пишу, разве нет? double order = iCustom(NULL,0,"iCCIforce",fp,dmp,dm1,dm2,ccip,cci1,cci2,1,0);

Если параметры передавать можно только цифрами то не вижу смысла в вызове iCustom, как параметры я пытаюсь передать переменные которые подбираются тестером стратегий.


Тогда вам придется переписать часть из индикатора в советник там, где вы проводите расчет shift (но снова-могу ошибаться, особо не слушайте).
 
2 evillive: Вобщем долго разбирать не получится: Проблема в использовании цены закрытия 0 бара: по истории вы видите последние значения индикатора, но на момент открытия бара цена его закрытия - это будущее. Посмотрите как формируются бары и что выдает Close[0] в течение жизни бара - это в доках есть. А по истории индикатор рисует замечательно просто потому, что по истории эта цена известна.
Причина обращения: