Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1682 1...167516761677167816791680168116821683168416851686168716881689...2747 Новый комментарий Nerd Trader 2021.10.18 22:25 #16811 Переделал немного, вместо главного цикла for теперь do while, но все равно нет вхождения в первое условие во втором вложенном цикле! int GetMagic(Order &order) { int magic = 0; int unique = 0; if(order.cmd == OP_SELLSTOP || order.cmd == OP_BUYSTOP){ if(OrdersTotal()){ do{ magic++; for(int i = OrdersTotal(); i > 0 ; i --){ if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){ Print( "!!!!!!!!!!!!!!!!!!!");//<----------НЕ ПРИНТУЕТСЯ if(magic != OrderMagicNumber()) unique ++; } } }while(unique < OrdersTotal()); }else return (magic + 1); } return magic; } Vitaly Muzichenko 2021.10.18 22:49 #16812 MakarFX #: Да ты что?!))) Пробовал? У меня так давно работает смена цвета, но не на линии, хотя должно быть без разницы if(SymOpen < SymClose) { CColor=Mirroring?BearBarColor:BullBarColor; SetIndexStyle(32+(num*8),DRAW_HISTOGRAM,STYLE_SOLID,Mirroring?1:WidthOC,CColor); SetIndexLabel(32+(num*8), SubSymbol); SetIndexStyle(33+(num*8),DRAW_HISTOGRAM,STYLE_SOLID,Mirroring?WidthOC:1,CColor); SetIndexLabel(33+(num*8), SubSymbol); SetIndexStyle(34+(num*8),DRAW_HISTOGRAM,STYLE_SOLID,Mirroring?WidthOC:1,CColor); SetIndexLabel(34+(num*8), SubSymbol); SetIndexStyle(35+(num*8),DRAW_HISTOGRAM,STYLE_SOLID,Mirroring?1:WidthOC,CColor); SetIndexLabel(35+(num*8), SubSymbol); PS. Посмотрел другой свой код, там меняет цвет линии SetIndexStyle(num,DRAW_LINE,STYLE_SOLID,1,BullColor); Tretyakov Rostyslav 2021.10.18 23:01 #16813 Vitaly Muzichenko #: У меня так давно работает смена цвета, но не на линии, хотя должно быть без разницы PS. Посмотрел другой свой код, там меняет цвет линии SetIndexStyle(num,DRAW_LINE,STYLE_SOLID,1,BullColor); Меняет всю линию, а не нужный участок Vitaly Muzichenko 2021.10.18 23:02 #16814 MakarFX #: Меняет всю линию, а не нужный участок Ну так он написал, что нужно менять всю линию Nerd Trader 2021.10.18 23:06 #16815 Итак, я адаптировал код для теста, попробуйте запустить и вы получите на втором ордере бесконечный цикл :( Файлы: endless_cycle.mq4 2 kb Vitaly Muzichenko 2021.10.18 23:13 #16816 Nerd Trader #: Итак, я адаптировал код для теста, попробуйте запустить и вы получите на втором ордере бесконечный цикл :( Я удивляюсь! Почему? Зачем это, какой в нём сакральный смысл? int GetMagic(Order &order) { int magic = 0; int unique = 0; if(order.cmd == OP_SELLSTOP || order.cmd == OP_BUYSTOP){ if(OrdersTotal()){ do{ magic++; for(int i = OrdersTotal(); i > 0 ; i --){ if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){ Print( "!!!!!!!!!!!!!!!!!!!");//<----------НЕ ПРИНТУЕТСЯ if(magic != OrderMagicNumber()) unique ++; } } }while(unique < OrdersTotal()); }else return (magic + 1); } return magic; } --- Вы ведёте поиск по количеству, ну так и ведите. Если у вас 2 ордера, то по ним он и пройдёт, при этом не сможет отыскать 3-й, или 23-й --- Видимо, вы не совсем точно излагаете задачу, поэтому такое решение HUMATA AI Вопрос к разработчикам MQL4 Online торговля по Волновой [Удален] 2021.10.18 23:18 #16817 Nerd Trader #: неправильно задан цикл: for(int i = OrdersTotal(); i > 0 ; i --){ надо так: for(int i = OrdersTotal()-1; i >= 0 ; i --){ Nerd Trader 2021.10.18 23:42 #16818 Aleksei Stepanenko #: неправильно задан цикл: надо так: Да! Работает! Но почему ранее все же происходило вхождение в второй цикл for и если вставить следующей строкой Print() - она выполняться будет (бесконечно) но дальше не пойдет? В любом случае спасибо, теперь можно хоть пойти поспать. Советник для каждой валютной Странное поведение оператора WHILE [АРХИВ]Любой вопрос новичка, чтоб Nerd Trader 2021.10.18 23:44 #16819 Vitaly Muzichenko #: Я удивляюсь! Почему? Зачем это, какой в нём сакральный смысл? --- Вы ведёте поиск по количеству, ну так и ведите. Если у вас 2 ордера, то по ним он и пройдёт, при этом не сможет отыскать 3-й, или 23-й --- Видимо, вы не совсем точно излагаете задачу, поэтому такое решение просто маджик должен быть уникальным, то есть не иметь совпадений с остальными. Valeriy Yastremskiy 2021.10.19 08:23 #16820 Aleksei Stepanenko #: неправильно задан цикл: надо так: А в чем разница? И разве нумерация ордеров с нуля, а не с единицы? 1...167516761677167816791680168116821683168416851686168716881689...2747 Новый комментарий
Да ты что?!)))
Пробовал?
У меня так давно работает смена цвета, но не на линии, хотя должно быть без разницы
PS. Посмотрел другой свой код, там меняет цвет линии
У меня так давно работает смена цвета, но не на линии, хотя должно быть без разницы
PS. Посмотрел другой свой код, там меняет цвет линии
Меняет всю линию, а не нужный участок
Меняет всю линию, а не нужный участок
Ну так он написал, что нужно менять всю линию
Итак, я адаптировал код для теста, попробуйте запустить и вы получите на втором ордере бесконечный цикл :(
Я удивляюсь! Почему?
Зачем это, какой в нём сакральный смысл?
---
Вы ведёте поиск по количеству, ну так и ведите.
Если у вас 2 ордера, то по ним он и пройдёт, при этом не сможет отыскать 3-й, или 23-й
---
Видимо, вы не совсем точно излагаете задачу, поэтому такое решение
неправильно задан цикл:
надо так:
неправильно задан цикл:
надо так:
Я удивляюсь! Почему?
Зачем это, какой в нём сакральный смысл?
---
Вы ведёте поиск по количеству, ну так и ведите.
Если у вас 2 ордера, то по ним он и пройдёт, при этом не сможет отыскать 3-й, или 23-й
---
Видимо, вы не совсем точно излагаете задачу, поэтому такое решение
неправильно задан цикл:
надо так:
А в чем разница? И разве нумерация ордеров с нуля, а не с единицы?