기준 지표를 다시 그리다?! - 페이지 6

 
Stalled, 검증 알고리즘에서 오류를 찾을 수 없습니다.
 
테스트 스크립트를 만들었습니다.
//+------------------------------------------------------------------+
//|                                                   CheckiTime.mq4 |
//|                                                             Rosh |
//|                        http://www.metaquotes.ru/forum/7790/page3 |
//+------------------------------------------------------------------+
#property copyright "Rosh"
#property link      "http://www.metaquotes.ru/forum/7790/page3"
#property show_inputs

extern string Currency1="GBPUSD";
extern string Currency2="EURUSD";
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
  string Currency;
  datetime AnotherTime;
  //datetime RightTime;
  int errorCounter;
  int AnotherBar,RightBar;
  int handle= FileOpen("CheckiTime.csv",FILE_CSV|FILE_WRITE,';');
  if (handle<0) Print("Ошибка открытия файла ",GetLastError());
   else FileWrite(handle,"index","Time[index]","AnotherBar","RightBar");
  
  if (Symbol()==Currency1) Currency=Currency2; else Currency=Currency1;
  int limit=MathMin(Bars,iBars(Currency,Period()));
//----
   for (int i=limit-1;i>=0;i--)   
      {
      AnotherBar=iBarShift(Currency,Period(),Time[i]);
      AnotherTime=iTime(Currency,Period(),AnotherBar);
      if (Time[i]!=AnotherTime &&(Time[i]==iTime(Currency,Period(),AnotherBar+1)||Time[i]==iTime(Currency,Period(),AnotherBar-1)))
         {
         errorCounter++;
         if (Time[i]==iTime(Currency,Period(),AnotherBar+1)) RightBar=AnotherBar+1; else RightBar=AnotherBar-1;
         if (handle>0) FileWrite(handle,i,TimeToStr(Time[i]),AnotherBar,RightBar);
         }
      }
   if (handle>0) FileClose(handle);   
   Print("Symbol=",Symbol(),"   Currency=",Currency);
   Print("Ошибок ",errorCounter);
//----
   return(0);
  }
//+------------------------------------------------------------------+



EURUSD H4 (MIG 데모 계정) 출시, 결과

인덱스 시간[색인] AnotherBar RightBar
2075 26.09.2005 0:00 1829 1828
1770 2005년 10월 31일 오전 0시 1674 1673
1709 07.11.2005 0:00 1643 1642
1550 2005년 11월 28일 오전 0시 1550 1549
1519 05.12.2005 0:00 1519 1518
1488 12.12.2005 0:00 1488 1487
1457 2005년 12월 19일 오전 0시 1457 1456
1364 01/09/2006 0:00 1364 1363
1333 16.01.2006 0:00 1333 1332
1209 13.02.2006 0:00 1209 1208
1178 2006-02-20 오전 0:00 1178 1177
1085 13.03.2006 0:00 1085 1084
513 24.07.2006 0:00 514 513
482 31.07.2006 0:00 483 482
389 2006년 21월 8일 0:00 390 389
358 2006년 8월 28일 0:00 359 358
203 02.10.2006 0:00 204 203
172 09.10.2006 0:00 173 172
79 30.10.2006 0:00 80 79
48 06.11.2006 0:00 49 48
17 13.11.2006 0:00 18 17


