read.csv(file = "BABA.csv", header = TRUE)
##           Date    Open    High     Low  Close Adj.Close    Volume
## 1     2021/6/7 218.000 218.400 215.690 216.90    216.90   9928600
## 2     2021/6/8 217.290 218.230 214.740 215.82    215.82   9443000
## 3     2021/6/9 215.210 216.570 213.310 213.32    213.32  10233600
## 4    2021/6/10 213.500 214.800 212.210 213.07    213.07  10735900
## 5    2021/6/11 213.450 213.460 211.000 211.64    211.64  12276600
## 6    2021/6/14 212.250 215.165 212.244 213.94    213.94  10773100
## 7    2021/6/15 214.170 214.490 209.640 210.06    210.06  12167000
## 8    2021/6/16 209.750 211.620 208.226 209.32    209.32  10917800
## 9    2021/6/17 209.900 212.490 209.770 211.60    211.60  11233700
## 10   2021/6/18 212.010 213.840 210.590 212.30    212.30  13724600
## 11   2021/6/21 210.550 211.780 208.990 211.06    211.06   9273800
## 12   2021/6/22 210.420 211.660 209.860 211.32    211.32  11092100
## 13   2021/6/23 214.190 216.330 213.130 214.86    214.86  13785800
## 14   2021/6/24 216.990 219.580 215.560 218.38    218.38  13488200
## 15   2021/6/25 221.710 230.250 221.100 228.50    228.50  27383900
## 16   2021/6/28 229.500 230.890 226.720 228.59    228.59  13564900
## 17   2021/6/29 226.700 229.640 225.602 229.44    229.44  10273800
## 18   2021/6/30 226.990 227.980 225.680 226.78    226.78   9348600
## 19    2021/7/1 228.070 228.850 221.550 221.87    221.87  13316400
## 20    2021/7/2 219.160 219.500 216.460 217.75    217.75  12989200
## 21    2021/7/6 215.320 215.400 209.373 211.60    211.60  23719900
## 22    2021/7/7 211.610 212.050 207.820 208.00    208.00  18340400
## 23    2021/7/8 201.710 202.280 198.260 199.85    199.85  33992500
## 24    2021/7/9 202.050 207.268 201.500 205.94    205.94  16911300
## 25   2021/7/12 203.900 206.455 203.020 205.48    205.48  11259500
## 26   2021/7/13 209.230 212.810 208.190 209.51    209.51  17375900
## 27   2021/7/14 215.500 216.350 211.030 211.50    211.50  19484200
## 28   2021/7/15 215.110 216.600 213.161 214.76    214.76  14283600
## 29   2021/7/16 214.850 215.200 211.460 212.10    212.10  11150200
## 30   2021/7/19 206.100 209.080 203.240 208.91    208.91  15865800
## 31   2021/7/20 209.000 211.500 207.467 210.59    210.59   9986800
## 32   2021/7/21 209.150 211.850 208.420 211.08    211.08   7650300
## 33   2021/7/22 212.640 216.390 212.600 214.04    214.04  10563100
## 34   2021/7/23 206.290 206.890 203.560 206.53    206.53  25539900
## 35   2021/7/26 198.370 198.575 190.880 191.76    191.76  55736800
## 36   2021/7/27 183.590 186.900 179.670 186.07    186.07  59265700
## 37   2021/7/28 190.230 198.000 189.760 196.01    196.01  34535200
## 38   2021/7/29 201.045 201.140 194.910 197.54    197.54  23363200
## 39   2021/7/30 190.580 196.045 190.490 195.19    195.19  17250600
## 40    2021/8/2 196.270 202.070 196.250 200.09    200.09  17889200
## 41    2021/8/3 195.010 197.440 192.000 197.38    197.38  20115900
## 42    2021/8/4 197.490 203.275 196.910 200.71    200.71  22327300
## 43    2021/8/5 199.270 200.290 197.640 199.28    199.28   9881400
## 44    2021/8/6 199.250 199.320 195.680 196.39    196.39  11967700
## 45    2021/8/9 194.580 195.500 192.820 195.25    195.25  14657200
## 46   2021/8/10 197.270 198.450 195.073 195.73    195.73   9983700
## 47   2021/8/11 196.600 196.920 194.730 194.86    194.86   8985100
## 48   2021/8/12 191.170 192.980 189.685 191.66    191.66  12873400
## 49   2021/8/13 188.610 189.260 186.710 188.62    188.62  15377000
## 50   2021/8/16 185.000 186.260 181.510 182.71    182.71  21020700
## 51   2021/8/17 175.920 177.890 173.150 173.73    173.73  40558000
## 52   2021/8/18 174.100 175.360 172.110 172.35    172.35  34339800
## 53   2021/8/19 166.700 167.264 159.510 160.55    160.55  66663000
## 54   2021/8/20 164.120 166.930 155.500 157.96    157.96  75948900
## 55   2021/8/23 159.280 161.470 152.800 161.06    161.06  88699200
## 56   2021/8/24 169.040 174.152 168.158 171.70    171.70  62786400
## 57   2021/8/25 168.700 169.610 166.080 169.10    169.10  26055400
## 58   2021/8/26 167.460 168.450 164.820 165.24    165.24  18816500
## 59   2021/8/27 159.990 161.770 158.550 159.47    159.47  31718100
## 60   2021/8/30 160.170 163.290 158.230 162.29    162.29  23769400
## 61   2021/8/31 167.700 169.000 166.140 166.99    166.99  24629100
## 62    2021/9/1 169.560 174.790 169.330 173.28    173.28  29550200
## 63    2021/9/2 178.010 178.180 171.670 172.00    172.00  29302400
## 64    2021/9/3 169.525 172.060 168.880 170.30    170.30  16423500
## 65    2021/9/7 174.150 176.840 173.370 175.16    175.16  24608500
## 66    2021/9/8 174.250 174.370 169.260 170.71    170.71  18993000
## 67    2021/9/9 167.300 169.040 165.580 167.32    167.32  17295800
## 68   2021/9/10 171.200 171.640 167.610 168.10    168.10  15064300
## 69   2021/9/13 164.490 166.862 163.020 165.41    165.41  15458600
## 70   2021/9/14 162.860 163.069 159.480 160.15    160.15  20925900
## 71   2021/9/15 157.950 158.030 153.920 157.86    157.86  31796600
## 72   2021/9/16 154.920 157.639 153.670 156.26    156.26  24358900
## 73   2021/9/17 158.480 160.380 158.090 160.05    160.05  25489000
## 74   2021/9/20 154.400 155.140 149.090 151.49    151.49  36177500
## 75   2021/9/21 151.580 152.580 149.571 150.18    150.18  19494700
## 76   2021/9/22 151.470 154.000 151.020 151.89    151.89  19832000
## 77   2021/9/23 152.580 152.680 149.610 151.19    151.19  24707500
## 78   2021/9/24 147.710 148.000 144.570 145.08    145.08  32067400
## 79   2021/9/27 144.920 150.990 144.440 150.18    150.18  24287400
## 80   2021/9/28 152.160 153.730 148.860 152.39    152.39  26299600
## 81   2021/9/29 150.460 152.100 147.480 147.58    147.58  17361300
## 82   2021/9/30 147.030 149.580 146.864 148.05    148.05  14291500
## 83   2021/10/1 147.090 148.450 143.340 144.20    144.20  20211000
## 84   2021/10/4 141.700 141.900 138.430 139.63    139.63  25218500
## 85   2021/10/5 139.380 143.830 139.190 143.14    143.14  14032100
## 86   2021/10/6 140.560 144.892 139.960 144.10    144.10  14875900
## 87   2021/10/7 151.050 158.290 150.750 156.00    156.00  46035900
## 88   2021/10/8 159.860 162.780 157.910 161.52    161.52  33499200
## 89  2021/10/11 169.610 169.800 163.950 163.95    163.95  42193600
## 90  2021/10/12 163.825 165.730 162.240 163.00    163.00  24512700
## 91  2021/10/13 164.380 168.265 163.600 167.40    167.40  18595000
## 92  2021/10/14 168.260 168.990 164.460 166.78    166.78  17403700
## 93  2021/10/15 166.990 169.800 165.435 168.00    168.00  20762800
## 94  2021/10/18 166.580 169.250 166.580 166.82    166.82  18945900
## 95  2021/10/19 170.600 177.440 170.450 177.00    177.00  33538900
## 96  2021/10/20 180.950 182.090 176.130 177.18    177.18  33714400
## 97  2021/10/21 177.000 179.780 176.710 177.42    177.42  16444000
## 98  2021/10/22 179.080 182.090 175.810 177.70    177.70  20807300
## 99  2021/10/25 177.860 178.280 173.830 176.17    176.17  13119700
## 100 2021/10/26 174.480 174.900 167.480 169.99    169.99  17577000
## 101 2021/10/27 167.530 172.450 167.340 169.23    169.23  11801800
## 102 2021/10/28 168.490 170.350 166.770 169.79    169.79  12440100
## 103 2021/10/29 167.070 168.560 162.720 164.94    164.94  17155400
## 104  2021/11/1 165.840 171.895 165.800 170.17    170.17  17609500
## 105  2021/11/2 167.100 167.100 162.760 162.90    162.90  19072900
## 106  2021/11/3 165.360 166.650 163.110 166.24    166.24  13569700
## 107  2021/11/4 169.280 169.940 164.500 164.79    164.79  16669200
## 108  2021/11/5 164.795 164.795 158.300 158.73    158.73  22098200
## 109  2021/11/8 161.765 162.160 159.480 162.16    162.16  16223100
## 110  2021/11/9 162.160 164.480 159.540 160.19    160.19  14010100
## 111 2021/11/10 163.680 166.480 161.820 163.97    163.97  17216800
## 112 2021/11/11 166.560 169.630 166.560 167.85    167.85  16747500
## 113 2021/11/12 165.174 167.800 163.400 166.81    166.81  13741800
## 114 2021/11/15 167.220 168.460 165.670 166.54    166.54   9655700
## 115 2021/11/16 168.600 169.940 166.670 168.43    168.43  11887500
## 116 2021/11/17 168.020 168.300 161.135 161.58    161.58  18829500
## 117 2021/11/18 146.910 148.500 141.890 143.60    143.60  61571500
## 118 2021/11/19 143.040 145.060 140.000 140.34    140.34  28575700
## 119 2021/11/22 139.900 140.700 135.210 136.62    136.62  26390400
## 120 2021/11/23 136.032 136.850 133.310 133.66    133.66  24102900
## 121 2021/11/24 133.100 136.760 131.220 136.52    136.52  20010400
## 122 2021/11/26 132.930 133.980 131.220 133.35    133.35  14814900
## 123 2021/11/29 134.250 134.550 130.550 131.61    131.61  18648900
## 124 2021/11/30 129.901 131.320 126.130 127.53    127.53  32625400
## 125  2021/12/1 128.370 129.155 121.900 122.49    122.49  29203800
## 126  2021/12/2 123.020 125.000 119.340 122.00    122.00  34478600
## 127  2021/12/3 118.000 118.190 108.700 111.96    111.96  70266500
## 128  2021/12/6 113.640 123.820 113.430 123.60    123.60  43111400
## 129  2021/12/7 129.300 129.450 123.460 125.54    125.54  38542800
## 130  2021/12/8 123.210 126.970 121.320 125.08    125.08  22275000
## 131  2021/12/9 124.630 127.760 123.212 123.91    123.91  23499300
## 132 2021/12/10 123.220 125.210 122.780 125.06    125.06  15008300
## 133 2021/12/13 123.000 123.250 119.750 122.24    122.24  15820500
## 134 2021/12/14 120.930 127.650 120.300 126.58    126.58  17691500
## 135 2021/12/15 122.630 123.590 117.770 122.47    122.47  24893500
## 136 2021/12/16 122.320 125.690 118.900 120.25    120.25  22533400
## 137 2021/12/17 119.490 122.870 117.810 122.10    122.10  19781100
## 138 2021/12/20 118.500 118.830 113.695 115.00    115.00  23970500
## 139 2021/12/21 116.850 122.980 116.600 122.98    122.98  18036300
## 140 2021/12/22 117.090 118.660 115.150 117.81    117.81  24502000
## 141 2021/12/23 116.800 119.590 115.390 118.66    118.66  17563300
## 142 2021/12/27 117.800 121.800 116.102 116.59    116.59  17864400
## 143 2021/12/28 116.260 116.420 114.470 114.80    114.80  17052100
## 144 2021/12/29 113.800 114.200 110.380 112.09    112.09  21100500
## 145 2021/12/30 112.630 124.300 112.300 122.99    122.99  45437100
## 146 2021/12/31 121.230 122.910 118.590 118.79    118.79  24287000
## 147   2022/1/3 119.380 121.950 115.820 120.38    120.38  16775300
## 148   2022/1/4 119.530 120.870 115.770 119.56    119.56  20824000
## 149   2022/1/5 118.000 126.620 117.700 121.16    121.16  36651100
## 150   2022/1/6 124.260 128.400 123.465 126.63    126.63  32045800
## 151   2022/1/7 130.240 133.880 128.180 129.81    129.81  38113000
## 152  2022/1/10 131.990 132.600 126.230 128.30    128.30  23372200
## 153  2022/1/11 129.210 134.230 127.470 132.19    132.19  23616400
## 154  2022/1/12 136.020 138.700 135.585 137.41    137.41  25961100
## 155  2022/1/13 135.200 135.920 131.300 131.37    131.37  19887700
## 156  2022/1/14 132.810 134.360 129.350 131.57    131.57  18614900
## 157  2022/1/18 126.270 132.130 124.820 128.60    128.60  26122200
## 158  2022/1/19 128.100 130.860 127.130 127.74    127.74  14665200
## 159  2022/1/20 135.770 136.750 130.680 131.03    131.03  28966400
## 160  2022/1/21 128.230 128.960 122.521 123.23    123.23  26341400
## 161  2022/1/24 119.320 120.780 115.320 120.37    120.37  28509300
## 162  2022/1/25 119.910 122.460 118.040 119.14    119.14  22224100
## 163  2022/1/26 120.930 120.930 112.962 113.37    113.37  27513200
## 164  2022/1/27 113.110 114.540 110.270 111.79    111.79  21472700
## 165  2022/1/28 113.250 115.320 110.060 115.23    115.23  18892400
## 166  2022/1/31 118.170 125.870 117.500 125.79    125.79  20346500
## 167   2022/2/1 124.810 128.000 122.970 127.22    127.22  15036100
## 168   2022/2/2 127.630 127.630 121.170 122.88    122.88  14050100
## 169   2022/2/3 121.550 125.270 120.730 123.47    123.47  16651500
## 170   2022/2/4 121.270 123.940 119.660 122.22    122.22  13538200
## 171   2022/2/7 116.100 116.550 113.600 114.82    114.82  28589200
## 172   2022/2/8 118.160 122.240 116.800 121.90    121.90  22340500
## 173   2022/2/9 123.090 126.800 121.940 126.50    126.50  18253600
## 174  2022/2/10 124.110 128.340 123.400 123.98    123.98  16116600
## 175  2022/2/11 125.335 126.720 121.940 122.25    122.25  13889900
## 176  2022/2/14 120.560 122.384 119.370 121.92    121.92  13154900
## 177  2022/2/15 123.770 126.805 123.378 126.24    126.24  14634700
## 178  2022/2/16 125.610 127.580 124.510 125.56    125.56  17993300
## 179  2022/2/17 125.000 129.400 124.056 124.43    124.43  15906000
## 180  2022/2/18 120.880 120.880 117.200 118.99    118.99  21201400
## 181  2022/2/22 114.000 114.850 112.060 112.93    112.93  21755100
## 182  2022/2/23 115.100 115.400 109.600 109.72    109.72  24489200
## 183  2022/2/24 100.074 108.950 100.020 108.93    108.93  35294700
## 184  2022/2/25 107.890 108.550 104.000 107.94    107.94  21428400
## 185  2022/2/28 105.970 107.490 103.640 105.19    105.19  23063500
## 186   2022/3/1 105.850 111.250 105.850 107.09    107.09  21218500
## 187   2022/3/2 107.390 107.390 103.240 105.42    105.42  20791800
## 188   2022/3/3 106.030 106.630 101.070 102.05    102.05  21725900
## 189   2022/3/4 100.290 104.390  99.330 100.60    100.60  24574700
## 190   2022/3/7  99.560 103.360  98.600  98.66     98.66  20679400
## 191   2022/3/8  99.320 100.910  95.570  97.50     97.50  23275500
## 192   2022/3/9 100.260 100.970  98.320 100.93    100.93  20853600
## 193  2022/3/10  95.190  95.700  90.820  92.92     92.92  37671200
## 194  2022/3/11  93.260  93.950  86.680  86.71     86.71  39341800
## 195  2022/3/14  80.700  82.450  77.080  77.76     77.76  69992600
## 196  2022/3/15  75.100  80.140  73.280  76.76     76.76  86209300
## 197  2022/3/16  92.000 105.740  87.120 104.98    104.98 159834300
## 198  2022/3/17  99.140 101.890  95.770 100.37    100.37  80663200
## 199  2022/3/18 100.500 111.740  99.600 108.30    108.30  83781800
## 200  2022/3/21 102.810 105.680  98.700 103.59    103.59  58882900
## 201  2022/3/22 114.010 118.240 112.370 114.99    114.99  88193400
## 202  2022/3/23 115.700 124.111 112.680 117.24    117.24  81605700
## 203  2022/3/24 112.860 116.500 110.820 115.15    115.15  55850200
## 204  2022/3/25 110.530 113.860 109.400 112.99    112.99  42396500
## 205  2022/3/28 113.860 116.230 111.920 115.09    115.09  30168000
## 206  2022/3/29 118.360 119.600 115.740 116.71    116.71  28060900
## 207  2022/3/30 115.540 120.102 115.540 116.58    116.58  28381700
## 208  2022/3/31 115.030 115.090 108.710 108.80    108.80  31240200
## 209   2022/4/1 117.620 118.950 109.750 110.20    110.20  55873000
## 210   2022/4/4 115.700 118.220 113.375 117.50    117.50  39088500
## 211   2022/4/5 115.000 115.000 110.230 111.00    111.00  35226000
## 212   2022/4/6 109.240 109.470 106.120 107.68    107.68  23739800
## 213   2022/4/7 106.680 107.530 102.610 104.27    104.27  26814300
## 214   2022/4/8 104.480 106.470 103.329 103.53    103.53  20814900
## 215  2022/4/11 101.090 103.920  99.160 101.55    101.55  23504100
## 216  2022/4/12 101.180 102.330  99.390  99.75     99.75  23953600
## 217  2022/4/13  99.240 101.350  98.210 100.03    100.03  18330400
## 218  2022/4/14  97.290  99.271  95.305  95.49     95.49  20931200
## 219  2022/4/18  93.770  95.280  91.820  94.71     94.71  19159200
## 220  2022/4/19  92.290  93.950  90.950  93.50     93.50  23870000
## 221  2022/4/20  93.480  93.700  89.270  89.41     89.41  20949700
## 222  2022/4/21  89.550  90.010  85.400  85.99     85.99  25639000
## 223  2022/4/22  86.500  90.680  86.311  86.49     86.49  25130300
## 224  2022/4/25  82.700  86.170  81.800  85.84     85.84  24674000
## 225  2022/4/26  85.870  86.240  83.280  83.99     83.99  21194600
## 226  2022/4/27  85.320  89.410  84.780  88.32     88.32  29351600
## 227  2022/4/28  88.620  90.980  86.940  90.91     90.91  17707500
## 228  2022/4/29 101.530 103.520  96.660  97.09     97.09  44933400
## 229   2022/5/2  96.410 101.320  95.150 101.21    101.21  25479500
## 230   2022/5/3 100.130 102.690  99.430 100.38    100.38  15216100
## 231   2022/5/4  97.720 101.570  96.610 101.41    101.41  17740600
## 232   2022/5/5  97.940  98.470  94.050  94.64     94.64  18673100
## 233   2022/5/6  93.360  93.860  88.710  90.05     90.05  18568600
## 234   2022/5/9  86.955  88.600  84.430  84.84     84.84  23338600
## 235  2022/5/10  88.640  88.640  83.510  84.57     84.57  23400900
## 236  2022/5/11  85.510  87.520  81.470  81.73     81.73  24962400
## 237  2022/5/12  80.680  83.120  78.010  81.09     81.09  23833100
## 238  2022/5/13  82.120  88.360  82.000  87.99     87.99  20078400
## 239  2022/5/16  87.700  89.080  86.340  86.48     86.48  19644800
## 240  2022/5/17  92.750  94.480  89.540  91.99     91.99  27330300
## 241  2022/5/18  90.000  91.640  87.000  87.31     87.31  18991300
## 242  2022/5/19  86.180  90.090  85.740  87.69     87.69  20776400
## 243  2022/5/20  88.700  90.170  84.730  86.79     86.79  21020800
## 244  2022/5/23  87.060  87.415  84.760  87.23     87.23  13998200
## 245  2022/5/24  84.990  85.120  81.540  82.47     82.47  15214400
## 246  2022/5/25  83.720  84.070  81.070  82.31     82.31  23093700
## 247  2022/5/26  87.300  95.090  86.730  94.48     94.48  50825000
## 248  2022/5/27  92.210  94.500  90.370  93.41     93.41  26716000
## 249  2022/5/31  98.330  99.320  95.450  96.05     96.05  33790000
## 250   2022/6/1  95.900  96.930  91.880  93.38     93.38  23730900
## 251   2022/6/2  93.670  97.630  93.400  97.50     97.50  23228100
## 252   2022/6/3  95.150  96.000  93.023  93.21     93.21  15840000
## 253   2022/6/6  99.640 102.420  97.915  99.01     99.01  31847336

