kocunyc89: есть команда t1=StrToTime(TimeToStr(dt, TIME_DATE)+" 10:00");как мне установить не сегодня 10:00, а Завтра 10:00? datetime dt=TimeLocal(); datetime t1=StrToTime(TimeToStr(dt, TIME_DATE)+" 10:00") + 24*60*60;
LRA: kocunyc89: есть команда t1=StrToTime(TimeToStr(dt, TIME_DATE)+" 10:00");как мне установить не сегодня 10:00, а Завтра 10:00? datetime dt=TimeLocal(); datetime t1=StrToTime(TimeToStr(dt, TIME_DATE)+" 10:00") + 24*60*60;
if (Sob_01_0_1==1 && OrderSelect(ticket3_buy, SELECT_BY_TICKET)==true)
{
Alert("Sob_01_0_1=",Sob_01_0_1);
Alert("здесь код перестает работать?");
if (OrderTakeProfit()>0 && OrderCloseTime()>0)
{
Alert("третий ордер на покупку закрыт, событие 011");
bool close6=OrderClose(ticket3_sell, lot3, Ask, 20, clrRed);
if (close6==true)
Alert("третий ордер на продажу закрыт");
elseAlert("ошибка закрытия третьего ордера на продажу", GetLastError());
bool close7=OrderClose(ticket2_sell, lot2, Ask, 20, clrRed);
if (close7==true)
Alert("закрыт второй модифицированный ордер на продажу");
elseAlert("ошибка закрытия второго модифицированного ордера на продажу ticket2_sell ", GetLastError());
Sob_01_0_1++;
Sob011++;
}
}
Добрый вечер, подскажите в чем ошибка. Код перестает работать после Alert("здесь код перестает работать?");. Т.е. при закрытии ticket3_buy по профиту, далее оператор if не выполняется.
Добрый всем вечер. Вопрос от чайника по функциям iLowest и iHighest. В начале хотел в советнике при помощи этих функций найти "перебитие" максимума/минимума и выставить отложенный ордер. С iLowest все работает, с iHighest ордера не выставляются. Но это к слову, так как сей вопрос решил по другому. Теперь мне нужно удалить отложенный ордер, если произошло "пребитие", чтобы выставить по новой цене. Попробовал вновь воспользоваться выше упомянутыми функциями. С iLowest и удалением отложенного ордера на покупку проблем нет; с iHighest удалением ордера на продажу проблемы - ордер удаляется, когда еще не выполнено условие (цена ниже максимума), выставляется новый, опять удаляется и т.д. Если цена превысила максимум удаляется и не выставляется новый, но как только текущая цена вновь опустилась ниже предыдущего максимума, вновь начинается "свистопляска".
Извините за беспокойство, все решилось. Условие удаления записывал в советнике немного не так как написал на форуме - не было смещения относительно текущего бара.
Подскажите, почему при тестировании советника (депо 100$) абсолютная просадка (20$) отличается от значений в таблице сделок (минимальный баланс 85$), то есть разница в 5$.
То же самое и с максимальной просадкой.
Может эти 5$ берутся при падение баланса при движении цены в направлении стоп лося и если да то можно ли сделать чтобы абсолютная/максимальная просадка отражалась только в соответствии со сделками в таблице?
Сделай так
Вместо 1 можно поставить любое число кроме 0. Чем больше число, тем меньше баров будет считаться при запуске индикатора.
И убери
это здесь совершенно ни к чему.
datetime t1=StrToTime(TimeToStr(dt, TIME_DATE)+" 10:00") + 24*60*60;
kocunyc89: есть команда t1=StrToTime(TimeToStr(dt, TIME_DATE)+" 10:00");как мне установить не сегодня 10:00, а Завтра 10:00? datetime dt=TimeLocal();
datetime t1=StrToTime(TimeToStr(dt, TIME_DATE)+" 10:00") + 24*60*60;
Alert("Сейчас = ",dt, " Завтра в 10:00 = ",t1);
Добрый всем вечер. Вопрос от чайника по функциям iLowest и iHighest. В начале хотел в советнике при помощи этих функций найти "перебитие" максимума/минимума и выставить отложенный ордер. С iLowest все работает, с iHighest ордера не выставляются. Но это к слову, так как сей вопрос решил по другому. Теперь мне нужно удалить отложенный ордер, если произошло "пребитие", чтобы выставить по новой цене. Попробовал вновь воспользоваться выше упомянутыми функциями. С iLowest и удалением отложенного ордера на покупку проблем нет; с iHighest удалением ордера на продажу проблемы - ордер удаляется, когда еще не выполнено условие (цена ниже максимума), выставляется новый, опять удаляется и т.д. Если цена превысила максимум удаляется и не выставляется новый, но как только текущая цена вновь опустилась ниже предыдущего максимума, вновь начинается "свистопляска".
Условия записываю так
if(iHighest(NULL, 0, MODE_HIGH, 70, 2) < iHigh(NULL, 0, 1)
{
DeleteOrders(OP_SELLSTOP, Magic);
}
if(iLowhest(NULL, 0, MODE_HIGH, 70, 2) > iLow(NULL, 0, 1)
{
DeleteOrders(OP_BUYSTOP, Magic);
}
(Функция удаления выписана отдельно). Что я делаю не так, в чем ошибка?
Подскажите, почему при тестировании советника (депо 100$) абсолютная просадка (20$) отличается от значений в таблице сделок (минимальный баланс 85$), то есть разница в 5$.
То же самое и с максимальной просадкой.
Может эти 5$ берутся при падение баланса при движении цены в направлении стоп лося и если да то можно ли сделать чтобы абсолютная/максимальная просадка отражалась только в соответствии со сделками в таблице?
p.s. уточнил, на этом форуме уже писали (https://www.mql5.com/ru/forum/107382) что просадки считаются по эквити, а не по балансу
Добрый день! Каждый раз при смене флажка, надо сбросить переменную один раз. Как это проще сделать?
bool flag; int reset=0;