그런 다음 GBPUSD H4에서 실행했는데 결과는 다음과 같습니다.
인덱스 시간[색인] AnotherBar RightBar
2639 03/21/2005 0:00 3168 3167
2609 2005년 3월 28일 오전 0시 3137 3136
2339 2005년 5월 30일 오전 0시 2858 2857
2309 06.06.2005 0:00 2827 2826
2279 2005년 6월 13일 오전 0시 2796 2795
2249 2005년 6월 20일 오전 0시 2765 2764
2083 27.07.2005 16:00 2593 2592
2082 07/27/2005 20:00 2591 2590
2081 28.07.2005 0:00 2589 2588
2080 2005년 7월 28일 오전 4시 2587 2586
2079 28.07.2005 8:00 2585 2584
2078 28.07.2005 12:00 2583 2582
2077 28.07.2005 16:00 2581 2580
2076 07/28/2005 20:00 2579 2578
2075 29.07.2005 0:00 2577 2576
2074 07/29/2005 오전 4:00 2575 2574
2073 2005년 7월 29일 오전 8시 2573 2572
2072 29.07.2005 12:00 2571 2570
2071 29.07.2005 16:00 2569 2568
2069 08/01/2005 0:00 2564 2563
2068 08/01/2005 4:00 2562 2561
2067 08/01/2005 8:00 2560 2559
2066 08/01/2005 12:00 2558 2557
2065 08/01/2005 16:00 2556 2555
2064 08/01/2005 20:00 2554 2553
2063 08/02/2005 0:00 2552 2551
2062 02.08.2005 4:00 2550 2549
2061 02.08.2005 8:00 2548 2547
2060 02.08.2005 12:00 2546 2545
2059 02.08.2005 16:00 2544 2543
2058 08/02/2005 20:00 2542 2541
2057 03.08.2005 0:00 2540 2539
2056 08/03/2005 4:00 2538 2537
2055년 08월 03일 8:00 2536 2535
2039년 08월 08일 0:00 2503 2502
2022년 10월 8일 2005년 20시 00분 2469 2468
2021년 11월 8일 2005년 0시 00분 2467 2466
2020년 11월 8일 2005년 4시 00분 2465 2464
2019년 11월 8일 2005년 8시 00분 2463 2462
2018년 11월 8일 2005년 12시 00분 2461 2460
2017년 11월 8일 2005년 16시 00분 2459 2458
2016 11.08.2005 20:00 2457 2456
2015년 12월 8일 2005년 0시 00분 2455 2454
2014년 12월 8일 2005년 4시 00분 2453 2452
2013년 12월 8일 2005년 8시 00분 2451 2450
2012년 12월 8일 2005년 12시 00분 2449 2448
2011년 12월 8일 2005년 16시 00분 2447 2446
2010년 12월 8일 2005년 20시 00분 2445 2444
2006 15.08.2005 12:00 2436 2435
2005년 15.08.2005년 16:00 2434 2433
2004년 08월 15일 20:00 2432 2431
2003년 08월 16일 0:00 2430 2429
2002년 8월 16일 오전 4시 2428 2427
2001년 08월 16일 오전 8시 2426 2425
2000 16.08.2005 12:00 2424 2423
1999년 16월 08일 2005년 16시 00분 2422 2421
1998 16.08.2005 20:00 2420 2419
1997 17.08.2005 0:00 2418 2417
1996 17.08.2005 4:00 2416 2415
1995년 8월 17일 오전 8시 2414 2413
1994 17.08.2005 12:00 2412 2411
1993년 17.08.2005년 16:00 2410 2409
1992 17.08.2005 20:00 2408 2407
1991 18.08.2005 0:00 2406 2405
1990 18.08.2005 4:00 2404 2403
1979년 08월 22일 0:00 2381 2380
1978년 8월 22일 2005년 4월 4일 오전 2379 2378
1977년 08월 22일 오전 8시 2377 2376
1976 22.08.2005 12:00 2375 2374
1975년 22월 8일 16:00 2373 2372
1974 22.08.2005 20:00 2371 2370
1949년 29.08.2005 0:00 2320 2319
1948년 08월 29일 오전 4시 2318 2317
1947년 08월 29일 오전 8시 2316 2315
1946 29.08.2005 12:00 2314 2313
1945 29.08.2005 16:00 2312 2311
1944년 08월 29일 20:00 2310 2309
1943 08/30/2005 0:00 2308 2307
1942년 8월 30일 2005년 8월 30일 오전 4시 2306 2305
1925년 9월 2일 0:00 2272 2271
1924년 9월 2일 4:00 2270 2269
1923 09/02/2005 오전 8:00 2268 2267
1922년 9월 2일 12:00 2266 2265
1921년 9월 2일 16:00 2264 2263
1920년 9월 2일 20:00 2262 2261
1909년 9월 6일 16:00 2239 2238
1908 09/06/2005 20:00 2237 2236
1907 09/07/2005 0:00 2235 2234
1906 09/07/2005 4:00 2233 2232
1905 09/07/2005 8:00 2231 2230
1904 09/07/2005 12:00 2229 2228
1903 09/07/2005 16:00 2227 2226
1902 09/07/2005 20:00 2225 2224
1901 09/08/2005 0:00 2223 2222
1900 09/08/2005 4:00 2221 2220
1899 09/08/2005 오전 8:00 2219 2218
1898 09/08/2005 12:00 2217 2216
1897 09/08/2005 16:00 2215 2214
1896 09/08/2005 20:00 2213 2212
1895 09/09/2005 0:00 2211 2210
1894 09/09/2005 4:00 2209 2208
1893 2005년 9월 9일 오전 8:00 2207 2206
1889 2005년 9월 12일 오전 0시 2198 2197
1888년 9월 12일 2005년 9월 12일 오전 4시 2196 2195
1887 09/12/2005 오전 8:00 2194 2193
1886 2005년 9월 12일 오후 12시 2192 2191
1885 2005년 9월 12일 오후 4시 00분 2190 2189
1884 09/12/2005 20:00 2188 2187
1883 09/13/2005 0:00 2186 2185
1882 2005년 9월 13일 오전 4시 2184 2183
1881 2005년 9월 13일 오전 8시 2182 2181
1880 2005년 9월 13일 12:00 2180 2179
1879 2005년 9월 13일 오후 4시 00분 2178 2177
1878 09/13/2005 20:00 2176 2175
1877 09/14/2005 오전 0:00 2174 2173
1860 2005년 9월 16일 20:00 2140 2139
1844 21.09.2005 12:00 2107 2106
1843 21.09.2005 16:00 2105 2104
1842 21.09.2005 20:00 2103 2102
1841 09/22/2005 0:00 2101 2100
1840 2005년 9월 22일 오전 4:00 2099 2098
1839 2005년 9월 22일 오전 8:00 2097 2096
1838 22.09.2005 12:00 2095 2094
1837 22.09.2005 16:00 2093 2092
1836 09/22/2005 20:00 2091 2090
1835 23.09.2005 0:00 2089 2088
1834 2005년 9월 23일 오전 4시 2087 2086
1833 2005년 9월 23일 오전 8:00 2085 2084
1832 23.09.2005 12:00 2083 2082
1831 23.09.2005 16:00 2081 2080
1830 2005년 9월 23일 20:00 2079 2078
1811 2005년 9월 28일 20:00 2042 2041
1810 09/29/2005 0:00 2040 2039
1809 09/29/2005 4:00 2038 2037
1808 29.09.2005 8:00 2036 2035
1807 29.09.2005 12:00 2034 2033
1806 09/29/2005 16:00 2032 2031
1805 2005년 9월 29일 20:00 2030 2029
1804 09/30/2005 0:00 2028 2027
1803 2005년 9월 30일 오전 4:00 2026 2025
1802 2005년 9월 30일 오전 8:00 2024 2023
1801 2005년 9월 30일 12:00 2022 2021
1800 2005년 9월 30일 16:00 2020 2019
1799 2005년 9월 30일 20:00 2018 2017
1794 03.10.2005 12:00 2009 2008
1793 03.10.2005 16:00 2007 2006
1792 03.10.2005 20:00 2005 2004
1791 04.10.2005 0:00 2003 2002
1790 04.10.2005 4:00 2001 2000
1789 04.10.2005 8:00 1999 1998
1788 04.10.2005 12:00 1997 1996
1787 04.10.2005 16:00 1995 1994
1786 04.10.2005 20:00 1993 1992
1785 05.10.2005 0:00 1991 1990
1784 05.10.2005 4:00 1989 1988
1783 2005년 10월 5일 오전 8:00 1987 1986
1782 05.10.2005 12:00 1985 1984
1781 05.10.2005 16:00 1983 1982
1780 05.10.2005 20:00 1981 1980
1779 06.10.2005 0:00 1979 1978
1778 06.10.2005 4:00 1977 1976
1766 2005년 10월 10일 오전 0시 1954년 1953년
1765 2005년 10월 10일 오전 4시 1952년 1951년
1764 10/10/2005 8:00 오전 1950 1949
1763 10.10.2005 12:00 1948 1947
1762 10.10.2005 16:00 1946 1945
1761 10.10.2005 20:00 1944 1943
1744 13.10.2005 16:00 1910 1909
1743 13.10.2005 20:00 1908 1907
1742 2005년 10월 14일 오전 0시 1906년 1905년
1741 2005년 10월 14일 오전 4:00 1904 1903
1740 2005년 10월 14일 오전 8:00 1902 1901
1739 10/14/2005 12:00 오후 1900 1899
1738 2005년 10월 14일 오후 4시 00분 1898 1897
1737 10/14/2005 20:00 1896 1895
1727 10/18/2005 오전 8:00 1877 1876
1726 10/18/2005 12:00 오후 1875 1874
1725 2005년 10월 18일 오후 4시 00분 1873 1872
1724 10/18/2005 20:00 1871 1870
1723 2005년 10월 19일 오전 0시 1869 1868
1722 2005년 10월 19일 오전 4시 1867 1866
1721 2005년 10월 19일 오전 8:00 1865 1864
1720 2005년 10월 19일 오후 12시 1863 1862
1719 2005년 10월 19일 오후 4시 00분 1861 1860
1718 2005년 10월 19일 20:00 1859 1858
1717 10/20/2005 오전 0:00 1857 1856
1716 2005년 10월 20일 오전 4:00 1855 1854
1715 2005년 10월 20일 오전 8:00 1853 1852
1714 2005년 10월 20일 12:00 1851 1850
1713 2005년 10월 20일 16:00 1849 1848
1712 2005년 10월 20일 20:00 1847 1846
1711 21.10.2005 0:00 1845 1844
1704 2005년 10월 24일 오전 0시 1832 1831
1703 2005년 10월 24일 오전 4:00 1830 1829
1702 2005년 10월 24일 오전 8:00 1828 1827
1701 2005년 2월 10일 12:00 1826 1825
1700 2005년 10월 24일 오후 4시 00분 1824 1823
1699 24.10.2005 20:00 1822 1821
1698 2005년 10월 25일 오전 0시 1820 1819
1697 2005년 10월 25일 오전 4:00 1818 1817
1696 2005년 10월 25일 오전 8:00 1816 1815
1695 2005년 10월 25일 12:00 1814 1813
1694 25.10.2005 16:00 1812 1811
1693 2005.10.25 20:00 1810 1809
1692 10/26/2005 오전 0:00 1808 1807
1691 2005년 10월 26일 오전 4:00 1806 1805
1690 2005년 10월 26일 오전 8:00 1804 1803
1689 26.10.2005 12:00 1802 1801
1688 26.10.2005 16:00 1800 1799
1687 26.10.2005 20:00 1798 1797
1686 2005년 10월 27일 오전 0시 1796 1795
1685 2005년 10월 27일 오전 4:00 1794 1793
1684 2005년 10월 27일 오전 8시 1792 1791
1683 2005년 10월 27일 오후 12시 1790 1789
1682 27.10.2005 16:00 1788 1787
1681 2005년 10월 27일 20:00 1786 1785
1680 2005년 10월 28일 오전 0시 1784 1783
1679 2005년 10월 28일 오전 4시 1782 1781
1678 2005년 10월 28일 오전 8시 1780 1779
1673 2005년 10월 31일 오전 0시 1771 1770
1672 2005년 10월 31일 오전 4시 1769 1768
1671 2005년 10월 31일 오전 8시 1767 1766
1670 2005년 10월 31일 오후 12시 1765 1764
1669 2005년 10월 31일 오후 4시 00분 1763 1762
1668 2005년 10월 31일 20:00 1761 1760
1667 01.11.2005 0:00 1759 1758
1666 2005년 11월 1일 오전 4시 1757 1756
1665 2005년 11월 1일 오전 8:00 1755 1754
1664 01.11.2005 12:00 1753 1752
1663 01.11.2005 16:00 1751 1750
1662 2005년 11월 1일 20:00 1749 1748
1661 02.11.2005 0:00 1747 1746
1644 04.11.2005 20:00 1713 1712
1627 09.11.2005 12:00 1680 1679
1626 09.11.2005 16:00 1678 1677
1625 09.11.2005 20:00 1676 1675
1624 10.11.2005 0:00 1674 1673
1623 2005년 11월 10일 오전 4시 1672 1671
1622 2005-11-10 오전 8:00 1670 1669
1621 10.11.2005 12:00 1668 1667
1620 10.11.2005 16:00 1666 1665
1619 10.11.2005 20:00 1664 1663
1618 2005년 11월 11일 오전 0시 1662 1661
1617 11/11/2005 오전 4:00 1660 1659
1616 2005년 11월 11일 오전 8:00 1658 1657
1615 11.11.2005 12:00 1656 1655
1614 2005년 11월 11일 오후 4시 00분 1654 1653
1613 11/11/2005 20:00 1652 1651
1610 2005년 11월 14일 오전 4시 1647 1646
1609 2005년 11월 14일 오전 8시 1645 1644
1608 2005년 11월 14일 오후 12시 1643 1642
1607 2005년 11월 14일 오후 4시 00분 1641 1640
1606 2005년 11월 14일 20:00 1639 1638
1605 2005년 11월 15일 오전 0시 1637 1636
1604 11/15/2005 오전 4:00 1635 1634
1603 2005년 11월 15일 오전 8:00 1633 1632
1602 11/15/2005 12:00 오후 1631 1630
1601 2005년 11월 15일 오후 4시 00분 1629 1628
1600 2005년 11월 15일 20:00 1627 1626
1599 2005년 11월 16일 오전 0시 1625 1624
1598 2005년 11월 16일 오전 4시 1623 1622
1597 11/16/2005 오전 8:00 1621 1620
1596 2005년 11월 16일 오후 12시 1619 1618
1595 2005년 11월 16일 오후 4시 00분 1617 1616
1594 2005년 11월 16일 20:00 1615 1614
1580 2005년 11월 21일 오전 0시 1588 1587
1579 2005년 11월 21일 오전 4시 1586 1585
1578 2005년 11월 21일 오전 8시 1584 1583
1577 2005년 11월 21일 12:00 1582 1581
1575 2005년 11월 21일 20:00 1577 1576
1549 2005년 11월 28일 오전 0시 1551 1550
1270 2006년 1월 30일 오전 0시 1272 1271
1239 06.02.2006 0:00 1241 1240
1208 13.02.2006 0:00 1210 1209
1177 2006년 2월 20일 0:00 1179 1178
1146 27.02.2006 0:00 1148 1147
1115 06.03.2006 0:00 1117 1116
1084 13.03.2006 0:00 1086 1085
1054 03/20/2006 0:00 1055 1054
482 31.07.2006 0:00 483 482
451 08/07/2006 0:00 452 451
420 14.08.2006 0:00 421 420
389 2006년 21월 8일 0:00 390 389
358 2006년 8월 28일 0:00 359 358
327 04.09.2006 0:00 328 327
296 11.09.2006 0:00 297 296
265 18.09.2006 0:00 266 265


