Индекс качества волатильности - страница 61

 
samirmfs:

привет всем мой друг может кто нибудь дать мне индикатор он называется Volaritility qualtity nrs - alerts et arrows но формат mq4 не ex4 и спасибо . Ваш друг Самир

Самир

Вы случайно не ищите один из этих: https: //www.mql5.com/en/forum/general или может быть этот: https: //www.mql5.com/en/forum/general

 

Никогда не знал, что Томас Стридсман изобрел его.

 

Уважаемый Младен,

надеюсь, вы поможете нам решить проблему с приложенной vq ea.

Я приложил изображение, которое показывает, что происходит. ea/индикатор/набор также прилагаются в rar-файле. Индикатор не "nrp" версии, но в "устойчивом" режиме я вижу, что не перерисовывается (если это не так, пожалуйста, дайте мне знать ) и это мультитаймфрейм версия. Стратегия предполагала использование ea на 1Mtf, но с параметрами ea indi на 5Mtf; это возможно, потому что прилагаемый индикатор допускает такой режим (это mtf). Я лишь модифицировал ea, добавив режим "steady", чтобы позволить ea работать таким образом в соответствии с индикатором. Я не кодер. Решение (т.е. разрешение работы ea в 1Mtf, но с 5Mtf в параметрах ea: "устойчивый" режим), кажется, работает лучше, чем разрешение ea напрямую работать в 5Mtf, потому что это дает возможность заранее подобрать ретрейсменты и, в скальпинге на 1Mtf, в конечном счете, открыть/закрыть сделку с гораздо более положительным результатом. Проблема, как показано на прилагаемом изображении (которое также находится в rar. файле), заключается в том, что иногда ea не следует за индикатором (я повторяю в "устойчивом" режиме), так что может произойти, что тормозит сделку или не открывается или, нелогично, как на прилагаемом изображении, открывается противоположная сделка, как показано indi . Не могли бы вы помочь нам решить эту проблему? В визуальном/ручном режиме индикатор дает много божественных сигналов (на 1Mtf с параметром 5Mtf). Большое спасибо за уделенное время.

vq_indiea.rar

Файлы:
 
vitoingletto:
Уважаемый Младен,

надеюсь, вы захотите помочь нам решить проблему с vq ea.

Я приложил изображение, которое показывает, что происходит. ea/индикатор/набор также прикреплены в rar-файле. Индикатор не "nrp" версии, но в "устойчивом" режиме я вижу, что не перерисовывается (если это не так, пожалуйста, дайте мне знать ) и это мультитаймфрейм версия. Стратегия предполагала использование ea на 1Mtf, но с параметрами ea indi на 5Mtf; это возможно, потому что прилагаемый индикатор допускает такой режим (это mtf). Я лишь модифицировал ea, добавив режим "steady", чтобы позволить ea работать таким образом в соответствии с индикатором. Я не кодер. Решение (т.е. разрешение работы ea в 1Mtf, но с 5Mtf в параметрах ea: "устойчивый" режим), кажется, работает лучше, чем разрешение ea напрямую работать в 5Mtf, потому что это дает возможность заранее подобрать ретрейсменты и, в скальпинге на 1Mtf, в конечном счете, открыть/закрыть сделку с гораздо более положительным результатом. Проблема, как показано на прилагаемом изображении (которое также находится в rar. файле), заключается в том, что иногда ea не следует за индикатором (я повторяю в "устойчивом" режиме), так что может произойти, что тормозит сделку или не открывается или, нелогично, как на прилагаемом изображении, открывается противоположная сделка, как показано indi . Не могли бы вы помочь нам решить эту проблему? В визуальном/ручном режиме индикатор дает много божественных сигналов (на 1Mtf с параметром 5Mtf). Большое спасибо за ваше время.

vq_indiea.rar

В вашем советнике вы ищете последний сигнал (который мог произойти очень давно). Для начала попробуйте использовать только 2 значения: одно для текущего направления и одно для предыдущего (буфер 6). Когда значение текущего бара изменится по сравнению с предыдущим, тогда у вас есть сигнал. Если направление равно 1, то это сигнал на покупку, если направление равно -1, то сигнал на продажу.

________________

PS: нет необходимости в цикле в советнике для поиска значений направления. Просто используйте индекс 1 для первого закрытого бара и индекс 2 для второго закрытого бара (для работы по сигналам, основанным на закрытом баре).

 

Уважаемый Mladen спасибо за быстрый ответ. Извините, но я не кодер, но если вы подскажете, более понятным для моего уровня способом, что я должен сделать в метаредакторе, я попробую сделать сам. Извините, но я даже не знаю, что вы подразумеваете под "буфером" .Спасибо еще раз.

mladen:
В вашем советнике вы ищете последний сигнал (который мог произойти очень давно). Для начала попробуйте использовать только 2 значения: одно для текущего направления и одно для предыдущего (буфер 6). Когда значение текущего бара изменится по сравнению с предыдущим, тогда у вас есть сигнал. Если направление равно 1, то это сигнал на покупку, если направление равно -1, то сигнал на продажу.

________________

PS: нет необходимости в цикле в советнике для поиска значений направления. Просто используйте индекс 1 для первого закрытого бара и индекс 2 для второго закрытого бара (для работы с сигналами на основе закрытого бара).
 
vitoingletto:
Уважаемый Mladen спасибо за быстрый ответ. Извините, но я не кодер, но если вы предложите, более понятным для моего уровня способом, что я должен сделать в метаэдиторе, я попробую сделать сам. Извините, но я даже не знаю, что вы имеете в виду под "буфером" .Спасибо еще раз.

vitoingletto

Попробуйте заменить эту деталь:

for(int i=1;i<=limit;i++){

VQ1=iCustom(NULL,0,"VQ",Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,3,i);

VQ2=iCustom(NULL,0,"VQ",Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,4,i);

if(VQ2>0&&VQ1<EMPTY_VALUE){if(Reverse)SV=1;else BV=1;break;}

if(VQ1>0&&VQ2<EMPTY_VALUE){if(Reverse)BV=1;else SV=1;break;}}

[/PHP]

With this :

[PHP] double VQCurrent =iCustom(NULL,TimeFrame,"VQ",Crash,0,Length,Method,Smoothing,Filter,RealTime,Steady,6,1);

double VQPrevious=iCustom(NULL,TimeFrame,"VQ",Crash,0,Length,Method,Smoothing,Filter,RealTime,Steady,6,2);

if (VQCurrent!=VQPrevious)

{

if (VQCurrent== 1) if (Reverse) SV=1; else BV=1;

if (VQCurrent==-1) if (Reverse) BV=1; else SV=1;

}

 

К сожалению, не работает. Он полностью меняет логику и работает не в 1Mtf, как в 5Mtf, а буквально в 1Mtf. Есть предложения? Спасибо.

mladen:
vitoingletto

Попробуйте заменить эту часть :

for(int i=1;i<=limit;i++){

VQ1=iCustom(NULL,0,"VQ",Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,3,i);

VQ2=iCustom(NULL,0,"VQ",Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,4,i);

if(VQ2>0&&VQ1<EMPTY_VALUE){if(Reverse)SV=1;else BV=1;break;}

if(VQ1>0&&VQ2<EMPTY_VALUE){if(Reverse)BV=1;else SV=1;break;}}

[/PHP]

With this :

[PHP] double VQCurrent =iCustom(NULL,TimeFrame,"VQ",Crash,0,Length,Method,Smoothing,Filter,RealTime,Steady,6,1);

double VQPrevious=iCustom(NULL,TimeFrame,"VQ",Crash,0,Length,Method,Smoothing,Filter,RealTime,Steady,6,2);

if (VQCurrent!=VQPrevious)

{

if (VQCurrent== 1) if (Reverse) SV=1; else BV=1;

if (VQCurrent==-1) if (Reverse) BV=1; else SV=1;

}

 
vitoingletto:
К сожалению, не работает. Он полностью меняет логику и работает в 1Mtf не так, как в 5Mtf, а буквально в 1Mtf. Есть предложения? Спасибо

vitoingletto

Второй параметр вызова iCustom() - это параметр таймфрейма. В случае мультитаймфреймовых индикаторов лучше всего использовать именно этот параметр, чтобы индикатор работал корректно. Если при использовании таймфрейма в качестве второго параметра вызова iCustom() значения не совпадают с теми, которые вы передаете индикатору (в параметре TimeFrame индикатора), то индикатор не будет корректно работать в режиме мультитаймфрейма (и это единственный случай, когда они могут отличаться).

 

Кроме того, в этих двух строках оригинального советника :

if(VQ2>0&&VQ10&&VQ2<EMPTY_VALUE){if(Reverse)BV=1;else SV=1;break;}

есть часть, которая не является необходимой. VQ2>0 и VQ1>0 всегда истинны(EMPTY_VALUE - положительное значение), и эти два значения вообще не нужны для сравнения. Достаточно проверить, что VQ1 или VQ2 не равны EMPTY_VALUE

 

сделал это!!!!

Я изменил :

for(int i=1;i<=limit;i++){

VQ1=iCustom(NULL,0, "VQ",Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,3,i);

VQ2=iCustom(NULL,0, "VQ",Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,4,i);

в

for(int i=1;i<=limit;i++){

VQ1=iCustom(NULL,5, "VQ",Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,3,i);

VQ2=iCustom(NULL,5, "VQ",Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,4,i);

и все работает. Только одна проблема, в бэктесте однажды открыл две позиции на одном и том же баре с 10 тп.

Есть предложения? Спасибо.

mladen:
vitoingletto Вторым параметром вызова iCustom() является параметр таймфрейма. В случае индикаторов с несколькими таймфреймами лучше всего использовать этот параметр, чтобы индикатор работал правильно. Если значения, когда таймфрейм используется в качестве второго параметра вызова iCustom(), не совпадают с тем, когда вы передаете его индикатору (в параметре TimeFrame индикатора), то индикатор не будет корректно работать в режиме мультитаймфрейма (и это единственный случай, когда они могут отличаться).
Файлы:
2_position.jpg  243 kb
Причина обращения: