Вот скрипт.
По идее, сколько Dney_Fakt, столько и Vhod. Но ...
При увеличении DNEY от 1 и до ..., появляются лишние Vhod.
На разных терминалах при разных значениях DNEY.
А если кинуть на H1, то вообще весело..
По поводу скрипта - он еще и воскресенья (?) посчитал у меня за "рабочие", хотя там всего по 2 часа
Количество минут в дне может быть меньше, чем 1440. Количество рабочих дней в неделе в терминале у разных брокеров тоже может быть разным даже без праздников. У кого 5 дней у кого 6.
Так первым while выбирается погрешность по 1440.
А дальше от полуночи до полуночи по фактическому числу баров.
На терминале Интеграл банка лишний Vhod при DNEY==2, сегодня и вчера. (Выходных нет)
На Укргазбанке при DNEY==9.
Т.е. за первые 8 дней выходные точно были.
А если кинуть на H1, то вообще весело..
По поводу скрипта - он еще и воскресенья (?) посчитал у меня за "рабочие", хотя там всего по 2 часа
Ну-у, вообще-то скрипт для минуток.
Это видно из
a=1440*DNEY;
Ну-у, вообще-то скрипт для минуток.
Это видно из
это да.
Но де-факто у вас получится, что Dney_Fakt считает количество суток (плюс-минус один заборный столб), содержащих 1440 минут
а цикл считает количество появлений полуночи за то же число баров.
Если есть дыры в истории (самый глобальный вариант - есть только половина каждых суток - от 0 до 12 часов), то насчитаете вы суток больше
это да.
Но де-факто у вас получится, что Dney_Fakt считает количество суток (плюс-минус один заборный столб), содержащих 1440 минут
а цикл считает количество появлений полуночи за то же число баров.
Если есть дыры в истории (самый глобальный вариант - есть только половина каждых суток - от 0 до 12 часов), то насчитаете вы суток больше
1440*DNEY заведомо больше чем фактическое количество баров за DNEY.
Первый while выбирает разницу между ними.
Dney_Fakt=MathCeil(a/1440.0);
Частное в скобках заведомо меньше DNEY, и данным выражением показано, что обрабатывается
столько дней, сколько заказано. Никаких "(плюс-минус один заборный столб)".
Далее, отсчет идет от полуночи до полуночи, независимо от числа баров в сутках. Один день - один вход.
Вход делается на ближайшем последующем после 00-30 баре.(второй while)
После чего третий while переносит все действия в следующие сутки.
1440*DNEY заведомо больше чем фактическое количество баров за DNEY.
Первый while выбирает разницу между ними.
Частное в скобках заведомо меньше DNEY, и данным выражением показано, что обрабатывается
столько дней, сколько заказано. Никаких "(плюс-минус один заборный столб)".
Далее, отсчет идет от полуночи до полуночи, независимо от числа баров в сутках. Один день - один вход.
Вход делается на ближайшем последующем после 00-30 баре.(второй while)
После чего третий while переносит все действия в следующие сутки.
Вот именно, независимо от числа баров в сутках. попробуйте вывести сколько баров в каждых сутках (прямо в цикле), сразу будет все ясно
Вот пример:
Код:
#property show_inputs extern int DNEY=8, MINUTY=30; int a, Vhod; double Dney_Fakt; bool Polnoch; int last_a; int start() { a=1440*DNEY; while (!Polnoch) { a--; if(TimeDay(Time[a])!=TimeDay(Time[a-1])) {Polnoch=true; a--;} // стартуем с полуночи } Dney_Fakt=MathCeil(a/1440.0); while(a>0) { last_a = a; while (TimeMinute(Time[a])<MINUTY && TimeHour(Time[a])==0) {a--;} // сдвигаемся по графику вправо на бар действий Vhod++; Print("\n"," Vhod ",Vhod," Дата ",TimeDay(Time[a])); Sleep(777); // действия while (TimeDay(Time[a])==TimeDay(Time[a-1]) && a>0) {a--;} // двигаемся к очередной полуночи Print(" разница (минут) ", (last_a - a)); a--; } Comment("\n"," Входов ",Vhod," Dney_Fakt ",Dney_Fakt); Sleep(5555); Comment(""); return(0); }
Результат:
17:11:21 test GBPUSD,M1 inputs: DNEY=8; MINUTY=30; 17:11:21 test GBPUSD,M1: Vhod 1 Дата 14 17:11:22 test GBPUSD,M1: разница (минут) 1316 17:11:22 test GBPUSD,M1: Vhod 2 Дата 16 17:11:23 test GBPUSD,M1: разница (минут) 91 17:11:23 test GBPUSD,M1: Vhod 3 Дата 17 17:11:23 test GBPUSD,M1: разница (минут) 1409 17:11:23 test GBPUSD,M1: Vhod 4 Дата 18 17:11:24 test GBPUSD,M1: разница (минут) 1419 17:11:24 test GBPUSD,M1: Vhod 5 Дата 19 17:11:25 test GBPUSD,M1: разница (минут) 1415 17:11:25 test GBPUSD,M1: Vhod 6 Дата 20 17:11:26 test GBPUSD,M1: разница (минут) 1416 17:11:26 test GBPUSD,M1: Vhod 7 Дата 21 17:11:26 test GBPUSD,M1: разница (минут) 1312 17:11:26 test GBPUSD,M1: Vhod 8 Дата 23 17:11:27 test GBPUSD,M1: разница (минут) 75 17:11:27 test GBPUSD,M1: Vhod 9 Дата 24 17:11:28 test GBPUSD,M1: разница (минут) 1415 17:11:28 test GBPUSD,M1: Vhod 10 Дата 25 17:11:29 test GBPUSD,M1: разница (минут) 901
Вот именно, независимо от числа баров в сутках. попробуйте вывести сколько баров в каждых сутках (прямо в цикле), сразу будет все ясно
А для чего мне эта цифра? Что будет ясно?
Вы, возможно, не поняли.
НЕЗАВИСИМО от количества баров в сутках, вход на ближайшем справа к 00-30 баре. Один раз в день. И переход в другие сутки.
Разве в коде написано что-то другое?
Откуда лишние входы?
А для чего мне эта цифра? Что будет ясно?
Вы, возможно, не поняли.
НЕЗАВИСИМО от количества баров в сутках, вход на ближайшем справа к 00-30 баре. Один раз в день. И переход в другие сутки.
Разве в коде написано что-то другое?
Откуда лишние входы?
Итак, давайте по порядку.
0) сначала мы берем a = 1440*DNEY баров
да/нет?
1) в переменной Dney_Fakt будет количество кусков по 1440 баров (+округление по полночи) за "а" баров
да/нет?
2) в переменной Vhod будет количество переходов через 00-30 за "а" баров
да/нет?
Если вы считаете, что все 3 ответа "да", то продолжаем:
итак, Dney_Fakt посчитало 8 дней, "а" примерно равно 11520 (8*1440)
и пошел цикл...
1. первый день все хорошо, он целый. 1440 баров
2. потом (внезапно) не хватает минутных баров и длина суток всего 1300 минутных баров, ок
3. Далее (еще более внезапно) воскресенье (!), состоящее из 2 часов (120 баров)
4-9. потом 5 нормальных целых дней по 1440 баров.
итого, мы посчитали все те же 11520 баров, но входов уже 9. Появился "лишний" за счет очень короткого воскресенья и обрыва истории на два с небольшим часа
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Вот скрипт.
По идее, сколько Dney_Fakt, столько и Vhod. Но ...
При увеличении DNEY от 1 и до ..., появляются лишние Vhod.
На разных терминалах при разных значениях DNEY.