로그 로그:
2006.11.15 22:40:07 CheckiTime GBPUSD,H4: 삭제됨
2006.11.15 22:40:07 CheckiTime GBPUSD,H4: 오류 287
2006.11.15 22:40:07 CheckiTime GBPUSD,H4: 기호=GBPUSD 통화=EURUSD
2006.11.15 22:40:06 CheckiTime GBPUSD,H4 입력: Currency1="GBPUSD"; Currency2="유로USD";
2006.11.15 22:40:05 CheckiTime GBPUSD,H4: 성공적으로 로드됨
2006.11.15 22:35:56 CheckiTime EURUSD,H4: 삭제됨
2006.11.15 22:35:56 CheckiTime EURUSD,H4: 21 오류
2006.11.15 22:35:56 CheckiTime EURUSD,H4: 기호=EURUSD 통화=GBPUSD
2006.11.15 22:35:56 CheckiTime EURUSD,H4 입력: Currency1="GBPUSD"; Currency2="유로USD";
2006.11.15 22:35:54 CheckiTime EURUSD,H4: 성공적으로 로드됨
2006.11.15 22:35:30 'CheckiTime' 컴파일 중

 
테스트 스크립트의 최종 버전

//+------------------------------------------------------------------+
//|                                                   CheckiTime.mq4 |
//|                                                             Rosh |
//|                        http://www.metaquotes.ru/forum/7790/page3 |
//+------------------------------------------------------------------+
#property copyright "Rosh"
#property link      "http://www.metaquotes.ru/forum/7790/page3"
#property show_inputs

