Как привязать пользовательский индикатор к эксперту
Я имел ввиду, к примеру, последняя сформировавшиеся свеча имеет тело (open-close)>0,001, то есть тело свечи больше 10 пунктов, тогда инструмент продается, или последняя сформировавшиеся свеча имеет тело (open-close)<-0,001, то есть тело свечи больше 10 пунктов только со знаком минус, тогда инстумент покупается!
Пример
open = 1.2345
close=1.2357
open-close=-0.0012 следовательно инстумент покупать
или
open = 1.2357
close=1.2345
open-close=0.0012 следовательно инстумент продавать
Я имел ввиду, к примеру, последняя сформировавшиеся свеча имеет тело (open-close)>0,001, то есть тело свечи больше 10 пунктов, тогда инструмент продается, или последняя сформировавшиеся свеча имеет тело (open-close)<-0,001, то есть тело свечи больше 10 пунктов только со знаком минус, тогда инстумент покупается!
I'm sorry I did not accurately explain the problem ....
The problem is that the file signalbuyorsell.mgh, which are written in terms of open positions: whatever condition I have not written in LongCondition and ShortCondition () expert " only opens a short position ? "(I can not understand why!
/ / + ----------------------------------------------- ------------------- +
/ / | "Voting" that the price will rise. |
/ / | INPUT: no. |
/ / | OUTPUT: kolichsetvo "voices" that the price will rise. |
/ / | REMARK: no. |
/ / + ---------------------------------------------- -------------------- +
int CSignalBOS :: LongCondition ()
{
int result = 0;
int idx = StartIndex ();
double last_BOS_value = BuyOrSell (idx);
double last_last_BOS_value = BuyOrSell (idx +1);
if (last_BOS_value <0.001 && last_last_BOS_value <0.001)
{
result = 100;
}
/ / --- returns "Voting" that the price will fall. | / / | INPUT: no. | / / | OUTPUT: number of "votes" That Will Fall price. | / / | REMARK: no. | / / + ---------------------------------------------- -------------------- + int CSignalBOS :: ShortCondition () { int result = 0; int idx = StartIndex (); double last_BOS_value = BuyOrSell (idx); double last_last_BOS_value = BuyOrSell (idx +1); if (last_BOS_value> last_last_BOS_value && 0.001> 0.001) { result = 100; } / / --- returns
Попробуйте вывести на печать итоговые значения result из обоих функций и посмотреть, совпадают ли эти значения с предполагаемыми значениями, которые должны возвращать функции. Ну а дальше - либо проверять правильность задания условий в функциях, либо смотреть, как правильные значения обрабатываются иными ("внешними") функциями.
Подскажите пожалуйста как это сделать?
int CSignalBOS::LongCondition() { int result=0; int idx =StartIndex(); double last_BOS_value=BuyOrSell(idx); double last_last_BOS_value=BuyOrSell(idx+1); if(last_BOS_value<0.001 && last_last_BOS_value<0.001) result=100; Print("last_BOS_value=",last_BOS_value,", last_last_BOS_value=",last_last_BOS_value,", LongCondition=",result); return(result); }
Спасибо огромное, все получилось!Теперь хоть понимаю в чем дело!!!)Почему-то не загружаются данные , пишет ошибку CIndicator::GetData: invalid buffer? Хотя вроде дела по шаблону((Подскажите на что обратить внимание!!За ранее спасибо!
Спасибо огромное, все получилось!Теперь хоть понимаю в чем дело!!!)Почему-то не загружаются данные , пишет ошибку CIndicator::GetData: invalid buffer? Хотя вроде дела по шаблону((Подскажите на что обратить внимание!!За ранее спасибо!
//+------------------------------------------------------------------+ //| API access method "Copying an element of indicator buffer | //| by specifying number of buffer and position of element" | //+------------------------------------------------------------------+ double CIndicator::GetData(const int buffer_num,const int index) const { CIndicatorBuffer *buffer=At(buffer_num); //--- check if(buffer==NULL) { Print("CIndicator::GetData: invalid buffer"); return(EMPTY_VALUE); } //--- return(buffer.At(index)); }Нужно посмотреть как Вы создаете индикатор и к какому буферу (по счету) обращаетесь за данными.
Не могу понять почему не видет буффер пользовательского индикатора в signalbuyorsell.mqh?(((
Я еще раз проверил номера буфферов, пробывал указывать любой буфер....все равно одна и таже ошибка(((( Подскажите, если при запуске советнки на "тесте" запускается так же и пользовательский индикатор, то в функции Ge tData достаточно только указать номер буффера или еще что-то на указать в файле signalbuyorsell.mqh???(
Подскажите пожалуйста! За ранее спасибо!!!

- Бесплатные приложения для трейдинга
- Форексный VPS бесплатно на 24 часа
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Впервые пишу эксперта и никак не :((Пожалуйства подскажите, в чем моя ошибка.Задача моего эксперта заключается в том, чтобы открывать позицию (длинную\короткую) в зависимости от последней сформировавшейся свечи, то есть если тело свечи (open-close)>0,001, то - "короткая", иначе (open-close)<0,001, то - "длянная". Почему то эксперт только открывает длиннную или только короткую!!(((
Заранее благодарен!!!