Функция ICustom - страница 18

 
OneandOnly666:
Хорошо! Спасибо за помощь, я посмотрю и попробую найти проблему.

эти две строки - простая проверка условий, и проверка этих двух условий занимает очень, очень мало времени

то, что делается после этих строк (или в остальной части кода, которая зависит от этих строк), является причиной замедления.

 
mladen:
Эти две строки - простая проверка условий, и на проверку этих двух условий уходит очень, очень мало времени. То, что делается после этих строк (или в остальном коде, который зависит от этих строк), и есть причина замедления.

Это был индикатор.

Вместо него использовал более простой эргодический индикатор, и тогда все заработало.

Спасибо за помощь, никогда бы не нашел без вашей помощи.

//Томас

 
codersguru:
Привет, Хоми,

Я не понял вас неправильно. Я привел вам рабочий пример iCustom.

В любом случае, вот строка кода, которая позволит получить значение LSMA с помощью iCustom.

Примечание: я использовал LSMA в цвете (Lsma)

Alert(iCustom(NULL,0,"LSMA in Color",14,1500,0,0));

параметр 1:символ - NULL для текущего символа.

parmeter 2: таймфрейм - 0 для текущего таймфрейма.

parmeter 3: имя индикатора - здесь"LSMA in Color".

parmeter 4: это настройка для LSMA - Rperiod= 14.

parmeter 5: это настройка для LSMA - Draw4HowLongg= 1500.

parmeter 6: номер линии (диапазон от 0 до 7) - обычно используется 0.

parmeter 7: рабочий бар - 0 для текущего бара.

Пожалуйста, попробуйте эту строку кода и скажите мне

Спасибо за это

 

Привет, mladen/mrtools,

Существует ли тема специально для такого рода информации? Я думаю, что это будет полезно для не кодирующих членов этого сайта.