extern string Currency1="GBPUSD";
extern string Currency2="EURUSD";
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
  string Currency;
  datetime AnotherTime;
  //datetime RightTime;
  int errorCounter;
  int AnotherBar,RightBar;
  int handle= FileOpen("CheckiTime.csv",FILE_CSV|FILE_WRITE,';');
  if (handle<0) Print("Ошибка открытия файла ",GetLastError());
   else FileWrite(handle,"index","Time[index]","AnotherBar","RightBar","Time","AnotherTime","Time-AnotherTime");
  
  if (Symbol()==Currency1) Currency=Currency2; else Currency=Currency1;
  int limit=MathMin(Bars,iBars(Currency,Period()));
//----
   for (int i=limit-1;i>=0;i--)   
      {
      AnotherBar=iBarShift(Currency,Period(),Time[i]);
      AnotherTime=iTime(Currency,Period(),AnotherBar);
      if (Time[i]!=AnotherTime &&(Time[i]==iTime(Currency,Period(),AnotherBar+1)||Time[i]==iTime(Currency,Period(),AnotherBar-1)))
         {
         errorCounter++;
         if (Time[i]==iTime(Currency,Period(),AnotherBar+1)) RightBar=AnotherBar+1; else RightBar=AnotherBar-1;
         if (handle>0) FileWrite(handle,i,TimeToStr(Time[i]),AnotherBar,RightBar,Time[i],AnotherTime,Time[i]-AnotherTime);
         }
      }
   if (handle>0) FileClose(handle);   
   Print("Symbol=",Symbol(),"   Currency=",Currency);
   Print("Ошибок ",errorCounter);
