[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 358
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Этот параметр отвечает за цвет стрелки удаления https://docs.mql4.com/ru/trading/OrderDelete - Можно его (параметр) вообще оттуда убрать, тогда стрелка не будет просто отображаться. А если уж стрелка прям так нужна, то лучше перечитать раздел книжки Виды переменных.
К слову, я такой же не особо искушенный в кодировании (некоторые это называют программированием, не различая эти понятия - но это кодирование). И так же залез в справочники и посмотрел что это за штуки такие. Чаще "грызите" справочники и учебники. Как правило, большинство вопросов там описаны. - Так все делают, даже опытные, т.к. не все можно запомнить. Это все справочные материалы.
clDelete - как можно догадаться, cl - color (цвет), Delete - удаление. Цвет удаления.
Спасибо большое за ответ.Я уже удалял переменную clDelete
Но в этом случае компилятор выдает другую ошибку.
'DeleteOrders' - function returns no result C:\Program Files\Alpari NZ MT4\experts\ОТЛОЖЕННИК.mq4 (68, 5)
Как ее исправить.
Всем добрый день!
Пытаюсь воспользоваться в тестере функцией по удалению ВСЕХ отложенных ордеров для тестера из функций Кима
При компиляции выходит ошибка по поводу того,что переменная clDelete не определена.
'clDelete' - variable not defined C:\Program Files\Alpari NZ MT4\experts\ОТЛОЖЕННИК.mq4 (94, 38)
Подскажите пожалуйста - как и где ее нужно определить?
Спасибо.
Во-первых, цикл разверните в обратную сторону:
а функции OrderDelete() дайте то, что она хочет.
Перебор массива:
- если я правильно понял Ваши "хотелки".
Игорь, спасибо большое!
Как я понял, функции специальной нету - значит, перебором.
Игорь, спасибо большое!
Как я понял, функции специальной нету - значит, перебором.
Большое спасибо за оперативный ответ
Цикл развернул.
Выдает теперь другую ошибку
'DeleteOrders' - function returns no result (функция не возвращает никакого результата)
А что еще в качестве передаваемого параметра нужно функции OrderDelete(OrderTicket()) кроме OrderTicket() и кроме цвета стрелки(которая мне не нужна)?
Ваша функция (самописная) DeleteOrders() НИЧЕГО не возвращает! Посмотрите в своём коде - как Вы её вызываете.
Ваша функция (самописная) DeleteOrders() НИЧЕГО не возвращает! Посмотрите в своём коде - как Вы её вызываете.
Вставил в конце кода функции строки возвращающие значение true
Изменил вызов функции
R = DeleteOrders(true);
if(R ==true )
Ticket=OrderSend(Symbol(),OP_SELLSTOP,0.1,iHigh( Symbol (), 0,1)-1500*Point,1,iHigh( Symbol (), 0,1),iHigh( Symbol (), 0,1)-1610*Point,"jfh",123 );//ЕНА
//Ticket=OrderSend(Symbol(),OP_SELLSTOP,0.1,iHigh( Symbol (), 0,1)-1000*Point,1,iHigh( Symbol (), 0,1)+330*Point,iHigh( Symbol (), 0,1)-1100*Point,"jfh",123 );//ЕНА
if (Ticket>0)
X=iHigh( Symbol (), 0,1);
if (OrderSelect (ot-1,SELECT_BY_POS))
if ( OrderType ()==OP_SELLSTOP)
DT = OrderOpenTime ();
}
}
return(0);
void DeleteOrders(string sy="", int op=-1, int mn=-1) {
int i, k=OrdersTotal(), ot;
if (sy=="") sy=Symbol();
for (i = k - 1; i <= 0; i--) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
ot=OrderType();
if (ot==OP_SELLSTOP) {
if (OrderSymbol()==sy && (op<0 || ot==op)) {
if (mn<0 || OrderMagicNumber()==mn)
{
int W = OrderDelete(OrderTicket());
if (W==true)
return(true);
Возвращает ту же ошибку.
'DeleteOrders' - function returns no result (функция не возвращает никакого результата)
Подскажите пожалуйста - в чем моя ошибка.
Спасибо.
Вставил в конце кода функции строки возвращающие значение true
Изменил вызов функции
R = DeleteOrders(true);
if(R ==true )
Про тип функции забыли:
Про тип функции забыли: