Хотел чтобы на каждом 5ом баре работал. Реализация не удачна?
datetime newbar=0;
int cnt=0;
if(newbar!=time[i])
{
newbar=time[i]; cnt++;
}
if(cnt==5)
{
Print("Ok"); cnt=0;
}
Незнаю как применить. выдает переменная тайм не определена. она тоже типа дейттайм должна быть?C-подобный:datetime newbar=0; int cnt=0; if(newbar!=time[i]) { newbar=time[i]; cnt++; } if(cnt==5) { Print("Ok"); cnt=0; }
Покажи куда ты это вставил.Незнаю как применить. выдает переменная тайм не определена. она тоже типа дейттайм должна быть?
Покажи куда ты это вставил.
void VremayTorgovly()
{
if(Vremytorg==0)// енум :открытие только одной сделки
{
if(OrdersTotal()==0)
{
TORGOVLAY();
}
}
if(Vremytorg==1)//енум :открытие только в заданное время
{
if(TimeHour(TimeCurrent())==Uhr)
TORGOVLAY();
}
if(Vremytorg==2)//енум открытие на новом баре
{
if(f_IsNewBar()==true)
TORGOVLAY();
}
if(Vremytorg==3)//енум открытие на ном баре
{
datetime newbar=0;
int cnt=0;
if(newbar!=time[i])
{
newbar=time[i];
cnt++;
}
if(cnt==5)
{
TORGOVLAY();
Print("Ok");
cnt=0;
}
};
Как-то так
//--- global parameters
datetime newbar=0;
int cnt=0;
//+------------------------------------------------------------------+
void OnTick()
{
if(newbar!=time[0])
{
newbar=time[0]; cnt++;
}
}
//+------------------------------------------------------------------+
void VremayTorgovly()
{
if(Vremytorg==0)// енум :открытие только одной сделки
{
if(OrdersTotal()==0)
{
TORGOVLAY();
}
}
if(Vremytorg==1)//енум :открытие только в заданное время
{
if(TimeHour(TimeCurrent())==Uhr)
TORGOVLAY();
}
if(Vremytorg==2)//енум открытие на новом баре
{
if(f_IsNewBar()==true)
TORGOVLAY();
}
if(Vremytorg==3&&cnt==5)//енум открытие на ном баре
{
TORGOVLAY();
cnt=0;
}
Как-то так
С полным кодом было бы точнееC-подобный://--- global parameters datetime newbar=0; int cnt=0; //+------------------------------------------------------------------+ void OnTick() { if(newbar!=time[0]) { newbar=time[0]; cnt++; } } //+------------------------------------------------------------------+ void VremayTorgovly() { if(Vremytorg==0)// енум :открытие только одной сделки { if(OrdersTotal()==0) { TORGOVLAY(); } } if(Vremytorg==1)//енум :открытие только в заданное время { if(TimeHour(TimeCurrent())==Uhr) TORGOVLAY(); } if(Vremytorg==2)//енум открытие на новом баре { if(f_IsNewBar()==true) TORGOVLAY(); } if(Vremytorg==3&&cnt==5)//енум открытие на ном баре { TORGOVLAY(); cnt=0; }
extern int N =5;//На этом баре открывать сделки
if(Vremytorg==3)//енум открытие на ном баре
{
datetime newbar=0;
int cnt=0;
if(newbar!=Time[0])
{
newbar=Time[0];
cnt++;
}
if(cnt==5)
{
TORGOVLAY();
Print("Ok");
cnt=0;
}
}
А к ним есть обращение?Принты не поялвяются
Print("Ok");А к ним есть обращение?
"Print("Ok");" находится внутри "void VremayTorgovly()"Print("Ok");
//+------------------------------------------------------------------+
void OnTick()
{
if(newbar!=time[0])
{
newbar=time[0]; cnt++;
}
VremayTorgovly();
}
//+------------------------------------------------------------------+
в онтике вс работает"Print("Ok");" находится внутри "void VremayTorgovly()"
добавь "VremayTorgovly();" в "OnTick()"
C-подобный://+------------------------------------------------------------------+ void OnTick() { if(newbar!=time[0]) { newbar=time[0]; cnt++; } VremayTorgovly(); } //+------------------------------------------------------------------+
Все функции, который ты создаешь, для работы надо вызывать,в онтике вс работает
Все функции, который ты создаешь, для работы надо вызывать,
а вызвать можно или на тике через "OnTick()" или по таймеру
через "OnTimer()"
void OnTick()
{
Biblioteka();
}
Тогда проверь "Biblioteka();" чтобы не было каких-то ограничений доступа к функциям.я обяно так делаю. А в этой функции уже все остальные.Код:void OnTick() { Biblioteka(); }
Зачем так делать? Это лишнее.Это работает. Боюсь если я добавлю вторую часть будет возвращать мне 0:Код:int Nbar() { if(newbar!=Time[0]) { newbar=Time[0]; cnt++; } return(cnt); };
Зачем так делать? Это лишнее.
if(Vremytorg==3)//енум открытие на ном баре
{
if(f_IsNewBar()==true&&cnt == 5)
TORGOVLAY();
}
Здесь правильно, а "int Nbar()" не нужно делать.а потом вот так.Код:if(Vremytorg==3)//енум открытие на ном баре { if(f_IsNewBar()==true&&cnt == 5) TORGOVLAY(); }
if(f_IsNewBar()) - значит =true
if(!f_IsNewBar()) - значит =false
Почему не нужно? У меня по другому не работало. Мне нужно было реализация через пользовательскую функцию. Мне казалось что так менее громоздки код будет и быстрее.Здесь правильно, а "int Nbar()" не нужно делать.