//----
   return(0);
  }
//+------------------------------------------------------------------+



사실, 일요일 바 4시간(MIG 데모 계정)에 대한 이 동작을 설명할 수 없습니다.

 
Rosh, 당신은 다가오는 꿈을 위해 연구하는 것을 좋아합니다. ;에 대한)
그건 그렇고, 다른 생각, 확인, 연구가 있습니까?
아니면 이것이 마지막 이력서이고 "SNOW-GU-ROCH-KA!!!"를 부를 시간입니다. 저것들. "라즈라봇치키!!" :에 대한)
 
확인을 위해 남은 마지막 옵션은 잘못된 막대에 수직선 을 그리는 스크립트를 만드는 것입니다.
 
도무지 이해가 되지 않는데 왜 그럴까요?
 
잘못된 iTime() 히트와 이러한 위치에 수직선 을 설정할 수 없는 사이에 연결이 있는지 확인합니다.
 
이것이 내가 앞에서 설명한 문제라는 것을 올바르게 이해하고 있습니까? 선이 설정되지 않았다고? "yes"인 경우 이는 선뿐만 아니라 일반적으로 지정된 막대의 모든 개체에 적용됩니다. 같은 방식으로 모든 개체의 설정 지점은 표시된 막대에서 "이동"합니다.
 
즉, 이 막대에 그래픽 개체를 설치하지 않는 것이 공통된 특성을 가지고 있으며 이웃 막대 사이의 시간을 제어하고 이 시간에 Period() 와의 관계를 확인하는 것과 어떻게든 연결됩니다(제 생각에는 그렇게 생각합니다) .
 
내가 기억하는 한 볼륨에주의를 기울여야합니다. 테스터에서 볼륨이 1 인 막대를 모델링 할 때 테스터는 예를 들어 시작 시간 00:00 대신 며칠 동안 포기했습니다. 23:59의 시간(Slava, 내 의견으로는 그 다음 이유를 설명함) 및 기타 몇 가지 특성이 있었습니다. 이를 피하기 위해 볼륨을 수정하고 막대의 시작 시간을 "정규화"했습니다.

"모델링?!"
"MetaTrader 4. 빌드 181."
"메타 트레이더 4 빌드 183"

자세히 기억이 안나네요.