[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 255

 
NEKSUS_ >>:

Добрый день господа, снова прошу помощи с скриптом удоления объектов.

Скрипт удоляет несколько объектов по имени, но при запуске выскакивает добрая сотня ошибок (точнее, одна и та же, но много раз) подсобите плз.


я так понимаю, сей затейливый код призван удалять с графика все объекты, в названии которых есть цифра? ну, тогда поставьте перед всеми if, кроме первого, еще и else. А то у Вас индекс х уже на первой итерации в область отрицательных значений проваливается.

 
NEKSUS_ >>:

Добрый день господа, снова прошу помощи с скриптом удоления объектов.

Скрипт удоляет несколько объектов по имени, но при запуске выскакивает добрая сотня ошибок (точнее, одна и та же, но много раз) подсобите плз.


цикл заменить на for (int x = ObjectsTotal(); x>0 ; x--) (только поправить на предмет косячков, типа больше или равно и от количества объектов отнять единичку) и убрать все "x--;" в ифах

 
dmmikl86 >>:

помогите разукрасить индикатор, хочу чтобы если значение растет зеленый, падает - красный

вот код:


вот вам в помощь

https://www.mql5.com/ru/articles/1451

Реализация трёхцветных индикаторов и некоторые возможности для максимального упрощения написания индикаторов

 
alsu >>:

я так понимаю, сей затейливый код призван удалять с графика все объекты, в названии которых есть цифра? ну, тогда поставьте перед всеми if, кроме первого, еще и else. А то у Вас индекс х уже на первой итерации в область отрицательных значений проваливается.


  Не провалится, найти объект по отрицательному индексу очень сложно, точнее может провалиться, но максимум на единичку.
 

Уважаемые ПРОФИ помогите. По идее советник должен создать ордер и снова создать такой-же, если этого ордера не станет. Но так не происходит?

//--------------------------------------------------------------- 0 ----------------

int start() // Спец.функция start

{

int H=100; // Заданное время - секунда

int Dist=10; // Заданный TP и SL

double Lot =1; // Заданный лот

//--------------------------------------------------------------- 1 ----------------

double i=0.001;

double Cena=NormalizeDouble(Ask,3); // Нормализуем цену

double Price=NormalizeDouble(Cena+i,5); // Находим цену

double TP=Price+Dist*Point; // Находим ТР

double SL=Price-Dist*Point; // Находим SL

int x=1; // Первое условие

int y=1; // Второе условие

//--------------------------------------------------------------- 2 ----------------

for (int pos=1; pos<=OrdersTotal(); pos++) // цикл перебора всех ордеров

{ if (OrderSelect(pos-1,SELECT_BY_POS)==true) // выделим ордер

{ if (OrderTakeProfit()==TP)

{ Alert("Сработал х");

x=2;

break;

}

}

else Print("Ошибка ", GetLastError(), " при выборе ордера номер ", pos);

}

//--------------------------------------------------------------- 3 ----------------

for (pos=1; pos<=OrdersTotal(); pos++) // цикл перебора всех ордеров

{ if (OrderSelect(pos-1,SELECT_BY_POS)==true) // выделим ордер

{ if (OrderOpenPrice()==Price)

{ Alert("Сработал y");

y=2;

break;

}

}

else Print("Ошибка ", GetLastError(), " при выборе ордера номер ", pos);

}

//--------------------------------------------------------------- 4 ----------------

if (x==2&&y==2)

{ Alert("Такой ордер уже есть!!!");}

else { Alert("отправлен ордер ",Symbol()," BUYSTOP ", Price," Ожидание ответа...");

OrderSend(Symbol(), OP_BUYSTOP, Lot, Price, 0, SL, TP);

}

Sleep(H*60); // Ждём 60 секунд

RefreshRates();

//--------------------------------------------------------------- 5 -------------------

Alert ("Скрипт закончил работу -----------------------------");

return; // Выход из start()

}

 

Люди, установил я МТ4 (от forex4you), тестирую стратегии, а котировки М1 у меня только с 2.09.2009, загрузить через сервис-архив котировок нет получается, 

подскажите, где можно скачать архив котировок хотя бы за 2009 год? Еще один момент, когда в тестере стратегий выставляешь дату, котировки автоматически не загружаются.

 
albon >>:

Люди, установил я МТ4 (от forex4you), тестирую стратегии, а котировки М1 у меня только с 2.09.2009, загрузить через сервис-архив котировок нет получается,

подскажите, где можно скачать архив котировок хотя бы за 2009 год? Еще один момент, когда в тестере стратегий выставляешь дату, котировки автоматически не загружаются.

Попробуй установить MT4 от другово ДЦ. (т.е. другой MT4)

 

Уважаемые ПРОФИ помогите. По идее советник должен создать ордер и снова создать такой-же, если этого ордера не станет. Но так не происходит?

Он создаёт ордера постоянно - бесконечно.


 
VII >>:

Уважаемые ПРОФИ помогите. По идее советник должен создать ордер и снова создать такой-же, если этого ордера не станет. Но так не происходит?

//--------------------------------------------------------------- 0 ----------------


double Cena=NormalizeDouble(Ask,3); // Нормализуем цену

Он не сможет создать такой-же ордер, потому что Ask постоянно на каждом тике меняется. А все остальные параметры и их сравнения в условиях вычисляются от этой переменной.

 
VII >>:

Уважаемые ПРОФИ помогите. По идее советник должен создать ордер и снова создать такой-же, если этого ордера не станет. Но так не происходит?


Чтоб советник/скрипт мог открыть точно такой же ордер, как и тот, что установлен, есть 2 пути. Первое, установить ордер и все его параметры вписать в переменные, которые будут их хранить. Если ордера не стало, то вколючаем режим ожидания. Как только наступят условия, при которых можно выставить ордер с этими параметрами, то открываем ордер.

Второе. Как только ордера в рынке не стало, проходим по истории и отыскиваем самый последний ордер. Записываем его параметры и как и в первом случае, включаем режим ожидания.

Только вот что хочу сказать. Если логику работы программы строить именно так как Вы описали и я тут пояснил, то все ордера будут ждать одного и того же горизонтального уровня. Оно Вам надо?

Причина обращения: