На первый взгляд ошибок нет. Разве что нужно проверить условия открытия по индюкам. Я обычно в таких случаях (если не открывается) вставляю ПРИНТ после условий -
if(ADXg_1<ADXr_1&&Str_1<Stb_1&&FlatUp1==0|| FlatUp1>0&&FlatUp1==0&&Str_1<Stb_1) { Print("есть сигнал!-- хи-хи ___ тра-ля-ля");
я не знаю, что там за индюки, но вот это условие
&& FlatUp1==0мне видится сомнительным....
попробуйте поставить скобки в условии на открытие, а то там не понятно что получается - очередность операций может быть не та, которую Вы себе представляете...
Я этого лог условия не пойму
if(ADXg_1>ADXr_1 && Str_1>Stb_1 && FlatUp1==0 ||
FlatUp1>0 && FlatUp1==0 && Str_1>Stb_1)
Сразу больше 0 и равен ему же...
Нада именно его исправить... а то что то здесь не ладное
to StatBars: ошибку исправил, но все по прежнему. попродавал по другому: начал искать какие индикаторы не сработывают, путем тестирования части условия покупка/продажа. оказалось несрабатывает У меня он называется "Новый ишимоку". что делаю не так?
вот ссылка где качал индикатор https://www.mql5.com/ru/code/7335
extern double Lots = 0.1; extern double TrailingStop = 18; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { double FlatUp1,FlatUp2,Str_1,Stb_1,ADXg_1,ADXr_1; double P_up0,P_down0,P_up1,P_down1; int cnt,ticket,total; if(Bars<100) { Print("bars less than 100"); return(0); } P_up0=iCustom(0,0,"Ценовой канал",11,0,0); P_down0=iCustom(0,0,"Ценовой канал",11,1,0); P_up1=iCustom(0,0,"Ценовой канал",11,0,1); P_down1=iCustom(0,0,"Ценовой канал",11,1,1); FlatUp1=iCustom(0,0,"Новый ишимоку",9,26,53,4,1); FlatUp2=iCustom(0,0,"Новый ишимоку",9,26,53,4,2); Str_1=iCustom(0,0,"Сила тренда",10,10000,1,1); Stb_1=iCustom(0,0,"Сила тренда",10,10000,0,1); ADXg_1=iCustom(0,0,"ADX пересечение",21,10000,1,1); ADXr_1=iCustom(0,0,"ADX пересечение",21,10000,0,1); //задали все данные total=OrdersTotal(); if(total<1) { // Проверка свободной маржи if(AccountFreeMargin()<(1000*Lots)) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return(0); } // Условие открытие позиции BUY if(ADXg_1>ADXr_1&&Str_1<Stb_1&&FlatUp1<20) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-20*Point,0,"",16384,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice()); } else Print("Error opening BUY order : ",GetLastError()); return(0); } // Условие открытие позиции SELL if(ADXg_1<ADXr_1&&Str_1>Stb_1&&FlatUp1<20) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+20*Point,0,"",16384,0,Red); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice()); } else Print("Error opening SELL order : ",GetLastError()); return(0); } return(0); } for(cnt=0;cnt<total;cnt++) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if(OrderType()<=OP_SELL && OrderSymbol()==Symbol()) { if(OrderType()==OP_BUY) // длинная позиция открыта { // условие закрытие длинной позиции if(P_down1>P_down0) { OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); return(0); } if(Bid-OrderOpenPrice()>Point*TrailingStop) { if(OrderStopLoss()<Bid-Point*TrailingStop) { OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green); return(0); } } } else { // условие закрытия короткой позиции if(P_up1<P_up0) { OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); return(0); } if((OrderOpenPrice()-Ask)>(Point*TrailingStop)) { if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0)) { OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red); return(0); } } } } } return(0); }
Файлы:
pfjyuaolsolyt.mq4
5 kb
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
привет.
Написал советник, но притестировании он ниоткрыл ни одной позиции. у меня сомнение правильно ли я задал условия покупки/продажи????
заранее благодарен за помощь!