//--------------------------------------------------------------- 4 -- // Учёт ордеров Symb=Symbol(); // Название фин.инстр. Total=0; // Количество ордеров for(int i=1; i<=OrdersTotal(); i++) // Цикл перебора ордер { if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий { // Анализ ордеров: if (OrderSymbol()!=Symb)continue; // Не наш фин. инструм if (OrderType()>1) // Попался отложенный { Alert("Обнаружен отложенный ордер. Эксперт не работает."); return; // Выход из start() } Total++; // Счётчик рыночн. орд if (Total>1) // Не более одного орд { Alert("Несколько рыночных ордеров. Эксперт не работает."); return; // Выход из start() } Ticket=OrderTicket(); // Номер выбранн. орд. Tip =OrderType(); // Тип выбранного орд. Price =OrderOpenPrice(); // Цена выбранн. орд. SL =OrderStopLoss(); // SL выбранного орд. TP =OrderTakeProfit(); // TP выбранного орд. Lot =OrderLots(); // Количество лотов } }
Это Я разобрал что он их перебирает, Я не понял почему Total=0 это 1 в списке ордеров (знаю что их номера начинаются с 0) но не могу понять почему Total это переменная которую мы задаем в начале:
int
Total, // Количество ордеров в окне
здесь у нас получает значение 0 и начинает быть 1 ордером в списке?
Простите за безграмотность языка MQL4!
Total++;
то же самое что
Total=Total+1;
или ещё вариант
Total+=1;
Я понимаю что он их добавляет, это просто, но почему переменная Total =0 - это №1 в списке ордеров открытых или отложенных (без разницы)
Это Я разобрал что он их перебирает, Я не понял почему Total=0 это 1 в списке ордеров (знаю что их номера начинаются с 0) но не могу понять почему Total это переменная которую мы задаем в начале:
Total, // Количество ордеров в окне
здесь у нас получает значение 0 и начинает быть 1 ордером в списке?
Простите за безграмотность языка MQL4!
вы наверное путаете количество позиций и номер позиций
тикет номер позиции
тотал это количество позиций
total начинает считать ордера, если у них тип не > 1, т.е 0 и 1
тип буй=0, селл=1, если тип не > 1 , то это позиции
//--------------------------------------------------------------- 4 -- // Учёт ордеров Symb=Symbol(); // Название фин.инстр. Total=0; // Количество ордеров for(int i=1; i<=OrdersTotal(); i++) // Цикл перебора ордер { if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий { // Анализ ордеров: if (OrderSymbol()!=Symb)continue; // Не наш фин. инструм if (OrderType()>1) // Попался отложенный { Alert("Обнаружен отложенный ордер. Эксперт не работает."); return; // Выход из start() } Total++; // Счётчик рыночн. орд // if (Total>1) // Не более одного орд { Alert("Несколько рыночных ордеров. Эксперт не работает."); return; // Выход из start() } Ticket=OrderTicket(); // Номер выбранн. орд. Tip =OrderType(); // Тип выбранного орд. Price =OrderOpenPrice(); // Цена выбранн. орд. SL =OrderStopLoss(); // SL выбранного орд. TP =OrderTakeProfit(); // TP выбранного орд. Lot =OrderLots(); // Количество лотов } }
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
При изучении учебника по MQL4 не могу разобраться с учетом ордеров в статье Простой Эксперт tradingexpert.mq4 в блоке 4. Почему Total=0 и нигде больше он не ссылается на общее кол-во ордеров?