R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

evaluate <- function(PARAM, minVal = NA, maxVal = NA, y = 2014,
                     transform = FALSE, verbose = FALSE,
                     negative = FALSE, transformOnly = FALSE,
                     returnData = FALSE, accountParams = NULL){
  
  # Step 1
  # Convert and declare parameters if they exist on unbounded (-inf,inf) domain
  if( transform | transformOnly ){
    PARAM <- minVal +
      (maxVal - minVal) * unlist(lapply( PARAM, function(v) (1 + exp(-v))^(-1) ))
    if( transformOnly ){

    }
  }
 return(PARAM)  
}  ## 修改
  
 
# Declare bounds and step size for optimization
lowerBound <- c(n1 = 5, nFact = 3, nSharpe = 22, shThresh = 0.05)
upperBound <- c(n1 = 80, nFact = 3, nSharpe = 22, shThresh = 0.95)
stepSize <- c(n1 = 5, nFact = 1, nSharpe = 1, shThresh = 0.05)

pnames <- names(stepSize)
np <- length(pnames)

# Declare list of all test points
POINTS <- list()
for( p in pnames ){
  POINTS[[p]] <- seq(lowerBound[[p]], upperBound[[p]], stepSize[[p]])
}

OPTIM <- data.frame(matrix(NA, nrow = prod(unlist(lapply(POINTS, length))),
                           ncol = np + 1))
