Былобы не плохо если бы вы еще подписали где на рисунке какой индикатор, но если считать период TickWPR > TickWPR2, то все верно условие на открытие селл выполняется, да и где у вас в условии для открытия селл вообще есть уровень -35?
Былобы не плохо если бы вы еще подписали где на рисунке какой индикатор, но если считать период TickWPR > TickWPR2, то все верно условие на открытие селл выполняется, да и где у вас в условии для открытия селл вообще есть уровень -35?
Ну может не совсем ясно объяснил, тогда вот так:
1) Williams’ Percent Range с периодом 26; 2) Williams’ Percent Range с периодом 114;
TickWPR2>-60 ошибся должно быть TickWPR2>-65 в условии продажи, TickWPR2<-35 покупки
Рассогласование в первых двух индикаторах, где обозначено вертикальной линией, первый индикатор разрешает продавать, второй покупать, но открывается позиция на продажу, хотя этого не должно происходить, вот здесь мне и не понятно почему это произошло, что ни так в коде.
Ну может не совсем ясно объяснил, тогда вот так:
1) Williams’ Percent Range с периодом 26; 2) Williams’ Percent Range с периодом 114;
TickWPR2>-60 ошибся должно быть TickWPR2>-65 в условии продажи, TickWPR2<-35 покупки
Рассогласование в первых двух индикаторах, где обозначено вертикальной линией, первый индикатор разрешает продавать, второй покупать, но открывается позиция на продажу, хотя этого не должно происходить, вот здесь мне и не понятно почему это произошло, что ни так в коде.
Попробуйте поместить следующие операторы в начало процедуры Start()
RuleBuy=false;
RuleSell=false;
Попробуйте поместить следующие операторы в начало процедуры Start()
RuleBuy=false;
RuleSell=false;
Да попробовал, но позиций при перемещении операторов не открываются. Насколько я понимаю происходит так, например: индикатор 2 в какой то момент времени выполняет условия на открытие позиции Sell индикатор 1 не выполняет такого условия, через какой то промежуток времени индикатор 1 выполняет условие Sell и происходит открытие позиции но уже поздно. Вопрос как можно обнулить условие Sell индикатора 2 при пересечении уровня -80 сверху вниз, или дело не в том?
Ну может не совсем ясно объяснил, тогда вот так:
1) Williams’ Percent Range с периодом 26; 2) Williams’ Percent Range с периодом 114;
TickWPR2>-60 ошибся должно быть TickWPR2>-65 в условии продажи, TickWPR2<-35 покупки
Рассогласование в первых двух индикаторах, где обозначено вертикальной линией, первый индикатор разрешает продавать, второй покупать, но открывается позиция на продажу, хотя этого не должно происходить, вот здесь мне и не понятно почему это произошло, что ни так в коде.
ИМХО - самая большая проблема Вашего советника - работа с ценой закрытия на НУЛЕВОМ баре. Как следствие - то, что отражается по истории не соответствует текущим расчетам в эксперте.
Поищите по форуму - это сотни раз обсуждалось.
Успехов.
ИМХО - самая большая проблема Вашего советника - работа с ценой закрытия на НУЛЕВОМ баре. Как следствие - то, что отражается по истории не соответствует текущим расчетам в эксперте.
Поищите по форуму - это сотни раз обсуждалось.
Успехов.
Работать с ценой закрытия на НУЛЕВОМ баре, я уже отказался и код выглядит так:
void start() { int total,i; int ticket; double MacdCurrent=iMACD(NULL,15,12,26,9,PRICE_CLOSE,MODE_MAIN,1); double SignalCurrent=iMACD(NULL,15,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1); double TickWPR=iWPR( NULL,15,114,2); double TickWPR2=iWPR( NULL,15,26,2); double TickiDeM=iDeMarker( NULL,15,13,1); total=OrdersTotal(); if(total<1) if (TickWPR<-85&&TickWPR2<-85) RuleBuy=true; if ((TickWPR>-80&&TickWPR2>-80)&&(RuleBuy==true)) if (MacdCurrent<-0.00015&&TickiDeM<0.3&&TickWPR2<-20) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3, Bid - StopLoss*Point, Ask + TakeProfit*Point,"ОК",0,Blue); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("произошло открытие BUY order : ",OrderOpenPrice()); RuleBuy=false; } return; } if (TickWPR>-15&&TickWPR2>-15) RuleSell=true; if ((TickWPR<-20&&TickWPR2<-20)&&(RuleSell==true)) if (MacdCurrent>0.00015&&TickiDeM>0.7&&TickWPR2>-80) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask + StopLoss*Point, Bid - TakeProfit*Point,"ОК",0,Red); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("произошло открытие Sell order : ",OrderOpenPrice()); RuleSell=false; } return; }
Да и вопрос у меня остался открытым:
Насколько я понимаю происходит так, например: индикатор 2 в какой то момент времени выполняет условия на открытие позиции Sell индикатор 1 не выполняет такого условия, через какой то промежуток времени индикатор 1 выполняет условие Sell и происходит открытие позиции но уже поздно. Вопрос как можно обнулить условие Sell индикатора 2 при пересечении уровня -80 сверху вниз, или дело не в том?
И что такое ИМХО ели можно поесните?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всем привет, подскажите почему советник работает ни так, я не специалист в этом деле, но попытался что-то реализовать, в основе четыре индикатора, но интересует Williams’ Percent Range (%R) или Процентный Диапазон Вильямса, таких два с разными периодами, позиция на покупку должна произойти когда значение индикаторов снизу вверх пройдут уровень -85 дальше уровень -75 здесь и открытие позиции при условии, что
один из индикаторов не привысил уровень >-35.
Вот здесь такое условие не выполняется, здесь рассогласование индикаторов но открывается позиция на продажу почему не могу разобраться: