Та я уже как хочеш пробовал. В принцыпе это у меня одно и тоже.
Главный вопрос в том: какие данные из буфера запросить на проверку???
Сам индикатор выложи. Может и помощь тогда будет. А то можно долго с самим собой беседовать. Хотя я понимаю что приятно с умным человеком поговорить.
Сам индикатор выложи. Может и помощь тогда будет. А то можно долго с самим собой беседовать. Хотя я понимаю что приятно с умным человеком поговорить.
На этот индикатор уже есть советник, но он не использует самых сигналов из индикатора, а работает по такой же схеме, но чето ловит ложняков много (
Вот индикатор:
double iCustom( | string symbol, int timeframe, string name, ..., int mode, int shift) |
symbol | - | Символьное имя инструмента, на данных которого будет вычисляться индикатор. NULL означает текущий символ. |
timeframe | - | Период. Может быть одним из периодов графика. 0 означает период текущего графика. |
name | - | Имя пользовательского индикатора. |
... | - | Список параметров (при необходимости). Передаваемые параметры должны соответствовать порядку объявления и типу внешних (extern) переменных пользовательского индикатора. |
mode | - | Индекс линии индикатора. Может быть от 0 до 7 и должен соответствовать индексу, используемому одной из функций SetIndexBuffer. |
shift | - | Индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад). |
Передаваемые параметры должны соответствовать порядку объявления и типу внешних (extern) переменных пользовательского индикатора.
double iCustom( | string symbol, int timeframe, string name, ..., int mode, int shift) |
symbol | - | Символьное имя инструмента, на данных которого будет вычисляться индикатор. NULL означает текущий символ. |
timeframe | - | Период. Может быть одним из периодов графика. 0 означает период текущего графика. |
name | - | Имя пользовательского индикатора. |
... | - | Список параметров (при необходимости). Передаваемые параметры должны соответствовать порядку объявления и типу внешних (extern) переменных пользовательского индикатора. |
mode | - | Индекс линии индикатора. Может быть от 0 до 7 и должен соответствовать индексу, используемому одной из функций SetIndexBuffer. |
shift | - | Индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад). |
Передаваемые параметры должны соответствовать порядку объявления и типу внешних (extern) переменных пользовательского индикатора.
У него нет в iCustom передаваемых параметров-iCustom(NULL, 0,"sidus_v.2", 3, 1)значит они будут просто по умолчанию.
У него нет в iCustom передаваемых параметров-iCustom(NULL, 0,"sidus_v.2", 3, 1)значит они будут просто по умолчанию.
А почему бы ему (оператору iCustom) не подумать, что 3 и 1 - это параметры, а не номер линии и номер бара?
Если в индикаторе есть внешние параметры, они должны быть перечислены в операторе.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Подскажите пожалуйста, как можно запросить состояния буфера индикатора на предыдущем баре из советника? если он заполняет буфер так:
if (sigCurrent==1 && sigPrevious==2)
{
ExtMapBuffer4[i-1] = High[i-1]-5*Point;
//ExtMapBuffer3[i] = Ask;
entry=true;
entry_point=Ask;
}
else if (sigCurrent==2 && sigPrevious==1)
{
ExtMapBuffer3[i-1] = Low[i-1]-5*Point;
//ExtMapBuffer4[i] = Bid;
entry=true;
entry_point=Bid;
}
Советнику нужно совпадение условий, гдето таких:
double Up;
double Down;
int res;
Up=iCustom(NULL, 0,"sidus_v.2", 3, 1);
Down=iCustom(NULL,0,"sidus_v.2",2,1);
//---- sell conditions
if(Down==Low)
{
res=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,"",MAGICMA,0,Red);
return;
}
//---- buy conditions
if(Up==High)
{
res=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"",MAGICMA,0,Blue);
return;
}
Но это неверно!!
Подскажите плиз как поступить в таком случае...