Измените на
for(cnt=0;cnt<OrdersTotal();cnt++)
Перебор то не идёт. Ваш total ничему не равен.
поменял. выдается ошибка при компилировании выдает ошибку!
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) { if(OrderType()<=OP_SELL && OrderSymbol()==Symbol()&&OrderCloseTime()==0)Было - ОрдереСелект выбирал все ордера, в том числе и закрытые.
Стало - ставим начало блока (конец соотвественно).
Было - не проверялось время закрытия ордера.
Стало - проверяем если равно нулю то ордер еще не закрыт.
Измените на
for(cnt=0;cnt<OrdersTotal();cnt++)
Перебор то не идёт. Ваш total ничему не равен.
поменял. выдается ошибка при компилировании выдает ошибку!
Проверил, все нормально
Измените на
for(cnt=0;cnt<OrdersTotal();cnt++)
Перебор то не идёт. Ваш total ничему не равен.
поменял. выдается ошибка при компилировании выдает ошибку!
Проверил, все нормально
выложи пожалуйста получившийся вариант. что-то не могу сообразить в чем дело.
Измените на
for(cnt=0;cnt<OrdersTotal();cnt++)
Перебор то не идёт. Ваш total ничему не равен.
поменял. выдается ошибка при компилировании выдает ошибку!
Проверил, все нормально
выложи пожалуйста получившийся вариант. что-то не могу сообразить в чем дело.
проверил на демо счете. при возникновении условия закрытия позиция не срабатывает!
Речи не было о правке кода. Возник вопрос что при компиляции вылетает ошибка. Я проверил, ошибок не было. А что в логику засунули, то это уже к автору то бишь к вам.
проверил на демо счете. при возникновении условия закрытия позиция не срабатывает!
Речи не было о правке кода. Возник вопрос что при компиляции вылетает ошибка. Я проверил, ошибок не было. А что в логику засунули, то это уже к автору то бишь к вам.
Вообще я в курсе, что код не выдает ошибки. Большое спасибо что напомнили!??
А вопрос звучал, если вы читали тему?!, в коде явно алгоритмическая ошибка, а в чем она
заключается я просил помоч разобраться!
проверил на демо счете. при возникновении условия закрытия позиция не срабатывает!
Речи не было о правке кода. Возник вопрос что при компиляции вылетает ошибка. Я проверил, ошибок не было. А что в логику засунули, то это уже к автору то бишь к вам.
Вообще я в курсе, что код не выдает ошибки. Большое спасибо что напомнили!??
А вопрос звучал, если вы читали тему?!, в коде явно алгоритмическая ошибка, а в чем она
заключается я просил помоч разобраться!
Тогда давай порассуждаем. В основе индикатора "FractalChannel_v1" вернее всего используются значения фрактала. Но существование фрактала можно проверить только на 3 баре, если конечно текущий 0. Других замечаний по логике нету. И еще, так как у меня этого индикатора нет, то я не знаю какие он значения возвращает, и естественно проверить работу индикатора, на котором все построено не могу.
Да, еще. Сделай для проверки
for(cnt=0;cnt<total;cnt++) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if(OrderType()<=OP_SELL && OrderSymbol()==Symbol()) { if(OrderType()==OP_BUY) // длинная позиция открыта { // условие закрытие длинной позиции Print("закрытие длинной позиции: Fr_down1=",Fr_down1,"Fr_down0=",Fr_down0); if(Fr_down1>Fr_down0) { OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); return(0); } } else { // условие закрытия короткой позиции Print("закрытие короткой позиции: Fr_up1=",Fr_up1,"Fr_up0=",Fr_up0); if(Fr_up1<Fr_up0) { OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); return(0); } } } }С помощью принтов сможет понять почему не раьотает.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
здравствуйте.
Я попытался написать советник который только бы управлял открытими позициями
(открытие происходит к ручную). Советник основывается на индикаторе FractalChannel.
Но при написании столкнулся с проблемой: куда девать куски кода открытия позиций. И я их
просто механически удалил. Но то что получилось совершенно не работает, хотя компилируется (непосредственных ошибок нет). Подскажите где ошибки. Может таких советникиков не бывает?