names(OPTIM)[1:np] <- names(POINTS)
names(OPTIM)[np+1] <- "obj"

# Store all possible combinations of parameters
for( i in 1:np ){
  each <- prod(unlist(lapply(POINTS, length))[-(1:i)])
  times <- prod(unlist(lapply(POINTS, length))[-(i:length(pnames))])
  OPTIM[,i] <- rep(POINTS[[pnames[i]]], each = each, times = times)
}

# Test each row of OPTIM
timeLapse <- proc.time()[3]
for( i in 1:nrow(OPTIM) ){
  OPTIM[i,np+1] <- evaluate(OPTIM[i,1:np], transform = FALSE, y = 2014)
  cat(paste0("##  ", floor( 100 * i / nrow(OPTIM)), "% complete\n"))
  cat(paste0("##  ",
             round( ((proc.time()[3] - timeLapse) * 
                       ((nrow(OPTIM) - i)/ i))/60, 2),
             " minutes remaining\n\n"))
}
## ##  0% complete
## ##  0.05 minutes remaining
## 
## ##  0% complete
## ##  0.08 minutes remaining
## 
## ##  0% complete
## ##  0.05 minutes remaining
## 
## ##  1% complete
## ##  0.04 minutes remaining
## 
## ##  1% complete
## ##  0.03 minutes remaining
## 
## ##  1% complete
## ##  0.02 minutes remaining
## 
## ##  2% complete
## ##  0.02 minutes remaining
## 
## ##  2% complete
## ##  0.02 minutes remaining
## 
## ##  2% complete
## ##  0.02 minutes remaining
## 
## ##  3% complete
## ##  0.02 minutes remaining
## 
## ##  3% complete
## ##  0.02 minutes remaining
## 
## ##  3% complete
## ##  0.02 minutes remaining
## 
## ##  4% complete
## ##  0.01 minutes remaining
## 
## ##  4% complete
## ##  0.01 minutes remaining
## 
## ##  4% complete
## ##  0.01 minutes remaining
## 
## ##  5% complete
## ##  0.01 minutes remaining
## 
## ##  5% complete
## ##  0.01 minutes remaining
## 
## ##  5% complete
## ##  0.01 minutes remaining
## 
## ##  6% complete
## ##  0.01 minutes remaining
## 
## ##  6% complete
## ##  0.01 minutes remaining
## 
## ##  6% complete
## ##  0.01 minutes remaining
## 
## ##  7% complete
## ##  0.01 minutes remaining
## 
## ##  7% complete
## ##  0.01 minutes remaining
## 
## ##  7% complete
## ##  0.01 minutes remaining
## 
## ##  8% complete
## ##  0.01 minutes remaining
## 
## ##  8% complete
## ##  0.01 minutes remaining
## 
## ##  8% complete
## ##  0.01 minutes remaining
## 
## ##  9% complete
## ##  0.01 minutes remaining
## 
## ##  9% complete
## ##  0.01 minutes remaining
## 
## ##  9% complete
## ##  0.01 minutes remaining
## 
## ##  10% complete
## ##  0.01 minutes remaining
## 
## ##  10% complete
## ##  0.01 minutes remaining
## 
## ##  10% complete
## ##  0.01 minutes remaining
## 
## ##  11% complete
## ##  0.01 minutes remaining
## 
## ##  11% complete
## ##  0.01 minutes remaining
## 
## ##  11% complete
## ##  0.01 minutes remaining
## 
## ##  12% complete
## ##  0.01 minutes remaining
## 
## ##  12% complete
## ##  0.01 minutes remaining
## 
## ##  12% complete
## ##  0.01 minutes remaining
## 
## ##  13% complete
## ##  0.01 minutes remaining
## 
## ##  13% complete
## ##  0.01 minutes remaining
## 
## ##  13% complete
## ##  0.01 minutes remaining
## 
## ##  14% complete
## ##  0.01 minutes remaining
## 
## ##  14% complete
## ##  0.01 minutes remaining
## 
## ##  14% complete
## ##  0.01 minutes remaining
## 
## ##  15% complete
## ##  0.01 minutes remaining
## 
## ##  15% complete
## ##  0.01 minutes remaining
## 
## ##  15% complete
## ##  0.01 minutes remaining
## 
## ##  16% complete
## ##  0.01 minutes remaining
## 
## ##  16% complete
## ##  0.01 minutes remaining
## 
## ##  16% complete
## ##  0 minutes remaining
## 
## ##  17% complete
## ##  0 minutes remaining
## 
## ##  17% complete
## ##  0.01 minutes remaining
## 
## ##  17% complete
## ##  0.01 minutes remaining
## 
## ##  18% complete
## ##  0.01 minutes remaining
## 
## ##  18% complete
## ##  0.01 minutes remaining
## 
## ##  18% complete
## ##  0.01 minutes remaining
## 
## ##  19% complete
## ##  0 minutes remaining
## 
## ##  19% complete
## ##  0 minutes remaining
## 
## ##  19% complete
## ##  0 minutes remaining
## 
## ##  20% complete
## ##  0 minutes remaining
## 
## ##  20% complete
## ##  0 minutes remaining
## 
## ##  20% complete
## ##  0 minutes remaining
## 
## ##  21% complete
## ##  0 minutes remaining
## 
## ##  21% complete
## ##  0 minutes remaining
## 
## ##  21% complete
## ##  0 minutes remaining
## 
## ##  22% complete
## ##  0 minutes remaining
## 
## ##  22% complete
## ##  0 minutes remaining
## 
## ##  22% complete
## ##  0 minutes remaining
## 
## ##  23% complete
## ##  0 minutes remaining
## 
## ##  23% complete
## ##  0 minutes remaining
## 
## ##  23% complete
## ##  0 minutes remaining
## 
## ##  24% complete
## ##  0 minutes remaining
## 
## ##  24% complete
## ##  0 minutes remaining
## 
## ##  24% complete
## ##  0 minutes remaining
## 
## ##  25% complete
## ##  0 minutes remaining
## 
## ##  25% complete
## ##  0 minutes remaining
## 
## ##  25% complete
## ##  0 minutes remaining
## 
## ##  25% complete
## ##  0 minutes remaining
## 
## ##  26% complete
## ##  0 minutes remaining
## 
## ##  26% complete
## ##  0 minutes remaining
## 
## ##  26% complete
## ##  0 minutes remaining
## 
## ##  27% complete
## ##  0 minutes remaining
## 
## ##  27% complete
## ##  0 minutes remaining
## 
## ##  27% complete
## ##  0 minutes remaining
## 
## ##  28% complete
## ##  0 minutes remaining
## 
## ##  28% complete
## ##  0 minutes remaining
## 
## ##  28% complete
## ##  0 minutes remaining
## 
## ##  29% complete
## ##  0 minutes remaining
## 
## ##  29% complete
## ##  0 minutes remaining
## 
## ##  29% complete
## ##  0 minutes remaining
## 
## ##  30% complete
## ##  0 minutes remaining
## 
## ##  30% complete
## ##  0 minutes remaining
## 
## ##  30% complete
## ##  0 minutes remaining
## 
## ##  31% complete
## ##  0 minutes remaining
## 
## ##  31% complete
## ##  0 minutes remaining
## 
## ##  31% complete
## ##  0 minutes remaining
## 
## ##  32% complete
## ##  0 minutes remaining
## 
## ##  32% complete
## ##  0 minutes remaining
## 
## ##  32% complete
## ##  0 minutes remaining
## 
## ##  33% complete
## ##  0 minutes remaining
## 
## ##  33% complete
## ##  0 minutes remaining
## 
## ##  33% complete
## ##  0 minutes remaining
## 
## ##  34% complete
## ##  0 minutes remaining
## 
## ##  34% complete
## ##  0 minutes remaining
## 
## ##  34% complete
## ##  0 minutes remaining
## 
## ##  35% complete
## ##  0 minutes remaining
## 
## ##  35% complete
## ##  0 minutes remaining
## 
## ##  35% complete
## ##  0 minutes remaining
## 
## ##  36% complete
## ##  0 minutes remaining
## 
## ##  36% complete
## ##  0 minutes remaining
## 
## ##  36% complete
## ##  0 minutes remaining
## 
## ##  37% complete
## ##  0 minutes remaining
## 
## ##  37% complete
## ##  0 minutes remaining
## 
## ##  37% complete
## ##  0 minutes remaining
## 
## ##  38% complete
## ##  0 minutes remaining
## 
## ##  38% complete
## ##  0 minutes remaining
## 
## ##  38% complete
## ##  0 minutes remaining
## 
## ##  39% complete
## ##  0 minutes remaining
## 
## ##  39% complete
## ##  0 minutes remaining
## 
## ##  39% complete
## ##  0 minutes remaining
## 
## ##  40% complete
## ##  0 minutes remaining
## 
## ##  40% complete
## ##  0 minutes remaining
## 
## ##  40% complete
## ##  0 minutes remaining
## 
## ##  41% complete
## ##  0 minutes remaining
## 
## ##  41% complete
## ##  0 minutes remaining
## 
## ##  41% complete
## ##  0 minutes remaining
## 
## ##  42% complete
## ##  0 minutes remaining
## 
## ##  42% complete
## ##  0 minutes remaining
## 
## ##  42% complete
## ##  0 minutes remaining
## 
## ##  43% complete
## ##  0 minutes remaining
## 
## ##  43% complete
## ##  0 minutes remaining
## 
## ##  43% complete
## ##  0 minutes remaining
## 
## ##  44% complete
## ##  0 minutes remaining
## 
## ##  44% complete
## ##  0 minutes remaining
## 
## ##  44% complete
## ##  0 minutes remaining
## 
## ##  45% complete
## ##  0 minutes remaining
## 
## ##  45% complete
## ##  0 minutes remaining
## 
## ##  45% complete
## ##  0 minutes remaining
## 
## ##  46% complete
## ##  0 minutes remaining
## 
## ##  46% complete
## ##  0 minutes remaining
## 
## ##  46% complete
## ##  0 minutes remaining
## 
## ##  47% complete
## ##  0 minutes remaining
## 
## ##  47% complete
## ##  0 minutes remaining
## 
## ##  47% complete
## ##  0 minutes remaining
## 
## ##  48% complete
## ##  0 minutes remaining
## 
## ##  48% complete
## ##  0 minutes remaining
## 
## ##  48% complete
## ##  0 minutes remaining
## 
## ##  49% complete
## ##  0 minutes remaining
## 
## ##  49% complete
## ##  0 minutes remaining
## 
## ##  49% complete
## ##  0 minutes remaining
## 
## ##  50% complete
## ##  0 minutes remaining
## 
## ##  50% complete
## ##  0 minutes remaining
## 
## ##  50% complete
## ##  0 minutes remaining
## 
## ##  50% complete
## ##  0 minutes remaining
## 
## ##  51% complete
## ##  0 minutes remaining
## 
## ##  51% complete
## ##  0 minutes remaining
## 
## ##  51% complete
## ##  0 minutes remaining
## 
## ##  52% complete
## ##  0 minutes remaining
## 
## ##  52% complete
## ##  0 minutes remaining
## 
## ##  52% complete
## ##  0 minutes remaining
## 
## ##  53% complete
## ##  0 minutes remaining
## 
## ##  53% complete
## ##  0 minutes remaining
## 
## ##  53% complete
## ##  0 minutes remaining
## 
## ##  54% complete
## ##  0 minutes remaining
## 
## ##  54% complete
## ##  0 minutes remaining
## 
## ##  54% complete
## ##  0 minutes remaining
## 
## ##  55% complete
## ##  0 minutes remaining
## 
## ##  55% complete
## ##  0 minutes remaining
## 
## ##  55% complete
## ##  0 minutes remaining
## 
## ##  56% complete
## ##  0 minutes remaining
## 
## ##  56% complete
## ##  0 minutes remaining
## 
## ##  56% complete
## ##  0 minutes remaining
## 
## ##  57% complete
## ##  0 minutes remaining
## 
## ##  57% complete
## ##  0 minutes remaining
## 
## ##  57% complete
## ##  0 minutes remaining
## 
## ##  58% complete
## ##  0 minutes remaining
## 
## ##  58% complete
## ##  0 minutes remaining
## 
## ##  58% complete
## ##  0 minutes remaining
## 
## ##  59% complete
## ##  0 minutes remaining
## 
## ##  59% complete
## ##  0 minutes remaining
## 
## ##  59% complete
## ##  0 minutes remaining
## 
## ##  60% complete
## ##  0 minutes remaining
## 
## ##  60% complete
## ##  0 minutes remaining
## 
## ##  60% complete
## ##  0 minutes remaining
## 
## ##  61% complete
## ##  0 minutes remaining
## 
## ##  61% complete
## ##  0 minutes remaining
## 
## ##  61% complete
## ##  0 minutes remaining
## 
## ##  62% complete
## ##  0 minutes remaining
## 
## ##  62% complete
## ##  0 minutes remaining
## 
## ##  62% complete
## ##  0 minutes remaining
## 
## ##  63% complete
## ##  0 minutes remaining
## 
## ##  63% complete
## ##  0 minutes remaining
## 
## ##  63% complete
## ##  0 minutes remaining
## 
## ##  64% complete
## ##  0 minutes remaining
## 
## ##  64% complete
## ##  0 minutes remaining
## 
## ##  64% complete
## ##  0 minutes remaining
## 
## ##  65% complete
## ##  0 minutes remaining
## 
## ##  65% complete
## ##  0 minutes remaining
## 
## ##  65% complete
## ##  0 minutes remaining
## 
## ##  66% complete
## ##  0 minutes remaining
## 
## ##  66% complete
## ##  0 minutes remaining
## 
## ##  66% complete
## ##  0 minutes remaining
## 
## ##  67% complete
## ##  0 minutes remaining
## 
## ##  67% complete
## ##  0 minutes remaining
## 
## ##  67% complete
## ##  0 minutes remaining
## 
## ##  68% complete
## ##  0 minutes remaining
## 
## ##  68% complete
## ##  0 minutes remaining
## 
## ##  68% complete
## ##  0 minutes remaining
## 
## ##  69% complete
## ##  0 minutes remaining
## 
## ##  69% complete
## ##  0 minutes remaining
## 
## ##  69% complete
## ##  0 minutes remaining
## 
## ##  70% complete
## ##  0 minutes remaining
## 
## ##  70% complete
## ##  0 minutes remaining
## 
## ##  70% complete
## ##  0 minutes remaining
## 
## ##  71% complete
## ##  0 minutes remaining
## 
## ##  71% complete
## ##  0 minutes remaining
## 
## ##  71% complete
## ##  0 minutes remaining
## 
## ##  72% complete
## ##  0 minutes remaining
## 
## ##  72% complete
## ##  0 minutes remaining
## 
## ##  72% complete
## ##  0 minutes remaining
## 
## ##  73% complete
## ##  0 minutes remaining
## 
## ##  73% complete
## ##  0 minutes remaining
## 
## ##  73% complete
## ##  0 minutes remaining
## 
## ##  74% complete
## ##  0 minutes remaining
## 
## ##  74% complete
## ##  0 minutes remaining
## 
## ##  74% complete
## ##  0 minutes remaining
## 
## ##  75% complete
## ##  0 minutes remaining
## 
## ##  75% complete
## ##  0 minutes remaining
## 
## ##  75% complete
## ##  0 minutes remaining
## 
## ##  75% complete
## ##  0 minutes remaining
## 
## ##  76% complete
## ##  0 minutes remaining
## 
## ##  76% complete
## ##  0 minutes remaining
## 
## ##  76% complete
## ##  0 minutes remaining
## 
## ##  77% complete
## ##  0 minutes remaining
## 
## ##  77% complete
## ##  0 minutes remaining
## 
## ##  77% complete
## ##  0 minutes remaining
## 
## ##  78% complete
## ##  0 minutes remaining
## 
## ##  78% complete
## ##  0 minutes remaining
## 
## ##  78% complete
## ##  0 minutes remaining
## 
## ##  79% complete
## ##  0 minutes remaining
## 
## ##  79% complete
## ##  0 minutes remaining
## 
## ##  79% complete
## ##  0 minutes remaining
## 
## ##  80% complete
## ##  0 minutes remaining
## 
## ##  80% complete
## ##  0 minutes remaining
## 
## ##  80% complete
## ##  0 minutes remaining
## 
## ##  81% complete
## ##  0 minutes remaining
## 
## ##  81% complete
## ##  0 minutes remaining
## 
## ##  81% complete
## ##  0 minutes remaining
## 
## ##  82% complete
## ##  0 minutes remaining
## 
## ##  82% complete
## ##  0 minutes remaining
## 
## ##  82% complete
## ##  0 minutes remaining
## 
## ##  83% complete
## ##  0 minutes remaining
## 
## ##  83% complete
## ##  0 minutes remaining
## 
## ##  83% complete
## ##  0 minutes remaining
## 
## ##  84% complete
## ##  0 minutes remaining
## 
## ##  84% complete
## ##  0 minutes remaining
## 
## ##  84% complete
## ##  0 minutes remaining
## 
## ##  85% complete
## ##  0 minutes remaining
## 
## ##  85% complete
## ##  0 minutes remaining
## 
## ##  85% complete
## ##  0 minutes remaining
## 
## ##  86% complete
## ##  0 minutes remaining
## 
## ##  86% complete
## ##  0 minutes remaining
## 
## ##  86% complete
## ##  0 minutes remaining
## 
## ##  87% complete
## ##  0 minutes remaining
## 
## ##  87% complete
## ##  0 minutes remaining
## 
## ##  87% complete
## ##  0 minutes remaining
## 
## ##  88% complete
## ##  0 minutes remaining
## 
## ##  88% complete
## ##  0 minutes remaining
## 
## ##  88% complete
## ##  0 minutes remaining
## 
## ##  89% complete
## ##  0 minutes remaining
## 
## ##  89% complete
## ##  0 minutes remaining
## 
## ##  89% complete
## ##  0 minutes remaining
## 
## ##  90% complete
## ##  0 minutes remaining
## 
## ##  90% complete
## ##  0 minutes remaining
## 
## ##  90% complete
## ##  0 minutes remaining
## 
## ##  91% complete
## ##  0 minutes remaining
## 
## ##  91% complete
## ##  0 minutes remaining
## 
## ##  91% complete
## ##  0 minutes remaining
## 
## ##  92% complete
## ##  0 minutes remaining
## 
## ##  92% complete
## ##  0 minutes remaining
## 
## ##  92% complete
## ##  0 minutes remaining
## 
## ##  93% complete
## ##  0 minutes remaining
## 
## ##  93% complete
## ##  0 minutes remaining
## 
## ##  93% complete
## ##  0 minutes remaining
## 
## ##  94% complete
## ##  0 minutes remaining
## 
## ##  94% complete
## ##  0 minutes remaining
## 
## ##  94% complete
## ##  0 minutes remaining
## 
## ##  95% complete
## ##  0 minutes remaining
## 
## ##  95% complete
## ##  0 minutes remaining
## 
## ##  95% complete
## ##  0 minutes remaining
## 
## ##  96% complete
## ##  0 minutes remaining
## 
## ##  96% complete
## ##  0 minutes remaining
## 
## ##  96% complete
## ##  0 minutes remaining
## 
## ##  97% complete
## ##  0 minutes remaining
## 
## ##  97% complete
## ##  0 minutes remaining
## 
## ##  97% complete
## ##  0 minutes remaining
## 
## ##  98% complete
## ##  0 minutes remaining
## 
## ##  98% complete
## ##  0 minutes remaining
## 
## ##  98% complete
## ##  0 minutes remaining
## 
## ##  99% complete
## ##  0 minutes remaining
## 
## ##  99% complete
## ##  0 minutes remaining
## 
## ##  99% complete
## ##  0 minutes remaining
## 
## ##  100% complete
## ##  0 minutes remaining
library(lattice)
wireframe(obj ~ n1*shThresh, data = OPTIM,
          xlab = "n1", ylab = "shThresh",
          main = "Long-Only MACD Exhaustive Optimization",
          drape = TRUE,
          colorkey = TRUE,
          screen = list(z = 15, x = -60)
)

levelplot(obj ~ n1*shThresh, data = OPTIM,
          xlab = "n1", ylab = "shThresh",
          main = "Long-Only MACD Exhaustive Optimization"
)