В чем секрет: советник работает на демо и тестируется по ценам открытия правильно, а при включении "Все тики" начинает вести себя иногда некорректно
"Секрет" в кривом советнике...
смешно... все мысли почепнуты с этого сайта
все мысли почепнуты с этого сайта
все мысли почепнуты с этого сайта
Ответ с подвохом, собственно как и вопрос
В общем мне нужна помощь, представляю блок открытия сделки, чего-то здесь надо добавить, чтоб на тиках он не ошибался
if (_prevTime != curTime && DayOfYear()<345 && OrdersTotal()<3)
{
for (int f=0; f<20; f++)
{
if (DayOfWeek()==_Day[f])
if (TimeToStr(iTime(_Para[f], 0,0),TIME_MINUTES)==_Time[f])
{
if (_Oper[f]==OP_BUY && _prevTime != curTime)
{
_Tick=OrderSend(_Para[f], _Oper[f], _Lots, Ask,3, 0,Open[0]+takebuy*Point, "expert
comment",256,0,CLR_NONE);
_prevTime = curTime;
}
if (_Oper[f]==OP_SELL && _prevTime != curTime)
{
_Tick=OrderSend(_Para[f], _Oper[f], _Lots, Bid,3, 0,Open[0]-takesell*Point, "expert
comment",256,0, CLR_NONE);
_prevTime = curTime;
}
}
}
}
при тестировании по ценам открытия советник открывается в начале бара и, если что-то произошло в середине бара (сработал стоп, профит), то он больше не открывается. А при моделировании всех тиков, если в середине бара у тебя сработал стоп или профит, то советник открывает еще одну позицию и так до тех пор, пока не кончится текущий бар.
дело в том, что у меня внутри бара нет никаких стопов и профитов,
у меня выходит из позиции тоже только по открытию, как стоп так
и тейк -поэтому это не про этот случай
то что в коде устанавливается тейк - на это не обращайте внимания - по умолчанию это 1000 пунктов, тейк берется по условию
при тестировании по ценам открытия советник открывается в начале бара и, если что-то произошло в середине бара (сработал стоп, профит), то он больше не открывается. А при моделировании всех тиков, если в середине бара у тебя сработал стоп или профит, то советник открывает еще одну позицию и так до тех пор, пока не кончится текущий бар.
И самое главное, я прошу, чтобы мне сказали как этого избежать, а не просто констатировали факт, что делается в моем коде
при тестировании по ценам открытия советник открывается в начале бара и, если что-то произошло в середине бара (сработал стоп, профит), то он больше не открывается. А при моделировании всех тиков, если в середине бара у тебя сработал стоп или профит, то советник открывает еще одну позицию и так до тех пор, пока не кончится текущий бар.
И самое главное, я прошу, чтобы мне сказали как этого избежать, а не просто констатировали факт, что делается в моем коде
зная причину можно решить проблему, а главное интересно. Чтобы избежать ситуации, которую я описал, нужно делать проверку, не открывался ли советник на этом баре.
if (_prevTime != curTime && DayOfYear()<345 && OrdersTotal()<3&&JustOpen==0)
{
for (int f=0; f<20; f++)
{
if (DayOfWeek()==_Day[f])
if (TimeToStr(iTime(_Para[f],0,0),TIME_MINUTES)==_Time[f])
{
if (_Oper[f]==OP_BUY && _prevTime != curTime)
{
_Tick=OrderSend(_Para[f],_Oper[f],_Lots,Ask,3,0,Open[0]+takebuy*Point, "expert comment",256,0,CLR_NONE);
_prevTime = curTime;
JustOpen=iTime(_Para[f],0,0);
}
if (_Oper[f]==OP_SELL && _prevTime != curTime)
{
_Tick=OrderSend(_Para[f],_Oper[f],_Lots,Bid,3,0,Open[0]-takesell*Point, "expert comment",256,0,CLR_NONE);
_prevTime = curTime;
JustOpen=iTime(_Para[f],0,0);
}
}
}
}
а при закрытии, если текущий бар не равен JustOpen, то обнулять его, если равен, то обнулить при переходе на следующий бар.
Спасибо - это был правильный ответ
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
В чем секрет? советник работает на демо и тестируется по ценам открытия правильно, а при включении "Все тики" начинает вести себя иногда некорректно:
открывая одновременно две позиции или наоборот не открывая ни одной
что это может быть?