Вкратце, как пример, если у вас TP buy позиций поставлена 1.16000, то "все тики" примерно по этой цене закроет. OHLC закроет по той цене что было выше 1.16000 это и может быть довольно большая разница, так всегда OHLC будет показывать лучше результаты. Та же самая история с "По ценам открытия".
Nauris, спасибо. Я понимаю (догадываюсь) почему результаты у разных методов отличаются. Но я хочу понять вот что:
Уж если тестер, смоделировал как то метод "OHLC М1", то как, этот же метод повторить в советнике программно.
Спасибо. Если ни кто не продолжит способа, как реализовать метод "OHLC М1", то я буду просто приговорён воспользоваться Вашим советом)))
особо гениального вы не придумаете, там отличие в направлении тиков, на реале по тикам свеча может сходить открытие, низ, верх, закрытие и если большая свеча то можно внизу купить и к закрытию уже и получить профит, при моделировании свеча образуется открытие,верх, низ, закрытие, допустим открытие и верх совпадают и низ с закрытием тоже, то на такой свече купить получится , а вот профит получить нет, а если дальше рынок пошёл вниз, то вот тебе и зависший убыточный ордер...
Artyom Trishkin: Метод же говорит сам за себя. Используйте в советнике только цены OHLC всех минутных баров, входящих в текущий бар.
Артём, я попробовал. На все условия, открытия и модификации ордеров поставил условие "по рождению нового бара" через булеву функцию isNewBar()
примерно так:
if (Buys==true )
{
int count_buy_stops=0; int count_pos_buy=0;
CalOrders_Buy(count_buy_stops); CalPosition_Buy(count_pos_buy);
if(count_buy_stops==0 && count_pos_buy==0) && isNewBar())
{
BuyStop();
}
}
Сама функция isNewBar() из примеров и статей код.базы.
bool isNewBar()
{
//--- в статической переменной будем помнить время открытия последнего бараstaticdatetime last_time=0;
//--- текущее времяdatetime lastbar_time=(datetime)SeriesInfoInteger(Symbol(),Period(),SERIES_LASTBAR_DATE);
if(last_time==0)//--- если это первый вызов функции
{
last_time=lastbar_time; //--- установим время и выйдем return(false);
}
if(last_time!=lastbar_time)//--- если время отличается
{
last_time=lastbar_time; //--- запомним время и вернем truereturn(true);
}
//--- дошли до этого места - значит бар не новый, вернем falsereturn(false);
}
Она вроде работает, ордера выставляет и модифицирует их только по новому бару, но почему то появилось расхождение.
между OHLC, на М1, который я применял без isNewBar() и "все тики" с функцией isNewBar().
Я ожидал, что применив isNewBar() на "все тики" я получу такой же результат как иOHLC по текущим ценам.
Вот, я и не понимаю, то-ли я в условиях коде накосячил, то-ли я не правильно понимаю как осуществляется режим OHLC и ожидаю от него невозможного.
и откуда копать пока не соображу.
Артём, подскажите ещё, если не трудно.
То, что ордер можно установить и модифицироваться по новому бару это понятно, но SL и TP (в тестере) сработают всё-равно внутри старого бара?
Вкратце, как пример, если у вас TP buy позиций поставлена 1.16000, то "все тики" примерно по этой цене закроет. OHLC закроет по той цене что было выше 1.16000 это и может быть довольно большая разница, так всегда OHLC будет показывать лучше результаты. Та же самая история с "По ценам открытия".
Nauris, спасибо. Я понимаю (догадываюсь) почему результаты у разных методов отличаются. Но я хочу понять вот что:
Уж если тестер, смоделировал как то метод "OHLC М1", то как, этот же метод повторить в советнике программно.
Тестер то его как то воспроизвёл...
Nauris, спасибо. Я понимаю (догадываюсь) почему результаты у разных методов отличаются. Но я хочу понять вот что:
Уж если тестер, смоделировал как то метод "OHLC М1", то как, этот же метод повторить в советнике программно.
Тестер то его как то воспроизвёл...
поверь тебе такая точность не нужна, оптимизируешь результат прогоняешь на всех тиках, самый оптимальный вариант...
если у тебя не пипсовка в 3-4 пункта то большой разницы нет закрылось двумя пипсами больше или меньше...
а воспроизведение чего то там в самом советнике тебе не ускорит время, а наоборот его затянет...
поверь тебе такая точность не нужна, оптимизируешь результат прогоняешь на всех тиках, самый оптимальный вариант...
если у тебя не пипсовка в 3-4 пункта то большой разницы нет закрылось двумя пипсами больше или меньше...
а воспроизведение чего то там в самом советнике тебе не ускорит время, а наоборот его затянет...
Спасибо. Если ни кто не продолжит способа, как реализовать метод "OHLC М1", то я буду просто приговорён воспользоваться Вашим советом)))
Спасибо. Если ни кто не продолжит способа, как реализовать метод "OHLC М1", то я буду просто приговорён воспользоваться Вашим советом)))
особо гениального вы не придумаете, там отличие в направлении тиков, на реале по тикам свеча может сходить открытие, низ, верх, закрытие и если большая свеча то можно внизу купить и к закрытию уже и получить профит, при моделировании свеча образуется открытие,верх, низ, закрытие, допустим открытие и верх совпадают и низ с закрытием тоже, то на такой свече купить получится , а вот профит получить нет, а если дальше рынок пошёл вниз, то вот тебе и зависший убыточный ордер...
отсюда и расхождения...
Спасибо. Если ни кто не продолжит способа, как реализовать метод "OHLC М1", то я буду просто приговорён воспользоваться Вашим советом)))
Спасибо. Если ни кто не продолжит способа, как реализовать метод "OHLC М1", то я буду просто приговорён воспользоваться Вашим советом)))
Открытия/закрытия в эксперте не по уровням цены а по Open. Есть сигнал открытия/закрытия, дождитесь следующую 1М свечу и открывайте/закрывайте.
Метод же говорит сам за себя. Используйте в советнике только цены OHLC всех минутных баров, входящих в текущий бар.
Артём, я попробовал. На все условия, открытия и модификации ордеров поставил условие "по рождению нового бара" через булеву функцию isNewBar()
примерно так:
Сама функция isNewBar() из примеров и статей код.базы.
Она вроде работает, ордера выставляет и модифицирует их только по новому бару, но почему то появилось расхождение.
между OHLC, на М1, который я применял без isNewBar() и "все тики" с функцией isNewBar().
Я ожидал, что применив isNewBar() на "все тики" я получу такой же результат как и OHLC по текущим ценам.
Вот, я и не понимаю, то-ли я в условиях коде накосячил, то-ли я не правильно понимаю как осуществляется режим OHLC и ожидаю от него невозможного.
и откуда копать пока не соображу.
Артём, подскажите ещё, если не трудно.
То, что ордер можно установить и модифицироваться по новому бару это понятно, но SL и TP (в тестере) сработают всё-равно внутри старого бара?
Мучился мучился и ничего не получилось с попыткой перевести с фиксированного лота на лот в процентах. Может кто подскажет на полном коде?
В процентах от чего?
В процентах от чего?
От баланса, стандартно