перенести в код советника индикатор
https://www.mql5.com/ru/articles/1463
https://www.mql5.com/ru/articles/1456
---
но если у вас вобще не получается работать с индикатором то данные статьи лучше не читать
сначала как минимум Вы должны понять как работает индикатор!
спокойно работать с ним по iCustom
---
перенос делается в основном для поднятия скорости...
для увеличения секретности
Я понял, что автор просто хочет заставить работать выложенный код, до интеграции кода индикатора в советник еще как до Киева....
Проверьте номера буферов вызываемого индикатора, там собака порылась. С первого взгляда видно, что Вы разным переменным присваиваете одинаковые значения.
Пропишите Comment или Print для всех вызываемых значений, и все увидите.
Fr2=iCustom(0,0,"Новый ишимоку",9,26,52,1,1);
Fr1=iCustom(0,0,"Новый ишимоку",9,26,52,1,1);//Fr1=Fr2
Fg2=iCustom(0,0,"Новый ишимоку",9,26,52,2,1);
Fg1=iCustom(0,0,"Новый ишимоку",9,26,52,2,1);//Fg1=Fg2
Я понял, что автор просто хочет заставить работать выложенный код, до интеграции кода индикатора в советник еще как до Киева....
Проверьте номера буферов в вызываемого индикатора, там собака порылась. С первого взгляда видно, что Вы разным переменным присваиваете одинаковые значения.
Пропишите Comment или Print для всех вызываемых значений, и все увидите.
Да верно. Хочу чтоб этот индикатор просто заработал в советнике.
ошибку я исправил. До этого все индикаторы пользовательские вводил без проблем, все нормально.
Но этот...??
extern double Lots = 0.1; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { double TrLer_1,TrLeb_1,Pril_3,Pril_2,Pril_1; double Pril3_3,Pril3_2,Pril3_1,FlatLevelUp,FlatLevelDn,Fr2,Fr1,Fg2,Fg1; double P_up0,P_down0,P_up1,P_down1; int i, cnt, ticket, total; bool flag=true; if(Bars<100) { Print("bars less than 100"); return(0); } // Проверяем стоит ли открываться cnt=OrdersHistoryTotal()-1; for(i=cnt;i>=0;i--) { if(!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY )) continue; if(OrderOpenTime()>=Time[0]) { // Time[0] - если позиция открывается на нулевом баре текущего символа flag=false; break; } } cnt=OrdersTotal()-1; for(i=cnt;i>=0;i--) { if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue; if(OrderOpenTime()>=Time[0]) { // Time[0] - если позиция открывается на нулевом баре текущего символа flag=false; break; } } FlatLevelUp=iCustom(0,0,"Новый ишимоку",9,26,52,4,1); FlatLevelDn=iCustom(0,0,"Новый ишимоку",9,26,52,5,1); Fr2=iCustom(0,0,"Новый ишимоку",9,26,52,1,2); Fr1=iCustom(0,0,"Новый ишимоку",9,26,52,1,1); Fg2=iCustom(0,0,"Новый ишимоку",9,26,52,2,2); Fg1=iCustom(0,0,"Новый ишимоку",9,26,52,2,1); //задали все данные // Проверка свободной маржи if(AccountFreeMargin()<(1000*Lots)) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return(0); } total=OrdersTotal(); // Условие открытие позиции BUY if(Fr2<Fg2&&Fr1>Fg1&&(FlatLevelUp==0||FlatLevelDn==0)) { if((total>0) || (!flag)) return(0); ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"",0,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Alert("Покупка: ",OrderOpenPrice()); } else Alert("ошибка:по цене ",OrderOpenPrice()); return(0); } // Условие открытие позиции SELL if(Fr2>Fg2&&Fr1<Fg1&&(FlatLevelUp==0||FlatLevelDn==0)) { if((total>0) || (!flag)) return(0); ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,"",0,0,Red); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Alert("Покупка: ",OrderOpenPrice()); } else Alert("ошибка:по цене ",OrderOpenPrice()); return(0); } for(i=cnt;i>=0;i--) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if(OrderType()<=OP_SELL && OrderSymbol()==Symbol()) { if(OrderType()==OP_BUY) {// длинная позиция открыта // условие закрытие длинной позиции if(Fr2>Fg2&&Fr1<Fg1) { OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); return(0); } } else { // условие закрытия короткой позиции if(Fr2<Fg2&&Fr1>Fg1) { OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); return(0); } } } } return(0); }
Я не гонял Ваш советник, просто давненько уже, как выкинул свой советник по Taichi, оказавшийся сливным. Как и на пересечениях МА, советник снимал затяжные тренды, потом растрачивал
заработанное на дерганиях во флэте и, вдобавок, ловил крупных лосей на резких движениях. Все из-за серьезного запаздывания индикатора, которое при ручной торговле компенсируется
глазами и мозгами.
Мне не удалось устранить эти недостатки и я поставил на нем крест. Может быть, Вы найдете способ это поправить, удачи в поисках.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Есть индикатор Cronex Taichi сделанный по Ишимоку. https://www.mql5.com/ru/code/7335
Ни как не могу понять что я делаю не так, но этот индикатор ни как не хочет работать в советнике!?
Несколько раз прочитал комментарии к индикатору, вроде все правильно..?!
P.S. индикатор переименован в Новый ишимоку.