- FOREX - Тенденции, прогнозы и следствия (Эпизод № 13: март 2012)
- [АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5.
- OrderSelect и его повторный вызов
Открыл ордер вручную, как скрипт может его выбрать? Всё, вот так вот тупо и понятно...
ну как по позиции его заселекти и все будет ок, хотя это не самый сок. Если у тебя их будет много явно накосячиш.
if ( OrderSelect (i, SELECT_BY_POS) == true ) continue; if ( OrderSymbol()==Symbol()) continue; if((OrderType() == OP_BUY || OrderType() == OP_BUYSTOP)) { ...
Что то вроде этого?... Если да, то не выбирает он нифига.
OrderSelect(0,SELECT_BY_POS,MODE_TRADES);Попробуй это, если у тебя 1 ордер!
cloud666 писал (а):
OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
Попробуй это, если у тебя 1 ордер!
cloud666
Не думаю, что это решит проблему, не важно сколько у меня ордеров, предположим, что один, то в цикле из предпологаемого множества - один он должен выбрать? Даже если у меня один ордер...
Inter
писал (а):if ( OrderSelect (i, SELECT_BY_POS) == true ) continue; if ( OrderSymbol()==Symbol()) continue; if((OrderType() == OP_BUY || OrderType() == OP_BUYSTOP)) { ...
Что то вроде этого?... Если да, то не выбирает он нифига.
Попробуй вот так.
if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES))continue; if(OrderSymbol()!=Symbol()) continue;
Не знаю почему, но не работает...
Вот в принципе сам код:
for(int ior=0;ior<OrdersTotal();ior++) // перебор начинаем ордеров { if ( OrderSelect (ior, SELECT_BY_POS) == true ) continue; if ( OrderSymbol()==Symbol()) continue; //нам нужно что бы он соответствовал символу if((OrderType() == OP_BUY || OrderType() == OP_BUYSTOP)) { buystat=1; //открыт ордер в BUY } if((OrderType() == OP_SELL || OrderType() == OP_SELLSTOP)) { sellstat =1; //открыт ордер в SELL } }
Не знаю почему, но не работает...
Вот в принципе сам код:
for(int ior=0;ior<OrdersTotal();ior++) // перебор начинаем ордеров { if ( OrderSelect (ior, SELECT_BY_POS) == true ) continue; if ( OrderSymbol()==Symbol()) continue; //нам нужно что бы он соответствовал символу if((OrderType() == OP_BUY || OrderType() == OP_BUYSTOP)) { buystat=1; //открыт ордер в BUY } if((OrderType() == OP_SELL || OrderType() == OP_SELLSTOP)) { sellstat =1; //открыт ордер в SELL } }
Так и не будет работать конструкция с OrderSelect() если ордер выбран,
возвращает true и оператор continue начинает следующую итеррацию
цикла for.
Скопируй аналогичные строки из моего примера выше в свой код и посмотри внимательно чем они отличаются.
Не знаю почему, но не работает...
Обратите внимание на оператор continue.
В MQL4 оператор continue прекращает исполнение текущей итерации ближайшего оператора цикла while или for. Результатом выполнения оператора continue является переход к следующей итерации ближайшего оператора цикла while или for.
В некоторых других языках оператор continue передаёт управление следующему ниже оператору.
Не знаю, заменил, вставил,... не работает. Ну не показывают мне переменные buystat и sellstat еденицу!
У меня работает только, что проверил. Смотрите у себя внимательнее.
Есть ли по символу открытые/отложенные ордера?
int start() { int buystat,sellstat; //---- for(int ior=0;ior<OrdersTotal();ior++) // перебор начинаем ордеров { if ( !OrderSelect (ior, SELECT_BY_POS) == true ) continue; if ( OrderSymbol()!=Symbol()) continue; //нам нужно что бы он соответствовал символу if((OrderType() == OP_BUY || OrderType() == OP_BUYSTOP)) { buystat=1; //открыт ордер в BUY } if((OrderType() == OP_SELL || OrderType() == OP_SELLSTOP)) { sellstat =1; //открыт ордер в SELL } } Print("buystat=",buystat,"; sellstat=",sellstat); //---- return(0); }
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования