intrade: Беда походу в том что при смене тайм фрейма, происходит пре инициализация эксперта, что влечёт за собой кучу пустых переменных. И если они пустые, значит якобы сделок нет и нужно открывать новые.
Спрашивается, какого хрена надо менять таймфрейм при работающем советнике? Установите себе табу - поставил советник, забыл про график; надо что-то посмотреть, открыл новый график и делай с ним, что хочешь.
intrade: Беда походу в том что при смене тайм фрейма, происходит пре инициализация эксперта, что влечёт за собой кучу пустых переменных. И если они пустые, значит якобы сделок нет и нужно открывать новые.
Пользуйтесь таймсериями типа, например:
iClose
Возвращает значение цены закрытия бара (указанного параметром shift) соответствующего графика.
double iClose( stringsymbol, // символ inttimeframe, // период intshift // сдвиг );
И меняйте сколько угодно таймфрем! Загляните в Доку, там всё для вас!
ClanVi: Замедляют ли Print,ы оптимизацию советника или они не обрабатываются?
Да замедляют, любая строка кода требует процессоро-времени, а код который делает сообщения или работает с графическими обьектами значительно замедляют выполнение программ...
Да замедляют, любая строка кода требует процессоро-времени, а код который делает сообщения или работает с графическими обьектами значительно замедляют выполнение программ...
Графические обьекты ведь игнорятся в оптимизаторе и тестере если не визуал режим, а вот принты мне интересно...
Всем доброго дня. Господа подскажите что делать с ошибкой "Error 6" нет связи с сервером, но тики идут и всё вроде как надо.... Совы на тесте... сегодня встал и вот тебе тут..... там 4 совы 5М 15М 30М 1Н такую вот ошибку выкинуло в логах по М5 М15 М30 все в разное время и цену.... у кого есть опыт с таким моментом помогите. Спасибо.
Так никто и не ответил на мой вопрос, заданный еще на стр 644. Видимо, я как-то не так спросил, спрошу-ка еще раз. Итак,
Метатрейдер бильд 646, редактор бильд 934. Вот простейший индикатор:
class CDebuggerFix { } ExtDebuggerFix; //Это заклинание, исправляющее известный баг.
void start()
{
int i=10,
k3;
string k2;
while(i>=1)
{
k2=Symbol();
if (k2=="EURUSD") k3=3;
if (k2=="USDCHF") k3=4;
if ((k2=="EURUSD"||k2=="USDCHF")!=True) k3=5;
Alert("k2=",k2,"\n","k3=",k3);
i--;
}
return;
}
Запускаю его на графике EURUSD, M1, и вот что получается:
Т.е. все так, как и должно быть.
А теперь делаю точку останова перед Alert и запускаю Отладчик:
Появляется график USDCHF,H1. Откуда он берется? Открыт был только EURUSD, M1.
Нажимаю OK, и вот что вижу:
Т.е. индикатор берет данные именно из этого USDCHF,H1. В чем здесь дело?
Второй вопрос. Написанный скрипт Редактор кладет не в папку Scriptsв каталоге, а в папку MQL4, и туда же помещает скомпилированный файл. Приходится вручную перетаскивать исходник в папку Scripts, после этого компилировать, и только тогда скрипт появляется в Навигаторе. С индикаторами такой бяки нет, они сразу попадают в свою папку. Я что-то не так делаю, или это Редактор ошибается?
Мастера кодирования, кто поможет? Есть необходимость получить координаты(время, цена) прямоугольников с других таймфреймов. Какой функцией это можно сделать?
Беда походу в том что при смене тайм фрейма, происходит пре инициализация эксперта, что влечёт за собой кучу пустых переменных. И если они пустые, значит якобы сделок нет и нужно открывать новые.
Спрашивается, какого хрена надо менять таймфрейм при работающем советнике? Установите себе табу - поставил советник, забыл про график; надо что-то посмотреть, открыл новый график и делай с ним, что хочешь.
Беда походу в том что при смене тайм фрейма, происходит пре инициализация эксперта, что влечёт за собой кучу пустых переменных. И если они пустые, значит якобы сделок нет и нужно открывать новые.
Пользуйтесь таймсериями типа, например:
iClose
Возвращает значение цены закрытия бара (указанного параметром shift) соответствующего графика.
double iClose(
string symbol, // символ
int timeframe, // период
int shift // сдвиг
);
И меняйте сколько угодно таймфрем! Загляните в Доку, там всё для вас!
Замедляют ли Print,ы оптимизацию советника или они не обрабатываются?
Да замедляют, любая строка кода требует процессоро-времени, а код который делает сообщения или работает с графическими обьектами значительно замедляют выполнение программ...
Замедляют ли Print,ы оптимизацию советника или они не обрабатываются?
Этого очень легко избежать! Когда код проверен в тестере, ставьте перед Print'ом или Comment'ом
if(!IsOptimization() || !IsTesting())И не будет строчить!
Да замедляют, любая строка кода требует процессоро-времени, а код который делает сообщения или работает с графическими обьектами значительно замедляют выполнение программ...
Не работает Отладчик – в чем дело?
Наилучшие пожелания всем участникам Форума!
Так никто и не ответил на мой вопрос, заданный еще на стр 644. Видимо, я как-то не так спросил, спрошу-ка еще раз. Итак,
Метатрейдер бильд 646, редактор бильд 934. Вот простейший индикатор:
class CDebuggerFix { } ExtDebuggerFix; //Это заклинание, исправляющее известный баг. void start() { int i=10, k3; string k2; while(i>=1) { k2=Symbol(); if (k2=="EURUSD") k3=3; if (k2=="USDCHF") k3=4; if ((k2=="EURUSD"||k2=="USDCHF")!=True) k3=5; Alert("k2=",k2,"\n","k3=",k3); i--; } return; }Запускаю его на графике EURUSD, M1, и вот что получается:
Т.е. все так, как и должно быть.
А теперь делаю точку останова перед Alert и запускаю Отладчик:
Появляется график USDCHF,H1. Откуда он берется? Открыт был только EURUSD, M1.
Нажимаю OK, и вот что вижу:
Т.е. индикатор берет данные именно из этого USDCHF,H1. В чем здесь дело?
Второй вопрос. Написанный скрипт Редактор кладет не в папку Scripts в каталоге, а в папку MQL4, и туда же помещает скомпилированный файл. Приходится вручную перетаскивать исходник в папку Scripts, после этого компилировать, и только тогда скрипт появляется в Навигаторе. С индикаторами такой бяки нет, они сразу попадают в свою папку. Я что-то не так делаю, или это Редактор ошибается?
Да сопутствует удача тому, кто мне ответит.
Не работает Отладчик – в чем дело?
В метаедиторе Сервис - Настройки, вкладка "Отладка" что выставлено?