sllawa3: НО ВОПРОС ТО ТАК И ОСТАЛСЯ ОТКРЫТЫМ.. КАК ОБОЙТИ ОШИБКУ СЕЛЕКТА... ЭТО ПРОСТО СЛЯПАЛИ ЭКСПЕРТ С МАССИВОМ... НЕ ВСЕГДА ЖЕ ДЕЛАТЬ ПО ЭТОМУ ШАБЛОНУ..
заместо массивов можно было дофига переменных. В селекте нету ошибки, разница в экспертах в том, что блок перебора ордеров независим от остальной программы. И модификация от удаления тоже не зависит, а у тебя все в месте, чтобы писать все вместе, нужно обладать большим опытом, а ты просто где-то накосячил, проще новый эксперт написать, чем в той каше разбираться.
Короче смотри, если ты не обнуляешь переменные, они нигде больше не обнуляются и ничего в твоем изначальном варианте не работает. Если ты их обнуляешь в конце, то советник работает, но у тебя стоит строка, например if(OrderType() == OP_BUYSTOP&&DB==1){OrderDelete(OrderTicket(),CLR_NONE);return(0);}
и ничего не работает потому, что первым ордером может пойти лимитный, а рыночный только за ним, и это условие никогда не выполнится и отложник не будет удален. Так что твой эксперт работает только тогда, когда последовательность ордеров в терминале находится в соответствии с алгоритмом, такое как ты понял бывает редко за 11 лет 90 сделок открылось, я проверил. Так что вывод - неправильная структура программы, а точнее тотальная зависимость одной итерации при переборе от другой.
Techno: ну да, у себя я ее то поправил, просто в выложенный файл забыл поставить
решил все свои эксперты переписать с массивом.. вот думаю как добавить ещё 2 переменные ордер лот и ордер профит и 2 ордера на байлимит и селлимит
в таблицу перебора ордеров
есть ли ограничения на количество переменных по горизонтали и ордеров по вертикали ? и переменные перед стартом [4] это что количество ордеров или количество переменных в каждом ордере ?
нифигасе тоже самое, совершенно другой эксперт. Пользуйся моим, дополни недостающими деталями
ДА Я НЕ ПРО ИЗНАЧАЛЬНЫЙ А ПРО ТОТ ЧТО СКЛЕИЛ ИЗ ВАШИХ ЧАСТЕЙ.. А ЗА УРОК С МАССИВОМ БОЛЬШОЕ СПАСИБО !
НО ВОПРОС ТО ТАК И ОСТАЛСЯ ОТКРЫТЫМ.. КАК ОБОЙТИ ОШИБКУ СЕЛЕКТА... ЭТО ПРОСТО СЛЯПАЛИ ЭКСПЕРТ С МАССИВОМ... НЕ ВСЕГДА ЖЕ ДЕЛАТЬ ПО ЭТОМУ ШАБЛОНУ..
Короче смотри, если ты не обнуляешь переменные, они нигде больше не обнуляются и ничего в твоем изначальном варианте не работает. Если ты их обнуляешь в конце, то советник работает, но у тебя стоит строка, например if(OrderType() == OP_BUYSTOP&&DB==1){OrderDelete(OrderTicket(),CLR_NONE);return(0);}
и ничего не работает потому, что первым ордером может пойти лимитный, а рыночный только за ним, и это условие никогда не выполнится и отложник не будет удален. Так что твой эксперт работает только тогда, когда последовательность ордеров в терминале находится в соответствии с алгоритмом, такое как ты понял бывает редко за 11 лет 90 сделок открылось, я проверил. Так что вывод - неправильная структура программы, а точнее тотальная зависимость одной итерации при переборе от другой.
НУ ПОНЯТНО ЧТО ГДЕ ТО КОСЯК.. ВОТ И ИСКАЛ ГДЕ..
У ВАС ТОЖЕ ОШИБКА В КОДЕ.. НЕ МОДИФИТ ПОЗЫ БАЙ ТАК ЧТО ЕСЛИ СРАБОТАЛ БАЙ СТОП ТО ОРДЕР ВИСИТ БЕЗ СТОПА И ТЕЙКА И ДРУГИЕ НЕ ОТКРЫВАЮТСЯ
НЕ СНИМАЮТСЯ ДАННЫЕ DB[2]==0 DB[3]==0 ТАК ЖЕ
У ВАС ТОЖЕ ОШИБКА В КОДЕ.. НЕ МОДИФИТ ПОЗЫ БАЙ ТАК ЧТО ЕСЛИ СРАБОТАЛ БАЙ СТОП ТО ОРДЕР ВИСИТ БЕЗ СТОПА И ТЕЙКА И ДРУГИЕ НЕ ОТКРЫВАЮТСЯ
НЕ СНИМАЮТСЯ ДАННЫЕ DB[2]==0 DB[3]==0 ТАК ЖЕ
твоя проблема Слава в том, что ты не приемлешь новых идей.. тебе выдали другой подход и только, а ждешь что тебе готовое решение выдадут на ура..
это ты уж сам решай как бороться с возможными проблемами при работе с ордерами - реквоты, некорректные цены и прочее..
ну да, у себя я ее то поправил, просто в выложенный файл забыл поставить
решил все свои эксперты переписать с массивом.. вот думаю как добавить ещё 2 переменные ордер лот и ордер профит и 2 ордера на байлимит и селлимит
в таблицу перебора ордеров
есть ли ограничения на количество переменных по горизонтали и ордеров по вертикали ? и переменные перед стартом [4] это что количество ордеров или количество переменных в каждом ордере ?