(Ссылка на сообщение #91 от Forex2006)

Спасибо,

Пол

 
tamaraofx:
Re: Раздел iCustom в советниках

Привет, mladen/mrtools,

Существует ли тема специально для такого рода информации? Я думаю, что это будет полезно для не кодирующих членов этого сайта.

(Ссылка на сообщение #91 от Forex2006)

Спасибо,

Павел

Пол

Это лишь некоторые возможные способы использования этих индикаторов. Вы не можете "охватить" все возможности (и комбинации) того, как значения некоторых индикаторов могут быть использованы в советнике. Именно поэтому существует функция iCustom(), и тогда мы можем использовать индикаторы так, как нам хочется (или нужно) в советнике.

И уж тем более не существует какого-то стандарта работы советников. То, что может работать в одном советнике, не будет работать в другом. Нет способа, как вы можете взять какой-то код и заставить все советники работать с этим кодом.

 

Да, я заметил это. Некоторые из них базовые, т.е. a>b или a>0, а некоторые сложные. Для базовых я могу понять и могу экспериментировать на некоторых ea. Иногда это срабатывало. Есть определенные шаблоны ea, где можно менять коды сигналов покупки/продажи индикаторов и это работает. Хотя я не говорю, что это идеально прибыльно.

У вас так много хороших и красиво оформленных индикаторов здесь, на этом сайте. Но как протестировать/автоматизировать их в ea не очень просто для некоторых пользователей, включая меня. Мне, как пользователю, особенно интересно узнать, как эти красивые на вид индикаторы будут вписываться в шаблон ea; какой буфер использовать в коде; какие операнды и операторы использовать; что-то в этом роде.

Было бы полезно увидеть нечто подобное в этом посте для более базовой комбинации кода для этих красивых индикаторов.

Это просто мысль.

Спасибо и наилучшие пожелания,

Пол

 

если исходный индикатор 'Dynamic zone MACD dll' в данном случае имеет буферы 0-3 то

значение '4' означает другой экземпляр этого индикатора и данные из буфера 0 или это ошибка/несоответствие кодировки?

Krzysztof

SetIndexBuffer(0,macd); SetIndexLabel(0,"MACD");

SetIndexBuffer(1,macs); SetIndexLabel(1,"MACD signal");

SetIndexBuffer(2,bli);

SetIndexBuffer(3,sli);

double FastMacd2 = iCustom(NULL,0,"Dynamic zone MACD dll",MacdFast_Fast,MacdSlow_Fast,1,Fast_MacdSignalMode,Fast_MacdPrice,Fast_DzLookBackBars,Fast_DzStartBuyProbability,Fast_DzStartSellProbability,0,2);

double FastMacd1 = iCustom(NULL,0,"Dynamic zone MACD dll",MacdFast_Fast,MacdSlow_Fast,1,Fast_MacdSignalMode,Fast_MacdPrice,Fast_DzLookBackBars,Fast_DzStartBuyProbability,Fast_DzStartSellProbability,0,1);

double SlowMacd = iCustom(NULL,0,"Dynamic zone MACD dll",MacdFast_Slow,MacdSlow_Slow,1,Slow_MacdSignalMode,Slow_MacdPrice,Slow_DzLookBackBars,Slow_DzStartBuyProbability,Slow_DzStartSellProbability,0,0);

double fast2trigger = iCustom(NULL,0,"Dynamic zone MACD dll",MacdFast_Fast,MacdSlow_Fast,1,Fast_MacdSignalMode,Fast_MacdPrice,Fast_DzLookBackBars,Fast_DzStartBuyProbability,Fast_DzStartSellProbability,4,2);

double fast1trigger = iCustom(NULL,0,"Dynamic zone MACD dll",MacdFast_Fast,MacdSlow_Fast,1,Fast_MacdSignalMode,Fast_MacdPrice,Fast_DzLookBackBars,Fast_DzStartBuyProbability,Fast_DzStartSellProbability,4,1);

double slowtrigger = iCustom(NULL,0,"Dynamic zone MACD dll",MacdFast_Slow,MacdSlow_Slow,1,Slow_MacdSignalMode,Slow_MacdPrice,Slow_DzLookBackBars,Slow_DzStartBuyProbability,Slow_DzStartSellProbability,4,0);

 
fajst_k:
Если исходный индикатор 'Dynamic zone MACD dll' в данном случае имеет буферы 0-3, тогда

Значение '4' означает другой экземпляр этого индикатора и данные из буфера 0 или это ошибка/несоответствие кодировки?

Кшиштоф

SetIndexBuffer(0,macd); SetIndexLabel(0,"MACD");

SetIndexBuffer(1,macs); SetIndexLabel(1,"MACD signal");

SetIndexBuffer(2,bli);

SetIndexBuffer(3,sli);

double FastMacd2 = iCustom(NULL,0,"Dynamic zone MACD dll",MacdFast_Fast,MacdSlow_Fast,1,Fast_MacdSignalMode,Fast_MacdPrice,Fast_DzLookBackBars,Fast_DzStartBuyProbability,Fast_DzStartSellProbability,0,2);

double FastMacd1 = iCustom(NULL,0,"Dynamic zone MACD dll",MacdFast_Fast,MacdSlow_Fast,1,Fast_MacdSignalMode,Fast_MacdPrice,Fast_DzLookBackBars,Fast_DzStartBuyProbability,Fast_DzStartSellProbability,0,1);

double SlowMacd = iCustom(NULL,0,"Dynamic zone MACD dll",MacdFast_Slow,MacdSlow_Slow,1,Slow_MacdSignalMode,Slow_MacdPrice,Slow_DzLookBackBars,Slow_DzStartBuyProbability,Slow_DzStartSellProbability,0,0);

double fast2trigger = iCustom(NULL,0,"Dynamic zone MACD dll",MacdFast_Fast,MacdSlow_Fast,1,Fast_MacdSignalMode,Fast_MacdPrice,Fast_DzLookBackBars,Fast_DzStartBuyProbability,Fast_DzStartSellProbability,4,2);

double fast1trigger = iCustom(NULL,0,"Dynamic zone MACD dll",MacdFast_Fast,MacdSlow_Fast,1,Fast_MacdSignalMode,Fast_MacdPrice,Fast_DzLookBackBars,Fast_DzStartBuyProbability,Fast_DzStartSellProbability,4,1);

double slowtrigger = iCustom(NULL,0,"Dynamic zone MACD dll",MacdFast_Slow,MacdSlow_Slow,1,Slow_MacdSignalMode,Slow_MacdPrice,Slow_DzLookBackBars,Slow_DzStartBuyProbability,Slow_DzStartSellProbability,4,0);

Откуда взялся этот код?

Он не может получить доступ к буферу "4", так как у индикатора его нет

 

отсюда

.........................

Я проверял этот код и тоже что-то заподозрил, но компилятор не жалуется.

 
fajst_k:
отсюда я проверял этот код и тоже что-то заподозрил, но компилятор не жалуется.

На самом деле я имею в виду, какой источник, где используются эти вызовы iCustom()?

PS: удалил ссылку на тот сайт (по понятным причинам)