а смысл? Судя по датам, которые вы вынесли в настройки, могу предположить, что хотите высчитывать индикатор(или запускать советник) только один раз в сутки. Если это так, то можно сделать так:
datetime bar; int init() { ... bar=0; ... } int start() { ... if(bar<iTime(Symbol(),Period(),0)) { //новый бар - делаем что нужно //... } bar=iTime(Symbol(),Period(),0); }
Если ошибаюсь, то поясните.
советник я хочу запустить "полном автомате" (запустить один раз и токо корректировать коэффициенты при необходимости) те я хочу создать робот, а смысл в том что для расчета нужна цена опена И (ИЛИ) клоза (таковы формулы для расчетов они взяты из торговли на фондовых рынках ...( ВОЗМОЖЕН просто вариант с выборкой цены по времени допустим каждый день в 00 часов тк гепа нет . Спасибо за отклик утром сяду изучать вашу подсказку.
Дмитрий
ВСЕ СПРАВИЛСЯ!
double MIN, MAX, LAST, OP, ZAKR ;
double NZ1, NZ2;
datetime d1; // 17.06.2010 23:59
datetime d2; // 18.06.2010 00:00
// ************************************************
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
MIN=MarketInfo("EURUSD",1);
MAX=MarketInfo("EURUSD",2);
LAST=MarketInfo("EURUSD",10);
d1=StrToTime("17.06.2010 23:59");
d2=StrToTime("18.06.2010 00:00");
int d3; // последнее время сервера в секундах
int R1; // разница в днях
int R2; // разница в днях
d3 = TimeCurrent();
R1 = (d3-d1)/86400;
R2 = (d3-d2)/86400;
d1 = d1 + 86400 * R1;
d2 = d2 + 86400 * R2;
NZ1=iBarShift("EURUSD",0,d1); //Определяем номер бара по времени
ZAKR=iClose("EURUSD",0,NZ1);
NZ2=iBarShift("EURUSD",0,d2); //Определяем номер бара по времени
OP=iOpen("EURUSD",0,NZ2);
Comment(ZAKR,OP,MAX,MIN); //Проверка
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день я новичок в программировании на MQL.
3 дня не додумаюсь как зациклить расчеты по датам
чтобы не заводить вручную каждый день.
OP, ZAKR ;
double NZ1, NZ2;
extern datetime DT1=D'17.06.2010 23:59';
extern datetime DT2=D'18.06.2010 00:00';
NZ1=iBarShift("EURUSD",0,DT1); //Определяем номер бара по времени
ZAKR=iClose("EURUSD",0,NZ1);
NZ2=iBarShift("EURUSD",0,DT2);
OP=iOpen("EURUSD",0,NZ2);
Буду признателен за подсказку. Дмитрий