star603
Новичок форума
Намекнешь что не так с ней?f_IsNewBar() не позволяет
Намекнешь что не так с ней?f_IsNewBar() не позволяет
А что намекать, f_IsNewBar() = true на открытии бара, после первого тика = false, до нового бараНамекнешь что не так с ней?
Это я понимаю. Но когда на подходящей свече наступает условия открытия открытия не пррисходит.А что намекать, f_IsNewBar() = true на открытии бара, после первого тика = false, до нового бара
Условие на ступает позже, когда f_IsNewBar() = false.Это я понимаю. Но когда на подходящей свече наступает условия открытия открытия не пррисходит.
Пример для Вашего советникаЭто я понимаю. Но когда на подходящей свече наступает условия открытия открытия не пррисходит.
datetime newbar=0;
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
if(newbar!=Time[0])
{
if(OrdersTotal()==0 && Indi.Sar(1)< Open[0] && Indi.Sar(0)>Open[0])
{
Open_Sell(); newbar=Time[0];
}
if(OrdersTotal()==0 && Indi.Sar(1)> Open[0] && Indi.Sar(0)<Open[0])
{
Open_Buy(); newbar=Time[0];
}
}
OrderModyfi(razmer_stopa(Magik),razmer_profita(Magik));
}
не работаетПример для Вашего советника
C-подобный:datetime newbar=0; //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { if(newbar!=Time[0]) { if(OrdersTotal()==0 && Indi.Sar(1)< Open[0] && Indi.Sar(0)>Open[0]) { Open_Sell(); newbar=Time[0]; } if(OrdersTotal()==0 && Indi.Sar(1)> Open[0] && Indi.Sar(0)<Open[0]) { Open_Buy(); newbar=Time[0]; } } OrderModyfi(razmer_stopa(Magik),razmer_profita(Magik)); }
Странно почему у меня только 1 сделку открывает понять не могу.Посмотреть вложение 557563
У меня работает, все по условиям советника
Покажите Ваш кодСтранно почему у меня только 1 сделку открывает понять не могу.
Покажите Ваш код
В чем причина может быть ещё?У меня работает
Посмотреть вложение 557659
С мои сетом у Вас работает?В чем причина может быть ещё?
ТожеС мои сетом у Вас работает?
У Вас стоит два ограничения на открытие: контроль нового бара (newbar == Time[0]) и контроль открытых позиций (OrdersTotal() == 0). Пока открытая позиция не закроется, новая не откроется, даже на новом баре.Странно почему у меня только 1 сделку открывает понять не могу.
ТожеС мои сетом у Вас работает?
скажите пожайлуйста можно на примере?У Вас стоит два ограничения на открытие: контроль нового бара (newbar == Time[0]) и контроль открытых позиций (OrdersTotal() == 0). Пока открытая позиция не закроется, новая не откроется, даже на новом баре.
Модификацию позиции надо переставить в однократный блок. Зачем Вам на каждом тике двигать ТП и СЛ?
И ещё добрый совет, проверенный временем: никогда не сравнивайте дробные числа напрямую. Рекомендую в начале каждой программы вставлять макрос #define ND(a,b,c) NormalizeDouble((a) - (b),(c)) и в дальнейшем для этой цели пользоваться им, сравнивая нормализованную разницу a и b c каким-либо числом. Это позволит Вам избежать многих проблем с разницей результатов прогонов при одних и тех же исходных.
Вы о сравнении дробных? Пожалуйста.скажите пожайлуйста можно на примере?
1. У Вас стоит два ограничения на открытие: контроль нового бара (newbar == Time[0]) и контроль открытых позиций (OrdersTotal() == 0). Пока открытая позиция не закроется, новая не откроется, даже на новом баре.У Вас стоит два ограничения на открытие: контроль нового бара (newbar == Time[0]) и контроль открытых позиций (OrdersTotal() == 0). Пока открытая позиция не закроется, новая не откроется, даже на новом баре.
Модификацию позиции надо переставить в однократный блок. Зачем Вам на каждом тике двигать ТП и СЛ?
И ещё добрый совет, проверенный временем: никогда не сравнивайте дробные числа напрямую. Рекомендую в начале каждой программы вставлять макрос #define ND(a,b,c) NormalizeDouble((a) - (b),(c)) и в дальнейшем для этой цели пользоваться им, сравнивая нормализованную разницу a и b c каким-либо числом. Это позволит Вам избежать многих проблем с разницей результатов прогонов при одних и тех же исходных.
У Вас открытие позиции должно происходить при смене направления Параболика? Тогда почему во вторых условиях в 9 и 13 строках функция Indi.Sar снимает показания с первого бара, а сравнение происходит с ценой Open нулевого бара? Показание на первом баре надо сравнивать с Open на первом же баре, на нулевом - с Open на нулевом (на первом Параболик над ценой, на нулевом - под ней и наоборот).Но когда позиция закрывается новая не открывается.
Спасибо исправил. Осталось только открытие нового бара наладить.У Вас открытие позиции должно происходить при смене направления Параболика? Тогда почему во вторых условиях в 9 и 13 строках функция Indi.Sar снимает показания с первого бара, а сравнение происходит с ценой Open нулевого бара? Показание на первом баре надо сравнивать с Open на первом же баре, на нулевом - с Open на нулевом (на первом Параболик над ценой, на нулевом - под ней и наоборот).