diff --git a/Figure_0.png b/Figure_0.png new file mode 100644 index 0000000..a015367 Binary files /dev/null and b/Figure_0.png differ diff --git a/Figure_1.png b/Figure_1.png new file mode 100644 index 0000000..4e38b19 Binary files /dev/null and b/Figure_1.png differ diff --git a/Figure_3.png b/Figure_3.png new file mode 100644 index 0000000..fa30a05 Binary files /dev/null and b/Figure_3.png differ diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/datas/binance/DOGEUSD_PERP-1h-2023-06-04.csv b/datas/binance/DOGEUSD_PERP-1h-2023-06-04.csv new file mode 100644 index 0000000..0232a0f --- /dev/null +++ b/datas/binance/DOGEUSD_PERP-1h-2023-06-04.csv @@ -0,0 +1,25 @@ +open_time,open,high,low,close,volume,close_time,quote_volume,count,taker_buy_volume,taker_buy_quote_volume,ignore +1685836800000,0.072730,0.072810,0.072570,0.072570,58111,1685840399999,7991414.35896069,552,32165,4423366.92460593,0 +1685840400000,0.072560,0.072840,0.072460,0.072810,53032,1685843999999,7295310.71792492,603,33598,4623711.39498059,0 +1685844000000,0.072810,0.072910,0.072760,0.072890,44538,1685847599999,6114303.39220985,536,17873,2454061.38174553,0 +1685847600000,0.072870,0.072880,0.072560,0.072630,56754,1685851199999,7808910.02780948,602,28194,3881046.15696896,0 +1685851200000,0.072630,0.072790,0.072600,0.072610,21745,1685854799999,2990896.00646854,286,10155,1397024.07767085,0 +1685854800000,0.072610,0.072660,0.072570,0.072650,10994,1685858399999,1514209.52430823,155,5738,790289.82877620,0 +1685858400000,0.072640,0.072880,0.072630,0.072880,33660,1685861999999,4623188.74299656,401,19183,2634961.62288128,0 +1685862000000,0.072890,0.072950,0.072810,0.072870,36496,1685865599999,5007575.59905092,526,14157,1942758.98186236,0 +1685865600000,0.072880,0.072890,0.072810,0.072830,8066,1685869199999,1107418.18998778,171,3776,518389.12238184,0 +1685869200000,0.072840,0.073070,0.072840,0.073020,43473,1685872799999,5956725.15318858,644,22442,3075506.74511970,0 +1685872800000,0.073030,0.073100,0.072890,0.072940,62254,1685876399999,8528919.08260126,888,28704,3932758.13282371,0 +1685876400000,0.072920,0.072930,0.072760,0.072880,34045,1685879999999,4674071.33895892,431,19274,2646082.32432850,0 +1685880000000,0.072880,0.072890,0.072690,0.072860,50505,1685883599999,6939812.17518720,660,19946,2741456.42907813,0 +1685883600000,0.072860,0.072990,0.072710,0.072890,43451,1685887199999,5966213.91353040,594,20817,2858103.56328453,0 +1685887200000,0.072890,0.072990,0.072660,0.072870,131116,1685890799999,18006222.57703100,1177,37643,5168485.29469480,0 +1685890800000,0.072870,0.072870,0.072630,0.072690,56968,1685894399999,7830314.53033614,642,28039,3854514.82931620,0 +1685894400000,0.072690,0.072780,0.072630,0.072700,26465,1685897999999,3640400.78461563,419,13420,1846031.05884982,0 +1685898000000,0.072690,0.072800,0.072670,0.072670,18604,1685901599999,2557567.02354741,336,6833,939251.79471339,0 +1685901600000,0.072670,0.072950,0.072610,0.072900,44157,1685905199999,6062828.12769000,600,22358,3071158.93973266,0 +1685905200000,0.072890,0.072970,0.072820,0.072880,63615,1685908799999,8728856.98592435,701,25016,3432236.05975341,0 +1685908800000,0.072870,0.073000,0.072840,0.072950,16171,1685912399999,2217397.79223324,224,6616,907399.09982059,0 +1685912400000,0.072950,0.072960,0.072810,0.072850,21828,1685915999999,2994467.47060023,292,10777,1478827.65533750,0 +1685916000000,0.072840,0.073350,0.072840,0.072910,149743,1685919599999,20485246.60497221,1888,73749,10091693.94769921,0 +1685919600000,0.072920,0.073060,0.072340,0.072450,164861,1685923199999,22708106.20968347,1903,73779,10161300.48721385,0 diff --git a/datas/binance/binance_btc_usdt_6months.csv b/datas/binance/binance_btc_usdt_6months.csv new file mode 100644 index 0000000..6e9cb7a --- /dev/null +++ b/datas/binance/binance_btc_usdt_6months.csv @@ -0,0 +1,5001 @@ +timestamp,open,high,low,close,volume +2023-01-01 00:00:00,16541.77,16545.7,16508.39,16529.67,4364.8357 +2023-01-01 01:00:00,16529.59,16556.8,16525.78,16551.47,3590.06669 +2023-01-01 02:00:00,16551.47,16559.77,16538.14,16548.19,3318.84038 +2023-01-01 03:00:00,16548.19,16548.19,16518.21,16533.04,4242.0805 +2023-01-01 04:00:00,16533.04,16535.97,16511.92,16521.85,4285.00909 +2023-01-01 05:00:00,16522.22,16534.98,16512.3,16530.71,3717.37178 +2023-01-01 06:00:00,16530.71,16550.0,16528.81,16539.79,3344.90206 +2023-01-01 07:00:00,16539.79,16544.57,16499.01,16526.19,5184.95822 +2023-01-01 08:00:00,16525.7,16534.03,16508.45,16513.34,4271.92023 +2023-01-01 09:00:00,16513.33,16542.49,16505.2,16537.88,4100.75049 +2023-01-01 10:00:00,16538.32,16548.71,16533.42,16548.34,3803.76616 +2023-01-01 11:00:00,16547.98,16557.0,16540.2,16556.66,3739.53013 +2023-01-01 12:00:00,16556.66,16572.94,16548.58,16560.93,4150.48564 +2023-01-01 13:00:00,16561.29,16567.26,16539.05,16548.04,4379.68203 +2023-01-01 14:00:00,16547.61,16558.56,16540.85,16542.94,3294.99093 +2023-01-01 15:00:00,16542.94,16559.99,16533.68,16558.73,3220.93236 +2023-01-01 16:00:00,16558.73,16584.66,16558.0,16565.14,4962.13235 +2023-01-01 17:00:00,16565.13,16596.64,16562.51,16578.85,4714.40354 +2023-01-01 18:00:00,16579.25,16603.89,16578.85,16591.88,4146.37245 +2023-01-01 19:00:00,16591.35,16623.65,16591.34,16603.08,4709.74023 +2023-01-01 20:00:00,16603.53,16628.0,16600.55,16604.51,4189.05318 +2023-01-01 21:00:00,16604.51,16608.83,16592.63,16606.68,3656.77804 +2023-01-01 22:00:00,16607.02,16613.85,16586.24,16602.12,3690.19661 +2023-01-01 23:00:00,16602.39,16625.0,16600.8,16616.75,3846.61495 +2023-01-02 00:00:00,16617.17,16629.05,16581.25,16588.35,4327.06948 +2023-01-02 01:00:00,16587.97,16589.2,16548.7,16565.04,5791.85443 +2023-01-02 02:00:00,16565.03,16595.92,16555.0,16587.85,3150.41571 +2023-01-02 03:00:00,16587.99,16707.25,16581.8,16661.94,6194.13548 +2023-01-02 04:00:00,16662.38,16674.84,16629.29,16639.44,4983.39445 +2023-01-02 05:00:00,16639.74,16662.94,16619.44,16647.58,4976.78402 +2023-01-02 06:00:00,16648.37,16663.27,16635.93,16641.1,3210.61774 +2023-01-02 07:00:00,16641.1,16769.51,16637.44,16721.28,12856.08557 +2023-01-02 08:00:00,16721.27,16772.01,16707.52,16733.71,7080.81126 +2023-01-02 09:00:00,16733.71,16745.68,16710.54,16717.5,5599.20896 +2023-01-02 10:00:00,16717.5,16762.86,16708.68,16727.95,5892.57705 +2023-01-02 11:00:00,16727.72,16741.72,16704.07,16735.11,4695.34392 +2023-01-02 12:00:00,16735.51,16746.29,16719.3,16721.54,4262.00363 +2023-01-02 13:00:00,16721.96,16725.6,16685.0,16694.78,5598.29706 +2023-01-02 14:00:00,16695.12,16710.41,16669.15,16698.69,5460.35075 +2023-01-02 15:00:00,16698.69,16750.0,16692.01,16734.66,6426.56347 +2023-01-02 16:00:00,16734.66,16739.64,16708.23,16710.88,3861.0201 +2023-01-02 17:00:00,16710.69,16723.0,16707.12,16715.42,3035.91493 +2023-01-02 18:00:00,16715.42,16731.71,16707.47,16723.81,2810.694 +2023-01-02 19:00:00,16723.64,16738.22,16715.88,16737.56,2607.1075 +2023-01-02 20:00:00,16737.56,16738.23,16709.29,16728.52,2881.53898 +2023-01-02 21:00:00,16728.52,16799.23,16718.41,16757.76,3771.07914 +2023-01-02 22:00:00,16757.76,16763.78,16690.18,16698.4,5609.151 +2023-01-02 23:00:00,16698.4,16722.98,16660.51,16672.87,6806.55328 +2023-01-03 00:00:00,16672.78,16706.14,16647.81,16695.59,5684.61483 +2023-01-03 01:00:00,16695.59,16696.04,16651.42,16677.6,5606.2077 +2023-01-03 02:00:00,16677.6,16688.53,16671.6,16674.03,4217.23484 +2023-01-03 03:00:00,16674.04,16700.28,16666.91,16691.81,4675.39859 +2023-01-03 04:00:00,16691.81,16699.63,16681.79,16685.64,3591.36818 +2023-01-03 05:00:00,16685.21,16727.72,16683.31,16725.5,5214.59458 +2023-01-03 06:00:00,16725.5,16778.4,16722.31,16727.58,7123.40419 +2023-01-03 07:00:00,16727.58,16732.64,16707.57,16729.74,5504.97638 +2023-01-03 08:00:00,16730.15,16735.84,16698.15,16715.22,7060.75169 +2023-01-03 09:00:00,16714.77,16766.0,16714.0,16741.31,6977.90665 +2023-01-03 10:00:00,16741.22,16749.1,16721.89,16724.32,5640.0479 +2023-01-03 11:00:00,16724.0,16737.58,16709.87,16721.03,5897.45752 +2023-01-03 12:00:00,16721.42,16728.02,16703.0,16710.85,6466.63588 +2023-01-03 13:00:00,16710.85,16739.93,16709.41,16725.53,7567.34193 +2023-01-03 14:00:00,16725.53,16773.0,16631.95,16661.23,15670.06766 +2023-01-03 15:00:00,16662.08,16683.45,16617.79,16676.94,12427.73835 +2023-01-03 16:00:00,16677.54,16688.2,16611.3,16622.58,10273.56889 +2023-01-03 17:00:00,16621.93,16644.0,16605.28,16633.65,6785.77064 +2023-01-03 18:00:00,16633.15,16653.53,16626.8,16645.08,5698.95938 +2023-01-03 19:00:00,16644.51,16657.54,16622.41,16643.37,6760.83384 +2023-01-03 20:00:00,16643.77,16680.44,16640.4,16661.37,7053.06124 +2023-01-03 21:00:00,16661.37,16685.73,16658.36,16664.63,4588.95144 +2023-01-03 22:00:00,16664.44,16680.37,16647.71,16677.11,3839.28133 +2023-01-03 23:00:00,16677.11,16695.0,16667.16,16675.18,5215.3637 +2023-01-04 00:00:00,16675.65,16677.15,16652.66,16660.53,4922.78018 +2023-01-04 01:00:00,16660.53,16737.23,16657.68,16701.97,9492.81204 +2023-01-04 02:00:00,16701.63,16754.52,16701.5,16736.52,9182.6903 +2023-01-04 03:00:00,16736.52,16877.65,16736.39,16862.02,18306.29002 +2023-01-04 04:00:00,16862.61,16910.98,16849.44,16860.5,10155.76424 +2023-01-04 05:00:00,16861.05,16867.22,16840.36,16857.57,6067.9004 +2023-01-04 06:00:00,16857.57,16880.0,16849.31,16878.18,6314.32318 +2023-01-04 07:00:00,16878.87,16891.27,16850.0,16869.44,7732.26528 +2023-01-04 08:00:00,16869.49,16919.0,16833.5,16864.95,10747.14204 +2023-01-04 09:00:00,16864.51,16869.7,16831.13,16844.91,7428.47586 +2023-01-04 10:00:00,16844.69,16848.06,16832.1,16844.92,6103.39721 +2023-01-04 11:00:00,16845.3,16854.24,16834.42,16835.35,6041.62493 +2023-01-04 12:00:00,16835.35,16846.95,16804.08,16812.19,8292.1096 +2023-01-04 13:00:00,16812.57,16837.34,16808.55,16828.2,6632.83668 +2023-01-04 14:00:00,16828.4,16863.09,16795.24,16830.12,11666.84154 +2023-01-04 15:00:00,16830.12,16858.51,16765.3,16854.05,14251.27171 +2023-01-04 16:00:00,16853.55,16897.0,16829.0,16858.85,10314.19057 +2023-01-04 17:00:00,16858.85,16940.0,16849.5,16893.24,11064.92581 +2023-01-04 18:00:00,16892.98,16985.91,16872.07,16948.04,11575.12283 +2023-01-04 19:00:00,16948.04,16991.87,16787.85,16842.36,19122.11255 +2023-01-04 20:00:00,16842.32,16852.23,16777.0,16806.49,10533.90467 +2023-01-04 21:00:00,16806.49,16832.73,16793.73,16826.81,4532.62963 +2023-01-04 22:00:00,16827.21,16853.71,16814.93,16826.68,4037.94925 +2023-01-04 23:00:00,16826.72,16869.56,16815.54,16850.36,5842.8281 +2023-01-05 00:00:00,16850.36,16878.18,16827.24,16828.45,6623.10938 +2023-01-05 01:00:00,16828.09,16849.99,16807.72,16832.9,5556.45206 +2023-01-05 02:00:00,16833.37,16844.44,16823.3,16836.8,4543.82321 +2023-01-05 03:00:00,16836.8,16838.57,16818.86,16827.71,5040.38256 +2023-01-05 04:00:00,16827.71,16842.85,16821.21,16836.41,4379.90824 +2023-01-05 05:00:00,16836.41,16849.37,16835.04,16844.12,4515.36693 +2023-01-05 06:00:00,16844.12,16845.8,16812.56,16817.13,5572.14194 +2023-01-05 07:00:00,16817.34,16824.4,16789.87,16823.64,6746.14124 +2023-01-05 08:00:00,16823.05,16829.99,16792.85,16807.53,6447.49843 +2023-01-05 09:00:00,16807.74,16814.23,16780.75,16807.12,7782.61782 +2023-01-05 10:00:00,16807.22,16837.59,16803.49,16825.08,6356.79431 +2023-01-05 11:00:00,16825.36,16839.0,16814.71,16833.6,5709.31049 +2023-01-05 12:00:00,16833.6,16834.7,16816.68,16822.13,5387.18553 +2023-01-05 13:00:00,16822.13,16832.54,16777.86,16780.25,9909.86762 +2023-01-05 14:00:00,16780.79,16837.0,16753.0,16829.59,13999.13031 +2023-01-05 15:00:00,16830.28,16879.82,16823.1,16842.94,12667.05102 +2023-01-05 16:00:00,16842.94,16865.21,16823.22,16838.28,8528.81937 +2023-01-05 17:00:00,16837.96,16846.88,16811.82,16814.48,6639.45914 +2023-01-05 18:00:00,16814.18,16847.59,16800.5,16841.93,7720.01139 +2023-01-05 19:00:00,16841.94,16875.5,16826.67,16863.85,7269.1746 +2023-01-05 20:00:00,16864.29,16873.52,16846.63,16859.02,5979.34021 +2023-01-05 21:00:00,16859.02,16864.84,16834.17,16848.51,5700.5171 +2023-01-05 22:00:00,16848.51,16857.96,16832.34,16837.85,3566.0679 +2023-01-05 23:00:00,16838.09,16847.88,16818.91,16831.85,6833.39561 +2023-01-06 00:00:00,16831.85,16872.57,16825.85,16859.78,6280.9838 +2023-01-06 01:00:00,16859.44,16863.16,16820.18,16827.8,4845.69802 +2023-01-06 02:00:00,16827.45,16839.79,16802.01,16837.06,7000.67909 +2023-01-06 03:00:00,16836.65,16842.03,16826.46,16833.56,4769.20542 +2023-01-06 04:00:00,16833.56,16837.87,16805.31,16822.99,6236.39942 +2023-01-06 05:00:00,16823.24,16823.63,16792.12,16810.18,6230.44034 +2023-01-06 06:00:00,16809.74,16816.45,16779.96,16786.86,6529.22759 +2023-01-06 07:00:00,16786.6,16802.87,16780.15,16794.06,5763.44917 +2023-01-06 08:00:00,16794.33,16812.22,16791.47,16802.11,5475.1394 +2023-01-06 09:00:00,16802.11,16802.27,16762.5,16787.1,7581.99164 +2023-01-06 10:00:00,16787.1,16802.98,16760.0,16767.06,6268.17791 +2023-01-06 11:00:00,16767.15,16772.78,16709.88,16738.22,10651.25261 +2023-01-06 12:00:00,16738.74,16749.0,16717.66,16731.02,7194.28857 +2023-01-06 13:00:00,16730.65,16817.0,16679.0,16774.19,18804.40486 +2023-01-06 14:00:00,16774.19,16791.49,16720.0,16748.82,11361.10297 +2023-01-06 15:00:00,16748.82,16849.0,16748.26,16840.82,15225.11473 +2023-01-06 16:00:00,16840.1,16854.0,16805.04,16827.21,11411.79147 +2023-01-06 17:00:00,16827.21,16845.78,16811.63,16821.27,8080.32447 +2023-01-06 18:00:00,16821.58,16864.15,16821.12,16850.45,9135.64548 +2023-01-06 19:00:00,16850.64,16965.41,16845.0,16939.91,14143.93623 +2023-01-06 20:00:00,16940.41,17041.0,16886.21,16897.48,15953.02164 +2023-01-06 21:00:00,16897.96,16952.7,16889.27,16931.27,7417.97543 +2023-01-06 22:00:00,16931.27,16967.41,16930.68,16958.35,5234.9501 +2023-01-06 23:00:00,16958.35,16980.0,16942.1,16950.65,5806.08379 +2023-01-07 00:00:00,16950.31,16979.38,16930.46,16978.18,5467.28682 +2023-01-07 01:00:00,16978.15,16981.91,16944.15,16950.02,4267.6657 +2023-01-07 02:00:00,16950.02,16956.11,16936.26,16944.24,4191.36187 +2023-01-07 03:00:00,16943.93,16958.06,16936.58,16952.46,4016.68993 +2023-01-07 04:00:00,16952.73,16954.45,16936.04,16938.27,3778.01251 +2023-01-07 05:00:00,16937.85,16942.06,16932.37,16934.28,3697.84857 +2023-01-07 06:00:00,16934.02,16936.89,16922.14,16933.29,4212.49077 +2023-01-07 07:00:00,16933.56,16948.78,16931.94,16948.09,3792.07998 +2023-01-07 08:00:00,16948.18,16954.95,16926.99,16929.76,4917.47697 +2023-01-07 09:00:00,16929.58,16933.95,16921.44,16928.51,4343.09876 +2023-01-07 10:00:00,16928.78,16930.56,16912.18,16922.51,4731.06815 +2023-01-07 11:00:00,16922.51,16925.9,16908.07,16918.3,4945.07877 +2023-01-07 12:00:00,16918.3,16920.07,16908.0,16916.14,5565.59897 +2023-01-07 13:00:00,16916.14,16936.58,16914.14,16919.34,5503.13343 +2023-01-07 14:00:00,16919.34,16947.7,16908.6,16937.92,5735.37622 +2023-01-07 15:00:00,16937.63,16947.64,16934.35,16940.42,3845.98614 +2023-01-07 16:00:00,16940.6,16940.61,16916.0,16922.79,5124.97026 +2023-01-07 17:00:00,16922.79,16935.87,16918.85,16928.85,4106.2368 +2023-01-07 18:00:00,16928.85,16940.0,16928.22,16938.12,3342.1124 +2023-01-07 19:00:00,16938.12,16946.13,16935.23,16944.05,3500.68036 +2023-01-07 20:00:00,16944.05,16951.92,16937.04,16945.77,4307.78731 +2023-01-07 21:00:00,16945.44,16950.25,16937.0,16939.31,3924.97772 +2023-01-07 22:00:00,16939.06,16941.69,16929.46,16936.31,3605.78679 +2023-01-07 23:00:00,16936.31,16948.04,16931.05,16943.57,3603.7636 +2023-01-08 00:00:00,16943.83,16955.0,16911.0,16926.66,6117.02466 +2023-01-08 01:00:00,16926.66,16936.0,16915.25,16929.82,4392.91927 +2023-01-08 02:00:00,16929.82,16934.0,16919.07,16931.18,3389.34917 +2023-01-08 03:00:00,16931.46,16944.62,16926.17,16944.02,4396.50361 +2023-01-08 04:00:00,16944.02,16944.99,16934.4,16934.75,2924.6404 +2023-01-08 05:00:00,16934.95,16944.21,16933.54,16943.73,3386.28009 +2023-01-08 06:00:00,16943.73,16951.97,16933.26,16950.92,4100.79008 +2023-01-08 07:00:00,16950.92,16957.12,16943.16,16953.77,4255.90012 +2023-01-08 08:00:00,16953.77,16956.01,16940.01,16946.07,4846.58066 +2023-01-08 09:00:00,16945.91,16967.67,16925.05,16935.6,7110.82123 +2023-01-08 10:00:00,16935.6,16940.0,16933.14,16936.41,3937.60336 +2023-01-08 11:00:00,16936.41,16954.0,16926.3,16927.42,4539.40504 +2023-01-08 12:00:00,16927.42,16932.51,16921.4,16923.75,4218.20227 +2023-01-08 13:00:00,16924.01,16938.49,16920.37,16933.03,4085.80873 +2023-01-08 14:00:00,16933.32,16954.3,16931.25,16952.44,5570.28633 +2023-01-08 15:00:00,16952.44,17019.79,16938.0,17000.43,9212.24098 +2023-01-08 16:00:00,17000.43,17022.08,16916.1,16936.87,10618.32869 +2023-01-08 17:00:00,16936.87,16952.03,16920.3,16928.5,5335.0462 +2023-01-08 18:00:00,16928.89,16936.49,16919.94,16929.84,3902.21677 +2023-01-08 19:00:00,16930.03,16939.45,16923.84,16927.25,3702.07617 +2023-01-08 20:00:00,16927.25,16982.43,16924.41,16966.67,8747.8127 +2023-01-08 21:00:00,16966.95,16988.02,16945.5,16957.46,6021.89438 +2023-01-08 22:00:00,16957.28,16976.53,16952.67,16963.14,4593.80115 +2023-01-08 23:00:00,16963.27,17176.99,16962.95,17127.83,15750.36489 +2023-01-09 00:00:00,17127.83,17199.0,17104.66,17184.51,16663.49596 +2023-01-09 01:00:00,17185.28,17230.0,17145.52,17175.02,11243.36822 +2023-01-09 02:00:00,17175.02,17252.6,17161.7,17191.47,14664.83212 +2023-01-09 03:00:00,17191.47,17217.34,17176.72,17197.0,8227.46784 +2023-01-09 04:00:00,17197.0,17253.19,17194.32,17226.49,11007.13679 +2023-01-09 05:00:00,17227.11,17262.56,17200.6,17205.95,8658.79449 +2023-01-09 06:00:00,17205.95,17220.59,17180.0,17189.24,7006.60552 +2023-01-09 07:00:00,17189.25,17215.48,17183.92,17198.48,6873.81205 +2023-01-09 08:00:00,17198.01,17240.0,17186.95,17191.68,8729.24544 +2023-01-09 09:00:00,17191.68,17270.0,17189.53,17238.38,11688.66494 +2023-01-09 10:00:00,17238.38,17285.48,17235.59,17264.5,10364.82478 +2023-01-09 11:00:00,17264.1,17278.87,17236.21,17238.93,7685.46206 +2023-01-09 12:00:00,17239.47,17254.97,17228.85,17249.06,7702.65742 +2023-01-09 13:00:00,17249.4,17295.55,17190.74,17226.9,11770.67245 +2023-01-09 14:00:00,17227.3,17276.13,17206.98,17264.25,13182.45775 +2023-01-09 15:00:00,17263.67,17335.35,17228.67,17268.49,17858.24406 +2023-01-09 16:00:00,17268.49,17357.7,17268.02,17327.84,16193.72323 +2023-01-09 17:00:00,17328.25,17375.77,17316.43,17356.96,12553.81044 +2023-01-09 18:00:00,17356.57,17398.8,17323.71,17350.71,14266.71978 +2023-01-09 19:00:00,17351.1,17352.68,17293.34,17293.69,9506.66121 +2023-01-09 20:00:00,17294.19,17313.3,17177.87,17221.29,16784.2954 +2023-01-09 21:00:00,17221.29,17246.26,17165.04,17182.48,10641.44945 +2023-01-09 22:00:00,17182.36,17222.32,17167.35,17204.83,5444.24581 +2023-01-09 23:00:00,17204.83,17205.57,17128.0,17178.26,7492.88002 +2023-01-10 00:00:00,17179.04,17220.29,17178.19,17219.19,7195.9706 +2023-01-10 01:00:00,17219.19,17235.0,17188.31,17194.39,8619.72528 +2023-01-10 02:00:00,17193.97,17215.0,17146.34,17185.94,9620.79785 +2023-01-10 03:00:00,17185.73,17208.17,17172.47,17205.72,5509.67537 +2023-01-10 04:00:00,17205.31,17222.5,17196.04,17221.68,6465.17667 +2023-01-10 05:00:00,17222.05,17233.91,17207.05,17228.77,5477.38412 +2023-01-10 06:00:00,17228.66,17233.5,17189.15,17203.95,7243.88623 +2023-01-10 07:00:00,17203.95,17211.0,17192.0,17203.2,6803.12603 +2023-01-10 08:00:00,17203.2,17270.69,17187.73,17256.34,10065.10708 +2023-01-10 09:00:00,17256.34,17277.87,17242.12,17247.71,7103.67661 +2023-01-10 10:00:00,17247.71,17276.6,17233.48,17271.02,6781.4259 +2023-01-10 11:00:00,17271.02,17286.02,17250.95,17252.89,7132.79462 +2023-01-10 12:00:00,17252.89,17257.19,17218.44,17224.15,8319.09891 +2023-01-10 13:00:00,17224.15,17255.55,17212.14,17246.05,8539.8137 +2023-01-10 14:00:00,17246.45,17326.07,17220.0,17286.59,21263.07475 +2023-01-10 15:00:00,17287.01,17375.0,17271.38,17327.7,19401.38074 +2023-01-10 16:00:00,17327.7,17341.97,17282.0,17302.15,10943.41192 +2023-01-10 17:00:00,17302.55,17339.29,17287.11,17325.97,7038.14912 +2023-01-10 18:00:00,17325.61,17443.95,17323.02,17433.95,14841.37941 +2023-01-10 19:00:00,17433.7,17456.07,17398.28,17432.85,10256.876 +2023-01-10 20:00:00,17432.85,17495.69,17405.3,17477.15,12015.24942 +2023-01-10 21:00:00,17477.95,17499.0,17448.75,17463.56,7080.33103 +2023-01-10 22:00:00,17463.86,17464.56,17418.98,17428.08,6677.99954 +2023-01-10 23:00:00,17428.08,17444.97,17403.73,17440.66,6986.91491 +2023-01-11 00:00:00,17440.64,17502.83,17428.37,17466.02,8526.37461 +2023-01-11 01:00:00,17466.02,17510.0,17436.03,17458.05,8068.79008 +2023-01-11 02:00:00,17458.49,17462.7,17383.08,17388.2,7948.58416 +2023-01-11 03:00:00,17387.67,17425.2,17366.58,17416.14,7402.73595 +2023-01-11 04:00:00,17416.49,17425.42,17391.0,17408.39,5250.33415 +2023-01-11 05:00:00,17407.98,17436.73,17397.27,17406.3,6119.31971 +2023-01-11 06:00:00,17406.16,17442.47,17388.0,17437.29,9009.63417 +2023-01-11 07:00:00,17436.89,17462.99,17426.07,17446.65,9347.60277 +2023-01-11 08:00:00,17447.02,17451.38,17408.68,17447.6,8596.90944 +2023-01-11 09:00:00,17447.95,17472.15,17439.7,17446.71,8159.56219 +2023-01-11 10:00:00,17446.86,17459.0,17435.18,17441.24,6172.66996 +2023-01-11 11:00:00,17441.24,17454.51,17427.86,17437.75,7057.23375 +2023-01-11 12:00:00,17437.75,17437.75,17402.0,17418.56,9151.50731 +2023-01-11 13:00:00,17418.56,17435.74,17383.48,17413.43,9777.24374 +2023-01-11 14:00:00,17413.43,17435.87,17376.0,17413.97,13585.06312 +2023-01-11 15:00:00,17413.97,17437.71,17315.6,17332.43,16548.57079 +2023-01-11 16:00:00,17331.9,17368.37,17320.42,17347.62,9399.06698 +2023-01-11 17:00:00,17347.79,17393.5,17342.51,17382.08,7438.16925 +2023-01-11 18:00:00,17382.05,17571.7,17380.76,17487.09,23106.94112 +2023-01-11 19:00:00,17486.44,17557.76,17468.57,17550.29,15845.33763 +2023-01-11 20:00:00,17549.62,17581.75,17508.86,17550.57,13165.28391 +2023-01-11 21:00:00,17550.57,17571.38,17529.39,17558.6,8702.05303 +2023-01-11 22:00:00,17559.49,17597.0,17514.06,17556.41,12547.23588 +2023-01-11 23:00:00,17556.41,18000.0,17550.87,17943.26,31295.38283 +2023-01-12 00:00:00,17943.26,18297.37,17907.25,18264.1,29755.53326 +2023-01-12 01:00:00,18264.1,18292.56,18140.58,18221.51,23739.80084 +2023-01-12 02:00:00,18222.31,18385.71,18179.49,18207.54,18968.39437 +2023-01-12 03:00:00,18206.85,18240.17,18196.83,18224.68,10030.80424 +2023-01-12 04:00:00,18224.68,18232.5,18197.46,18215.66,7951.75735 +2023-01-12 05:00:00,18215.74,18241.43,18075.19,18087.54,12286.65303 +2023-01-12 06:00:00,18087.54,18164.19,18085.3,18147.77,9141.46584 +2023-01-12 07:00:00,18147.25,18177.97,18117.3,18138.22,7876.30717 +2023-01-12 08:00:00,18138.21,18152.17,18071.06,18151.52,9012.78676 +2023-01-12 09:00:00,18151.52,18173.72,18129.31,18164.67,8167.69214 +2023-01-12 10:00:00,18164.13,18218.0,18142.18,18185.6,9055.0101 +2023-01-12 11:00:00,18185.6,18222.59,18163.57,18200.8,8018.64554 +2023-01-12 12:00:00,18200.8,18279.86,18170.27,18268.94,15008.40297 +2023-01-12 13:00:00,18269.59,18380.47,17892.05,18284.91,51231.61325 +2023-01-12 14:00:00,18284.91,18356.58,17925.09,17998.56,40174.44274 +2023-01-12 15:00:00,17997.63,18142.8,17988.01,18086.62,24291.99886 +2023-01-12 16:00:00,18087.28,18144.0,18054.61,18134.55,14946.27349 +2023-01-12 17:00:00,18134.55,18872.0,18105.56,18837.06,37374.42104 +2023-01-12 18:00:00,18837.06,18988.0,18615.21,18796.93,33953.94896 +2023-01-12 19:00:00,18796.93,19060.0,18760.34,18885.35,24609.80921 +2023-01-12 20:00:00,18885.35,19087.0,18820.63,19048.95,19237.60617 +2023-01-12 21:00:00,19048.95,19117.04,18762.0,18830.07,21655.32154 +2023-01-12 22:00:00,18830.07,18936.21,18776.83,18913.92,9015.33064 +2023-01-12 23:00:00,18913.38,18915.56,18844.55,18846.62,9064.30227 +2023-01-13 00:00:00,18846.62,18887.0,18714.12,18771.61,14571.89741 +2023-01-13 01:00:00,18771.61,18819.37,18744.58,18811.48,9450.99789 +2023-01-13 02:00:00,18811.4,18842.73,18786.1,18835.48,8659.244 +2023-01-13 03:00:00,18835.48,18883.55,18823.54,18876.37,9046.16516 +2023-01-13 04:00:00,18876.37,18883.79,18818.31,18821.27,8211.64506 +2023-01-13 05:00:00,18821.27,18835.77,18778.41,18787.71,8427.10991 +2023-01-13 06:00:00,18787.71,18864.21,18780.57,18852.68,7522.51436 +2023-01-13 07:00:00,18853.1,18857.87,18785.0,18824.25,9476.07449 +2023-01-13 08:00:00,18825.0,18860.17,18810.01,18842.15,8768.8504 +2023-01-13 09:00:00,18842.68,18938.99,18839.17,18910.23,12906.62634 +2023-01-13 10:00:00,18910.8,19057.7,18858.98,19042.01,18027.7203 +2023-01-13 11:00:00,19042.87,19045.17,18888.79,18920.95,13932.14357 +2023-01-13 12:00:00,18920.95,18936.98,18811.52,18864.59,12196.93938 +2023-01-13 13:00:00,18864.59,18902.04,18812.0,18854.84,11447.72178 +2023-01-13 14:00:00,18854.84,19143.28,18833.51,18996.27,21812.49739 +2023-01-13 15:00:00,18996.27,19310.91,18984.09,19261.19,39505.15947 +2023-01-13 16:00:00,19261.19,19276.41,19060.15,19133.39,21990.08148 +2023-01-13 17:00:00,19133.39,19406.26,19105.5,19256.06,24276.05083 +2023-01-13 18:00:00,19255.84,19387.37,19253.76,19292.44,16005.03199 +2023-01-13 19:00:00,19293.25,19373.0,19246.12,19362.01,13817.14939 +2023-01-13 20:00:00,19363.43,19497.18,19315.77,19473.67,18901.95762 +2023-01-13 21:00:00,19474.82,19911.82,19375.52,19816.81,28641.78804 +2023-01-13 22:00:00,19816.81,20000.0,19786.43,19849.41,20913.07012 +2023-01-13 23:00:00,19848.53,19942.2,19728.62,19930.01,10107.44185 +2023-01-14 00:00:00,19930.01,21258.0,19888.05,20891.67,66759.62394 +2023-01-14 01:00:00,20891.67,21088.0,20691.13,20927.44,28721.89375 +2023-01-14 02:00:00,20926.78,21037.89,20820.06,20938.93,21828.4948 +2023-01-14 03:00:00,20937.87,20986.3,20781.81,20967.23,15596.51492 +2023-01-14 04:00:00,20967.23,21033.64,20878.33,20894.86,13195.35042 +2023-01-14 05:00:00,20895.43,20914.81,20777.37,20841.62,11892.84254 +2023-01-14 06:00:00,20840.65,20973.63,20838.53,20955.57,9645.2354 +2023-01-14 07:00:00,20954.37,20967.94,20850.0,20897.36,9942.91758 +2023-01-14 08:00:00,20897.36,21022.39,20875.6,21003.35,11647.1779 +2023-01-14 09:00:00,21003.35,21010.83,20306.64,20523.75,34526.45807 +2023-01-14 10:00:00,20523.75,20526.88,20225.06,20496.77,18153.54315 +2023-01-14 11:00:00,20496.77,20755.19,20472.39,20721.73,15443.07562 +2023-01-14 12:00:00,20721.03,20975.0,20575.06,20911.19,18682.39138 +2023-01-14 13:00:00,20911.19,20982.26,20782.86,20940.71,12769.52817 +2023-01-14 14:00:00,20939.26,21200.0,20568.12,20834.4,23382.71318 +2023-01-14 15:00:00,20832.6,20896.0,20629.84,20786.74,15922.70411 +2023-01-14 16:00:00,20785.85,20866.24,20750.81,20810.66,12083.54299 +2023-01-14 17:00:00,20809.94,20911.23,20725.32,20755.78,11055.39428 +2023-01-14 18:00:00,20755.78,20800.0,20660.0,20757.99,8912.40137 +2023-01-14 19:00:00,20757.99,20861.28,20717.41,20783.68,8210.56962 +2023-01-14 20:00:00,20783.68,20899.4,20758.0,20877.47,6009.78342 +2023-01-14 21:00:00,20876.31,20947.84,20827.31,20900.66,7390.95259 +2023-01-14 22:00:00,20900.66,21023.93,20864.29,20989.97,5335.75759 +2023-01-14 23:00:00,20989.97,21072.27,20933.33,20954.92,6804.88272 +2023-01-15 00:00:00,20952.76,21001.84,20623.21,20767.05,14735.14851 +2023-01-15 01:00:00,20766.57,20789.96,20647.78,20770.29,7937.08168 +2023-01-15 02:00:00,20771.27,20816.7,20667.96,20672.91,7268.68577 +2023-01-15 03:00:00,20672.79,20742.83,20551.01,20719.09,8095.435 +2023-01-15 04:00:00,20719.09,20759.87,20679.0,20698.14,4760.81434 +2023-01-15 05:00:00,20698.14,20785.0,20677.38,20749.76,5102.14697 +2023-01-15 06:00:00,20748.94,20789.58,20698.0,20717.0,4727.89874 +2023-01-15 07:00:00,20717.0,20739.82,20666.88,20735.69,5685.65589 +2023-01-15 08:00:00,20735.69,20755.22,20591.21,20617.71,9316.58251 +2023-01-15 09:00:00,20617.93,20754.54,20573.13,20750.59,8557.69198 +2023-01-15 10:00:00,20748.94,20759.0,20692.17,20732.83,5197.76285 +2023-01-15 11:00:00,20732.83,20741.64,20657.81,20722.23,5578.01992 +2023-01-15 12:00:00,20722.23,20744.89,20652.24,20694.03,5026.75295 +2023-01-15 13:00:00,20694.03,20844.29,20685.0,20705.79,7209.06636 +2023-01-15 14:00:00,20705.79,20818.15,20670.7,20787.58,7251.10535 +2023-01-15 15:00:00,20787.87,20994.05,20776.47,20908.28,13017.58428 +2023-01-15 16:00:00,20906.97,20961.81,20850.72,20869.2,9453.15336 +2023-01-15 17:00:00,20871.09,21050.74,20865.33,20920.23,11029.40649 +2023-01-15 18:00:00,20921.48,20923.59,20665.0,20817.94,12011.63609 +2023-01-15 19:00:00,20817.94,20903.47,20776.78,20870.15,5169.47152 +2023-01-15 20:00:00,20870.15,20929.99,20836.1,20905.69,5012.8686 +2023-01-15 21:00:00,20904.74,20932.4,20860.01,20900.62,4089.65709 +2023-01-15 22:00:00,20900.62,20952.37,20746.39,20911.27,6528.17941 +2023-01-15 23:00:00,20911.27,20938.6,20837.0,20871.5,5780.41983 +2023-01-16 00:00:00,20872.99,20999.25,20770.2,20966.58,10746.9633 +2023-01-16 01:00:00,20966.58,21322.0,20913.2,21182.87,23437.22746 +2023-01-16 02:00:00,21182.87,21439.59,21118.94,21209.31,19388.71779 +2023-01-16 03:00:00,21208.54,21229.92,21028.02,21075.68,12123.46188 +2023-01-16 04:00:00,21074.8,21166.8,21037.64,21148.99,8170.58991 +2023-01-16 05:00:00,21147.98,21216.7,21119.05,21187.16,6954.41915 +2023-01-16 06:00:00,21187.89,21260.0,21106.96,21149.8,10204.48252 +2023-01-16 07:00:00,21149.8,21159.7,21066.23,21109.23,7602.55388 +2023-01-16 08:00:00,21109.4,21113.22,20666.0,20747.7,24188.23332 +2023-01-16 09:00:00,20746.75,20840.0,20720.0,20824.08,9658.96868 +2023-01-16 10:00:00,20824.55,20900.0,20800.0,20850.68,8590.12146 +2023-01-16 11:00:00,20850.31,20860.4,20781.11,20817.56,7020.44092 +2023-01-16 12:00:00,20816.63,20867.41,20777.04,20787.54,6680.21021 +2023-01-16 13:00:00,20787.54,20870.0,20766.35,20827.47,7183.28414 +2023-01-16 14:00:00,20827.47,20894.0,20756.0,20860.68,10008.38954 +2023-01-16 15:00:00,20860.68,21053.89,20611.48,20994.17,26139.39635 +2023-01-16 16:00:00,20995.37,21050.0,20916.43,20998.5,11603.50524 +2023-01-16 17:00:00,20998.5,21176.5,20985.33,21103.99,13455.47666 +2023-01-16 18:00:00,21102.71,21296.37,21053.55,21281.97,12337.10199 +2023-01-16 19:00:00,21281.96,21414.42,21216.0,21308.57,20188.95342 +2023-01-16 20:00:00,21307.29,21474.05,21216.05,21292.0,13665.81287 +2023-01-16 21:00:00,21292.0,21294.0,21048.16,21132.36,11788.13722 +2023-01-16 22:00:00,21133.34,21224.12,21127.04,21185.89,5784.32972 +2023-01-16 23:00:00,21185.89,21227.0,21097.27,21185.65,6157.30499 +2023-01-17 00:00:00,21185.65,21299.04,21064.56,21109.52,16464.46502 +2023-01-17 01:00:00,21108.16,21146.13,20841.31,21041.3,13930.22817 +2023-01-17 02:00:00,21039.96,21110.86,20986.34,21102.13,6781.60315 +2023-01-17 03:00:00,21102.13,21173.4,21061.93,21124.57,6278.4675 +2023-01-17 04:00:00,21124.57,21236.62,21102.02,21159.29,8071.76476 +2023-01-17 05:00:00,21159.29,21185.87,21130.0,21151.21,5747.39242 +2023-01-17 06:00:00,21151.21,21156.28,21063.52,21075.27,5862.87157 +2023-01-17 07:00:00,21076.5,21177.14,21060.8,21133.65,8038.47098 +2023-01-17 08:00:00,21133.65,21214.18,21128.59,21200.95,7970.93276 +2023-01-17 09:00:00,21199.51,21249.46,21145.0,21174.92,7959.74132 +2023-01-17 10:00:00,21173.9,21181.88,21082.48,21129.69,8319.63168 +2023-01-17 11:00:00,21130.43,21236.74,21103.0,21219.75,8516.60096 +2023-01-17 12:00:00,21219.21,21352.0,21190.27,21252.23,13590.02744 +2023-01-17 13:00:00,21253.23,21271.18,21177.42,21235.07,8864.68824 +2023-01-17 14:00:00,21235.07,21647.45,21056.0,21281.66,40856.89672 +2023-01-17 15:00:00,21281.66,21389.48,21030.0,21176.06,23792.89942 +2023-01-17 16:00:00,21176.06,21250.0,21084.0,21162.92,14338.97407 +2023-01-17 17:00:00,21161.92,21246.15,21086.0,21220.78,10081.28681 +2023-01-17 18:00:00,21222.39,21412.0,21184.95,21362.89,12955.34767 +2023-01-17 19:00:00,21362.89,21383.14,21283.27,21336.46,11282.92286 +2023-01-17 20:00:00,21336.46,21398.48,21263.22,21390.44,10341.90563 +2023-01-17 21:00:00,21391.82,21413.15,21274.56,21312.63,8660.07552 +2023-01-17 22:00:00,21312.63,21339.99,21206.63,21232.38,6080.38445 +2023-01-17 23:00:00,21232.38,21275.0,21121.71,21134.81,10620.16497 +2023-01-18 00:00:00,21132.29,21242.55,21103.15,21202.97,9357.75343 +2023-01-18 01:00:00,21202.42,21264.98,21175.0,21243.96,8085.67819 +2023-01-18 02:00:00,21243.96,21352.46,21152.0,21292.56,12814.49515 +2023-01-18 03:00:00,21293.76,21377.44,21255.69,21258.54,10043.2727 +2023-01-18 04:00:00,21257.0,21301.23,21228.54,21279.61,6556.92986 +2023-01-18 05:00:00,21279.61,21320.0,21254.27,21311.33,6574.57324 +2023-01-18 06:00:00,21311.32,21316.24,21244.88,21261.76,6388.56334 +2023-01-18 07:00:00,21261.03,21308.42,21246.43,21307.94,7177.36036 +2023-01-18 08:00:00,21307.94,21316.77,21210.0,21249.31,8696.92487 +2023-01-18 09:00:00,21249.31,21282.0,21151.0,21230.09,10040.50708 +2023-01-18 10:00:00,21230.54,21257.31,21164.51,21183.83,7483.79637 +2023-01-18 11:00:00,21183.02,21237.47,21172.9,21204.67,7004.18279 +2023-01-18 12:00:00,21204.67,21295.97,21202.57,21259.18,7787.02842 +2023-01-18 13:00:00,21260.13,21471.27,21196.03,21403.31,23163.62002 +2023-01-18 14:00:00,21403.31,21650.0,21314.12,21424.3,31303.98521 +2023-01-18 15:00:00,21424.3,21560.0,20842.0,21042.73,35284.17703 +2023-01-18 16:00:00,21042.73,21042.73,20407.15,20845.47,47359.39116 +2023-01-18 17:00:00,20849.89,21136.8,20743.53,20887.85,37531.0477 +2023-01-18 18:00:00,20887.85,21063.52,20840.81,20936.83,18670.06218 +2023-01-18 19:00:00,20936.37,20980.0,20881.19,20906.54,8985.84095 +2023-01-18 20:00:00,20905.37,20938.67,20666.79,20732.6,15186.90879 +2023-01-18 21:00:00,20731.35,20841.18,20712.96,20780.36,9302.66328 +2023-01-18 22:00:00,20780.36,20815.0,20624.02,20805.8,6866.48186 +2023-01-18 23:00:00,20805.8,20818.01,20642.69,20677.47,9250.77551 +2023-01-19 00:00:00,20677.47,20764.64,20660.15,20694.01,10490.32223 +2023-01-19 01:00:00,20694.64,20775.85,20676.32,20716.95,8379.63472 +2023-01-19 02:00:00,20716.95,20777.82,20659.19,20763.66,8783.78767 +2023-01-19 03:00:00,20763.32,20817.85,20742.3,20748.04,9613.76916 +2023-01-19 04:00:00,20748.04,20874.81,20742.71,20810.18,8614.8224 +2023-01-19 05:00:00,20810.53,20851.14,20793.34,20814.82,6082.19494 +2023-01-19 06:00:00,20814.82,20856.0,20799.0,20828.59,6862.69674 +2023-01-19 07:00:00,20829.12,20848.83,20803.39,20818.95,7288.91229 +2023-01-19 08:00:00,20818.94,20846.75,20758.0,20769.06,9573.54624 +2023-01-19 09:00:00,20769.06,20810.0,20730.58,20795.39,8720.29962 +2023-01-19 10:00:00,20794.73,20802.97,20749.98,20796.47,7640.4019 +2023-01-19 11:00:00,20796.47,20799.83,20706.9,20743.72,9588.19257 +2023-01-19 12:00:00,20744.17,20775.71,20679.65,20727.03,10629.2648 +2023-01-19 13:00:00,20728.3,20813.98,20660.8,20776.95,14871.00227 +2023-01-19 14:00:00,20776.06,20883.8,20718.83,20799.4,17213.76998 +2023-01-19 15:00:00,20799.98,20960.23,20785.0,20876.44,18617.72318 +2023-01-19 16:00:00,20876.44,20926.84,20826.76,20875.41,11822.69262 +2023-01-19 17:00:00,20874.69,20944.71,20791.13,20841.16,11692.45119 +2023-01-19 18:00:00,20841.16,21023.11,20831.08,20977.73,12709.10267 +2023-01-19 19:00:00,20978.76,21142.07,20949.34,21090.95,15284.71294 +2023-01-19 20:00:00,21092.1,21192.0,21036.76,21102.44,14030.5587 +2023-01-19 21:00:00,21102.44,21115.28,20919.31,20932.98,8902.78114 +2023-01-19 22:00:00,20933.65,21083.57,20930.01,21065.23,6648.58457 +2023-01-19 23:00:00,21065.84,21125.43,21015.81,21071.59,7324.62471 +2023-01-20 00:00:00,21071.59,21121.42,21028.95,21054.74,9394.96625 +2023-01-20 01:00:00,21054.02,21151.67,21013.96,21117.28,9324.69056 +2023-01-20 02:00:00,21116.44,21219.6,21078.55,21079.66,11547.13357 +2023-01-20 03:00:00,21079.66,21113.61,21058.02,21087.74,6874.54009 +2023-01-20 04:00:00,21087.74,21127.33,20972.24,20991.01,9914.72397 +2023-01-20 05:00:00,20991.01,21037.78,20953.23,20982.27,10111.85773 +2023-01-20 06:00:00,20983.09,20999.8,20926.14,20943.73,8809.62263 +2023-01-20 07:00:00,20943.73,20987.0,20861.28,20959.44,9639.22592 +2023-01-20 08:00:00,20958.43,20976.35,20898.79,20946.15,8841.85973 +2023-01-20 09:00:00,20946.98,20993.99,20905.22,20959.17,8313.07021 +2023-01-20 10:00:00,20959.76,20970.3,20915.41,20962.16,8504.89676 +2023-01-20 11:00:00,20962.68,20984.87,20935.17,20963.51,7633.03625 +2023-01-20 12:00:00,20963.34,21127.28,20955.53,21089.54,13835.90061 +2023-01-20 13:00:00,21088.82,21147.0,21041.41,21058.68,12991.81511 +2023-01-20 14:00:00,21059.71,21168.69,21013.73,21153.97,18814.44356 +2023-01-20 15:00:00,21153.0,21247.55,21105.99,21144.77,18076.41381 +2023-01-20 16:00:00,21145.05,21415.64,21140.99,21313.29,20597.49818 +2023-01-20 17:00:00,21313.29,21410.0,21279.9,21353.61,15591.7682 +2023-01-20 18:00:00,21353.62,21437.3,21290.57,21384.49,16897.42332 +2023-01-20 19:00:00,21385.52,21529.0,21356.7,21496.67,15675.31388 +2023-01-20 20:00:00,21496.67,22385.41,21495.75,22288.37,38250.58144 +2023-01-20 21:00:00,22288.91,22448.0,22207.78,22315.41,20584.70342 +2023-01-20 22:00:00,22316.49,22729.99,22313.66,22595.08,22178.6343 +2023-01-20 23:00:00,22593.98,22755.93,22537.8,22667.21,15675.01709 +2023-01-21 00:00:00,22666.0,22792.86,22422.0,22576.17,20472.4438 +2023-01-21 01:00:00,22576.86,22618.78,22551.72,22563.99,9118.0917 +2023-01-21 02:00:00,22563.04,22623.21,22508.33,22551.05,9133.08428 +2023-01-21 03:00:00,22551.05,22571.4,22492.68,22547.35,7966.3005 +2023-01-21 04:00:00,22547.83,22643.65,22514.6,22597.96,8799.63999 +2023-01-21 05:00:00,22597.96,22621.39,22562.84,22573.98,6273.14562 +2023-01-21 06:00:00,22573.99,22622.99,22554.72,22620.93,7304.81276 +2023-01-21 07:00:00,22620.42,22670.0,22600.74,22638.36,8626.60818 +2023-01-21 08:00:00,22638.36,22776.31,22626.62,22700.63,14325.75294 +2023-01-21 09:00:00,22700.62,23100.0,22685.48,23037.49,21435.26207 +2023-01-21 10:00:00,23037.46,23335.77,22595.23,22777.52,49733.13453 +2023-01-21 11:00:00,22778.51,22953.93,22652.61,22905.65,16879.35557 +2023-01-21 12:00:00,22907.01,23087.63,22888.0,23039.5,16479.91424 +2023-01-21 13:00:00,23041.12,23050.0,22851.94,22930.04,13004.21114 +2023-01-21 14:00:00,22930.87,23018.92,22875.54,22955.26,10483.76615 +2023-01-21 15:00:00,22955.8,23280.0,22930.92,22998.9,20526.86682 +2023-01-21 16:00:00,22998.9,23269.73,22980.0,23197.45,18963.01053 +2023-01-21 17:00:00,23196.43,23371.8,23126.06,23226.65,21948.64533 +2023-01-21 18:00:00,23225.17,23269.99,23053.24,23248.52,12484.54121 +2023-01-21 19:00:00,23247.4,23308.06,23174.08,23270.5,8812.55582 +2023-01-21 20:00:00,23270.97,23299.55,23080.0,23093.38,9845.15016 +2023-01-21 21:00:00,23093.38,23220.0,23009.11,23204.64,8119.76021 +2023-01-21 22:00:00,23203.41,23210.91,22737.36,22759.71,8554.59214 +2023-01-21 23:00:00,22757.14,22964.6,22680.73,22783.55,17154.83863 +2023-01-22 00:00:00,22783.35,22979.88,22700.06,22877.48,12868.12927 +2023-01-22 01:00:00,22877.48,22891.76,22688.78,22792.13,11684.54279 +2023-01-22 02:00:00,22793.12,22833.26,22602.55,22707.64,10857.25989 +2023-01-22 03:00:00,22706.9,22774.18,22668.48,22758.3,7683.73374 +2023-01-22 04:00:00,22759.08,22868.98,22716.72,22847.79,7994.62992 +2023-01-22 05:00:00,22847.31,22895.4,22832.56,22878.37,7323.69528 +2023-01-22 06:00:00,22878.37,22967.33,22862.7,22919.67,7256.88643 +2023-01-22 07:00:00,22920.74,22959.68,22875.0,22895.2,7193.47495 +2023-01-22 08:00:00,22895.49,22921.24,22809.56,22909.76,7787.97022 +2023-01-22 09:00:00,22908.2,22938.12,22833.59,22856.68,7865.51774 +2023-01-22 10:00:00,22857.48,22903.51,22839.09,22872.97,6492.94012 +2023-01-22 11:00:00,22872.21,22884.91,22726.02,22783.61,9593.06382 +2023-01-22 12:00:00,22784.74,22871.68,22700.01,22869.56,9487.18959 +2023-01-22 13:00:00,22869.56,22930.01,22846.82,22897.79,8297.3639 +2023-01-22 14:00:00,22897.79,23040.0,22866.81,22990.41,10098.35919 +2023-01-22 15:00:00,22990.42,23078.71,22645.59,22794.51,21388.11528 +2023-01-22 16:00:00,22794.63,22862.27,22689.72,22819.28,11885.65438 +2023-01-22 17:00:00,22819.38,22959.71,22780.5,22922.34,12654.34323 +2023-01-22 18:00:00,22922.34,22936.84,22818.84,22838.0,7618.14644 +2023-01-22 19:00:00,22838.0,22856.75,22687.13,22722.15,8947.37796 +2023-01-22 20:00:00,22721.88,22736.0,22292.37,22459.46,24946.44483 +2023-01-22 21:00:00,22459.46,22639.71,22317.0,22585.37,16210.74983 +2023-01-22 22:00:00,22585.38,22698.0,22536.26,22676.48,6896.86211 +2023-01-22 23:00:00,22676.48,22773.89,22641.11,22707.88,10545.30195 +2023-01-23 00:00:00,22706.02,22811.15,22660.67,22745.28,11526.99258 +2023-01-23 01:00:00,22744.83,22826.46,22690.3,22699.37,8632.03099 +2023-01-23 02:00:00,22699.37,22757.65,22690.3,22752.05,6370.10252 +2023-01-23 03:00:00,22752.71,22771.14,22646.43,22661.02,9610.87165 +2023-01-23 04:00:00,22661.02,22759.49,22659.12,22758.32,7413.16663 +2023-01-23 05:00:00,22758.32,22769.71,22706.25,22723.63,7182.02647 +2023-01-23 06:00:00,22724.48,22794.33,22691.66,22773.33,7916.96653 +2023-01-23 07:00:00,22773.92,22786.0,22600.14,22695.9,10682.10567 +2023-01-23 08:00:00,22696.61,22769.53,22662.38,22719.28,8958.38632 +2023-01-23 09:00:00,22719.28,22788.0,22703.26,22784.18,6806.1038 +2023-01-23 10:00:00,22784.85,22957.25,22764.91,22909.95,12356.08774 +2023-01-23 11:00:00,22909.95,22930.0,22826.23,22904.58,10145.71683 +2023-01-23 12:00:00,22904.58,22978.0,22808.9,22910.74,11855.32051 +2023-01-23 13:00:00,22911.6,22939.49,22668.43,22798.41,16043.49764 +2023-01-23 14:00:00,22799.89,23115.0,22500.0,22622.05,26695.67737 +2023-01-23 15:00:00,22627.71,22920.0,22586.68,22853.14,25773.01312 +2023-01-23 16:00:00,22855.44,22935.78,22765.27,22911.17,15724.16437 +2023-01-23 17:00:00,22911.86,23067.86,22850.15,23065.22,14053.85121 +2023-01-23 18:00:00,23065.22,23180.0,22862.07,22936.2,20704.3155 +2023-01-23 19:00:00,22935.95,22967.99,22654.0,22792.47,20796.10381 +2023-01-23 20:00:00,22792.47,23034.9,22753.71,23022.64,12412.72474 +2023-01-23 21:00:00,23020.53,23044.56,22937.54,22996.0,8430.26746 +2023-01-23 22:00:00,22996.82,23034.46,22852.01,22925.32,6452.02899 +2023-01-23 23:00:00,22925.32,22959.92,22869.12,22916.45,7046.85693 +2023-01-24 00:00:00,22917.81,23009.79,22864.67,22986.44,11074.85309 +2023-01-24 01:00:00,22985.52,23105.52,22930.12,23089.46,11340.91396 +2023-01-24 02:00:00,23088.48,23144.76,23036.27,23036.68,11237.86878 +2023-01-24 03:00:00,23036.68,23084.0,23002.31,23079.27,7778.93895 +2023-01-24 04:00:00,23079.87,23121.66,23062.82,23072.15,7254.73594 +2023-01-24 05:00:00,23072.17,23162.2,23026.01,23118.17,10378.18623 +2023-01-24 06:00:00,23118.44,23155.82,23062.55,23095.63,8342.92836 +2023-01-24 07:00:00,23094.85,23128.99,23006.98,23054.08,8474.34273 +2023-01-24 08:00:00,23054.7,23090.25,23033.8,23053.12,7524.42334 +2023-01-24 09:00:00,23052.67,23058.29,22770.0,22852.79,20640.46218 +2023-01-24 10:00:00,22852.21,22942.7,22846.12,22902.51,9958.06109 +2023-01-24 11:00:00,22902.51,22933.32,22866.23,22917.66,7962.21202 +2023-01-24 12:00:00,22917.11,23035.31,22882.09,22964.13,9509.92112 +2023-01-24 13:00:00,22963.2,23016.8,22785.01,22859.93,13527.09578 +2023-01-24 14:00:00,22860.37,22961.18,22711.0,22859.1,23597.17727 +2023-01-24 15:00:00,22859.1,22959.88,22750.01,22931.36,18056.79224 +2023-01-24 16:00:00,22931.36,22949.26,22841.48,22875.18,10325.67171 +2023-01-24 17:00:00,22875.18,22927.37,22785.59,22913.49,12103.89133 +2023-01-24 18:00:00,22913.49,23050.0,22877.19,22999.85,12618.86498 +2023-01-24 19:00:00,23000.0,23079.0,22961.85,23018.53,9156.88769 +2023-01-24 20:00:00,23017.73,23040.27,22879.08,23010.34,12069.37161 +2023-01-24 21:00:00,23009.3,23080.45,22818.02,22902.84,12787.60829 +2023-01-24 22:00:00,22902.84,22929.63,22669.42,22755.52,16704.72195 +2023-01-24 23:00:00,22755.47,22786.96,22462.93,22632.89,20732.8519 +2023-01-25 00:00:00,22631.94,22715.06,22498.0,22652.23,17892.84686 +2023-01-25 01:00:00,22651.23,22665.58,22300.0,22490.64,20404.83877 +2023-01-25 02:00:00,22491.58,22597.64,22481.31,22549.89,9228.51617 +2023-01-25 03:00:00,22550.24,22650.0,22535.09,22643.61,8574.90169 +2023-01-25 04:00:00,22643.04,22658.64,22620.12,22624.83,6541.56707 +2023-01-25 05:00:00,22625.32,22737.58,22606.04,22670.72,8150.81054 +2023-01-25 06:00:00,22671.42,22739.18,22634.86,22713.76,7677.15225 +2023-01-25 07:00:00,22713.59,22772.0,22694.79,22712.45,7723.70406 +2023-01-25 08:00:00,22711.85,22739.11,22655.67,22659.72,7981.88832 +2023-01-25 09:00:00,22659.71,22709.73,22570.76,22607.26,10756.71092 +2023-01-25 10:00:00,22607.26,22630.78,22475.0,22611.9,13147.50834 +2023-01-25 11:00:00,22610.91,22628.42,22561.18,22598.47,7114.50494 +2023-01-25 12:00:00,22598.45,22745.0,22591.7,22694.23,14564.02397 +2023-01-25 13:00:00,22694.22,22729.99,22565.01,22595.72,10785.18821 +2023-01-25 14:00:00,22595.08,22625.73,22415.35,22435.47,21076.44743 +2023-01-25 15:00:00,22435.47,22606.35,22335.0,22577.86,24088.09308 +2023-01-25 16:00:00,22578.79,22690.44,22516.98,22629.75,15332.31405 +2023-01-25 17:00:00,22629.75,22653.93,22510.0,22568.94,11718.39873 +2023-01-25 18:00:00,22569.11,22726.43,22555.44,22724.9,11231.1755 +2023-01-25 19:00:00,22724.9,22765.3,22651.75,22748.86,12624.58451 +2023-01-25 20:00:00,22749.97,22950.91,22749.93,22938.09,20417.82756 +2023-01-25 21:00:00,22935.92,23700.0,22832.38,23592.55,31154.76165 +2023-01-25 22:00:00,23592.56,23816.73,22816.66,22932.2,28641.81816 +2023-01-25 23:00:00,22933.23,23212.0,22886.4,23060.94,19213.24945 +2023-01-26 00:00:00,23060.42,23282.47,23041.14,23240.42,16188.12884 +2023-01-26 01:00:00,23240.42,23247.0,23133.49,23163.24,12552.9194 +2023-01-26 02:00:00,23163.24,23265.0,23137.79,23178.98,10376.8072 +2023-01-26 03:00:00,23178.98,23231.89,23104.67,23136.16,10049.36738 +2023-01-26 04:00:00,23136.16,23197.8,23105.35,23179.35,9398.71102 +2023-01-26 05:00:00,23178.7,23192.47,23130.55,23147.48,8116.17411 +2023-01-26 06:00:00,23148.26,23164.11,22897.17,23087.87,17426.84588 +2023-01-26 07:00:00,23088.63,23096.78,22951.27,22966.73,10343.21037 +2023-01-26 08:00:00,22965.81,23048.49,22923.56,23003.87,9445.4274 +2023-01-26 09:00:00,23003.11,23036.69,22900.0,22970.7,9896.50864 +2023-01-26 10:00:00,22970.7,22995.72,22850.01,22939.26,11848.43077 +2023-01-26 11:00:00,22939.26,22993.9,22895.48,22992.94,8135.87839 +2023-01-26 12:00:00,22992.09,23147.98,22962.2,23120.96,12845.25586 +2023-01-26 13:00:00,23120.96,23154.21,22880.95,23128.35,20626.57133 +2023-01-26 14:00:00,23127.49,23250.0,22922.0,23039.35,25786.18933 +2023-01-26 15:00:00,23037.23,23179.38,22901.0,22958.02,21930.21844 +2023-01-26 16:00:00,22955.16,23032.16,22853.81,23003.98,16062.04634 +2023-01-26 17:00:00,23003.33,23062.77,22958.5,22982.85,9892.04898 +2023-01-26 18:00:00,22983.25,23106.51,22959.0,23037.16,10194.8719 +2023-01-26 19:00:00,23038.01,23091.7,22980.87,23070.0,7455.18397 +2023-01-26 20:00:00,23068.57,23195.0,23037.0,23112.57,9669.55094 +2023-01-26 21:00:00,23110.98,23121.32,22963.07,23081.77,8416.36973 +2023-01-26 22:00:00,23081.78,23150.0,22989.36,23003.79,6241.33424 +2023-01-26 23:00:00,23004.81,23036.3,22967.3,23009.65,6026.38535 +2023-01-27 00:00:00,23009.65,23076.62,22897.02,22925.5,10025.55781 +2023-01-27 01:00:00,22925.08,22968.73,22534.88,22647.48,18777.70517 +2023-01-27 02:00:00,22647.44,22815.4,22602.85,22781.67,10444.72509 +2023-01-27 03:00:00,22781.67,22843.29,22761.49,22772.62,6934.89115 +2023-01-27 04:00:00,22772.2,22858.22,22760.64,22802.81,6170.87432 +2023-01-27 05:00:00,22802.3,23100.0,22796.95,23034.92,12715.19394 +2023-01-27 06:00:00,23034.92,23054.96,22970.0,23002.92,9903.44269 +2023-01-27 07:00:00,23002.48,23081.83,22934.35,23072.77,9935.35465 +2023-01-27 08:00:00,23072.29,23083.87,22925.1,22964.51,10846.11417 +2023-01-27 09:00:00,22964.51,22985.88,22905.0,22947.87,7625.15012 +2023-01-27 10:00:00,22947.87,22989.99,22903.03,22948.04,7133.72336 +2023-01-27 11:00:00,22948.98,22973.75,22915.12,22967.47,7947.13148 +2023-01-27 12:00:00,22967.48,22988.49,22857.14,22932.41,10322.05561 +2023-01-27 13:00:00,22932.43,23022.0,22851.08,22899.82,15909.04637 +2023-01-27 14:00:00,22900.53,23052.69,22841.19,22967.66,14987.28938 +2023-01-27 15:00:00,22967.66,23148.0,22928.2,22933.96,21594.88386 +2023-01-27 16:00:00,22932.2,23144.0,22924.01,23129.72,13594.43178 +2023-01-27 17:00:00,23130.75,23244.99,23077.8,23204.74,15992.92842 +2023-01-27 18:00:00,23204.74,23252.63,23131.3,23183.91,10710.31106 +2023-01-27 19:00:00,23183.91,23284.32,23158.23,23253.06,8717.0557 +2023-01-27 20:00:00,23253.06,23500.0,23016.79,23108.82,27561.53877 +2023-01-27 21:00:00,23108.82,23196.24,23050.0,23080.88,9672.02966 +2023-01-27 22:00:00,23080.88,23100.09,22951.33,23008.22,7874.81798 +2023-01-27 23:00:00,23007.4,23083.08,23005.09,23074.16,5437.61061 +2023-01-28 00:00:00,23074.16,23189.0,23042.54,23151.84,8247.18867 +2023-01-28 01:00:00,23151.27,23172.3,23072.7,23090.53,6212.30453 +2023-01-28 02:00:00,23091.12,23127.49,23067.8,23086.84,5273.90619 +2023-01-28 03:00:00,23086.84,23147.33,23080.2,23117.44,4581.76081 +2023-01-28 04:00:00,23117.44,23133.4,23079.09,23092.24,5188.32631 +2023-01-28 05:00:00,23092.24,23110.0,23021.74,23066.38,7041.63263 +2023-01-28 06:00:00,23066.94,23081.0,23010.0,23038.21,5857.53326 +2023-01-28 07:00:00,23038.68,23043.49,22951.01,22991.51,6640.7863 +2023-01-28 08:00:00,22991.86,23016.79,22953.04,22978.64,6319.79371 +2023-01-28 09:00:00,22978.87,23017.27,22905.0,22998.6,7184.53854 +2023-01-28 10:00:00,22998.24,23012.57,22947.0,22974.47,6401.44743 +2023-01-28 11:00:00,22974.03,22999.99,22937.01,22981.51,5769.60189 +2023-01-28 12:00:00,22981.51,22983.12,22917.39,22955.25,7474.12723 +2023-01-28 13:00:00,22954.76,22974.83,22878.46,22970.1,10905.72719 +2023-01-28 14:00:00,22970.8,22982.95,22947.0,22949.43,5612.89083 +2023-01-28 15:00:00,22949.44,23044.12,22933.58,23012.54,9458.575 +2023-01-28 16:00:00,23012.02,23052.82,23005.79,23018.14,6212.50882 +2023-01-28 17:00:00,23018.14,23029.93,22975.0,23018.96,5599.18936 +2023-01-28 18:00:00,23018.96,23029.92,22977.1,22998.31,4317.5576 +2023-01-28 19:00:00,22998.31,23043.12,22990.0,23039.35,4301.84464 +2023-01-28 20:00:00,23039.35,23042.91,22953.07,22966.91,5653.9302 +2023-01-28 21:00:00,22966.89,23010.0,22942.0,23001.41,5517.2576 +2023-01-28 22:00:00,23001.41,23016.5,22973.35,22977.63,3934.01442 +2023-01-28 23:00:00,22978.2,23031.9,22961.34,23022.6,4409.26769 +2023-01-29 00:00:00,23021.4,23145.38,22967.76,23112.95,9049.12052 +2023-01-29 01:00:00,23112.95,23492.0,23112.14,23232.32,24472.03253 +2023-01-29 02:00:00,23231.22,23279.41,23051.43,23143.08,12690.97942 +2023-01-29 03:00:00,23143.64,23198.63,23104.35,23193.43,6368.66296 +2023-01-29 04:00:00,23194.27,23241.28,23144.99,23228.89,7249.46347 +2023-01-29 05:00:00,23228.89,23255.0,23190.08,23249.5,6306.20767 +2023-01-29 06:00:00,23249.5,23268.51,23183.17,23198.58,6038.90792 +2023-01-29 07:00:00,23199.3,23220.76,23174.47,23203.86,5393.54974 +2023-01-29 08:00:00,23203.39,23224.55,23153.64,23172.28,5894.58708 +2023-01-29 09:00:00,23172.28,23373.89,23156.89,23296.8,13621.67683 +2023-01-29 10:00:00,23296.8,23500.0,23295.06,23448.03,17517.02878 +2023-01-29 11:00:00,23447.1,23605.74,23270.03,23432.17,18706.39808 +2023-01-29 12:00:00,23431.39,23543.56,23350.47,23478.21,13612.57807 +2023-01-29 13:00:00,23478.21,23666.0,23457.93,23538.94,18909.58007 +2023-01-29 14:00:00,23538.04,23596.88,23412.1,23538.58,13731.01051 +2023-01-29 15:00:00,23538.04,23549.62,23470.15,23525.09,8470.38029 +2023-01-29 16:00:00,23525.09,23650.0,23472.0,23586.44,15494.72714 +2023-01-29 17:00:00,23586.44,23641.8,23546.83,23591.38,11721.97262 +2023-01-29 18:00:00,23591.38,23759.0,23536.65,23678.99,15785.80867 +2023-01-29 19:00:00,23677.95,23960.54,23661.0,23897.84,23293.93373 +2023-01-29 20:00:00,23896.65,23910.6,23600.0,23698.65,15648.221 +2023-01-29 21:00:00,23698.65,23828.76,23656.33,23794.2,9301.06405 +2023-01-29 22:00:00,23795.24,23821.21,23720.08,23765.93,5744.20146 +2023-01-29 23:00:00,23765.93,23877.8,23727.17,23742.3,10666.69943 +2023-01-30 00:00:00,23743.37,23800.51,23683.96,23751.43,10261.83669 +2023-01-30 01:00:00,23751.02,23765.9,23625.83,23670.08,10375.90064 +2023-01-30 02:00:00,23670.08,23673.49,23567.1,23645.76,9335.74532 +2023-01-30 03:00:00,23645.76,23703.61,23621.74,23701.44,6930.90378 +2023-01-30 04:00:00,23700.78,23769.32,23694.31,23717.76,7489.99072 +2023-01-30 05:00:00,23717.76,23733.86,23663.0,23728.71,6783.55715 +2023-01-30 06:00:00,23728.71,23744.6,23658.0,23692.38,7732.32161 +2023-01-30 07:00:00,23691.84,23706.36,23599.15,23642.81,9339.96326 +2023-01-30 08:00:00,23642.81,23676.98,23507.0,23548.76,12879.05024 +2023-01-30 09:00:00,23547.79,23552.65,23110.0,23191.2,30359.75905 +2023-01-30 10:00:00,23191.2,23305.73,23101.62,23243.54,13937.89938 +2023-01-30 11:00:00,23244.5,23275.55,23017.0,23077.47,15366.9206 +2023-01-30 12:00:00,23077.47,23153.06,22962.68,23076.27,16984.69992 +2023-01-30 13:00:00,23076.27,23132.74,23045.0,23057.19,9516.28569 +2023-01-30 14:00:00,23057.72,23289.86,23027.3,23287.7,16950.55929 +2023-01-30 15:00:00,23288.97,23301.82,23048.79,23178.51,14938.10158 +2023-01-30 16:00:00,23178.51,23248.86,23110.38,23170.38,12520.73968 +2023-01-30 17:00:00,23170.38,23237.86,23088.06,23108.94,11644.19512 +2023-01-30 18:00:00,23109.92,23180.0,23067.34,23138.83,9788.90857 +2023-01-30 19:00:00,23139.06,23141.82,22627.9,22784.86,24844.3908 +2023-01-30 20:00:00,22784.86,22810.0,22558.88,22697.83,16318.16625 +2023-01-30 21:00:00,22697.83,22794.8,22674.05,22743.7,9403.45069 +2023-01-30 22:00:00,22744.64,22768.02,22500.0,22729.81,9085.44002 +2023-01-30 23:00:00,22731.1,22840.69,22703.61,22826.15,9617.11516 +2023-01-31 00:00:00,22827.38,22877.45,22714.77,22828.32,11523.71022 +2023-01-31 01:00:00,22828.32,22862.0,22755.23,22830.23,8866.9626 +2023-01-31 02:00:00,22830.23,22913.71,22817.3,22857.93,8902.28528 +2023-01-31 03:00:00,22857.93,22869.94,22814.81,22835.01,5838.55706 +2023-01-31 04:00:00,22835.46,22865.58,22800.33,22861.59,6810.39671 +2023-01-31 05:00:00,22862.32,22873.01,22754.23,22759.14,7408.77393 +2023-01-31 06:00:00,22759.14,22867.77,22743.05,22812.12,9607.79061 +2023-01-31 07:00:00,22812.12,22989.48,22809.67,22978.24,11639.20648 +2023-01-31 08:00:00,22978.24,22996.84,22835.01,22912.62,11420.32067 +2023-01-31 09:00:00,22912.6,22942.13,22882.89,22891.34,6771.09473 +2023-01-31 10:00:00,22892.45,22913.0,22815.0,22828.87,8807.57025 +2023-01-31 11:00:00,22828.15,22881.44,22810.03,22865.43,8128.05264 +2023-01-31 12:00:00,22865.97,22923.99,22851.01,22895.15,8860.36003 +2023-01-31 13:00:00,22895.82,23127.5,22884.86,23127.11,19784.4525 +2023-01-31 14:00:00,23126.94,23197.38,23056.0,23119.64,20608.66415 +2023-01-31 15:00:00,23118.76,23206.84,23075.01,23121.8,15664.6257 +2023-01-31 16:00:00,23121.8,23221.14,23081.08,23109.17,14714.9828 +2023-01-31 17:00:00,23109.88,23182.13,23086.01,23152.42,9824.57802 +2023-01-31 18:00:00,23151.76,23187.0,23115.06,23165.96,8376.46543 +2023-01-31 19:00:00,23166.54,23188.58,23087.28,23163.88,9139.8747 +2023-01-31 20:00:00,23162.99,23172.8,23045.07,23095.41,10546.57529 +2023-01-31 21:00:00,23095.41,23124.34,22812.69,22948.69,17969.15727 +2023-01-31 22:00:00,22947.66,23320.0,22872.12,23181.81,12479.54407 +2023-01-31 23:00:00,23181.81,23188.7,23081.19,23125.13,10955.34795 +2023-02-01 00:00:00,23125.13,23168.9,22997.1,23085.73,12121.64019 +2023-02-01 01:00:00,23085.36,23184.29,23055.25,23123.09,9512.34705 +2023-02-01 02:00:00,23123.1,23130.93,23078.5,23108.43,7108.81617 +2023-02-01 03:00:00,23107.17,23134.59,23038.07,23130.19,6963.14876 +2023-02-01 04:00:00,23130.7,23157.41,23107.83,23135.98,6849.16887 +2023-02-01 05:00:00,23136.75,23167.39,23111.39,23118.67,7203.55757 +2023-02-01 06:00:00,23118.68,23131.98,23048.25,23065.77,9050.34218 +2023-02-01 07:00:00,23065.77,23115.54,23017.07,23076.68,9414.40529 +2023-02-01 08:00:00,23076.67,23087.43,22938.16,22982.03,12329.59133 +2023-02-01 09:00:00,22982.15,23021.87,22919.33,22991.86,8580.88945 +2023-02-01 10:00:00,22992.69,23011.87,22942.84,22996.3,6854.90401 +2023-02-01 11:00:00,22996.3,23100.0,22987.6,23077.52,9473.27665 +2023-02-01 12:00:00,23078.43,23108.09,23048.1,23060.63,8027.88923 +2023-02-01 13:00:00,23061.34,23140.89,23015.34,23086.1,13119.927 +2023-02-01 14:00:00,23086.78,23144.85,23028.88,23101.0,14518.97041 +2023-02-01 15:00:00,23101.0,23111.78,22938.36,22979.73,18159.57255 +2023-02-01 16:00:00,22979.73,23036.63,22918.2,22999.85,7567.43291 +2023-02-01 17:00:00,23000.62,23038.93,22929.0,22994.27,8248.08199 +2023-02-01 18:00:00,22993.32,23128.0,22943.47,23077.26,13755.6663 +2023-02-01 19:00:00,23075.53,23494.77,22760.23,23385.99,48362.42475 +2023-02-01 20:00:00,23385.99,23650.0,23320.01,23573.11,29029.31149 +2023-02-01 21:00:00,23571.72,23800.0,23535.27,23681.05,22847.57559 +2023-02-01 22:00:00,23681.05,23812.66,23654.83,23714.5,10835.68856 +2023-02-01 23:00:00,23713.81,23786.38,23682.94,23732.66,10855.79441 +2023-02-02 00:00:00,23731.41,24255.0,23690.02,24189.85,26407.16074 +2023-02-02 01:00:00,24188.09,24209.91,23946.59,23950.55,16540.13997 +2023-02-02 02:00:00,23950.55,23988.26,23830.02,23885.19,10559.0828 +2023-02-02 03:00:00,23884.85,23934.0,23847.28,23848.6,7920.05056 +2023-02-02 04:00:00,23848.6,23907.79,23838.3,23882.87,7784.41929 +2023-02-02 05:00:00,23882.87,23921.1,23800.0,23804.61,8555.18843 +2023-02-02 06:00:00,23803.74,23831.17,23658.2,23786.46,11976.68705 +2023-02-02 07:00:00,23786.46,23832.28,23738.75,23781.12,8458.06064 +2023-02-02 08:00:00,23780.65,23852.75,23766.16,23799.59,9533.64662 +2023-02-02 09:00:00,23799.16,23836.0,23750.0,23830.91,8929.0013 +2023-02-02 10:00:00,23830.23,23835.0,23770.8,23780.17,7433.76141 +2023-02-02 11:00:00,23780.84,23850.68,23772.68,23820.49,8445.33577 +2023-02-02 12:00:00,23820.49,23831.92,23760.83,23800.76,9612.75861 +2023-02-02 13:00:00,23800.77,23816.92,23715.41,23766.53,13390.27586 +2023-02-02 14:00:00,23766.53,23945.68,23525.0,23609.11,30987.36707 +2023-02-02 15:00:00,23609.11,23927.21,23550.8,23839.5,29495.19429 +2023-02-02 16:00:00,23839.5,23898.98,23765.09,23790.35,19698.71575 +2023-02-02 17:00:00,23790.35,23935.05,23780.01,23893.33,14027.00706 +2023-02-02 18:00:00,23894.1,24144.62,23889.88,24054.54,24227.07145 +2023-02-02 19:00:00,24055.71,24071.0,23725.76,23802.57,25274.6563 +2023-02-02 20:00:00,23802.57,23878.0,23748.55,23872.75,15880.07072 +2023-02-02 21:00:00,23872.76,23924.81,23413.02,23455.65,24846.98228 +2023-02-02 22:00:00,23455.65,23618.98,23363.27,23556.13,13508.07482 +2023-02-02 23:00:00,23556.7,23595.5,23423.75,23488.94,10686.49872 +2023-02-03 00:00:00,23489.33,23585.04,23436.06,23552.89,12175.93159 +2023-02-03 01:00:00,23553.32,23590.11,23522.7,23555.12,8343.49653 +2023-02-03 02:00:00,23555.12,23580.6,23411.47,23475.45,11027.45565 +2023-02-03 03:00:00,23475.46,23536.35,23413.01,23534.18,10062.05078 +2023-02-03 04:00:00,23533.64,23566.18,23507.21,23516.73,7602.35376 +2023-02-03 05:00:00,23516.73,23549.37,23501.24,23523.58,7365.7173 +2023-02-03 06:00:00,23523.57,23552.4,23505.9,23513.55,7860.8868 +2023-02-03 07:00:00,23512.71,23545.28,23447.25,23456.23,12159.91792 +2023-02-03 08:00:00,23456.22,23472.0,23322.3,23423.52,14543.10159 +2023-02-03 09:00:00,23423.52,23447.24,23399.78,23423.17,9588.25811 +2023-02-03 10:00:00,23423.17,23443.5,23352.79,23431.91,10798.49926 +2023-02-03 11:00:00,23431.91,23541.7,23416.23,23534.13,12966.86651 +2023-02-03 12:00:00,23533.32,23570.76,23486.13,23524.75,12241.75923 +2023-02-03 13:00:00,23524.2,23546.34,23244.11,23346.63,28467.22024 +2023-02-03 14:00:00,23346.63,23597.68,23227.16,23518.32,29442.9542 +2023-02-03 15:00:00,23518.42,23710.8,23408.76,23603.36,32073.43094 +2023-02-03 16:00:00,23604.62,23715.7,23513.73,23519.21,19302.9623 +2023-02-03 17:00:00,23518.92,23662.39,23501.2,23506.58,15792.41074 +2023-02-03 18:00:00,23508.21,23527.79,23366.0,23418.3,18823.73509 +2023-02-03 19:00:00,23417.75,23439.16,23300.76,23307.99,14811.724 +2023-02-03 20:00:00,23308.05,23403.94,23204.62,23338.35,15863.22902 +2023-02-03 21:00:00,23337.66,23394.35,23302.48,23379.01,7144.06114 +2023-02-03 22:00:00,23379.01,23443.36,23375.88,23421.02,6806.34815 +2023-02-03 23:00:00,23421.72,23472.0,23402.86,23431.9,7306.65819 +2023-02-04 00:00:00,23431.9,23465.15,23382.01,23411.3,7788.02404 +2023-02-04 01:00:00,23411.39,23442.24,23365.0,23373.87,6520.90978 +2023-02-04 02:00:00,23373.87,23399.0,23347.72,23386.89,5698.03993 +2023-02-04 03:00:00,23386.53,23393.89,23331.16,23343.43,5033.08151 +2023-02-04 04:00:00,23343.12,23361.33,23314.14,23337.71,5635.97298 +2023-02-04 05:00:00,23337.7,23338.78,23263.44,23312.38,6422.22929 +2023-02-04 06:00:00,23312.76,23347.62,23253.96,23338.23,6239.71326 +2023-02-04 07:00:00,23338.23,23357.33,23293.55,23329.18,6701.86025 +2023-02-04 08:00:00,23329.18,23345.91,23296.01,23297.59,5445.02902 +2023-02-04 09:00:00,23297.83,23353.76,23292.19,23340.02,7012.31149 +2023-02-04 10:00:00,23340.02,23369.4,23331.24,23335.83,6319.79876 +2023-02-04 11:00:00,23336.09,23376.27,23332.55,23363.76,4837.6916 +2023-02-04 12:00:00,23364.14,23417.52,23340.44,23412.84,6915.51879 +2023-02-04 13:00:00,23412.84,23587.78,23408.19,23503.73,18494.864 +2023-02-04 14:00:00,23503.75,23510.0,23393.32,23464.36,8716.60988 +2023-02-04 15:00:00,23464.36,23473.47,23387.67,23421.45,7252.55532 +2023-02-04 16:00:00,23421.45,23455.52,23358.57,23407.83,8500.81711 +2023-02-04 17:00:00,23408.28,23465.0,23392.28,23439.63,7603.54367 +2023-02-04 18:00:00,23439.01,23472.5,23402.22,23445.66,6501.30189 +2023-02-04 19:00:00,23445.66,23454.94,23415.01,23425.89,4277.87142 +2023-02-04 20:00:00,23425.28,23442.27,23389.0,23412.48,5484.38416 +2023-02-04 21:00:00,23412.48,23418.42,23372.92,23413.98,4614.64216 +2023-02-04 22:00:00,23413.54,23449.96,23391.26,23402.89,4638.30091 +2023-02-04 23:00:00,23402.89,23423.67,23259.62,23326.84,9471.40173 +2023-02-05 00:00:00,23327.66,23371.99,23230.0,23291.0,9671.24209 +2023-02-05 01:00:00,23290.99,23333.06,23261.22,23319.48,5783.19791 +2023-02-05 02:00:00,23319.86,23347.59,23292.0,23292.21,5444.09162 +2023-02-05 03:00:00,23292.22,23349.73,23289.4,23344.53,6152.28873 +2023-02-05 04:00:00,23344.53,23377.54,23326.23,23364.0,5037.2136 +2023-02-05 05:00:00,23364.33,23390.0,23360.73,23375.6,4740.79244 +2023-02-05 06:00:00,23375.12,23433.33,23343.51,23392.8,6465.15081 +2023-02-05 07:00:00,23392.35,23404.6,23360.92,23377.4,4231.56632 +2023-02-05 08:00:00,23377.03,23419.74,23363.98,23393.26,5924.89158 +2023-02-05 09:00:00,23393.26,23398.2,23356.4,23365.02,5404.85788 +2023-02-05 10:00:00,23365.02,23404.23,23360.86,23395.57,5787.27193 +2023-02-05 11:00:00,23396.12,23404.53,23345.0,23356.33,7010.70036 +2023-02-05 12:00:00,23356.86,23374.8,23000.01,23170.56,15435.67672 +2023-02-05 13:00:00,23170.56,23218.28,23070.02,23167.62,15897.13766 +2023-02-05 14:00:00,23166.96,23212.16,23140.0,23163.45,9505.48223 +2023-02-05 15:00:00,23163.45,23203.64,23060.01,23096.16,10713.90542 +2023-02-05 16:00:00,23096.92,23157.75,22990.8,23075.54,12824.13549 +2023-02-05 17:00:00,23075.53,23108.3,22807.99,22851.48,21945.26322 +2023-02-05 18:00:00,22851.48,22950.9,22815.0,22843.92,10547.34873 +2023-02-05 19:00:00,22843.92,22916.33,22743.0,22891.8,11267.40675 +2023-02-05 20:00:00,22892.65,22942.03,22852.01,22886.3,6973.04337 +2023-02-05 21:00:00,22886.9,22897.86,22795.01,22896.41,6714.17625 +2023-02-05 22:00:00,22896.41,23030.0,22887.13,22979.51,7698.39571 +2023-02-05 23:00:00,22979.51,23005.81,22900.91,22932.91,8076.10235 +2023-02-06 00:00:00,22932.91,23094.92,22918.61,23054.44,8422.82634 +2023-02-06 01:00:00,23055.04,23066.02,22964.16,22978.08,6739.63132 +2023-02-06 02:00:00,22977.72,23003.83,22869.03,22877.82,6971.44696 +2023-02-06 03:00:00,22878.52,22924.85,22823.0,22895.48,7438.98073 +2023-02-06 04:00:00,22895.48,22928.2,22868.86,22873.12,6035.21725 +2023-02-06 05:00:00,22873.11,22890.56,22628.13,22774.76,15492.70889 +2023-02-06 06:00:00,22773.91,22803.6,22720.0,22783.44,8437.72229 +2023-02-06 07:00:00,22783.44,22887.99,22753.03,22879.69,9250.3625 +2023-02-06 08:00:00,22880.91,22939.99,22833.65,22862.99,10224.39701 +2023-02-06 09:00:00,22862.53,22883.64,22815.62,22837.98,8526.95844 +2023-02-06 10:00:00,22837.49,22870.0,22804.33,22842.41,8340.80923 +2023-02-06 11:00:00,22842.86,22895.0,22735.46,22878.23,12920.07985 +2023-02-06 12:00:00,22878.23,22935.27,22828.54,22885.94,11473.35648 +2023-02-06 13:00:00,22885.44,22923.81,22807.28,22828.79,10217.02439 +2023-02-06 14:00:00,22828.79,22900.0,22777.01,22842.47,17137.77425 +2023-02-06 15:00:00,22842.47,23054.66,22745.01,23041.39,19864.52511 +2023-02-06 16:00:00,23042.86,23158.25,22921.25,22999.62,23958.96974 +2023-02-06 17:00:00,22998.82,23071.26,22952.2,23035.78,11751.15391 +2023-02-06 18:00:00,23035.78,23076.66,22953.89,23018.13,10180.78989 +2023-02-06 19:00:00,23018.7,23124.98,22980.59,23031.03,10603.33544 +2023-02-06 20:00:00,23030.29,23032.13,22963.12,23005.84,8305.45518 +2023-02-06 21:00:00,23004.61,23011.5,22901.0,22915.05,6265.70864 +2023-02-06 22:00:00,22915.05,22926.13,22840.0,22879.37,6597.55092 +2023-02-06 23:00:00,22879.93,22890.34,22638.0,22762.52,20214.82214 +2023-02-07 00:00:00,22762.52,22826.03,22745.78,22795.13,8801.75203 +2023-02-07 01:00:00,22795.72,22864.28,22791.0,22849.16,8022.85165 +2023-02-07 02:00:00,22849.16,22889.61,22805.0,22883.71,7813.89331 +2023-02-07 03:00:00,22883.71,22897.67,22850.62,22877.99,8858.87175 +2023-02-07 04:00:00,22877.99,22928.39,22861.45,22870.35,9393.32703 +2023-02-07 05:00:00,22870.94,22949.74,22864.37,22936.72,9214.80424 +2023-02-07 06:00:00,22935.92,22986.71,22920.32,22927.38,9087.42768 +2023-02-07 07:00:00,22926.9,22960.83,22888.11,22910.91,8803.79098 +2023-02-07 08:00:00,22910.91,22921.27,22862.85,22872.67,11518.0275 +2023-02-07 09:00:00,22872.95,23044.86,22871.12,23011.79,14412.03767 +2023-02-07 10:00:00,23010.93,23064.56,22971.84,22983.51,10355.59969 +2023-02-07 11:00:00,22984.04,23022.82,22965.01,22977.24,7994.32757 +2023-02-07 12:00:00,22977.24,23035.74,22963.63,23023.67,9137.36063 +2023-02-07 13:00:00,23023.67,23042.0,22938.13,22982.54,10668.26191 +2023-02-07 14:00:00,22982.65,23018.46,22932.0,22976.86,16289.49692 +2023-02-07 15:00:00,22976.85,22983.0,22876.35,22904.89,16337.23168 +2023-02-07 16:00:00,22904.89,23026.96,22870.23,22977.98,13740.71938 +2023-02-07 17:00:00,22977.98,23337.0,22890.01,23282.92,25799.10026 +2023-02-07 18:00:00,23282.92,23350.25,22769.05,22932.28,35243.76976 +2023-02-07 19:00:00,22931.98,23138.86,22921.88,23091.9,22331.90394 +2023-02-07 20:00:00,23092.87,23250.0,23029.11,23194.36,17955.51864 +2023-02-07 21:00:00,23194.36,23269.53,23176.8,23196.25,9742.12276 +2023-02-07 22:00:00,23196.25,23309.29,23141.56,23228.69,8191.27787 +2023-02-07 23:00:00,23228.15,23296.2,23228.09,23240.46,8293.24997 +2023-02-08 00:00:00,23242.42,23361.64,23228.83,23326.4,12408.87974 +2023-02-08 01:00:00,23326.4,23452.0,23279.16,23287.66,12873.32974 +2023-02-08 02:00:00,23287.66,23309.18,23237.54,23244.6,7886.69919 +2023-02-08 03:00:00,23244.6,23279.25,23225.19,23255.34,7136.86722 +2023-02-08 04:00:00,23255.34,23287.3,23239.62,23246.71,6259.74854 +2023-02-08 05:00:00,23246.71,23258.0,23183.17,23224.39,8773.64266 +2023-02-08 06:00:00,23223.74,23236.9,23185.89,23198.27,8289.54152 +2023-02-08 07:00:00,23198.83,23239.33,23184.05,23232.68,8080.45047 +2023-02-08 08:00:00,23233.23,23239.44,23163.0,23205.96,10205.22956 +2023-02-08 09:00:00,23206.4,23224.9,23175.81,23202.9,7943.32261 +2023-02-08 10:00:00,23202.9,23205.78,23132.21,23159.81,8720.31032 +2023-02-08 11:00:00,23160.16,23184.63,23136.1,23159.07,7564.94447 +2023-02-08 12:00:00,23159.07,23199.58,23085.89,23123.44,9989.01405 +2023-02-08 13:00:00,23122.88,23141.8,23043.72,23114.88,14233.65225 +2023-02-08 14:00:00,23114.87,23132.36,22990.14,23051.91,19085.02888 +2023-02-08 15:00:00,23050.6,23051.91,22857.0,22872.28,21859.7293 +2023-02-08 16:00:00,22871.28,22971.52,22665.85,22966.3,29313.36098 +2023-02-08 17:00:00,22965.01,23027.0,22908.25,23004.04,17183.52951 +2023-02-08 18:00:00,23005.12,23042.95,22832.53,22893.03,14480.55237 +2023-02-08 19:00:00,22893.96,22928.78,22821.75,22874.89,12030.23276 +2023-02-08 20:00:00,22873.9,22912.6,22778.93,22829.87,13991.7443 +2023-02-08 21:00:00,22829.87,22980.3,22818.37,22955.37,7376.47422 +2023-02-08 22:00:00,22956.11,22975.57,22915.72,22928.75,4930.04931 +2023-02-08 23:00:00,22929.28,22970.61,22873.6,22963.0,9439.9732 +2023-02-09 00:00:00,22961.85,23011.39,22926.35,22980.64,9134.9064 +2023-02-09 01:00:00,22980.12,22993.9,22933.6,22948.13,8455.99935 +2023-02-09 02:00:00,22948.13,22956.92,22801.15,22806.76,11868.41416 +2023-02-09 03:00:00,22806.76,22816.77,22424.48,22518.44,35694.84836 +2023-02-09 04:00:00,22519.56,22611.56,22353.71,22568.57,17941.3507 +2023-02-09 05:00:00,22569.04,22641.16,22533.84,22603.08,13270.02897 +2023-02-09 06:00:00,22602.5,22733.54,22573.9,22719.25,12881.90877 +2023-02-09 07:00:00,22719.22,22737.48,22645.05,22676.41,10982.31225 +2023-02-09 08:00:00,22676.41,22770.0,22665.13,22720.65,12119.40295 +2023-02-09 09:00:00,22720.65,22746.55,22680.0,22738.69,9807.02602 +2023-02-09 10:00:00,22738.69,22741.2,22670.6,22698.53,9017.34275 +2023-02-09 11:00:00,22698.9,22739.69,22663.32,22685.79,10752.55277 +2023-02-09 12:00:00,22685.79,22782.0,22564.4,22705.5,19430.7884 +2023-02-09 13:00:00,22706.09,22769.31,22683.74,22747.58,13556.80184 +2023-02-09 14:00:00,22747.58,22831.41,22673.46,22694.29,21224.64317 +2023-02-09 15:00:00,22693.22,22712.56,22556.32,22610.94,20137.17701 +2023-02-09 16:00:00,22610.94,22623.41,22452.0,22511.8,21511.99931 +2023-02-09 17:00:00,22510.24,22599.85,22450.0,22537.33,17452.72987 +2023-02-09 18:00:00,22536.33,22600.0,22464.28,22514.75,15863.28998 +2023-02-09 19:00:00,22514.75,22530.0,21881.0,22032.71,38223.20744 +2023-02-09 20:00:00,22030.99,22084.46,21836.0,21994.21,25840.62285 +2023-02-09 21:00:00,21994.21,22006.91,21695.0,21856.3,24122.89743 +2023-02-09 22:00:00,21856.3,21955.14,21688.0,21767.53,11191.95406 +2023-02-09 23:00:00,21767.53,21855.74,21743.0,21796.35,12412.49069 +2023-02-10 00:00:00,21797.83,21880.18,21756.0,21824.09,13868.09593 +2023-02-10 01:00:00,21824.09,21897.24,21795.07,21894.16,11047.60047 +2023-02-10 02:00:00,21894.63,21938.16,21854.01,21917.77,9604.9873 +2023-02-10 03:00:00,21918.73,21929.27,21818.18,21825.59,9582.60414 +2023-02-10 04:00:00,21825.59,21833.28,21704.0,21786.08,13757.39463 +2023-02-10 05:00:00,21786.07,21843.73,21622.4,21796.78,17695.90744 +2023-02-10 06:00:00,21796.78,21880.0,21777.02,21874.73,11262.34817 +2023-02-10 07:00:00,21874.73,21926.2,21829.01,21911.71,14333.86342 +2023-02-10 08:00:00,21910.61,21926.91,21861.45,21889.38,13018.19575 +2023-02-10 09:00:00,21888.75,21905.29,21811.71,21820.23,11981.47404 +2023-02-10 10:00:00,21820.22,21855.47,21796.98,21849.38,11025.81374 +2023-02-10 11:00:00,21850.24,21851.9,21713.96,21733.52,17449.72459 +2023-02-10 12:00:00,21732.63,21791.5,21682.44,21718.48,15202.37969 +2023-02-10 13:00:00,21719.29,21830.0,21711.76,21767.87,14161.55243 +2023-02-10 14:00:00,21767.88,21890.0,21754.82,21841.55,20054.60321 +2023-02-10 15:00:00,21841.31,21901.24,21520.0,21654.09,30270.85193 +2023-02-10 16:00:00,21652.75,21744.18,21573.47,21607.11,20659.60531 +2023-02-10 17:00:00,21607.09,21699.52,21558.13,21692.07,15639.44215 +2023-02-10 18:00:00,21693.04,21738.56,21671.67,21703.9,10424.26016 +2023-02-10 19:00:00,21703.91,21799.0,21663.25,21771.09,13108.66591 +2023-02-10 20:00:00,21772.26,21790.92,21714.29,21724.4,9435.39071 +2023-02-10 21:00:00,21725.39,21729.04,21451.0,21536.31,17310.39013 +2023-02-10 22:00:00,21535.07,21639.84,21519.23,21571.19,8503.42168 +2023-02-10 23:00:00,21570.6,21663.07,21551.42,21625.19,9193.36954 +2023-02-11 00:00:00,21625.19,21691.63,21599.78,21657.62,10020.42535 +2023-02-11 01:00:00,21658.6,21700.77,21611.53,21635.49,8537.60335 +2023-02-11 02:00:00,21635.92,21680.0,21619.84,21652.2,6957.21056 +2023-02-11 03:00:00,21652.2,21725.95,21646.82,21678.56,7882.20714 +2023-02-11 04:00:00,21678.56,21693.86,21665.12,21686.79,6139.8224 +2023-02-11 05:00:00,21686.79,21710.76,21668.81,21675.26,5893.31619 +2023-02-11 06:00:00,21675.26,21682.12,21655.15,21669.73,6258.87103 +2023-02-11 07:00:00,21669.73,21715.38,21640.03,21692.63,7831.1344 +2023-02-11 08:00:00,21692.63,21705.0,21678.49,21687.29,7802.08987 +2023-02-11 09:00:00,21686.95,21702.59,21674.92,21698.37,5860.1145 +2023-02-11 10:00:00,21698.37,21702.42,21658.01,21670.32,7239.15713 +2023-02-11 11:00:00,21670.5,21702.78,21664.62,21697.44,5779.71289 +2023-02-11 12:00:00,21697.44,21777.54,21662.11,21713.77,11592.21317 +2023-02-11 13:00:00,21713.77,21768.0,21695.32,21747.49,8078.66352 +2023-02-11 14:00:00,21747.5,21756.98,21714.1,21751.04,7654.44892 +2023-02-11 15:00:00,21751.04,21758.63,21718.21,21735.78,6005.11938 +2023-02-11 16:00:00,21735.78,21737.89,21679.19,21693.14,6767.98873 +2023-02-11 17:00:00,21693.48,21700.0,21663.26,21698.86,5603.42245 +2023-02-11 18:00:00,21698.86,21731.49,21618.23,21654.03,8684.49347 +2023-02-11 19:00:00,21654.43,21673.68,21645.63,21662.63,5438.65762 +2023-02-11 20:00:00,21662.36,21717.14,21645.21,21671.38,6135.63566 +2023-02-11 21:00:00,21671.83,21850.0,21661.59,21823.56,8911.43128 +2023-02-11 22:00:00,21823.56,21878.99,21778.84,21824.52,7887.9632 +2023-02-11 23:00:00,21824.52,21906.32,21809.25,21862.55,8059.88212 +2023-02-12 00:00:00,21862.02,21890.16,21803.0,21816.37,7118.92695 +2023-02-12 01:00:00,21816.37,21844.81,21785.17,21808.28,6348.99058 +2023-02-12 02:00:00,21808.28,21821.31,21766.0,21816.22,6460.50512 +2023-02-12 03:00:00,21815.61,21821.87,21778.32,21781.38,5822.50916 +2023-02-12 04:00:00,21781.38,21790.79,21761.04,21782.97,6711.94657 +2023-02-12 05:00:00,21782.97,21803.2,21772.19,21799.98,5613.42234 +2023-02-12 06:00:00,21799.5,21817.15,21792.25,21809.62,6415.97712 +2023-02-12 07:00:00,21809.77,21813.16,21795.79,21798.42,5986.83819 +2023-02-12 08:00:00,21798.42,21852.97,21798.01,21804.89,7187.72568 +2023-02-12 09:00:00,21804.89,21960.0,21801.14,21907.0,11022.62431 +2023-02-12 10:00:00,21907.0,21922.06,21842.74,21880.47,8251.62194 +2023-02-12 11:00:00,21880.03,21893.8,21859.35,21888.31,6123.24231 +2023-02-12 12:00:00,21888.31,21897.12,21811.26,21821.6,9318.16374 +2023-02-12 13:00:00,21820.7,21836.88,21756.04,21817.51,9299.30632 +2023-02-12 14:00:00,21817.81,21995.6,21810.27,21923.78,12453.70458 +2023-02-12 15:00:00,21923.78,21976.38,21882.69,21945.3,10566.50556 +2023-02-12 16:00:00,21944.14,22090.0,21914.07,22004.65,16067.60052 +2023-02-12 17:00:00,22004.65,22054.45,21966.19,21988.25,9002.57206 +2023-02-12 18:00:00,21988.25,21993.67,21940.73,21971.86,6630.63281 +2023-02-12 19:00:00,21972.02,22031.09,21920.0,21997.18,6466.46299 +2023-02-12 20:00:00,21997.18,22028.78,21947.4,21968.06,5895.06648 +2023-02-12 21:00:00,21968.4,21978.52,21703.29,21738.38,13107.37174 +2023-02-12 22:00:00,21738.38,21829.88,21630.0,21794.52,12787.2938 +2023-02-12 23:00:00,21794.52,21835.1,21725.0,21783.54,9776.64076 +2023-02-13 00:00:00,21782.37,21876.43,21689.66,21811.28,12562.14811 +2023-02-13 01:00:00,21810.45,21834.11,21653.0,21708.4,13456.87943 +2023-02-13 02:00:00,21709.1,21765.17,21622.47,21758.01,11620.60519 +2023-02-13 03:00:00,21758.39,21820.0,21746.83,21808.6,7368.87007 +2023-02-13 04:00:00,21808.6,21865.57,21795.23,21838.38,8257.00116 +2023-02-13 05:00:00,21838.38,21869.51,21820.25,21832.95,5705.54577 +2023-02-13 06:00:00,21832.95,21852.7,21802.55,21823.04,5663.68922 +2023-02-13 07:00:00,21823.82,21894.99,21792.86,21867.69,10301.53538 +2023-02-13 08:00:00,21867.74,21874.97,21701.95,21720.67,16017.66869 +2023-02-13 09:00:00,21722.0,21756.98,21480.0,21584.74,26678.99587 +2023-02-13 10:00:00,21584.74,21650.0,21433.0,21594.16,17455.45535 +2023-02-13 11:00:00,21594.16,21637.99,21568.17,21603.11,10877.92145 +2023-02-13 12:00:00,21602.8,21701.34,21585.96,21657.47,11465.59888 +2023-02-13 13:00:00,21658.15,21669.85,21568.0,21572.88,10660.28048 +2023-02-13 14:00:00,21572.88,21687.95,21558.45,21669.64,16410.14194 +2023-02-13 15:00:00,21669.65,21680.53,21556.0,21563.02,13132.71179 +2023-02-13 16:00:00,21561.84,21645.59,21433.0,21503.76,17235.57793 +2023-02-13 17:00:00,21504.46,21546.61,21351.07,21458.38,18428.79547 +2023-02-13 18:00:00,21460.44,21678.0,21442.71,21634.6,16145.2425 +2023-02-13 19:00:00,21634.63,21663.78,21534.07,21607.81,10993.89718 +2023-02-13 20:00:00,21607.81,21672.99,21559.95,21662.68,10123.42074 +2023-02-13 21:00:00,21663.57,21678.34,21583.4,21614.52,5941.75464 +2023-02-13 22:00:00,21614.52,21679.36,21602.44,21640.37,4554.55331 +2023-02-13 23:00:00,21641.27,21845.79,21633.08,21773.97,14672.47736 +2023-02-14 00:00:00,21774.63,21816.62,21729.74,21737.95,9646.12927 +2023-02-14 01:00:00,21737.96,21760.29,21677.47,21707.11,7616.47154 +2023-02-14 02:00:00,21706.6,21740.74,21693.95,21716.23,7024.2271 +2023-02-14 03:00:00,21716.23,21747.97,21690.55,21700.42,6943.92566 +2023-02-14 04:00:00,21700.42,21739.72,21684.59,21704.95,6632.3666 +2023-02-14 05:00:00,21704.95,21737.6,21697.86,21725.23,7671.12075 +2023-02-14 06:00:00,21725.79,21767.98,21718.0,21744.02,8988.25854 +2023-02-14 07:00:00,21744.01,21789.46,21736.51,21768.48,8441.84003 +2023-02-14 08:00:00,21767.56,21772.86,21666.39,21694.92,10359.65647 +2023-02-14 09:00:00,21694.92,21875.42,21680.85,21817.09,14892.52539 +2023-02-14 10:00:00,21817.73,21839.97,21781.39,21809.49,11465.95374 +2023-02-14 11:00:00,21809.49,21817.98,21774.45,21809.81,8236.31527 +2023-02-14 12:00:00,21809.81,21897.0,21794.42,21859.32,10809.9213 +2023-02-14 13:00:00,21859.32,21894.18,21532.77,21720.09,37097.17423 +2023-02-14 14:00:00,21719.05,22260.0,21570.0,22247.39,43773.08619 +2023-02-14 15:00:00,22247.39,22319.08,21859.9,22041.45,45153.38461 +2023-02-14 16:00:00,22040.52,22135.75,21917.31,22008.36,26204.82709 +2023-02-14 17:00:00,22009.21,22086.75,21996.05,22050.16,14957.5455 +2023-02-14 18:00:00,22050.88,22179.6,22045.53,22114.15,18668.41775 +2023-02-14 19:00:00,22114.95,22245.0,22064.48,22208.65,18063.47384 +2023-02-14 20:00:00,22207.96,22258.94,22168.78,22252.94,13259.58879 +2023-02-14 21:00:00,22250.47,22285.0,22122.7,22241.14,11904.11236 +2023-02-14 22:00:00,22241.89,22250.0,22151.07,22187.69,5505.90019 +2023-02-14 23:00:00,22188.07,22261.57,22167.0,22199.84,8642.17888 +2023-02-15 00:00:00,22199.84,22200.88,22105.0,22149.74,10145.2916 +2023-02-15 01:00:00,22150.21,22170.22,22094.34,22109.62,7725.38786 +2023-02-15 02:00:00,22109.62,22128.2,22047.28,22072.85,8965.91913 +2023-02-15 03:00:00,22072.24,22137.59,22067.96,22099.49,9523.85916 +2023-02-15 04:00:00,22099.13,22118.0,22072.55,22084.9,7345.16821 +2023-02-15 05:00:00,22084.34,22148.82,22082.56,22134.08,7953.24017 +2023-02-15 06:00:00,22134.08,22158.42,22108.0,22117.68,7421.17604 +2023-02-15 07:00:00,22118.05,22199.29,22098.0,22109.89,9570.66717 +2023-02-15 08:00:00,22109.89,22131.63,22089.11,22094.02,9339.44065 +2023-02-15 09:00:00,22094.62,22199.6,22089.78,22170.51,9401.02195 +2023-02-15 10:00:00,22169.7,22257.91,22145.76,22234.96,11216.66047 +2023-02-15 11:00:00,22234.74,22500.0,22222.81,22445.13,19307.58985 +2023-02-15 12:00:00,22444.28,22916.98,22443.24,22772.21,34758.70162 +2023-02-15 13:00:00,22772.21,22783.74,22666.0,22698.86,22402.02642 +2023-02-15 14:00:00,22698.81,22797.88,22620.0,22684.47,21939.0695 +2023-02-15 15:00:00,22685.6,22884.77,22661.66,22809.46,21677.93169 +2023-02-15 16:00:00,22809.46,22943.17,22746.36,22763.1,13425.92247 +2023-02-15 17:00:00,22763.1,22835.89,22745.03,22805.48,9537.4624 +2023-02-15 18:00:00,22805.48,23052.99,22771.86,22973.86,17942.08681 +2023-02-15 19:00:00,22974.54,23353.87,22945.54,23318.9,29312.61789 +2023-02-15 20:00:00,23320.18,24300.0,23296.3,24145.04,39480.51668 +2023-02-15 21:00:00,24146.6,24250.0,24009.7,24175.86,15713.25792 +2023-02-15 22:00:00,24175.01,24380.0,24108.77,24151.6,17984.71556 +2023-02-15 23:00:00,24150.26,24344.0,24148.0,24324.05,13579.42989 +2023-02-16 00:00:00,24322.87,24905.0,24278.58,24583.17,27499.73717 +2023-02-16 01:00:00,24584.4,24683.81,24560.96,24627.17,10886.35249 +2023-02-16 02:00:00,24627.17,24744.75,24604.34,24687.88,10613.58212 +2023-02-16 03:00:00,24687.88,24758.38,24655.22,24732.42,9850.47985 +2023-02-16 04:00:00,24731.6,24756.35,24631.35,24634.15,11612.03387 +2023-02-16 05:00:00,24633.46,24714.82,24602.0,24681.94,10195.62717 +2023-02-16 06:00:00,24681.94,24734.37,24568.1,24586.08,11528.25852 +2023-02-16 07:00:00,24583.9,24657.48,24430.12,24612.95,14715.29726 +2023-02-16 08:00:00,24611.51,24664.49,24565.9,24580.34,10080.31578 +2023-02-16 09:00:00,24579.25,24652.49,24557.11,24643.64,9612.64328 +2023-02-16 10:00:00,24642.73,24659.0,24600.5,24617.72,8290.62461 +2023-02-16 11:00:00,24617.2,24624.99,24509.07,24568.55,11501.28558 +2023-02-16 12:00:00,24567.93,24609.72,24448.78,24585.55,11497.63605 +2023-02-16 13:00:00,24585.54,24663.99,24355.0,24445.81,24847.25987 +2023-02-16 14:00:00,24446.19,24497.96,24283.35,24423.8,27546.66503 +2023-02-16 15:00:00,24423.8,25091.0,24381.14,25072.67,37902.91531 +2023-02-16 16:00:00,25072.67,25250.0,24606.14,24898.43,56961.59426 +2023-02-16 17:00:00,24897.39,24960.46,24766.0,24891.88,21734.922 +2023-02-16 18:00:00,24891.88,25040.32,24855.0,24971.47,16987.63595 +2023-02-16 19:00:00,24970.77,24998.68,24831.45,24872.58,13121.94001 +2023-02-16 20:00:00,24872.58,24879.81,24447.47,24565.36,28521.56037 +2023-02-16 21:00:00,24565.36,24578.58,24357.83,24537.04,15949.82928 +2023-02-16 22:00:00,24538.38,24552.46,23966.2,23994.76,20742.1502 +2023-02-16 23:00:00,23994.78,24096.7,23505.25,23517.72,27880.33763 +2023-02-17 00:00:00,23517.72,23778.22,23339.37,23713.37,31282.73281 +2023-02-17 01:00:00,23713.37,23880.0,23638.63,23849.87,15379.34959 +2023-02-17 02:00:00,23849.87,23854.85,23751.85,23772.31,11831.98393 +2023-02-17 03:00:00,23772.31,23914.58,23757.14,23838.64,10741.72608 +2023-02-17 04:00:00,23838.64,23883.12,23722.61,23805.15,11299.23061 +2023-02-17 05:00:00,23805.14,23812.29,23686.29,23707.55,9338.55867 +2023-02-17 06:00:00,23708.43,23751.09,23612.0,23668.1,10371.84194 +2023-02-17 07:00:00,23668.1,23786.11,23628.36,23637.04,12771.75222 +2023-02-17 08:00:00,23635.84,23814.31,23532.69,23797.21,17757.41584 +2023-02-17 09:00:00,23797.9,23861.78,23712.21,23743.22,15867.07568 +2023-02-17 10:00:00,23743.01,23790.0,23672.62,23753.42,12383.20979 +2023-02-17 11:00:00,23754.17,23842.02,23735.68,23789.82,12220.74874 +2023-02-17 12:00:00,23789.12,23909.87,23766.62,23869.46,13034.68804 +2023-02-17 13:00:00,23870.38,23888.96,23753.0,23782.23,13862.89414 +2023-02-17 14:00:00,23783.12,24247.38,23710.0,23865.86,45917.88542 +2023-02-17 15:00:00,23863.31,24280.0,23850.08,24130.5,45625.639 +2023-02-17 16:00:00,24130.5,24332.75,23917.65,24091.21,35316.57039 +2023-02-17 17:00:00,24091.21,24520.0,24084.84,24298.35,38963.57536 +2023-02-17 18:00:00,24298.35,24416.65,24219.23,24360.66,20126.45396 +2023-02-17 19:00:00,24360.66,24560.64,24237.26,24524.49,20792.32651 +2023-02-17 20:00:00,24524.49,25021.11,24515.0,24820.92,39772.98539 +2023-02-17 21:00:00,24820.92,24835.06,24405.88,24476.42,14519.73676 +2023-02-17 22:00:00,24476.42,24737.84,24051.73,24679.14,25168.57642 +2023-02-17 23:00:00,24678.09,24750.0,24511.81,24569.97,12466.25647 +2023-02-18 00:00:00,24568.24,24787.5,24533.54,24632.74,14048.10305 +2023-02-18 01:00:00,24631.51,24683.73,24572.32,24660.14,8808.17186 +2023-02-18 02:00:00,24660.14,24674.31,24503.49,24555.86,7350.94813 +2023-02-18 03:00:00,24556.61,24639.55,24535.32,24609.68,7781.93363 +2023-02-18 04:00:00,24609.68,24653.86,24592.88,24624.01,7047.01943 +2023-02-18 05:00:00,24624.01,24646.78,24600.0,24641.42,6233.46269 +2023-02-18 06:00:00,24641.8,24676.9,24607.42,24626.66,6743.29848 +2023-02-18 07:00:00,24625.86,24626.65,24430.0,24519.01,11328.47007 +2023-02-18 08:00:00,24519.01,24607.82,24458.82,24588.51,10048.15449 +2023-02-18 09:00:00,24588.51,24596.02,24540.49,24553.04,6953.7028 +2023-02-18 10:00:00,24553.43,24566.32,24453.23,24456.81,8361.8501 +2023-02-18 11:00:00,24456.72,24555.89,24436.46,24519.42,8594.00275 +2023-02-18 12:00:00,24519.93,24647.94,24488.43,24620.33,11762.2014 +2023-02-18 13:00:00,24619.18,24644.06,24559.02,24581.77,8910.22417 +2023-02-18 14:00:00,24581.77,24734.32,24531.68,24691.13,12710.26416 +2023-02-18 15:00:00,24692.09,24723.92,24627.07,24668.26,11617.8337 +2023-02-18 16:00:00,24667.02,24694.01,24635.01,24642.84,8895.93306 +2023-02-18 17:00:00,24642.19,24713.09,24577.0,24686.0,11012.14534 +2023-02-18 18:00:00,24685.26,24877.0,24640.13,24710.54,16766.7338 +2023-02-18 19:00:00,24710.18,24734.14,24567.9,24608.34,8838.64562 +2023-02-18 20:00:00,24608.34,24628.62,24514.03,24594.7,8745.71153 +2023-02-18 21:00:00,24594.69,24639.4,24580.62,24615.83,4951.92143 +2023-02-18 22:00:00,24616.31,24664.9,24599.22,24627.32,4849.18376 +2023-02-18 23:00:00,24627.32,24666.0,24618.67,24631.95,4557.33668 +2023-02-19 00:00:00,24632.05,24764.85,24622.18,24739.25,7487.83417 +2023-02-19 01:00:00,24739.23,24770.67,24635.94,24707.49,7639.09295 +2023-02-19 02:00:00,24708.1,24733.29,24667.3,24683.57,4925.51935 +2023-02-19 03:00:00,24683.02,24710.0,24660.05,24681.69,4503.87003 +2023-02-19 04:00:00,24682.1,24729.2,24672.5,24712.85,5543.1487 +2023-02-19 05:00:00,24712.38,24850.0,24706.39,24757.63,13097.85675 +2023-02-19 06:00:00,24758.16,24760.79,24610.2,24628.59,10705.2844 +2023-02-19 07:00:00,24629.41,24666.57,24563.23,24582.62,8930.08497 +2023-02-19 08:00:00,24582.62,24628.47,24560.47,24569.06,7269.82961 +2023-02-19 09:00:00,24569.69,24629.99,24566.42,24599.42,6739.07042 +2023-02-19 10:00:00,24599.42,24683.74,24581.0,24654.81,8602.27747 +2023-02-19 11:00:00,24654.16,24706.77,24645.52,24669.43,7765.28281 +2023-02-19 12:00:00,24669.43,24705.5,24656.44,24696.68,7790.41523 +2023-02-19 13:00:00,24696.68,24714.0,24668.75,24669.99,8499.32261 +2023-02-19 14:00:00,24670.72,24800.0,24668.38,24758.6,12629.65391 +2023-02-19 15:00:00,24757.79,25046.0,24733.4,24922.21,30575.18477 +2023-02-19 16:00:00,24922.21,25192.0,24660.0,24777.62,37015.00741 +2023-02-19 17:00:00,24777.62,24807.96,24318.39,24361.74,33465.97675 +2023-02-19 18:00:00,24364.38,24531.91,24277.53,24464.45,17488.78991 +2023-02-19 19:00:00,24465.4,24569.86,24455.56,24523.79,11733.84601 +2023-02-19 20:00:00,24523.04,24533.79,24252.67,24518.52,18857.93933 +2023-02-19 21:00:00,24518.52,24580.28,24479.35,24541.08,9504.36408 +2023-02-19 22:00:00,24541.87,24565.4,24446.86,24491.15,6568.84426 +2023-02-19 23:00:00,24491.84,24492.59,24192.57,24271.76,13057.49952 +2023-02-20 00:00:00,24272.51,24411.52,24141.3,24211.07,13777.41155 +2023-02-20 01:00:00,24210.49,24298.0,23840.83,24236.97,26371.50118 +2023-02-20 02:00:00,24236.97,24385.0,24154.1,24344.03,12665.4864 +2023-02-20 03:00:00,24344.03,24480.44,24316.4,24418.95,10576.10376 +2023-02-20 04:00:00,24417.86,24555.0,24402.87,24484.26,11051.43401 +2023-02-20 05:00:00,24484.26,24509.54,24423.66,24492.32,7974.95085 +2023-02-20 06:00:00,24491.18,24535.91,24419.45,24501.55,9393.89241 +2023-02-20 07:00:00,24502.62,24540.0,24453.13,24503.65,9587.29364 +2023-02-20 08:00:00,24503.65,24570.04,24405.05,24459.14,11761.90399 +2023-02-20 09:00:00,24459.14,24945.0,24373.33,24884.3,23214.19616 +2023-02-20 10:00:00,24882.56,24983.71,24765.15,24907.56,26889.44676 +2023-02-20 11:00:00,24908.44,24958.38,24677.47,24890.0,17780.19324 +2023-02-20 12:00:00,24889.0,24918.21,24720.0,24815.98,15796.62728 +2023-02-20 13:00:00,24815.97,24925.0,24800.8,24855.25,12325.39813 +2023-02-20 14:00:00,24854.37,25121.23,24783.44,24971.0,29214.84047 +2023-02-20 15:00:00,24970.0,25100.0,24860.0,24942.87,23628.01054 +2023-02-20 16:00:00,24942.87,24957.32,24622.0,24884.2,26394.82918 +2023-02-20 17:00:00,24883.03,24906.38,24761.87,24810.05,12440.01224 +2023-02-20 18:00:00,24810.51,24842.06,24750.0,24819.67,9160.07649 +2023-02-20 19:00:00,24820.46,24888.23,24803.39,24872.19,8467.43972 +2023-02-20 20:00:00,24872.18,24887.2,24768.01,24800.92,7872.38736 +2023-02-20 21:00:00,24800.92,24828.5,24751.77,24769.57,6325.87361 +2023-02-20 22:00:00,24768.7,24783.43,24655.0,24704.52,7395.16003 +2023-02-20 23:00:00,24704.18,24848.22,24697.27,24842.2,6874.10097 +2023-02-21 00:00:00,24843.89,24940.0,24781.5,24858.6,9572.17147 +2023-02-21 01:00:00,24858.6,24931.26,24802.34,24863.71,8886.39289 +2023-02-21 02:00:00,24862.93,25093.23,24856.04,24911.51,16178.83505 +2023-02-21 03:00:00,24910.32,25014.35,24847.0,24926.56,12852.5005 +2023-02-21 04:00:00,24926.56,24944.6,24854.18,24904.14,8327.6642 +2023-02-21 05:00:00,24904.98,24964.4,24870.27,24945.37,7866.30038 +2023-02-21 06:00:00,24946.44,25045.04,24923.34,25032.42,10204.55976 +2023-02-21 07:00:00,25033.02,25050.0,24936.99,24999.95,11468.50901 +2023-02-21 08:00:00,24999.77,25250.0,24627.44,24689.23,38341.94145 +2023-02-21 09:00:00,24689.66,24836.98,24555.55,24799.99,18067.19612 +2023-02-21 10:00:00,24799.99,24806.98,24675.39,24702.72,13804.76634 +2023-02-21 11:00:00,24703.2,24755.0,24561.58,24572.83,15964.9287 +2023-02-21 12:00:00,24572.83,24665.31,24488.0,24634.0,18496.93881 +2023-02-21 13:00:00,24633.99,24698.0,24510.27,24569.8,14848.21388 +2023-02-21 14:00:00,24569.73,24790.0,24548.33,24684.93,23039.72107 +2023-02-21 15:00:00,24684.7,24722.0,24408.0,24558.09,23218.88061 +2023-02-21 16:00:00,24556.81,24588.33,24279.35,24403.27,24175.98805 +2023-02-21 17:00:00,24402.23,24660.78,24370.83,24655.45,15755.64291 +2023-02-21 18:00:00,24656.65,24745.78,24560.0,24685.06,21610.68659 +2023-02-21 19:00:00,24685.84,24697.35,24550.0,24602.88,13980.57796 +2023-02-21 20:00:00,24602.88,24639.56,24419.74,24465.63,13600.11995 +2023-02-21 21:00:00,24464.31,24538.52,24148.34,24201.2,19349.24809 +2023-02-21 22:00:00,24201.2,24425.0,24154.98,24384.11,9341.5562 +2023-02-21 23:00:00,24383.8,24459.12,24335.6,24452.16,7047.48869 +2023-02-22 00:00:00,24450.67,24476.05,24264.27,24412.47,11361.56035 +2023-02-22 01:00:00,24411.32,24436.01,24108.0,24175.5,14048.37697 +2023-02-22 02:00:00,24175.72,24192.32,23855.55,24170.47,28231.00708 +2023-02-22 03:00:00,24172.23,24270.88,24120.35,24201.85,13312.23925 +2023-02-22 04:00:00,24202.67,24221.6,24023.47,24155.23,12325.94378 +2023-02-22 05:00:00,24156.53,24172.01,23992.93,24107.02,12590.4168 +2023-02-22 06:00:00,24105.55,24129.1,23931.09,23950.15,14333.71273 +2023-02-22 07:00:00,23950.15,24101.62,23931.0,24060.95,14009.09158 +2023-02-22 08:00:00,24059.73,24070.98,23860.61,23965.78,16516.23316 +2023-02-22 09:00:00,23965.78,24171.9,23941.83,24105.6,16748.28101 +2023-02-22 10:00:00,24107.54,24200.0,24076.06,24181.69,11212.15791 +2023-02-22 11:00:00,24182.38,24216.55,24043.43,24160.87,13936.95241 +2023-02-22 12:00:00,24160.87,24235.37,24086.19,24129.68,13080.66128 +2023-02-22 13:00:00,24130.67,24155.37,23958.0,24109.71,16030.76002 +2023-02-22 14:00:00,24110.8,24118.51,23916.32,23939.75,23103.27923 +2023-02-22 15:00:00,23939.75,24005.11,23627.08,23713.61,34036.7068 +2023-02-22 16:00:00,23714.94,23766.68,23574.69,23634.98,19463.13203 +2023-02-22 17:00:00,23633.64,23785.79,23588.63,23745.83,14589.49732 +2023-02-22 18:00:00,23745.83,23834.32,23720.0,23740.08,12162.31055 +2023-02-22 19:00:00,23740.08,23972.97,23650.0,23791.67,28554.80145 +2023-02-22 20:00:00,23791.68,23877.99,23735.19,23799.49,12363.26433 +2023-02-22 21:00:00,23798.25,23848.81,23740.0,23801.77,6373.66174 +2023-02-22 22:00:00,23802.73,24105.01,23780.74,24100.68,10103.6741 +2023-02-22 23:00:00,24102.93,24218.92,24077.64,24182.21,10938.03177 +2023-02-23 00:00:00,24182.21,24246.06,24124.33,24129.22,10161.68644 +2023-02-23 01:00:00,24129.96,24208.16,24125.16,24189.43,7647.36638 +2023-02-23 02:00:00,24189.43,24594.0,24165.77,24531.61,25275.36491 +2023-02-23 03:00:00,24531.61,24599.59,24433.83,24454.85,14943.63676 +2023-02-23 04:00:00,24454.85,24526.08,24421.48,24521.24,9569.38453 +2023-02-23 05:00:00,24519.92,24523.56,24346.32,24391.34,12149.28683 +2023-02-23 06:00:00,24391.34,24416.11,24311.35,24390.36,9146.71382 +2023-02-23 07:00:00,24389.6,24430.0,24361.77,24376.27,10027.58201 +2023-02-23 08:00:00,24377.12,24494.28,24362.41,24406.78,12304.13009 +2023-02-23 09:00:00,24406.78,24468.75,24264.58,24282.42,12182.8231 +2023-02-23 10:00:00,24282.42,24314.34,24190.0,24255.92,14079.38908 +2023-02-23 11:00:00,24255.93,24268.61,23647.46,23780.2,34391.35699 +2023-02-23 12:00:00,23780.21,24008.0,23608.0,23912.09,26022.47782 +2023-02-23 13:00:00,23912.82,24228.44,23837.67,24010.23,37109.07254 +2023-02-23 14:00:00,24007.81,24160.44,23911.94,24011.3,27856.66502 +2023-02-23 15:00:00,24012.02,24064.3,23861.45,23950.92,23942.94982 +2023-02-23 16:00:00,23951.83,24008.76,23752.93,23762.61,20675.13419 +2023-02-23 17:00:00,23760.23,23985.02,23745.0,23840.97,20745.40483 +2023-02-23 18:00:00,23840.97,23907.14,23725.1,23861.72,15112.57862 +2023-02-23 19:00:00,23861.72,24056.0,23835.0,23971.5,16089.27952 +2023-02-23 20:00:00,23971.51,24069.87,23902.04,23943.8,13298.54864 +2023-02-23 21:00:00,23943.8,24014.48,23862.44,23873.57,7976.64562 +2023-02-23 22:00:00,23874.98,23902.38,23756.77,23866.11,9696.35244 +2023-02-23 23:00:00,23866.11,23958.0,23825.0,23940.2,7996.62437 +2023-02-24 00:00:00,23940.2,24022.87,23890.0,23958.71,9447.10151 +2023-02-24 01:00:00,23958.71,24132.35,23956.8,24002.85,13218.58218 +2023-02-24 02:00:00,24001.78,24029.91,23907.15,23940.42,9441.36012 +2023-02-24 03:00:00,23940.42,23998.1,23921.46,23954.05,5655.48755 +2023-02-24 04:00:00,23954.5,23986.12,23923.88,23942.21,6471.5229 +2023-02-24 05:00:00,23941.77,23948.15,23850.0,23896.6,9011.89 +2023-02-24 06:00:00,23896.6,23913.59,23780.0,23892.06,10622.692 +2023-02-24 07:00:00,23891.19,23905.0,23766.6,23830.32,11181.74629 +2023-02-24 08:00:00,23831.22,23973.79,23754.03,23900.34,13284.89821 +2023-02-24 09:00:00,23900.34,23934.28,23811.03,23829.03,8560.58057 +2023-02-24 10:00:00,23829.03,23886.47,23778.0,23861.86,8835.44165 +2023-02-24 11:00:00,23860.81,23897.33,23832.99,23883.72,7651.83121 +2023-02-24 12:00:00,23883.72,24027.44,23858.75,23886.7,13018.69807 +2023-02-24 13:00:00,23886.7,24005.0,23680.0,23781.76,21787.10879 +2023-02-24 14:00:00,23781.76,23860.88,23685.27,23810.2,17563.51986 +2023-02-24 15:00:00,23810.2,23846.26,23322.01,23351.31,35956.62428 +2023-02-24 16:00:00,23349.25,23353.1,22940.0,23191.67,41835.27033 +2023-02-24 17:00:00,23191.68,23197.26,23019.27,23066.45,17389.89541 +2023-02-24 18:00:00,23066.45,23150.0,23013.0,23087.59,13007.32001 +2023-02-24 19:00:00,23087.36,23190.72,22841.19,23182.27,22216.21659 +2023-02-24 20:00:00,23182.27,23332.79,23147.72,23213.62,22137.57735 +2023-02-24 21:00:00,23213.62,23239.25,23062.3,23102.59,9117.39502 +2023-02-24 22:00:00,23103.97,23171.18,22974.3,23119.86,8932.34811 +2023-02-24 23:00:00,23119.86,23209.42,23030.0,23185.29,7237.46652 +2023-02-25 00:00:00,23184.04,23203.93,23108.77,23165.61,7550.43072 +2023-02-25 01:00:00,23165.61,23207.71,23132.96,23182.56,5200.82092 +2023-02-25 02:00:00,23182.56,23219.13,23050.0,23085.01,8295.95935 +2023-02-25 03:00:00,23085.01,23128.04,23045.33,23077.64,5663.92108 +2023-02-25 04:00:00,23077.12,23129.65,23055.02,23127.22,5954.6494 +2023-02-25 05:00:00,23127.73,23129.1,23023.23,23040.57,7852.03931 +2023-02-25 06:00:00,23040.57,23106.35,23038.34,23088.6,5117.84008 +2023-02-25 07:00:00,23089.06,23123.7,23069.03,23117.16,5883.54174 +2023-02-25 08:00:00,23117.1,23158.16,23096.99,23100.98,6641.0118 +2023-02-25 09:00:00,23101.27,23122.93,23000.0,23059.24,9709.43751 +2023-02-25 10:00:00,23059.24,23066.59,22925.22,22931.05,9819.98539 +2023-02-25 11:00:00,22931.05,23014.92,22906.5,22983.85,9336.30938 +2023-02-25 12:00:00,22983.85,23021.36,22858.35,23018.34,12059.33362 +2023-02-25 13:00:00,23017.47,23086.0,22990.33,23004.12,8502.57336 +2023-02-25 14:00:00,23003.34,23049.0,22976.29,23001.87,6922.17007 +2023-02-25 15:00:00,23001.87,23033.44,22970.17,23006.18,5878.98993 +2023-02-25 16:00:00,23006.18,23086.29,22995.04,23012.55,8810.57242 +2023-02-25 17:00:00,23012.95,23052.29,23002.48,23042.52,5784.38417 +2023-02-25 18:00:00,23042.05,23051.31,22969.31,22979.3,8262.5161 +2023-02-25 19:00:00,22979.3,23017.11,22912.1,22983.05,9127.43252 +2023-02-25 20:00:00,22983.78,22999.35,22722.0,22922.58,13157.97436 +2023-02-25 21:00:00,22923.32,22961.95,22847.15,22934.42,8826.86618 +2023-02-25 22:00:00,22933.68,23172.0,22901.88,23118.73,9438.77096 +2023-02-25 23:00:00,23117.99,23185.99,23094.8,23157.07,7514.27973 +2023-02-26 00:00:00,23157.07,23166.91,23080.09,23097.97,5757.9461 +2023-02-26 01:00:00,23097.25,23126.88,23068.51,23112.7,4418.31433 +2023-02-26 02:00:00,23112.7,23249.99,23059.18,23236.01,7998.89454 +2023-02-26 03:00:00,23237.29,23250.0,23184.1,23214.53,7368.871 +2023-02-26 04:00:00,23214.53,23227.17,23152.35,23189.27,5521.98472 +2023-02-26 05:00:00,23189.59,23202.0,23125.0,23127.06,5114.20004 +2023-02-26 06:00:00,23126.44,23171.0,23090.0,23167.4,6005.63459 +2023-02-26 07:00:00,23167.72,23209.96,23138.4,23154.57,5949.77547 +2023-02-26 08:00:00,23154.57,23175.36,23112.35,23151.95,5332.56927 +2023-02-26 09:00:00,23152.39,23293.97,23150.33,23279.5,10321.21639 +2023-02-26 10:00:00,23278.19,23282.25,23207.19,23236.81,6026.8651 +2023-02-26 11:00:00,23236.91,23260.0,23200.03,23253.44,6205.42512 +2023-02-26 12:00:00,23253.44,23280.84,23126.47,23161.99,9892.38047 +2023-02-26 13:00:00,23162.46,23219.31,23137.0,23214.15,6263.42747 +2023-02-26 14:00:00,23213.15,23331.26,23180.02,23193.65,12352.14292 +2023-02-26 15:00:00,23194.36,23250.0,23175.42,23247.23,7030.41686 +2023-02-26 16:00:00,23247.96,23256.65,23164.04,23184.92,5966.16209 +2023-02-26 17:00:00,23184.92,23244.6,23137.0,23239.54,5899.16759 +2023-02-26 18:00:00,23239.54,23539.94,23221.82,23486.43,17210.95785 +2023-02-26 19:00:00,23487.3,23544.93,23366.87,23499.33,13147.15631 +2023-02-26 20:00:00,23499.33,23689.99,23461.89,23639.68,15255.14388 +2023-02-26 21:00:00,23639.68,23653.0,23550.75,23560.6,8266.59838 +2023-02-26 22:00:00,23560.61,23595.76,23323.42,23476.41,12914.25593 +2023-02-26 23:00:00,23477.14,23637.88,23455.0,23554.85,12104.22981 +2023-02-27 00:00:00,23554.85,23567.69,23451.66,23492.64,7993.6986 +2023-02-27 01:00:00,23492.15,23563.0,23432.76,23552.76,7112.75383 +2023-02-27 02:00:00,23553.52,23644.65,23522.72,23558.64,7388.93825 +2023-02-27 03:00:00,23558.64,23642.0,23540.74,23551.62,8297.11995 +2023-02-27 04:00:00,23551.99,23561.34,23463.47,23491.46,7628.19288 +2023-02-27 05:00:00,23490.81,23509.94,23346.16,23391.52,9923.43017 +2023-02-27 06:00:00,23391.13,23435.93,23370.34,23405.39,6582.17285 +2023-02-27 07:00:00,23405.82,23456.85,23401.55,23423.31,6150.15472 +2023-02-27 08:00:00,23423.88,23455.31,23340.0,23358.91,9430.35631 +2023-02-27 09:00:00,23359.32,23439.76,23332.65,23389.37,7028.65862 +2023-02-27 10:00:00,23388.94,23420.0,23348.74,23378.79,6089.32626 +2023-02-27 11:00:00,23378.79,23448.43,23369.36,23428.87,5947.51276 +2023-02-27 12:00:00,23428.87,23440.94,23379.25,23403.18,6925.01687 +2023-02-27 13:00:00,23403.18,23800.45,23397.35,23703.01,25039.87095 +2023-02-27 14:00:00,23704.29,23862.29,23675.5,23803.46,22864.22692 +2023-02-27 15:00:00,23803.46,23897.99,23465.1,23559.4,28786.91218 +2023-02-27 16:00:00,23557.66,23618.3,23159.33,23391.49,29121.51151 +2023-02-27 17:00:00,23391.55,23425.0,23266.66,23334.4,13278.02322 +2023-02-27 18:00:00,23333.49,23370.0,23150.0,23288.77,16374.33712 +2023-02-27 19:00:00,23288.55,23360.0,23218.56,23276.35,12682.7273 +2023-02-27 20:00:00,23276.34,23329.83,23106.77,23321.37,14992.86572 +2023-02-27 21:00:00,23320.38,23397.34,23294.47,23381.38,7859.07628 +2023-02-27 22:00:00,23381.38,23557.79,23361.07,23482.13,8556.598 +2023-02-27 23:00:00,23481.28,23582.98,23448.2,23492.09,7652.60463 +2023-02-28 00:00:00,23492.09,23549.99,23409.79,23420.55,8213.50429 +2023-02-28 01:00:00,23420.55,23460.01,23349.57,23433.16,6764.46987 +2023-02-28 02:00:00,23433.16,23475.73,23386.79,23441.76,5375.65079 +2023-02-28 03:00:00,23441.76,23526.0,23436.12,23467.52,5543.48447 +2023-02-28 04:00:00,23467.01,23470.44,23386.31,23415.0,6494.24434 +2023-02-28 05:00:00,23414.64,23447.76,23364.01,23378.45,5809.14462 +2023-02-28 06:00:00,23377.69,23414.34,23362.25,23392.3,5199.44704 +2023-02-28 07:00:00,23391.69,23397.58,23212.8,23236.68,11630.4661 +2023-02-28 08:00:00,23235.63,23302.94,23200.0,23264.21,9632.76893 +2023-02-28 09:00:00,23263.3,23321.76,23244.21,23267.79,6848.87325 +2023-02-28 10:00:00,23268.43,23391.03,23253.5,23363.9,8325.6543 +2023-02-28 11:00:00,23363.9,23421.98,23335.47,23392.69,8271.20474 +2023-02-28 12:00:00,23391.96,23506.11,23385.29,23454.54,11972.91998 +2023-02-28 13:00:00,23454.01,23487.78,23368.79,23403.17,11459.31902 +2023-02-28 14:00:00,23403.17,23579.12,23315.42,23425.94,22722.18937 +2023-02-28 15:00:00,23425.19,23546.32,23403.45,23518.3,22232.18293 +2023-02-28 16:00:00,23519.08,23600.0,23426.47,23456.05,15181.60413 +2023-02-28 17:00:00,23456.05,23558.34,23447.5,23526.54,10063.01586 +2023-02-28 18:00:00,23525.9,23550.0,23436.88,23481.63,10634.98137 +2023-02-28 19:00:00,23481.63,23492.84,23205.06,23264.36,18237.24695 +2023-02-28 20:00:00,23263.38,23343.55,23166.35,23272.05,15233.07563 +2023-02-28 21:00:00,23270.59,23277.98,23020.97,23139.89,19752.93941 +2023-02-28 22:00:00,23138.89,23240.82,23094.69,23161.38,9845.54159 +2023-02-28 23:00:00,23160.47,23199.96,23098.35,23141.57,8697.06996 +2023-03-01 00:00:00,23141.57,23219.99,23020.03,23101.0,12736.94918 +2023-03-01 01:00:00,23101.0,23296.94,23075.14,23245.96,11574.1772 +2023-03-01 02:00:00,23245.96,23336.46,23234.2,23331.21,7905.82139 +2023-03-01 03:00:00,23332.57,23498.0,23305.97,23441.14,14946.69431 +2023-03-01 04:00:00,23440.37,23847.0,23425.44,23794.48,15445.26401 +2023-03-01 05:00:00,23794.48,23821.56,23631.97,23694.17,12473.00946 +2023-03-01 06:00:00,23695.14,23803.39,23666.0,23752.75,11365.96869 +2023-03-01 07:00:00,23752.75,23762.22,23681.0,23716.06,10152.89081 +2023-03-01 08:00:00,23716.06,24000.0,23681.81,23867.78,15049.10338 +2023-03-01 09:00:00,23869.01,23907.68,23725.07,23756.14,13185.74931 +2023-03-01 10:00:00,23755.74,23787.46,23673.44,23777.62,9259.78151 +2023-03-01 11:00:00,23777.62,23788.4,23700.0,23739.17,8099.11946 +2023-03-01 12:00:00,23739.87,23820.51,23701.09,23722.6,9882.62622 +2023-03-01 13:00:00,23722.6,23735.17,23616.45,23689.45,12613.43277 +2023-03-01 14:00:00,23689.97,23888.0,23570.0,23679.86,23100.2818 +2023-03-01 15:00:00,23679.86,23770.0,23550.8,23711.09,25931.50196 +2023-03-01 16:00:00,23711.09,23746.24,23555.06,23691.9,20056.88622 +2023-03-01 17:00:00,23692.54,23744.68,23669.3,23704.68,11849.32755 +2023-03-01 18:00:00,23704.68,23724.82,23646.73,23690.88,9019.93201 +2023-03-01 19:00:00,23690.88,23695.57,23328.16,23355.14,18614.35177 +2023-03-01 20:00:00,23354.03,23471.62,23300.0,23421.23,15139.12216 +2023-03-01 21:00:00,23421.23,23593.32,23368.41,23553.73,10927.13943 +2023-03-01 22:00:00,23553.94,23579.52,23440.39,23531.94,7214.3267 +2023-03-01 23:00:00,23531.41,23674.6,23501.2,23628.97,8743.96007 +2023-03-02 00:00:00,23629.76,23796.93,23595.11,23606.95,12203.50378 +2023-03-02 01:00:00,23606.31,23635.87,23445.63,23513.5,11886.61896 +2023-03-02 02:00:00,23514.29,23543.63,23448.92,23494.47,7889.41687 +2023-03-02 03:00:00,23494.47,23513.49,23423.17,23494.29,6939.1213 +2023-03-02 04:00:00,23494.29,23546.82,23469.43,23536.33,4693.64663 +2023-03-02 05:00:00,23536.34,23544.76,23410.65,23445.71,6316.91756 +2023-03-02 06:00:00,23445.48,23474.35,23374.46,23437.86,8081.01585 +2023-03-02 07:00:00,23437.86,23448.08,23335.41,23391.87,8862.36324 +2023-03-02 08:00:00,23391.87,23466.68,23347.76,23443.67,9464.04322 +2023-03-02 09:00:00,23443.67,23468.5,23386.45,23400.39,6826.56119 +2023-03-02 10:00:00,23399.85,23419.66,23337.37,23375.64,8741.26195 +2023-03-02 11:00:00,23375.22,23429.83,23359.24,23414.73,6999.04416 +2023-03-02 12:00:00,23414.73,23434.26,23319.0,23355.54,10609.32723 +2023-03-02 13:00:00,23354.61,23412.0,23236.0,23308.95,17949.99508 +2023-03-02 14:00:00,23309.98,23349.21,23195.9,23305.46,19651.20803 +2023-03-02 15:00:00,23305.46,23383.83,23274.08,23361.11,15400.2868 +2023-03-02 16:00:00,23361.1,23387.84,23250.24,23279.98,11198.50222 +2023-03-02 17:00:00,23279.45,23319.36,23231.29,23268.91,9066.42684 +2023-03-02 18:00:00,23269.02,23458.94,23254.31,23441.14,12172.8056 +2023-03-02 19:00:00,23441.14,23507.97,23388.76,23463.99,14125.24813 +2023-03-02 20:00:00,23463.4,23567.52,23425.09,23467.06,12613.16616 +2023-03-02 21:00:00,23467.64,23474.09,23386.44,23408.65,6454.34131 +2023-03-02 22:00:00,23409.47,23557.01,23408.65,23460.97,6018.14551 +2023-03-02 23:00:00,23460.27,23504.01,23429.32,23465.32,5152.48457 +2023-03-03 00:00:00,23465.32,23476.95,23398.85,23418.5,5032.12995 +2023-03-03 01:00:00,23417.58,23425.7,21971.13,22150.31,58703.56909 +2023-03-03 02:00:00,22150.31,22454.94,22099.18,22348.57,27017.16031 +2023-03-03 03:00:00,22347.51,22400.87,22276.9,22319.69,14249.44828 +2023-03-03 04:00:00,22319.69,22393.33,22251.08,22376.5,10661.47999 +2023-03-03 05:00:00,22376.46,22411.36,22329.14,22341.8,9261.94983 +2023-03-03 06:00:00,22341.8,22402.25,22325.81,22378.73,9627.66386 +2023-03-03 07:00:00,22379.01,22404.7,22332.03,22360.78,9973.58999 +2023-03-03 08:00:00,22360.78,22453.88,22354.36,22430.33,10403.79747 +2023-03-03 09:00:00,22430.33,22479.97,22346.84,22368.54,9762.17569 +2023-03-03 10:00:00,22368.54,22393.65,22339.26,22351.43,6371.83274 +2023-03-03 11:00:00,22352.09,22367.53,22300.14,22342.92,7581.26516 +2023-03-03 12:00:00,22343.06,22370.0,22323.16,22354.0,8263.56857 +2023-03-03 13:00:00,22353.46,22428.34,22172.65,22402.8,17076.83237 +2023-03-03 14:00:00,22402.79,22498.99,22361.02,22376.0,18666.5865 +2023-03-03 15:00:00,22377.34,22417.48,22228.99,22336.33,19801.36428 +2023-03-03 16:00:00,22335.84,22382.14,22322.0,22374.15,9549.69645 +2023-03-03 17:00:00,22375.36,22448.25,22366.26,22413.17,10207.73624 +2023-03-03 18:00:00,22413.38,22422.91,22229.25,22313.2,14044.11611 +2023-03-03 19:00:00,22313.2,22397.76,22289.84,22358.48,8452.36394 +2023-03-03 20:00:00,22357.83,22378.22,22274.0,22308.16,8238.69603 +2023-03-03 21:00:00,22307.08,22316.15,22147.0,22239.92,14773.22101 +2023-03-03 22:00:00,22239.92,22338.75,22224.68,22320.99,5433.81752 +2023-03-03 23:00:00,22320.99,22377.26,22313.17,22354.34,6800.13647 +2023-03-04 00:00:00,22354.34,22392.17,22330.01,22368.49,5359.40241 +2023-03-04 01:00:00,22369.11,22392.11,22336.0,22342.01,4859.5416 +2023-03-04 02:00:00,22342.39,22359.39,22333.78,22339.87,2961.2576 +2023-03-04 03:00:00,22339.87,22354.55,22323.05,22346.66,3912.61644 +2023-03-04 04:00:00,22346.65,22368.0,22325.9,22343.94,4423.52645 +2023-03-04 05:00:00,22343.94,22344.88,22269.94,22328.18,5575.87165 +2023-03-04 06:00:00,22328.18,22410.0,22313.21,22364.69,6772.60746 +2023-03-04 07:00:00,22364.69,22378.23,22351.0,22359.09,3936.88885 +2023-03-04 08:00:00,22359.44,22363.68,22331.78,22341.21,4199.25017 +2023-03-04 09:00:00,22341.55,22376.97,22339.51,22350.97,3587.04286 +2023-03-04 10:00:00,22350.72,22357.68,22322.3,22332.76,4403.12693 +2023-03-04 11:00:00,22332.84,22358.3,22331.89,22349.46,3421.02678 +2023-03-04 12:00:00,22349.46,22398.0,22338.84,22385.31,5043.61663 +2023-03-04 13:00:00,22385.31,22388.22,22355.37,22355.8,4202.97939 +2023-03-04 14:00:00,22355.8,22368.0,22331.13,22342.79,4918.68309 +2023-03-04 15:00:00,22343.18,22352.48,22307.98,22317.87,5082.7188 +2023-03-04 16:00:00,22317.38,22347.93,22293.05,22324.86,5340.06662 +2023-03-04 17:00:00,22324.9,22333.97,22301.85,22307.12,3412.49485 +2023-03-04 18:00:00,22306.85,22332.0,22245.43,22320.97,4645.85724 +2023-03-04 19:00:00,22320.66,22326.2,22227.2,22250.78,5085.56443 +2023-03-04 20:00:00,22250.67,22265.0,22184.0,22250.34,8543.67924 +2023-03-04 21:00:00,22250.33,22251.61,22157.08,22213.65,9870.41959 +2023-03-04 22:00:00,22213.65,22359.0,22202.0,22305.98,7313.93543 +2023-03-04 23:00:00,22306.45,22353.2,22290.78,22346.57,4385.20681 +2023-03-05 00:00:00,22346.57,22389.32,22313.41,22379.25,5458.32443 +2023-03-05 01:00:00,22379.83,22662.09,22348.0,22591.68,19036.63222 +2023-03-05 02:00:00,22591.14,22612.84,22189.22,22360.82,16198.56489 +2023-03-05 03:00:00,22360.82,22441.05,22356.5,22387.02,7129.15803 +2023-03-05 04:00:00,22387.02,22470.93,22378.18,22440.73,6705.11842 +2023-03-05 05:00:00,22440.73,22446.56,22391.18,22418.99,3884.5023 +2023-03-05 06:00:00,22419.32,22427.0,22401.54,22415.73,3596.06691 +2023-03-05 07:00:00,22415.76,22421.21,22365.26,22375.7,5114.22735 +2023-03-05 08:00:00,22375.7,22399.45,22328.0,22342.71,5206.97415 +2023-03-05 09:00:00,22342.09,22398.28,22316.63,22368.47,5240.4889 +2023-03-05 10:00:00,22369.14,22448.8,22363.27,22410.83,5446.74669 +2023-03-05 11:00:00,22410.83,22422.54,22381.0,22389.77,4195.79843 +2023-03-05 12:00:00,22390.12,22444.0,22388.57,22420.34,4665.11241 +2023-03-05 13:00:00,22419.89,22494.96,22418.02,22465.77,7748.08011 +2023-03-05 14:00:00,22465.77,22478.87,22417.01,22432.46,5437.93651 +2023-03-05 15:00:00,22431.75,22470.7,22421.5,22436.18,4576.90893 +2023-03-05 16:00:00,22436.7,22460.07,22421.28,22442.92,4436.7045 +2023-03-05 17:00:00,22442.92,22455.0,22419.82,22427.47,3280.75121 +2023-03-05 18:00:00,22427.47,22449.51,22422.02,22429.26,3058.34398 +2023-03-05 19:00:00,22428.98,22450.0,22374.6,22403.45,5493.7921 +2023-03-05 20:00:00,22403.45,22425.0,22395.8,22409.05,3495.35861 +2023-03-05 21:00:00,22408.58,22560.0,22331.0,22483.46,11941.94716 +2023-03-05 22:00:00,22483.46,22486.86,22380.0,22433.0,5630.39284 +2023-03-05 23:00:00,22432.48,22462.22,22361.75,22430.24,7863.82678 +2023-03-06 00:00:00,22430.24,22470.08,22361.43,22446.48,6995.2835 +2023-03-06 01:00:00,22446.48,22508.0,22322.34,22379.24,13476.08464 +2023-03-06 02:00:00,22378.49,22405.94,22258.0,22391.58,13345.40628 +2023-03-06 03:00:00,22391.12,22417.29,22368.35,22387.19,4454.02779 +2023-03-06 04:00:00,22387.19,22399.6,22334.06,22342.63,5464.70816 +2023-03-06 05:00:00,22342.63,22372.32,22313.94,22370.18,5278.67525 +2023-03-06 06:00:00,22369.79,22436.0,22364.8,22405.93,4976.03351 +2023-03-06 07:00:00,22406.59,22434.0,22385.12,22392.74,5121.62517 +2023-03-06 08:00:00,22392.74,22450.0,22356.08,22413.23,8219.82713 +2023-03-06 09:00:00,22413.23,22421.3,22364.07,22403.68,6645.55743 +2023-03-06 10:00:00,22403.09,22414.0,22371.0,22399.78,6252.80739 +2023-03-06 11:00:00,22399.78,22402.63,22355.0,22379.57,7025.94946 +2023-03-06 12:00:00,22379.95,22413.54,22357.08,22397.42,6275.93365 +2023-03-06 13:00:00,22397.72,22487.99,22387.01,22439.77,10229.51494 +2023-03-06 14:00:00,22440.32,22483.92,22403.2,22450.0,11368.76483 +2023-03-06 15:00:00,22449.46,22602.19,22432.07,22553.42,16288.43096 +2023-03-06 16:00:00,22554.43,22586.98,22465.6,22524.46,13401.27685 +2023-03-06 17:00:00,22524.46,22536.07,22470.89,22481.63,7812.16565 +2023-03-06 18:00:00,22481.63,22539.68,22465.0,22504.09,8130.25619 +2023-03-06 19:00:00,22504.08,22512.72,22358.0,22393.35,15939.35736 +2023-03-06 20:00:00,22393.35,22416.41,22331.0,22352.17,9704.53262 +2023-03-06 21:00:00,22352.17,22439.99,22320.01,22408.53,6259.16469 +2023-03-06 22:00:00,22408.53,22450.0,22407.08,22433.65,4722.66921 +2023-03-06 23:00:00,22433.65,22446.09,22390.07,22410.0,6363.77691 +2023-03-07 00:00:00,22409.41,22428.0,22377.69,22415.92,6254.62047 +2023-03-07 01:00:00,22415.54,22508.88,22411.8,22484.8,8865.01381 +2023-03-07 02:00:00,22484.8,22509.99,22452.48,22497.86,5734.12894 +2023-03-07 03:00:00,22497.87,22557.91,22445.22,22460.54,7212.57315 +2023-03-07 04:00:00,22460.99,22479.8,22453.98,22474.36,4032.26352 +2023-03-07 05:00:00,22474.36,22479.85,22443.73,22460.67,4659.12544 +2023-03-07 06:00:00,22460.09,22461.31,22408.09,22438.52,6458.64388 +2023-03-07 07:00:00,22438.07,22453.9,22410.24,22419.71,5882.30757 +2023-03-07 08:00:00,22420.29,22426.65,22395.05,22420.18,6693.99498 +2023-03-07 09:00:00,22420.53,22426.17,22345.49,22381.17,10907.2766 +2023-03-07 10:00:00,22381.17,22432.6,22367.3,22372.85,8537.41518 +2023-03-07 11:00:00,22372.85,22398.11,22321.0,22351.02,9399.6095 +2023-03-07 12:00:00,22351.02,22410.2,22335.36,22399.07,8470.94616 +2023-03-07 13:00:00,22399.07,22410.0,22354.1,22363.89,8071.28679 +2023-03-07 14:00:00,22363.53,22383.58,22200.32,22309.18,21090.97003 +2023-03-07 15:00:00,22309.18,22489.88,21927.0,22320.9,59648.47568 +2023-03-07 16:00:00,22321.98,22394.08,22192.84,22238.77,21822.97104 +2023-03-07 17:00:00,22238.77,22360.0,22224.96,22309.28,15164.53002 +2023-03-07 18:00:00,22308.25,22331.49,22160.64,22199.96,13467.03162 +2023-03-07 19:00:00,22198.49,22249.98,22054.92,22124.77,11681.7156 +2023-03-07 20:00:00,22125.99,22145.29,21996.0,22054.51,19088.27298 +2023-03-07 21:00:00,22055.64,22116.66,21943.0,22056.26,12708.13147 +2023-03-07 22:00:00,22055.95,22122.22,21981.64,22105.65,7923.57217 +2023-03-07 23:00:00,22105.65,22230.51,22075.51,22197.96,8744.93252 +2023-03-08 00:00:00,22198.56,22287.0,22190.32,22245.86,9321.72502 +2023-03-08 01:00:00,22245.86,22256.66,22136.84,22173.7,7768.1963 +2023-03-08 02:00:00,22174.57,22211.3,22158.37,22177.0,5678.44763 +2023-03-08 03:00:00,22177.0,22191.73,22084.3,22152.52,7387.15207 +2023-03-08 04:00:00,22152.52,22167.73,22105.18,22141.79,5712.12814 +2023-03-08 05:00:00,22141.79,22147.73,21840.13,21954.98,19927.47105 +2023-03-08 06:00:00,21954.31,22051.62,21930.2,22025.63,12447.40555 +2023-03-08 07:00:00,22025.63,22039.15,21961.17,21971.03,8984.56836 +2023-03-08 08:00:00,21971.83,22034.16,21944.55,21989.14,10047.60801 +2023-03-08 09:00:00,21989.14,22030.0,21974.5,22012.75,8151.38201 +2023-03-08 10:00:00,22012.75,22144.2,22001.0,22111.25,13368.51293 +2023-03-08 11:00:00,22111.25,22134.85,22055.25,22072.45,9485.70357 +2023-03-08 12:00:00,22071.98,22107.82,21993.61,22014.17,10928.25251 +2023-03-08 13:00:00,22014.17,22062.0,21940.0,21989.16,16367.90865 +2023-03-08 14:00:00,21989.16,22030.52,21922.22,21974.73,19735.20056 +2023-03-08 15:00:00,21974.73,22229.04,21876.66,22140.8,34124.5517 +2023-03-08 16:00:00,22139.97,22218.3,22058.3,22140.61,15478.76546 +2023-03-08 17:00:00,22140.61,22150.0,22022.52,22034.48,10620.41683 +2023-03-08 18:00:00,22034.48,22063.03,21944.25,22022.75,12174.2621 +2023-03-08 19:00:00,22021.97,22061.6,21987.26,21997.25,9051.11834 +2023-03-08 20:00:00,21997.25,22133.75,21969.56,22101.26,11899.29454 +2023-03-08 21:00:00,22099.95,22113.57,21907.09,22009.75,10598.73461 +2023-03-08 22:00:00,22010.37,22016.16,21660.0,21802.16,11805.35357 +2023-03-08 23:00:00,21800.47,21838.12,21580.0,21705.44,20396.41321 +2023-03-09 00:00:00,21704.37,21765.15,21675.4,21719.42,10551.56996 +2023-03-09 01:00:00,21720.15,21762.38,21629.43,21702.94,10219.11258 +2023-03-09 02:00:00,21703.55,21793.65,21700.44,21769.65,7921.66747 +2023-03-09 03:00:00,21769.14,21806.68,21744.46,21769.66,6739.30785 +2023-03-09 04:00:00,21770.37,21774.69,21720.11,21740.43,5953.71527 +2023-03-09 05:00:00,21740.39,21761.33,21728.0,21738.93,5857.40431 +2023-03-09 06:00:00,21738.93,21746.04,21683.49,21741.8,7890.8559 +2023-03-09 07:00:00,21741.25,21742.39,21665.67,21688.54,8160.18877 +2023-03-09 08:00:00,21688.54,21698.38,21602.0,21681.52,15335.28307 +2023-03-09 09:00:00,21682.31,21700.0,21585.0,21641.58,12338.10576 +2023-03-09 10:00:00,21641.07,21683.68,21527.0,21648.43,14926.28036 +2023-03-09 11:00:00,21646.98,21674.11,21620.0,21669.38,9697.99101 +2023-03-09 12:00:00,21669.38,21674.98,21600.96,21611.34,9381.03199 +2023-03-09 13:00:00,21611.89,21730.77,21552.84,21703.76,21493.941 +2023-03-09 14:00:00,21703.76,21834.99,21686.72,21722.89,23399.51181 +2023-03-09 15:00:00,21722.1,21807.66,21633.95,21648.57,17586.60391 +2023-03-09 16:00:00,21647.42,21675.22,21416.79,21478.85,28547.08915 +2023-03-09 17:00:00,21479.31,21524.96,21400.0,21469.46,20661.68843 +2023-03-09 18:00:00,21470.47,21491.86,20967.0,21012.89,40265.11837 +2023-03-09 19:00:00,21013.32,21020.64,20766.2,20854.93,37836.59279 +2023-03-09 20:00:00,20856.3,20867.3,20042.72,20116.66,64418.09962 +2023-03-09 21:00:00,20119.83,20416.04,20112.18,20213.61,36841.57762 +2023-03-09 22:00:00,20213.61,20494.96,20213.01,20343.58,14779.28498 +2023-03-09 23:00:00,20343.58,20379.58,20274.62,20362.22,12856.26386 +2023-03-10 00:00:00,20362.21,20367.78,20022.0,20120.27,31664.01722 +2023-03-10 01:00:00,20121.38,20159.5,19776.22,20111.01,51259.99284 +2023-03-10 02:00:00,20111.87,20141.72,20024.95,20040.44,15373.3643 +2023-03-10 03:00:00,20040.44,20134.5,19977.48,20052.07,12847.04823 +2023-03-10 04:00:00,20052.07,20065.0,19833.01,19876.69,21600.53689 +2023-03-10 05:00:00,19876.15,20046.0,19854.09,19990.1,16038.64182 +2023-03-10 06:00:00,19990.1,20024.76,19839.62,19873.46,17818.24696 +2023-03-10 07:00:00,19873.46,20039.19,19776.55,19953.58,28538.44321 +2023-03-10 08:00:00,19953.58,19977.0,19875.83,19959.12,15178.47787 +2023-03-10 09:00:00,19958.54,19969.14,19831.4,19853.12,17552.14244 +2023-03-10 10:00:00,19853.12,19924.04,19549.09,19621.66,38988.67853 +2023-03-10 11:00:00,19622.77,19802.24,19569.47,19760.78,25258.98821 +2023-03-10 12:00:00,19761.12,19998.99,19730.16,19934.75,24926.96144 +2023-03-10 13:00:00,19933.31,20321.19,19884.75,20184.92,43471.46204 +2023-03-10 14:00:00,20184.9,20191.4,19657.11,19819.8,47271.4509 +2023-03-10 15:00:00,19819.8,20037.75,19766.0,20004.96,36948.61278 +2023-03-10 16:00:00,20004.96,20307.73,19928.83,20016.36,36709.182 +2023-03-10 17:00:00,20015.11,20082.66,19830.74,19930.48,31007.14935 +2023-03-10 18:00:00,19928.57,20005.21,19824.06,19848.52,20359.44087 +2023-03-10 19:00:00,19848.5,20071.4,19843.4,20024.32,21587.99302 +2023-03-10 20:00:00,20022.72,20066.72,19938.07,19969.31,15890.12244 +2023-03-10 21:00:00,19969.31,20129.1,19850.0,20076.64,16487.9129 +2023-03-10 22:00:00,20076.64,20167.79,20021.64,20097.23,14562.97988 +2023-03-10 23:00:00,20097.23,20240.4,20084.21,20150.69,17114.62096 +2023-03-11 00:00:00,20150.69,20301.79,20135.05,20216.03,22331.05908 +2023-03-11 01:00:00,20215.53,20686.51,20215.5,20586.75,36421.82903 +2023-03-11 02:00:00,20586.75,20640.11,20374.07,20492.43,21108.18651 +2023-03-11 03:00:00,20491.36,20502.75,20315.01,20393.88,18728.32545 +2023-03-11 04:00:00,20393.89,20414.81,20271.23,20339.7,16413.50707 +2023-03-11 05:00:00,20339.69,20435.43,20307.45,20391.39,11862.67058 +2023-03-11 06:00:00,20391.4,20408.46,20200.0,20284.61,16272.52221 +2023-03-11 07:00:00,20283.9,20320.77,19823.82,19850.81,31787.51955 +2023-03-11 08:00:00,19850.81,20208.36,19765.03,20071.82,31430.07237 +2023-03-11 09:00:00,20071.82,20147.15,19955.43,20092.78,20800.33105 +2023-03-11 10:00:00,20092.78,20160.15,19997.5,20036.75,14152.26404 +2023-03-11 11:00:00,20035.98,20107.99,19971.71,20086.07,15409.2743 +2023-03-11 12:00:00,20086.07,20129.06,20030.0,20031.65,11590.75024 +2023-03-11 13:00:00,20032.41,20143.93,20030.01,20078.23,11421.45925 +2023-03-11 14:00:00,20077.14,20205.46,20072.82,20112.33,14586.02126 +2023-03-11 15:00:00,20113.14,20147.0,20040.77,20061.98,12503.59402 +2023-03-11 16:00:00,20062.77,20104.61,19992.24,20091.11,14989.7312 +2023-03-11 17:00:00,20091.75,20331.44,20066.0,20246.92,19784.05771 +2023-03-11 18:00:00,20245.48,20324.21,20197.64,20226.72,16153.81836 +2023-03-11 19:00:00,20227.46,20252.88,20145.01,20220.96,11779.92271 +2023-03-11 20:00:00,20220.98,20456.0,20214.63,20349.4,20386.69151 +2023-03-11 21:00:00,20349.4,20364.49,20280.0,20353.91,11759.87704 +2023-03-11 22:00:00,20353.91,20450.0,20300.0,20333.55,12228.3303 +2023-03-11 23:00:00,20332.53,20529.91,20330.41,20455.73,13930.00649 +2023-03-12 00:00:00,20455.73,20502.46,20342.69,20453.41,17296.3167 +2023-03-12 01:00:00,20453.41,20483.89,20380.0,20419.33,10518.94571 +2023-03-12 02:00:00,20419.33,20430.66,20303.53,20377.2,12221.3737 +2023-03-12 03:00:00,20377.21,20464.91,20351.13,20376.46,11333.87733 +2023-03-12 04:00:00,20376.47,20403.03,20325.32,20386.99,8959.1019 +2023-03-12 05:00:00,20386.3,20440.8,20350.02,20354.68,9827.92448 +2023-03-12 06:00:00,20354.68,20383.17,20318.0,20331.8,8022.11883 +2023-03-12 07:00:00,20331.2,20374.08,20270.6,20346.71,9179.4706 +2023-03-12 08:00:00,20346.71,20395.0,20333.8,20376.88,9577.40381 +2023-03-12 09:00:00,20376.83,20432.56,20362.64,20382.18,11110.29005 +2023-03-12 10:00:00,20382.73,20448.82,20365.08,20425.93,7738.29404 +2023-03-12 11:00:00,20425.93,20497.34,20416.02,20445.43,11284.55407 +2023-03-12 12:00:00,20445.56,20446.7,20317.39,20381.25,13909.76132 +2023-03-12 13:00:00,20380.62,20466.0,20369.0,20383.95,11980.10659 +2023-03-12 14:00:00,20383.95,20406.75,20327.59,20339.55,10691.66424 +2023-03-12 15:00:00,20338.28,20411.8,20284.39,20358.96,13205.60191 +2023-03-12 16:00:00,20359.59,20419.0,20341.85,20389.55,10460.05601 +2023-03-12 17:00:00,20390.15,20857.62,20373.13,20785.52,33546.82 +2023-03-12 18:00:00,20786.52,21331.75,20692.01,21076.45,48753.29199 +2023-03-12 19:00:00,21075.05,21224.99,20735.19,20779.54,32229.52187 +2023-03-12 20:00:00,20779.54,21361.57,20755.76,21259.02,31000.59806 +2023-03-12 21:00:00,21257.96,21291.21,21136.15,21272.4,16773.4793 +2023-03-12 22:00:00,21272.82,21903.0,21100.69,21702.38,46708.55635 +2023-03-12 23:00:00,21703.97,22150.0,21602.0,21997.11,34615.81402 +2023-03-13 00:00:00,21998.05,22600.0,21860.74,22446.02,46825.16252 +2023-03-13 01:00:00,22448.97,22478.4,22250.37,22294.1,26022.42752 +2023-03-13 02:00:00,22295.4,22356.8,22066.4,22182.01,23006.54739 +2023-03-13 03:00:00,22182.65,22282.4,22114.39,22231.62,15593.27984 +2023-03-13 04:00:00,22232.76,22459.62,22222.88,22320.07,18986.76942 +2023-03-13 05:00:00,22320.07,22402.29,22285.3,22397.11,13248.24338 +2023-03-13 06:00:00,22397.11,22506.0,22245.0,22381.9,16172.56821 +2023-03-13 07:00:00,22381.11,22495.0,22319.06,22458.72,19762.91694 +2023-03-13 08:00:00,22458.87,22539.64,22170.75,22191.1,27297.2351 +2023-03-13 09:00:00,22191.11,22262.35,21813.88,21963.37,35114.65542 +2023-03-13 10:00:00,21961.74,22177.0,21816.67,22124.51,27471.76369 +2023-03-13 11:00:00,22125.45,22220.0,22017.0,22106.64,22324.39622 +2023-03-13 12:00:00,22106.63,22156.17,21959.0,22130.32,27567.30305 +2023-03-13 13:00:00,22130.32,22590.0,22127.87,22479.64,51898.78387 +2023-03-13 14:00:00,22479.64,23560.16,22400.0,23484.63,67545.04056 +2023-03-13 15:00:00,23484.64,24500.0,23461.55,23981.72,69508.65206 +2023-03-13 16:00:00,23981.72,24203.92,23755.0,23955.16,41803.54493 +2023-03-13 17:00:00,23954.14,24174.95,23821.42,24109.1,27711.01104 +2023-03-13 18:00:00,24109.7,24304.56,23978.74,24256.15,26783.56138 +2023-03-13 19:00:00,24257.37,24393.83,24105.0,24279.91,26149.44757 +2023-03-13 20:00:00,24277.25,24311.99,24054.0,24134.11,17599.04514 +2023-03-13 21:00:00,24135.78,24215.0,24040.28,24085.04,10689.40908 +2023-03-13 22:00:00,24083.58,24232.29,24082.09,24201.15,13002.40372 +2023-03-13 23:00:00,24202.45,24214.18,23938.0,24113.48,15805.14454 +2023-03-14 00:00:00,24112.27,24249.8,23986.02,24166.31,20419.04669 +2023-03-14 01:00:00,24165.37,24441.48,24112.01,24402.53,22294.32279 +2023-03-14 02:00:00,24403.42,24496.41,24251.01,24274.69,16540.9667 +2023-03-14 03:00:00,24275.95,24409.9,24220.7,24374.2,10986.8114 +2023-03-14 04:00:00,24375.68,24432.1,24322.46,24414.06,10786.16648 +2023-03-14 05:00:00,24414.9,24820.0,24188.4,24317.8,32242.51073 +2023-03-14 06:00:00,24317.8,24437.31,24284.42,24325.38,16159.04127 +2023-03-14 07:00:00,24325.38,24403.6,24139.06,24247.64,19781.12665 +2023-03-14 08:00:00,24246.75,24290.74,24118.28,24219.61,18136.31948 +2023-03-14 09:00:00,24219.61,24287.27,24150.0,24280.22,14969.83911 +2023-03-14 10:00:00,24280.74,24621.16,24247.82,24569.36,21323.27524 +2023-03-14 11:00:00,24568.41,24820.0,24443.1,24743.04,36496.528 +2023-03-14 12:00:00,24743.05,26025.0,24458.04,25832.57,80041.75204 +2023-03-14 13:00:00,25832.57,26386.87,25588.0,25759.64,66006.47052 +2023-03-14 14:00:00,25762.88,26140.0,25633.88,25815.75,36964.27261 +2023-03-14 15:00:00,25819.65,25959.27,25770.0,25894.67,27335.51996 +2023-03-14 16:00:00,25894.67,26001.81,25715.63,25867.21,27079.12535 +2023-03-14 17:00:00,25868.5,25889.0,25601.4,25628.25,24045.29646 +2023-03-14 18:00:00,25629.32,25650.37,24850.82,24990.18,40801.47491 +2023-03-14 19:00:00,24987.84,25160.0,24212.49,25054.15,52866.07352 +2023-03-14 20:00:00,25048.39,25167.9,24487.9,24570.06,31439.06258 +2023-03-14 21:00:00,24570.06,24628.88,23976.42,24535.95,34487.86286 +2023-03-14 22:00:00,24536.99,24790.0,24388.0,24698.39,20513.43984 +2023-03-14 23:00:00,24698.39,24777.87,24603.43,24670.41,17644.62904 +2023-03-15 00:00:00,24670.41,24742.29,24284.6,24720.06,25683.67851 +2023-03-15 01:00:00,24722.48,25074.24,24650.4,24906.01,24210.48624 +2023-03-15 02:00:00,24906.0,24971.22,24797.04,24827.89,11510.58201 +2023-03-15 03:00:00,24826.9,24855.0,24642.63,24717.65,13187.88115 +2023-03-15 04:00:00,24716.87,24816.66,24666.57,24799.9,11256.24051 +2023-03-15 05:00:00,24799.9,24873.8,24672.83,24699.71,11873.81558 +2023-03-15 06:00:00,24700.61,24847.49,24599.0,24781.98,14154.95217 +2023-03-15 07:00:00,24780.59,24918.59,24711.5,24871.28,12666.06354 +2023-03-15 08:00:00,24872.54,24922.22,24750.41,24754.7,15040.58315 +2023-03-15 09:00:00,24754.7,24785.0,24462.19,24516.74,20136.66754 +2023-03-15 10:00:00,24514.84,24648.1,24385.83,24538.14,22052.65897 +2023-03-15 11:00:00,24539.68,24817.53,24255.0,24754.5,35430.60441 +2023-03-15 12:00:00,24753.27,25196.97,24405.38,24808.12,52417.59823 +2023-03-15 13:00:00,24808.12,25128.0,24708.89,24777.01,44198.31413 +2023-03-15 14:00:00,24777.01,24952.35,24429.64,24706.61,41650.01841 +2023-03-15 15:00:00,24706.61,24819.92,24371.6,24471.01,34688.95688 +2023-03-15 16:00:00,24471.01,24523.0,24060.35,24104.69,44285.20751 +2023-03-15 17:00:00,24102.12,24360.0,23896.95,24281.86,36408.13136 +2023-03-15 18:00:00,24280.33,24512.38,24139.73,24409.25,31127.20079 +2023-03-15 19:00:00,24410.66,24479.9,24155.04,24366.71,25953.83987 +2023-03-15 20:00:00,24369.97,24430.0,24229.68,24318.56,13873.43147 +2023-03-15 21:00:00,24317.04,24450.0,24286.06,24422.31,8936.27785 +2023-03-15 22:00:00,24422.31,24633.02,24273.75,24361.12,17253.77967 +2023-03-15 23:00:00,24362.78,24443.05,24223.0,24285.66,13453.75989 +2023-03-16 00:00:00,24285.66,24384.12,24144.87,24202.64,16691.21973 +2023-03-16 01:00:00,24201.11,24344.36,24123.0,24322.5,15289.25029 +2023-03-16 02:00:00,24322.5,24439.8,24301.59,24362.64,10828.42349 +2023-03-16 03:00:00,24363.88,24382.95,24231.1,24265.43,9612.36415 +2023-03-16 04:00:00,24265.44,24313.72,24182.0,24262.65,10095.91464 +2023-03-16 05:00:00,24263.36,24461.04,24228.0,24342.8,13199.71614 +2023-03-16 06:00:00,24342.8,24599.96,24336.35,24568.74,17264.1142 +2023-03-16 07:00:00,24568.76,24685.0,24527.51,24614.27,17665.10824 +2023-03-16 08:00:00,24615.79,24660.49,24555.0,24581.1,14535.04948 +2023-03-16 09:00:00,24581.1,24848.88,24374.35,24658.21,26494.04297 +2023-03-16 10:00:00,24658.21,25066.32,24567.43,24930.23,32453.26186 +2023-03-16 11:00:00,24930.23,24935.2,24724.57,24824.62,20850.03396 +2023-03-16 12:00:00,24826.33,24913.35,24646.0,24720.18,25065.66573 +2023-03-16 13:00:00,24720.18,24850.0,24515.23,24832.09,29466.67506 +2023-03-16 14:00:00,24832.09,25032.74,24678.57,24846.64,28477.78412 +2023-03-16 15:00:00,24846.64,24939.45,24752.03,24888.44,22154.64835 +2023-03-16 16:00:00,24889.94,24918.95,24690.0,24780.79,21712.07102 +2023-03-16 17:00:00,24779.02,24810.0,24620.0,24684.98,16037.41229 +2023-03-16 18:00:00,24684.94,24831.0,24620.0,24790.77,12452.78164 +2023-03-16 19:00:00,24788.96,25167.4,24786.27,24953.21,25768.55152 +2023-03-16 20:00:00,24953.21,24959.04,24623.52,24696.87,16842.38364 +2023-03-16 21:00:00,24698.41,25090.0,24655.62,24914.01,13617.54104 +2023-03-16 22:00:00,24915.22,24999.42,24832.01,24981.59,11173.06741 +2023-03-16 23:00:00,24982.64,25075.0,24920.5,24998.78,11674.24901 +2023-03-17 00:00:00,24998.78,25002.61,24890.0,24918.14,10867.65841 +2023-03-17 01:00:00,24919.03,25730.0,24910.0,25666.59,32711.19977 +2023-03-17 02:00:00,25663.78,25896.0,25491.39,25580.16,34296.37961 +2023-03-17 03:00:00,25578.86,25788.5,25561.66,25781.66,14752.59187 +2023-03-17 04:00:00,25781.66,25879.91,25700.0,25722.04,13993.55989 +2023-03-17 05:00:00,25721.25,25769.0,25656.0,25765.88,13056.38477 +2023-03-17 06:00:00,25765.88,26196.4,25756.39,26142.14,32205.53855 +2023-03-17 07:00:00,26140.84,26169.39,25881.73,26058.45,23742.82701 +2023-03-17 08:00:00,26060.07,26212.0,25918.02,25996.41,23128.10874 +2023-03-17 09:00:00,25995.56,26344.16,25993.28,26240.16,20356.55883 +2023-03-17 10:00:00,26240.16,26788.81,26228.57,26706.71,45836.33175 +2023-03-17 11:00:00,26705.7,26970.0,26574.53,26918.73,33091.61922 +2023-03-17 12:00:00,26920.11,26935.12,26351.35,26631.94,35592.92087 +2023-03-17 13:00:00,26633.99,26756.58,26365.84,26453.89,28580.55611 +2023-03-17 14:00:00,26453.88,26623.9,26118.19,26283.0,39466.47737 +2023-03-17 15:00:00,26283.0,26516.46,26235.53,26421.34,25590.36137 +2023-03-17 16:00:00,26419.28,26573.43,26355.41,26393.98,21224.26679 +2023-03-17 17:00:00,26393.98,26650.0,26380.04,26487.79,22786.22097 +2023-03-17 18:00:00,26487.39,26619.26,26264.0,26617.57,21671.34729 +2023-03-17 19:00:00,26614.66,26860.66,26563.67,26834.87,28180.50668 +2023-03-17 20:00:00,26834.87,26880.0,26588.38,26769.59,17003.09962 +2023-03-17 21:00:00,26769.59,27239.49,26729.72,27094.27,21058.36896 +2023-03-17 22:00:00,27094.27,27756.84,26971.01,27513.31,39219.68878 +2023-03-17 23:00:00,27513.31,27699.26,27251.6,27395.13,26048.10768 +2023-03-18 00:00:00,27395.13,27652.61,27060.0,27627.51,28691.34464 +2023-03-18 01:00:00,27623.5,27724.85,27226.29,27329.78,24473.54725 +2023-03-18 02:00:00,27329.19,27483.0,27215.0,27290.98,16573.42439 +2023-03-18 03:00:00,27289.76,27357.33,27167.56,27307.54,11803.04539 +2023-03-18 04:00:00,27306.57,27403.79,27212.56,27331.24,10109.01573 +2023-03-18 05:00:00,27331.24,27612.31,27294.99,27578.05,13203.46795 +2023-03-18 06:00:00,27578.04,27609.78,27443.04,27505.28,10260.27665 +2023-03-18 07:00:00,27504.1,27513.47,27277.0,27359.89,9617.34798 +2023-03-18 08:00:00,27360.43,27365.79,27055.83,27217.57,15968.44128 +2023-03-18 09:00:00,27216.53,27438.9,27130.43,27398.26,12914.33134 +2023-03-18 10:00:00,27398.26,27500.0,27359.22,27465.19,9470.30851 +2023-03-18 11:00:00,27464.65,27482.04,27307.2,27443.09,9874.42116 +2023-03-18 12:00:00,27443.09,27637.2,27281.93,27503.25,15683.83973 +2023-03-18 13:00:00,27503.25,27536.73,27351.06,27414.93,12719.89797 +2023-03-18 14:00:00,27414.04,27615.0,27398.0,27525.56,12368.79694 +2023-03-18 15:00:00,27526.17,27543.83,27057.0,27226.23,27531.29187 +2023-03-18 16:00:00,27227.63,27463.0,26578.0,27343.98,37576.29096 +2023-03-18 17:00:00,27345.82,27489.94,26904.35,27307.07,26935.7883 +2023-03-18 18:00:00,27309.57,27369.86,27213.3,27319.7,10637.23828 +2023-03-18 19:00:00,27319.7,27431.58,27270.01,27329.83,9819.65711 +2023-03-18 20:00:00,27329.14,27449.95,27235.0,27317.96,8984.82484 +2023-03-18 21:00:00,27316.12,27346.47,27138.83,27189.87,6198.88553 +2023-03-18 22:00:00,27192.19,27240.0,26862.15,26910.45,11973.998 +2023-03-18 23:00:00,26910.45,27066.0,26810.0,26907.49,17849.48994 +2023-03-19 00:00:00,26907.49,27125.94,26901.02,27077.54,13336.76728 +2023-03-19 01:00:00,27077.54,27188.09,27030.73,27104.91,8838.99341 +2023-03-19 02:00:00,27104.91,27187.17,27054.78,27116.07,7206.24648 +2023-03-19 03:00:00,27116.07,27255.19,27080.57,27198.71,6728.45942 +2023-03-19 04:00:00,27198.71,27291.4,27117.58,27142.0,7589.78614 +2023-03-19 05:00:00,27141.0,27194.28,27034.13,27060.08,6843.4622 +2023-03-19 06:00:00,27061.14,27089.71,26893.77,26934.96,10868.74232 +2023-03-19 07:00:00,26934.96,27012.21,26827.22,26974.81,11035.35735 +2023-03-19 08:00:00,26973.76,27094.02,26872.0,26982.58,12223.56703 +2023-03-19 09:00:00,26982.57,27048.0,26912.84,27043.27,7875.35788 +2023-03-19 10:00:00,27043.24,27108.0,26977.77,27052.8,7761.66751 +2023-03-19 11:00:00,27052.8,27200.0,26931.64,27160.98,14130.80346 +2023-03-19 12:00:00,27162.33,27388.54,27135.67,27246.96,18498.04792 +2023-03-19 13:00:00,27246.96,27286.65,27110.12,27178.27,11555.80436 +2023-03-19 14:00:00,27178.26,27365.64,27176.27,27327.72,12416.90638 +2023-03-19 15:00:00,27327.74,27750.0,27304.54,27546.62,29272.34072 +2023-03-19 16:00:00,27546.62,28186.87,27470.0,27923.37,42508.25536 +2023-03-19 17:00:00,27918.86,28065.0,27716.18,27897.98,26621.07609 +2023-03-19 18:00:00,27897.98,28320.0,27833.73,28303.69,21591.39086 +2023-03-19 19:00:00,28309.09,28376.0,28162.6,28255.87,23195.89167 +2023-03-19 20:00:00,28255.35,28390.1,27738.0,27889.22,26497.43268 +2023-03-19 21:00:00,27887.19,28216.92,27868.0,27975.77,16618.95971 +2023-03-19 22:00:00,27977.53,28162.62,27870.01,28112.88,13726.09529 +2023-03-19 23:00:00,28110.24,28299.31,27891.56,27972.87,15125.57902 +2023-03-20 00:00:00,27972.87,28057.44,27779.65,27825.47,16809.29216 +2023-03-20 01:00:00,27824.83,27878.89,27566.0,27675.84,17060.126 +2023-03-20 02:00:00,27675.84,27747.16,27213.06,27434.91,21233.70908 +2023-03-20 03:00:00,27436.06,27496.74,27124.47,27269.17,23114.01883 +2023-03-20 04:00:00,27269.18,27464.97,27141.36,27437.0,15822.68931 +2023-03-20 05:00:00,27436.29,27540.89,27340.88,27519.97,10628.49834 +2023-03-20 06:00:00,27520.9,27733.0,27465.42,27628.5,17179.642 +2023-03-20 07:00:00,27629.77,28268.0,27626.64,28183.13,30478.02497 +2023-03-20 08:00:00,28183.13,28443.32,28006.0,28313.85,33854.57156 +2023-03-20 09:00:00,28313.85,28472.0,28020.0,28198.04,27661.96626 +2023-03-20 10:00:00,28198.05,28256.98,27919.66,28101.4,21245.97981 +2023-03-20 11:00:00,28101.4,28267.1,28037.99,28188.93,18285.14466 +2023-03-20 12:00:00,28188.95,28258.58,28078.01,28224.99,15270.64968 +2023-03-20 13:00:00,28223.49,28226.65,27715.8,27822.73,30001.32467 +2023-03-20 14:00:00,27821.17,28150.0,27816.66,28055.89,28154.0814 +2023-03-20 15:00:00,28054.95,28129.83,27620.0,27694.46,20406.31459 +2023-03-20 16:00:00,27698.15,27787.74,27461.35,27553.81,26977.77628 +2023-03-20 17:00:00,27553.81,27800.0,27489.45,27626.96,18008.49882 +2023-03-20 18:00:00,27623.82,28041.48,27570.58,27980.02,20465.94384 +2023-03-20 19:00:00,27980.02,28013.0,27633.17,27785.1,16860.83958 +2023-03-20 20:00:00,27784.57,28034.19,27752.94,28001.0,12624.37895 +2023-03-20 21:00:00,28002.37,28186.71,27921.68,27996.09,11012.9752 +2023-03-20 22:00:00,27996.09,28058.1,27859.75,27952.2,9715.0828 +2023-03-20 23:00:00,27950.87,28015.21,27577.02,27717.01,14506.70494 +2023-03-21 00:00:00,27717.01,27953.33,27664.51,27850.21,15105.73382 +2023-03-21 01:00:00,27850.21,27934.63,27711.0,27875.65,13164.86421 +2023-03-21 02:00:00,27874.6,27907.8,27773.29,27779.74,11442.54447 +2023-03-21 03:00:00,27779.74,27838.0,27726.13,27787.29,11236.18652 +2023-03-21 04:00:00,27787.29,27968.0,27780.05,27906.81,12637.07836 +2023-03-21 05:00:00,27907.08,27917.95,27732.34,27801.41,12874.3473 +2023-03-21 06:00:00,27802.21,27803.21,27606.96,27637.01,15545.36084 +2023-03-21 07:00:00,27637.01,27684.88,27303.1,27505.25,25278.28816 +2023-03-21 08:00:00,27505.25,27686.42,27393.52,27646.65,18907.6183 +2023-03-21 09:00:00,27647.95,28099.99,27550.0,27929.23,23974.68019 +2023-03-21 10:00:00,27927.06,28177.0,27897.48,27962.2,22817.88093 +2023-03-21 11:00:00,27962.2,28078.01,27877.29,28040.13,16317.42683 +2023-03-21 12:00:00,28040.13,28244.87,27922.39,28188.92,26271.49255 +2023-03-21 13:00:00,28188.92,28224.8,27900.0,28037.9,28242.54223 +2023-03-21 14:00:00,28037.04,28123.75,27730.0,27887.98,28078.11757 +2023-03-21 15:00:00,27890.45,28107.69,27854.12,28041.06,17882.16855 +2023-03-21 16:00:00,28041.06,28438.55,28012.65,28343.92,26861.99919 +2023-03-21 17:00:00,28343.92,28416.0,27960.66,27988.69,29004.08838 +2023-03-21 18:00:00,27988.69,28163.0,27935.07,28128.77,15034.67925 +2023-03-21 19:00:00,28128.77,28226.33,28080.56,28126.84,13339.83917 +2023-03-21 20:00:00,28126.85,28214.99,28035.06,28077.28,12425.35683 +2023-03-21 21:00:00,28077.35,28104.0,27900.0,27997.84,9709.35259 +2023-03-21 22:00:00,27997.84,28072.27,27921.25,28031.17,7735.50781 +2023-03-21 23:00:00,28031.86,28150.0,27986.09,28105.47,7042.58815 +2023-03-22 00:00:00,28107.81,28117.25,27945.44,28028.91,14331.12351 +2023-03-22 01:00:00,28028.91,28097.04,27975.0,28086.85,7445.21921 +2023-03-22 02:00:00,28086.85,28147.0,28048.0,28049.59,5982.62441 +2023-03-22 03:00:00,28049.59,28280.0,28021.0,28154.14,9241.19338 +2023-03-22 04:00:00,28154.14,28224.97,28122.12,28196.41,4851.84288 +2023-03-22 05:00:00,28196.42,28288.0,28181.15,28201.52,5985.27139 +2023-03-22 06:00:00,28201.53,28218.58,28151.0,28205.16,5518.51426 +2023-03-22 07:00:00,28205.16,28238.83,28028.24,28103.69,6232.62522 +2023-03-22 08:00:00,28103.68,28213.23,28053.71,28086.99,5300.97913 +2023-03-22 09:00:00,28086.99,28130.0,28000.0,28099.99,4905.07163 +2023-03-22 10:00:00,28099.99,28186.7,28067.63,28154.95,3624.79464 +2023-03-22 11:00:00,28154.95,28200.0,28115.85,28122.74,2449.82888 +2023-03-22 12:00:00,28122.73,28246.25,28105.35,28220.08,4430.31516 +2023-03-22 13:00:00,28220.07,28391.99,28166.66,28285.56,6715.67597 +2023-03-22 14:00:00,28285.55,28736.0,28279.69,28563.61,12971.76493 +2023-03-22 15:00:00,28563.61,28730.0,28442.83,28595.07,11559.40318 +2023-03-22 16:00:00,28595.06,28703.0,28482.84,28647.26,5550.41667 +2023-03-22 17:00:00,28647.26,28647.27,28315.0,28516.34,11311.09395 +2023-03-22 18:00:00,28516.34,28868.05,27781.51,28027.99,33039.01806 +2023-03-22 19:00:00,28028.0,28028.0,26650.27,26667.33,34344.06638 +2023-03-22 20:00:00,26668.8,27377.0,26601.8,27311.29,12672.99808 +2023-03-22 21:00:00,27311.28,27437.98,27073.11,27083.55,5989.48553 +2023-03-22 22:00:00,27083.55,27254.0,26973.76,27209.19,5600.13264 +2023-03-22 23:00:00,27209.2,27340.0,27186.99,27250.97,4059.95387 +2023-03-23 00:00:00,27250.97,27428.69,27195.63,27322.28,4717.70531 +2023-03-23 01:00:00,27322.27,27322.28,27105.0,27150.91,3417.24968 +2023-03-23 02:00:00,27150.91,27346.16,27144.62,27346.16,2625.40512 +2023-03-23 03:00:00,27346.16,27415.64,27299.0,27356.78,3160.40704 +2023-03-23 04:00:00,27356.79,27420.0,27258.0,27275.16,2590.69823 +2023-03-23 05:00:00,27275.16,27700.0,27274.77,27629.18,5276.55365 +2023-03-23 06:00:00,27629.19,27690.44,27560.48,27647.67,3728.4807 +2023-03-23 07:00:00,27647.68,27672.83,27537.0,27631.93,2715.2459 +2023-03-23 08:00:00,27631.93,27738.27,27560.14,27632.02,3200.75113 +2023-03-23 09:00:00,27632.03,27640.61,27575.0,27622.82,2353.39456 +2023-03-23 10:00:00,27622.82,27667.57,27587.01,27612.55,2366.97975 +2023-03-23 11:00:00,27612.54,27629.99,27439.5,27584.53,3975.97274 +2023-03-23 12:00:00,27584.52,27645.37,27450.0,27469.99,3745.72523 +2023-03-23 13:00:00,27470.0,27495.68,27275.92,27369.0,6693.02624 +2023-03-23 14:00:00,27369.01,28099.99,27300.0,28045.3,8616.12592 +2023-03-23 15:00:00,28045.31,28750.0,27975.27,28580.87,21135.69966 +2023-03-23 16:00:00,28580.86,28647.05,28351.81,28464.96,7933.76961 +2023-03-23 17:00:00,28464.96,28509.98,28150.0,28297.16,6962.94256 +2023-03-23 18:00:00,28297.16,28395.0,27784.68,27903.8,8115.86159 +2023-03-23 19:00:00,27903.79,28456.2,27772.22,28369.99,11039.96536 +2023-03-23 20:00:00,28369.82,28371.92,28096.6,28280.03,4652.98435 +2023-03-23 21:00:00,28280.03,28280.03,27967.93,28163.79,2840.11442 +2023-03-23 22:00:00,28163.8,28265.17,28087.93,28214.1,2872.38103 +2023-03-23 23:00:00,28214.1,28438.0,28186.74,28295.41,3912.1684 +2023-03-24 00:00:00,28295.42,28374.3,28182.02,28195.3,2887.21044 +2023-03-24 01:00:00,28195.29,28318.8,28137.93,28253.0,2294.16851 +2023-03-24 02:00:00,28253.0,28309.99,28134.86,28186.28,2066.26067 +2023-03-24 03:00:00,28186.28,28237.1,28158.4,28219.98,1572.69903 +2023-03-24 04:00:00,28219.98,28254.48,28102.15,28130.41,2009.41868 +2023-03-24 05:00:00,28130.41,28300.22,28130.4,28284.45,2593.4696 +2023-03-24 06:00:00,28284.45,28335.32,28234.0,28262.83,1783.26087 +2023-03-24 07:00:00,28262.84,28320.0,28162.43,28274.59,2678.97653 +2023-03-24 08:00:00,28274.58,28295.72,27934.48,28034.37,5156.44522 +2023-03-24 09:00:00,28034.38,28190.35,28000.0,28041.11,4506.28931 +2023-03-24 10:00:00,28041.11,28085.06,27941.0,28039.71,3639.2461 +2023-03-24 11:00:00,28039.71,28091.03,27963.84,28080.0,1267.41714 +2023-03-24 12:00:00,28080.0,28080.0,28080.0,28080.0,0.0 +2023-03-24 14:00:00,28079.99,28253.01,27835.0,27989.06,8983.24018 +2023-03-24 15:00:00,27989.07,28076.82,27843.41,28018.04,5198.28681 +2023-03-24 16:00:00,28018.04,28059.63,27831.33,27831.33,3377.68679 +2023-03-24 17:00:00,27831.33,27909.28,27523.81,27609.99,8886.72594 +2023-03-24 18:00:00,27609.99,27815.58,27562.51,27740.01,4729.14975 +2023-03-24 19:00:00,27740.02,27880.84,27687.18,27821.6,3328.40802 +2023-03-24 20:00:00,27821.59,27860.0,27486.89,27584.82,4095.63602 +2023-03-24 21:00:00,27584.83,27621.66,27000.0,27335.14,8237.35346 +2023-03-24 22:00:00,27335.13,27443.19,27275.15,27298.05,4289.6792 +2023-03-24 23:00:00,27298.06,27517.14,27280.88,27454.47,2661.03717 +2023-03-25 00:00:00,27454.46,27586.0,27425.19,27556.35,2102.7941 +2023-03-25 01:00:00,27556.34,27566.12,27420.0,27498.54,1532.14045 +2023-03-25 02:00:00,27498.54,27658.2,27459.18,27599.66,1783.06728 +2023-03-25 03:00:00,27599.66,27639.94,27540.53,27581.65,2213.29821 +2023-03-25 04:00:00,27581.65,27608.2,27492.57,27535.25,1207.18941 +2023-03-25 05:00:00,27535.26,27544.39,27375.9,27458.73,1839.15445 +2023-03-25 06:00:00,27458.74,27536.5,27405.5,27495.66,2122.47214 +2023-03-25 07:00:00,27495.66,27583.97,27470.26,27485.36,2007.66965 +2023-03-25 08:00:00,27485.37,27512.65,27337.96,27422.56,2002.36773 +2023-03-25 09:00:00,27422.56,27519.0,27309.8,27481.96,2070.46154 +2023-03-25 10:00:00,27481.96,27537.79,27397.47,27477.01,1753.892 +2023-03-25 11:00:00,27477.0,27530.0,27423.59,27457.2,1186.26813 +2023-03-25 12:00:00,27457.19,27480.17,27372.81,27451.71,1416.55718 +2023-03-25 13:00:00,27451.72,27619.0,27357.14,27566.96,3063.63019 +2023-03-25 14:00:00,27566.97,27648.0,27519.39,27527.06,2294.12717 +2023-03-25 15:00:00,27527.06,27787.33,27485.0,27647.43,3967.31226 +2023-03-25 16:00:00,27647.44,27730.0,27624.14,27629.22,2143.18105 +2023-03-25 17:00:00,27629.23,27647.36,27380.0,27481.58,2981.62837 +2023-03-25 18:00:00,27481.57,27535.63,27431.05,27442.92,1419.74012 +2023-03-25 19:00:00,27442.92,27442.92,27159.57,27189.68,5149.37954 +2023-03-25 20:00:00,27189.69,27430.14,27156.09,27354.72,3202.60967 +2023-03-25 21:00:00,27354.73,27455.0,27349.09,27411.54,1058.74562 +2023-03-25 22:00:00,27411.54,27529.29,27391.05,27447.32,1518.28385 +2023-03-25 23:00:00,27447.31,27486.5,27404.99,27462.95,808.11091 +2023-03-26 00:00:00,27462.96,27630.32,27417.76,27531.28,1997.79617 +2023-03-26 01:00:00,27531.28,27650.0,27516.91,27593.34,1280.56901 +2023-03-26 02:00:00,27593.34,27615.25,27563.51,27589.64,820.56901 +2023-03-26 03:00:00,27589.63,27617.65,27504.83,27529.26,1229.07026 +2023-03-26 04:00:00,27529.27,27536.7,27462.27,27516.61,790.6614 +2023-03-26 05:00:00,27516.62,27556.06,27462.15,27544.81,997.19255 +2023-03-26 06:00:00,27544.81,27570.93,27478.9,27496.68,1059.99052 +2023-03-26 07:00:00,27496.67,27536.23,27481.26,27504.94,959.32447 +2023-03-26 08:00:00,27504.94,27766.13,27480.01,27659.2,2832.47541 +2023-03-26 09:00:00,27659.2,27735.35,27626.21,27686.73,1892.98677 +2023-03-26 10:00:00,27686.74,27717.76,27635.45,27678.63,1177.4944 +2023-03-26 11:00:00,27678.62,27915.08,27649.38,27865.95,2280.74336 +2023-03-26 12:00:00,27865.96,27985.0,27837.37,27919.74,3689.34292 +2023-03-26 13:00:00,27919.73,28194.4,27883.21,28149.99,4591.80384 +2023-03-26 14:00:00,28150.0,28150.0,27695.0,27795.22,6745.31133 +2023-03-26 15:00:00,27795.22,27878.89,27717.26,27803.89,2669.59226 +2023-03-26 16:00:00,27803.89,27878.43,27635.18,27699.28,1705.21511 +2023-03-26 17:00:00,27699.27,27857.85,27660.0,27837.82,1657.60628 +2023-03-26 18:00:00,27837.81,27934.57,27772.78,27808.76,1414.28364 +2023-03-26 19:00:00,27808.75,27856.66,27785.0,27827.95,828.87805 +2023-03-26 20:00:00,27827.95,27900.0,27670.71,27777.63,1993.46478 +2023-03-26 21:00:00,27777.63,27838.11,27750.49,27838.11,750.61949 +2023-03-26 22:00:00,27838.1,28079.83,27804.4,28040.29,2953.55719 +2023-03-26 23:00:00,28040.28,28143.0,27949.0,27968.05,3353.15531 +2023-03-27 00:00:00,27968.05,28023.86,27917.16,27994.28,1929.36281 +2023-03-27 01:00:00,27994.27,28013.57,27801.06,27826.98,2218.5361 +2023-03-27 02:00:00,27826.98,27890.16,27781.6,27879.16,1526.6874 +2023-03-27 03:00:00,27879.16,27930.16,27829.99,27888.68,1180.07667 +2023-03-27 04:00:00,27888.68,27935.17,27871.91,27906.98,1613.73286 +2023-03-27 05:00:00,27906.98,27918.02,27675.31,27715.18,2796.12155 +2023-03-27 06:00:00,27715.19,27800.0,27666.0,27785.85,2165.82342 +2023-03-27 07:00:00,27785.86,27850.0,27734.9,27808.81,2279.86147 +2023-03-27 08:00:00,27808.8,27866.63,27768.55,27848.53,1479.56205 +2023-03-27 09:00:00,27848.53,27972.98,27820.0,27925.63,2236.16453 +2023-03-27 10:00:00,27925.64,27943.48,27864.89,27915.39,1738.99262 +2023-03-27 11:00:00,27915.38,27996.28,27839.0,27892.69,2162.12095 +2023-03-27 12:00:00,27892.69,27923.42,27690.36,27749.99,3192.72488 +2023-03-27 13:00:00,27749.99,27844.69,27600.0,27692.99,5094.41421 +2023-03-27 14:00:00,27693.0,27734.67,26938.88,26960.38,13065.76035 +2023-03-27 15:00:00,26960.38,27040.0,26508.14,26903.62,17713.30251 +2023-03-27 16:00:00,26903.63,27313.42,26858.79,27145.5,7789.38772 +2023-03-27 17:00:00,27145.51,27211.26,26922.17,26960.0,4025.89889 +2023-03-27 18:00:00,26959.99,27176.79,26949.23,27090.81,2679.54916 +2023-03-27 19:00:00,27090.8,27143.23,26942.25,26968.94,2118.19263 +2023-03-27 20:00:00,26968.93,27059.48,26877.82,27043.84,2546.25027 +2023-03-27 21:00:00,27043.85,27198.99,27009.88,27170.63,1894.47912 +2023-03-27 22:00:00,27170.64,27255.0,27078.92,27099.99,2719.40875 +2023-03-27 23:00:00,27100.0,27175.66,27066.02,27124.91,1873.05806 +2023-03-28 00:00:00,27124.9,27160.0,26936.0,26960.92,3533.32954 +2023-03-28 01:00:00,26960.93,27176.05,26800.0,27074.81,4473.13379 +2023-03-28 02:00:00,27074.81,27083.4,26970.19,27037.58,1369.72652 +2023-03-28 03:00:00,27037.58,27046.51,26910.35,26971.71,1673.40842 +2023-03-28 04:00:00,26971.71,26999.33,26893.99,26964.6,2467.49201 +2023-03-28 05:00:00,26964.59,26998.7,26872.11,26974.63,2233.39065 +2023-03-28 06:00:00,26974.63,27142.25,26974.63,27070.52,2721.73924 +2023-03-28 07:00:00,27070.53,27103.44,26934.0,26962.88,2036.25522 +2023-03-28 08:00:00,26962.89,27033.99,26925.8,27013.68,1588.81574 +2023-03-28 09:00:00,27013.68,27044.79,26820.5,26875.03,2514.29381 +2023-03-28 10:00:00,26875.03,26932.97,26631.78,26740.96,5740.89942 +2023-03-28 11:00:00,26740.96,27155.38,26725.53,27057.36,5882.75721 +2023-03-28 12:00:00,27057.36,27210.0,26852.16,26983.02,5183.04562 +2023-03-28 13:00:00,26983.02,27029.5,26835.31,26881.97,3897.34604 +2023-03-28 14:00:00,26881.97,27022.86,26846.43,26943.01,4343.77277 +2023-03-28 15:00:00,26943.01,27072.09,26923.3,26998.63,2513.08906 +2023-03-28 16:00:00,26998.63,27024.32,26852.05,26882.07,1886.5955 +2023-03-28 17:00:00,26882.07,26925.32,26745.0,26863.2,3371.58761 +2023-03-28 18:00:00,26863.2,27390.0,26838.21,27344.13,6486.67624 +2023-03-28 19:00:00,27344.13,27520.0,27158.15,27425.99,6345.21459 +2023-03-28 20:00:00,27425.98,27492.8,27242.96,27307.2,2948.36979 +2023-03-28 21:00:00,27307.21,27328.29,27095.66,27190.54,1774.93303 +2023-03-28 22:00:00,27190.54,27232.94,27133.61,27218.39,1752.10323 +2023-03-28 23:00:00,27218.4,27319.1,27210.96,27261.07,1864.46836 +2023-03-29 00:00:00,27261.06,27340.0,27240.1,27268.73,1699.06156 +2023-03-29 01:00:00,27268.74,27479.36,27262.01,27325.78,2863.16949 +2023-03-29 02:00:00,27325.77,27413.97,27297.0,27395.0,1403.72005 +2023-03-29 03:00:00,27395.0,27409.88,27326.88,27367.45,1158.30899 +2023-03-29 04:00:00,27367.44,27612.95,27349.68,27568.07,3933.22081 +2023-03-29 05:00:00,27568.06,27650.0,27520.55,27544.14,3064.55075 +2023-03-29 06:00:00,27544.14,28158.0,27507.6,28052.3,11195.15123 +2023-03-29 07:00:00,28052.3,28164.48,27969.69,28086.82,4252.63986 +2023-03-29 08:00:00,28086.82,28650.0,28040.34,28506.99,11270.83485 +2023-03-29 09:00:00,28506.99,28562.75,28313.25,28319.89,5574.7619 +2023-03-29 10:00:00,28319.89,28438.81,28246.01,28382.23,3714.17289 +2023-03-29 11:00:00,28382.23,28383.92,28272.86,28353.99,2886.79972 +2023-03-29 12:00:00,28354.0,28479.27,28230.85,28441.77,4087.94289 +2023-03-29 13:00:00,28441.77,28493.55,28327.29,28425.91,3987.11675 +2023-03-29 14:00:00,28425.9,28590.0,28266.66,28290.97,5169.33995 +2023-03-29 15:00:00,28290.97,28490.0,28270.99,28442.79,3173.00678 +2023-03-29 16:00:00,28442.8,28447.72,28135.82,28152.46,3499.17274 +2023-03-29 17:00:00,28152.45,28333.0,28139.84,28252.33,3144.50099 +2023-03-29 18:00:00,28252.34,28349.0,28195.69,28316.13,2273.66049 +2023-03-29 19:00:00,28316.13,28448.68,28279.29,28419.49,2730.42811 +2023-03-29 20:00:00,28419.49,28468.13,28356.23,28388.58,2226.26851 +2023-03-29 21:00:00,28388.58,28500.0,28290.35,28291.0,1916.30451 +2023-03-29 22:00:00,28291.01,28429.28,28211.0,28389.41,2782.69442 +2023-03-29 23:00:00,28389.41,28456.84,28319.48,28348.6,1479.33184 +2023-03-30 00:00:00,28348.6,28457.48,28235.25,28328.47,2063.78277 +2023-03-30 01:00:00,28328.48,28382.0,28245.06,28350.0,1543.34488 +2023-03-30 02:00:00,28350.0,29184.68,28343.39,28964.76,12850.8762 +2023-03-30 03:00:00,28964.76,29002.67,28090.06,28489.18,12075.03577 +2023-03-30 04:00:00,28489.19,28701.96,28442.79,28587.64,3571.4476 +2023-03-30 05:00:00,28587.63,28633.7,28491.39,28613.98,2288.37147 +2023-03-30 06:00:00,28613.97,28674.69,28566.67,28613.88,2552.16765 +2023-03-30 07:00:00,28613.89,28775.6,28579.43,28725.01,3479.45578 +2023-03-30 08:00:00,28725.0,28748.76,28568.54,28572.81,3140.6433 +2023-03-30 09:00:00,28572.81,28600.0,28500.0,28583.59,3106.488 +2023-03-30 10:00:00,28583.59,28624.74,28518.29,28602.48,1806.36723 +2023-03-30 11:00:00,28602.48,28710.15,28580.65,28644.79,2578.32641 +2023-03-30 12:00:00,28644.79,28691.45,28568.23,28646.35,3072.81096 +2023-03-30 13:00:00,28646.34,28646.35,28410.34,28517.96,3987.63492 +2023-03-30 14:00:00,28517.95,28542.97,28262.0,28428.47,5658.18721 +2023-03-30 15:00:00,28428.48,28482.13,28169.5,28300.33,4483.93848 +2023-03-30 16:00:00,28300.32,28301.01,28046.15,28247.27,4985.39605 +2023-03-30 17:00:00,28247.26,28277.0,27735.0,27839.41,7119.45874 +2023-03-30 18:00:00,27839.4,27953.57,27686.0,27903.69,4413.24045 +2023-03-30 19:00:00,27903.69,28075.53,27880.0,27986.09,4061.71355 +2023-03-30 20:00:00,27986.1,28179.7,27900.0,28149.8,3422.58634 +2023-03-30 21:00:00,28149.8,28197.96,28012.1,28068.5,1900.85772 +2023-03-30 22:00:00,28068.5,28140.0,27786.66,27898.59,2716.85368 +2023-03-30 23:00:00,27898.59,28055.0,27841.47,28028.53,1986.4474 +2023-03-31 00:00:00,28028.53,28338.34,27916.34,28249.17,4149.4121 +2023-03-31 01:00:00,28249.18,28375.0,28116.57,28153.12,3568.29799 +2023-03-31 02:00:00,28153.13,28206.2,28080.33,28146.79,2034.67447 +2023-03-31 03:00:00,28146.79,28235.45,28112.0,28168.41,2012.92542 +2023-03-31 04:00:00,28168.41,28205.42,28091.65,28179.6,1252.02182 +2023-03-31 05:00:00,28179.61,28219.36,27941.29,28034.52,2638.3173 +2023-03-31 06:00:00,28034.51,28103.16,28010.56,28079.96,1634.949 +2023-03-31 07:00:00,28079.95,28090.17,27511.71,27738.48,10004.62587 +2023-03-31 08:00:00,27738.48,27847.87,27688.0,27797.32,3301.36372 +2023-03-31 09:00:00,27797.31,27878.84,27770.0,27819.99,2456.37429 +2023-03-31 10:00:00,27820.0,27992.05,27798.48,27893.8,2535.91766 +2023-03-31 11:00:00,27893.81,27980.0,27842.1,27927.97,2250.15003 +2023-03-31 12:00:00,27927.97,28185.63,27870.93,28110.36,5285.3813 +2023-03-31 13:00:00,28110.37,28551.2,28082.71,28370.78,7427.91987 +2023-03-31 14:00:00,28370.78,28656.69,28320.79,28521.78,6107.95098 +2023-03-31 15:00:00,28521.78,28593.34,28360.0,28494.99,5501.16193 +2023-03-31 16:00:00,28495.0,28541.18,28365.99,28430.76,2441.53596 +2023-03-31 17:00:00,28430.75,28473.0,28276.65,28334.53,2464.35091 +2023-03-31 18:00:00,28334.52,28426.98,28262.87,28315.5,1723.51177 +2023-03-31 19:00:00,28315.49,28524.12,28279.24,28469.31,2766.3802 +2023-03-31 20:00:00,28469.31,28474.06,28337.46,28391.8,1926.97706 +2023-03-31 21:00:00,28391.8,28590.0,28363.68,28477.19,1448.13203 +2023-03-31 22:00:00,28477.19,28632.94,28442.25,28570.31,1888.42202 +2023-03-31 23:00:00,28570.31,28595.75,28465.36,28465.36,1377.36769 +2023-04-01 00:00:00,28465.36,28547.2,28408.57,28438.27,1524.81719 +2023-04-01 01:00:00,28438.26,28625.61,28410.35,28610.63,1458.59279 +2023-04-01 02:00:00,28610.62,28819.71,28467.31,28583.36,3522.34366 +2023-04-01 03:00:00,28583.36,28603.78,28503.29,28541.1,1088.35997 +2023-04-01 04:00:00,28541.1,28625.1,28526.59,28580.0,1117.54084 +2023-04-01 05:00:00,28580.01,28589.13,28530.59,28571.08,808.34551 +2023-04-01 06:00:00,28571.08,28572.93,28353.78,28482.72,2327.5363 +2023-04-01 07:00:00,28482.71,28482.72,28351.35,28424.99,1419.78356 +2023-04-01 08:00:00,28424.98,28485.11,28389.37,28440.56,1446.06986 +2023-04-01 09:00:00,28440.56,28464.65,28420.54,28425.49,755.41321 +2023-04-01 10:00:00,28425.49,28474.15,28389.77,28465.32,852.69033 +2023-04-01 11:00:00,28465.32,28475.97,28360.65,28372.85,1079.9353 +2023-04-01 12:00:00,28372.84,28424.05,28320.35,28422.89,1331.51394 +2023-04-01 13:00:00,28422.88,28473.9,28377.63,28417.8,934.62513 +2023-04-01 14:00:00,28417.81,28420.88,28292.32,28318.04,1316.04404 +2023-04-01 15:00:00,28318.04,28405.31,28220.27,28400.07,1605.44704 +2023-04-01 16:00:00,28400.07,28443.04,28280.0,28326.0,1529.35437 +2023-04-01 17:00:00,28326.0,28383.32,28317.39,28372.37,683.02376 +2023-04-01 18:00:00,28372.36,28382.9,28333.19,28376.74,625.47068 +2023-04-01 19:00:00,28376.74,28384.23,28343.81,28381.98,559.40445 +2023-04-01 20:00:00,28381.97,28577.0,28379.63,28446.78,1750.39916 +2023-04-01 21:00:00,28446.79,28517.44,28429.93,28477.72,674.71297 +2023-04-01 22:00:00,28477.73,28538.08,28477.72,28517.94,899.92118 +2023-04-01 23:00:00,28517.95,28555.0,28445.0,28452.73,927.10229 +2023-04-02 00:00:00,28452.74,28499.99,28355.0,28366.3,914.79254 +2023-04-02 01:00:00,28366.3,28434.68,28355.54,28388.34,741.92426 +2023-04-02 02:00:00,28388.35,28430.29,28375.0,28406.13,724.1985 +2023-04-02 03:00:00,28406.13,28530.0,28401.41,28476.59,1290.18762 +2023-04-02 04:00:00,28476.58,28485.18,28383.37,28386.09,575.69061 +2023-04-02 05:00:00,28386.1,28473.16,28381.54,28470.01,686.0797 +2023-04-02 06:00:00,28470.01,28490.4,28414.36,28458.26,650.48938 +2023-04-02 07:00:00,28458.26,28477.78,28413.3,28416.38,862.0777 +2023-04-02 08:00:00,28416.37,28422.21,28364.57,28381.37,854.98502 +2023-04-02 09:00:00,28381.36,28450.9,28368.53,28410.57,732.39958 +2023-04-02 10:00:00,28410.57,28413.71,28361.0,28367.25,699.25159 +2023-04-02 11:00:00,28367.25,28390.95,28306.8,28357.93,1195.47409 +2023-04-02 12:00:00,28357.93,28361.0,28240.17,28265.26,1942.44149 +2023-04-02 13:00:00,28265.25,28346.05,28135.8,28279.53,3419.1654 +2023-04-02 14:00:00,28279.52,28350.0,28239.45,28273.1,1030.24647 +2023-04-02 15:00:00,28273.1,28275.73,28037.59,28124.81,4018.94657 +2023-04-02 16:00:00,28124.8,28143.54,27927.0,28121.97,3493.42924 +2023-04-02 17:00:00,28121.97,28229.9,28109.16,28194.39,2326.93426 +2023-04-02 18:00:00,28194.4,28213.39,28152.8,28156.98,903.05844 +2023-04-02 19:00:00,28156.97,28172.76,27856.43,27943.85,2825.34269 +2023-04-02 20:00:00,27943.84,28088.38,27902.71,28058.75,1620.05537 +2023-04-02 21:00:00,28058.75,28156.34,27981.0,28014.8,1602.19957 +2023-04-02 22:00:00,28014.8,28115.76,27858.29,28105.81,2783.98883 +2023-04-02 23:00:00,28105.8,28203.35,28044.23,28171.87,1472.298 +2023-04-03 00:00:00,28171.87,28182.17,28064.52,28114.62,1119.79625 +2023-04-03 01:00:00,28114.63,28144.12,27560.0,27709.94,5583.1757 +2023-04-03 02:00:00,27709.85,27815.42,27658.36,27719.09,2274.50977 +2023-04-03 03:00:00,27719.09,27777.72,27623.45,27753.85,2172.76197 +2023-04-03 04:00:00,27753.85,27756.72,27588.0,27704.39,2088.73963 +2023-04-03 05:00:00,27704.4,27764.86,27660.0,27679.57,1395.94955 +2023-04-03 06:00:00,27679.58,27793.25,27644.5,27779.48,1508.78137 +2023-04-03 07:00:00,27779.47,27962.9,27771.09,27958.74,2746.99051 +2023-04-03 08:00:00,27958.73,28450.0,27958.73,28335.0,7974.91049 +2023-04-03 09:00:00,28335.0,28398.0,28300.0,28327.33,3033.90175 +2023-04-03 10:00:00,28327.33,28500.99,28301.13,28303.77,3240.48906 +2023-04-03 11:00:00,28303.76,28319.58,28215.59,28253.73,2502.72561 +2023-04-03 12:00:00,28253.73,28257.69,28063.17,28163.01,3391.002 +2023-04-03 13:00:00,28163.0,28375.0,28116.02,28258.78,3197.56849 +2023-04-03 14:00:00,28258.79,28303.25,27945.19,27995.04,3869.56959 +2023-04-03 15:00:00,27995.04,28112.99,27951.57,28051.48,2385.82697 +2023-04-03 16:00:00,28051.48,28129.99,27918.45,27930.84,2233.69013 +2023-04-03 17:00:00,27930.83,28084.62,27875.0,27986.48,2519.1824 +2023-04-03 18:00:00,27986.48,28237.0,27938.46,28152.0,3959.2842 +2023-04-03 19:00:00,28152.0,28238.53,28037.2,28081.08,2103.20781 +2023-04-03 20:00:00,28081.08,28093.56,27460.0,27582.78,7451.99752 +2023-04-03 21:00:00,27582.77,27765.0,27200.24,27714.56,5698.62144 +2023-04-03 22:00:00,27714.57,27943.62,27668.0,27799.99,3773.48503 +2023-04-03 23:00:00,27800.0,28000.0,27739.75,27800.0,2953.84681 +2023-04-04 00:00:00,27800.0,27868.31,27662.79,27760.58,2374.60259 +2023-04-04 01:00:00,27760.58,27900.24,27693.8,27816.16,2045.79956 +2023-04-04 02:00:00,27816.16,27950.62,27780.79,27857.35,1816.40619 +2023-04-04 03:00:00,27857.35,27965.0,27850.0,27855.06,1141.93735 +2023-04-04 04:00:00,27855.06,27885.28,27775.37,27813.86,1129.08139 +2023-04-04 05:00:00,27813.86,27939.18,27813.86,27890.01,1222.39124 +2023-04-04 06:00:00,27890.01,28145.0,27860.17,28078.14,2868.08177 +2023-04-04 07:00:00,28078.13,28143.03,27962.47,28021.3,2181.84318 +2023-04-04 08:00:00,28021.31,28137.98,27931.2,28103.48,1579.58553 +2023-04-04 09:00:00,28103.49,28207.27,28028.79,28198.76,2166.39663 +2023-04-04 10:00:00,28198.77,28350.0,28172.48,28219.63,3351.35395 +2023-04-04 11:00:00,28219.64,28444.44,28164.33,28289.52,4230.2741 +2023-04-04 12:00:00,28289.51,28381.19,28205.67,28267.68,2380.16147 +2023-04-04 13:00:00,28267.69,28399.0,28061.0,28111.04,3200.60381 +2023-04-04 14:00:00,28111.03,28257.0,28079.69,28123.0,3017.42315 +2023-04-04 15:00:00,28123.0,28144.58,27947.59,28030.04,3229.65698 +2023-04-04 16:00:00,28030.05,28131.35,27971.07,28098.99,2013.0268 +2023-04-04 17:00:00,28098.98,28235.04,28079.99,28226.99,1793.32925 +2023-04-04 18:00:00,28226.98,28260.0,28083.33,28114.42,1706.91021 +2023-04-04 19:00:00,28114.42,28199.0,28070.7,28189.25,1456.0314 +2023-04-04 20:00:00,28189.25,28305.0,28174.44,28250.04,1710.36003 +2023-04-04 21:00:00,28250.04,28254.11,28160.51,28223.62,1031.7684 +2023-04-04 22:00:00,28223.62,28258.93,28182.22,28187.26,853.60121 +2023-04-04 23:00:00,28187.25,28211.86,28078.63,28165.47,1221.93072 +2023-04-05 00:00:00,28165.47,28733.0,28099.68,28661.81,6158.2642 +2023-04-05 01:00:00,28661.81,28740.0,28543.34,28571.41,3489.9893 +2023-04-05 02:00:00,28571.42,28775.0,28522.99,28565.57,3140.84957 +2023-04-05 03:00:00,28565.58,28575.79,28428.69,28544.72,2055.90962 +2023-04-05 04:00:00,28544.73,28577.38,28483.09,28506.62,1235.81287 +2023-04-05 05:00:00,28506.61,28624.35,28480.67,28582.84,1552.90469 +2023-04-05 06:00:00,28582.84,28603.59,28491.29,28534.42,1382.40119 +2023-04-05 07:00:00,28534.43,28540.0,28455.0,28525.21,1388.81047 +2023-04-05 08:00:00,28525.2,28600.0,28450.5,28543.8,2056.3712 +2023-04-05 09:00:00,28543.8,28595.94,28502.16,28508.76,1302.34522 +2023-04-05 10:00:00,28508.75,28529.72,28476.24,28510.0,1034.90976 +2023-04-05 11:00:00,28510.0,28567.85,28480.72,28554.38,1226.02322 +2023-04-05 12:00:00,28554.37,28750.0,28312.5,28568.95,5245.8456 +2023-04-05 13:00:00,28568.57,28600.5,28300.0,28404.58,3483.73755 +2023-04-05 14:00:00,28404.57,28476.81,28087.0,28105.2,5348.52251 +2023-04-05 15:00:00,28105.19,28127.0,27860.0,28031.09,5555.27634 +2023-04-05 16:00:00,28031.09,28053.88,27805.1,27947.99,4212.71101 +2023-04-05 17:00:00,27947.99,28120.0,27919.23,28023.74,2324.69851 +2023-04-05 18:00:00,28023.75,28060.0,27935.71,28030.2,1439.18723 +2023-04-05 19:00:00,28030.19,28308.04,27967.8,28240.64,3035.1495 +2023-04-05 20:00:00,28240.64,28300.0,28132.82,28150.61,1399.0461 +2023-04-05 21:00:00,28150.61,28217.37,28134.39,28181.06,829.93633 +2023-04-05 22:00:00,28181.06,28236.15,28132.16,28175.28,1061.56316 +2023-04-05 23:00:00,28175.28,28212.5,28137.67,28170.01,777.38217 +2023-04-06 00:00:00,28170.01,28182.05,27918.35,27999.15,2192.36011 +2023-04-06 01:00:00,27999.14,28090.0,27878.6,28064.46,1952.14589 +2023-04-06 02:00:00,28064.45,28095.71,27978.21,28039.73,1197.09788 +2023-04-06 03:00:00,28039.74,28153.69,28022.48,28128.42,1099.64959 +2023-04-06 04:00:00,28128.42,28130.0,28067.28,28068.91,824.12943 +2023-04-06 05:00:00,28068.91,28081.06,27969.61,28036.75,1239.65431 +2023-04-06 06:00:00,28036.75,28073.92,28006.46,28063.91,1050.48553 +2023-04-06 07:00:00,28063.91,28088.88,27907.77,27910.97,1784.32895 +2023-04-06 08:00:00,27910.97,27988.58,27850.0,27953.62,2357.22246 +2023-04-06 09:00:00,27953.61,28028.6,27900.0,27904.04,1235.09624 +2023-04-06 10:00:00,27904.04,27907.59,27711.0,27850.0,3496.92514 +2023-04-06 11:00:00,27849.99,27954.42,27846.12,27945.52,1408.47664 +2023-04-06 12:00:00,27945.51,28085.0,27856.54,27903.73,2560.85993 +2023-04-06 13:00:00,27903.73,27979.01,27750.0,27891.16,2887.76836 +2023-04-06 14:00:00,27891.16,27978.54,27888.26,27952.78,2218.27463 +2023-04-06 15:00:00,27952.78,28181.05,27943.76,28090.39,3265.68045 +2023-04-06 16:00:00,28090.39,28165.88,28046.88,28065.14,1767.70198 +2023-04-06 17:00:00,28065.15,28084.18,28014.99,28041.4,1229.4884 +2023-04-06 18:00:00,28041.41,28094.41,27954.06,27963.35,1205.25894 +2023-04-06 19:00:00,27963.34,28056.67,27950.9,28017.77,1091.38706 +2023-04-06 20:00:00,28017.77,28121.87,27966.0,27975.85,1404.21402 +2023-04-06 21:00:00,27975.85,28052.8,27957.04,27989.16,875.15697 +2023-04-06 22:00:00,27989.15,28008.43,27900.0,28007.86,1034.71576 +2023-04-06 23:00:00,28007.87,28055.62,28007.86,28033.82,740.87096 +2023-04-07 00:00:00,28033.83,28100.0,27998.04,28097.99,896.12527 +2023-04-07 01:00:00,28097.99,28098.2,28036.63,28056.51,661.1492 +2023-04-07 02:00:00,28056.51,28072.94,27926.52,28017.22,1048.03352 +2023-04-07 03:00:00,28017.22,28049.84,27979.75,28038.66,539.33097 +2023-04-07 04:00:00,28038.67,28062.73,27999.9,28021.77,609.92995 +2023-04-07 05:00:00,28021.77,28021.77,27863.23,27980.0,1374.71176 +2023-04-07 06:00:00,27980.0,27984.75,27900.0,27960.09,1049.9832 +2023-04-07 07:00:00,27960.09,27960.1,27766.94,27839.78,1932.80263 +2023-04-07 08:00:00,27839.79,27937.82,27785.0,27816.76,1752.58709 +2023-04-07 09:00:00,27816.76,27894.99,27790.1,27869.48,1184.11747 +2023-04-07 10:00:00,27869.48,27961.67,27861.38,27933.36,1335.68514 +2023-04-07 11:00:00,27933.36,27935.98,27800.0,27840.9,1291.1329 +2023-04-07 12:00:00,27840.89,27981.0,27800.0,27892.63,2539.99967 +2023-04-07 13:00:00,27892.63,27929.37,27833.97,27896.93,1110.08632 +2023-04-07 14:00:00,27896.92,27984.75,27893.26,27914.64,1110.45972 +2023-04-07 15:00:00,27914.64,27954.51,27907.69,27944.1,1001.22404 +2023-04-07 16:00:00,27944.09,27953.47,27856.0,27879.3,889.71983 +2023-04-07 17:00:00,27879.3,27941.11,27879.3,27911.51,572.35649 +2023-04-07 18:00:00,27911.5,27930.0,27874.13,27891.77,556.90925 +2023-04-07 19:00:00,27891.76,27905.15,27869.26,27897.52,531.37925 +2023-04-07 20:00:00,27897.51,27922.99,27839.02,27864.2,695.57851 +2023-04-07 21:00:00,27864.21,27909.27,27858.3,27891.13,445.55868 +2023-04-07 22:00:00,27891.13,27980.74,27864.99,27955.99,953.10882 +2023-04-07 23:00:00,27955.99,27973.04,27894.32,27906.33,680.12419 +2023-04-08 00:00:00,27906.34,27919.61,27859.02,27880.27,899.14307 +2023-04-08 01:00:00,27880.26,27935.15,27880.02,27903.24,623.5553 +2023-04-08 02:00:00,27903.24,27965.76,27902.95,27956.76,607.40345 +2023-04-08 03:00:00,27956.77,28059.39,27939.46,28023.39,1484.63403 +2023-04-08 04:00:00,28023.39,28040.72,27974.14,27984.98,628.87894 +2023-04-08 05:00:00,27984.97,28154.99,27979.03,28140.92,1337.70492 +2023-04-08 06:00:00,28140.91,28152.57,28086.28,28113.12,1236.00625 +2023-04-08 07:00:00,28113.13,28122.38,28063.89,28086.22,831.51057 +2023-04-08 08:00:00,28086.22,28114.94,28018.61,28025.53,861.28992 +2023-04-08 09:00:00,28025.53,28062.28,28013.15,28032.49,632.37262 +2023-04-08 10:00:00,28032.49,28034.68,27994.7,28011.62,689.13475 +2023-04-08 11:00:00,28011.61,28032.64,27990.57,28016.09,481.36415 +2023-04-08 12:00:00,28016.09,28032.08,27950.0,27987.57,808.50955 +2023-04-08 13:00:00,27987.58,28046.26,27970.08,28020.66,733.91811 +2023-04-08 14:00:00,28020.66,28057.0,28010.4,28027.67,857.74147 +2023-04-08 15:00:00,28027.66,28028.7,27985.38,28014.7,602.58152 +2023-04-08 16:00:00,28014.71,28020.0,27995.93,28002.53,528.57451 +2023-04-08 17:00:00,28002.52,28017.04,27897.26,27935.11,949.56192 +2023-04-08 18:00:00,27935.11,27955.0,27872.11,27904.38,1245.56139 +2023-04-08 19:00:00,27904.37,27952.17,27875.96,27924.13,896.01823 +2023-04-08 20:00:00,27924.13,27955.0,27911.41,27911.69,652.30113 +2023-04-08 21:00:00,27911.7,27935.09,27900.44,27929.8,501.60399 +2023-04-08 22:00:00,27929.8,27951.0,27885.86,27937.77,664.83265 +2023-04-08 23:00:00,27937.77,27987.41,27927.71,27938.38,725.76491 +2023-04-09 00:00:00,27938.38,28075.0,27924.9,28036.76,1092.06788 +2023-04-09 01:00:00,28036.76,28082.1,28030.0,28077.78,895.69992 +2023-04-09 02:00:00,28077.78,28083.45,28031.08,28036.3,1108.90867 +2023-04-09 03:00:00,28036.31,28054.01,28018.63,28027.71,585.88204 +2023-04-09 04:00:00,28027.71,28041.06,28010.0,28037.39,549.6984 +2023-04-09 05:00:00,28037.38,28067.46,27991.43,27999.25,557.42993 +2023-04-09 06:00:00,27999.25,27999.25,27851.0,27880.13,2172.18821 +2023-04-09 07:00:00,27880.12,27915.34,27840.51,27903.02,1728.95227 +2023-04-09 08:00:00,27903.01,27922.31,27800.0,27881.64,1306.68226 +2023-04-09 09:00:00,27881.65,27938.86,27881.64,27898.58,902.78575 +2023-04-09 10:00:00,27898.59,27914.29,27861.55,27893.22,608.52881 +2023-04-09 11:00:00,27893.23,27949.99,27866.87,27930.2,652.0314 +2023-04-09 12:00:00,27930.2,27973.39,27919.4,27930.07,932.20744 +2023-04-09 13:00:00,27930.07,27930.08,27873.46,27905.62,690.24317 +2023-04-09 14:00:00,27905.62,27925.01,27800.0,27866.49,1289.98609 +2023-04-09 15:00:00,27866.48,27918.26,27835.26,27891.91,905.83342 +2023-04-09 16:00:00,27891.91,27942.55,27890.75,27896.98,687.56525 +2023-04-09 17:00:00,27896.97,27930.1,27876.68,27906.68,580.57027 +2023-04-09 18:00:00,27906.67,28050.0,27906.67,28026.72,1153.12228 +2023-04-09 19:00:00,28027.18,28250.0,27998.88,28140.4,4106.13251 +2023-04-09 20:00:00,28140.41,28160.67,28094.5,28114.63,923.12457 +2023-04-09 21:00:00,28114.63,28476.34,28114.63,28437.19,3419.67777 +2023-04-09 22:00:00,28437.2,28530.0,28360.0,28371.39,3664.39057 +2023-04-09 23:00:00,28371.38,28429.55,28292.54,28323.76,2017.45213 +2023-04-10 00:00:00,28323.76,28425.43,28285.61,28381.25,1741.16374 +2023-04-10 01:00:00,28381.24,28381.25,28244.18,28304.05,1613.06145 +2023-04-10 02:00:00,28304.04,28350.0,28271.14,28296.0,1022.87091 +2023-04-10 03:00:00,28296.01,28319.55,28266.01,28278.45,995.16666 +2023-04-10 04:00:00,28278.45,28317.61,28212.28,28234.51,1045.96619 +2023-04-10 05:00:00,28234.52,28314.27,28196.61,28282.16,2055.98616 +2023-04-10 06:00:00,28282.17,28305.0,28253.7,28277.94,770.70543 +2023-04-10 07:00:00,28277.94,28325.43,28233.8,28284.57,1122.58675 +2023-04-10 08:00:00,28284.57,28375.02,28284.57,28295.16,1876.19113 +2023-04-10 09:00:00,28295.17,28350.02,28275.29,28310.29,1180.38596 +2023-04-10 10:00:00,28310.28,28361.51,28293.67,28331.88,940.7714 +2023-04-10 11:00:00,28331.88,28369.99,28275.01,28305.6,1236.97437 +2023-04-10 12:00:00,28305.59,28317.81,28255.0,28277.86,1305.44812 +2023-04-10 13:00:00,28277.85,28297.36,28170.0,28217.46,2363.98693 +2023-04-10 14:00:00,28217.45,28341.97,28199.3,28305.43,1770.37797 +2023-04-10 15:00:00,28305.42,28575.04,28305.42,28439.38,4697.58865 +2023-04-10 16:00:00,28439.39,29150.0,28356.51,29036.85,9500.20652 +2023-04-10 17:00:00,29036.85,29380.0,29000.0,29160.0,10365.41354 +2023-04-10 18:00:00,29160.0,29289.99,29115.0,29273.14,4144.03443 +2023-04-10 19:00:00,29273.14,29295.46,29057.04,29173.06,3025.63307 +2023-04-10 20:00:00,29173.05,29215.02,29069.1,29115.11,2231.90467 +2023-04-10 21:00:00,29115.11,29278.78,29090.34,29222.34,2070.52543 +2023-04-10 22:00:00,29222.34,29747.01,29222.34,29594.0,6737.86785 +2023-04-10 23:00:00,29594.0,29770.0,29590.0,29637.34,3939.24487 +2023-04-11 00:00:00,29637.35,29990.0,29590.0,29928.86,5294.26591 +2023-04-11 01:00:00,29928.85,30308.23,29754.49,30189.9,6186.64059 +2023-04-11 02:00:00,30189.9,30430.0,29987.6,30083.01,5975.49705 +2023-04-11 03:00:00,30083.01,30124.12,29936.91,30115.95,3371.78914 +2023-04-11 04:00:00,30115.95,30169.14,30017.37,30109.01,2589.01549 +2023-04-11 05:00:00,30109.01,30147.0,29800.0,29883.84,3129.55934 +2023-04-11 06:00:00,29883.84,30087.77,29878.92,30035.78,2240.51763 +2023-04-11 07:00:00,30035.78,30160.53,30035.59,30106.89,2326.41426 +2023-04-11 08:00:00,30106.9,30147.38,30045.0,30093.9,1768.51789 +2023-04-11 09:00:00,30093.91,30094.01,29974.0,30052.38,2431.64909 +2023-04-11 10:00:00,30052.38,30144.83,30008.95,30122.5,1616.24995 +2023-04-11 11:00:00,30122.49,30123.91,30050.69,30055.15,1523.07053 +2023-04-11 12:00:00,30055.14,30200.58,30010.41,30098.92,2656.40136 +2023-04-11 13:00:00,30098.92,30250.0,30073.01,30246.31,2539.94803 +2023-04-11 14:00:00,30246.3,30280.0,29975.0,30060.39,3782.23203 +2023-04-11 15:00:00,30060.39,30246.26,30044.65,30194.22,2335.58014 +2023-04-11 16:00:00,30194.23,30263.71,30100.0,30127.98,2242.1777 +2023-04-11 17:00:00,30127.98,30220.0,30040.0,30207.57,2000.0455 +2023-04-11 18:00:00,30207.57,30240.0,30151.68,30230.24,1449.53334 +2023-04-11 19:00:00,30230.23,30550.0,30105.01,30130.02,5278.40357 +2023-04-11 20:00:00,30130.02,30173.76,29940.0,30164.23,3409.71736 +2023-04-11 21:00:00,30164.24,30239.59,30130.23,30189.52,1346.11191 +2023-04-11 22:00:00,30189.51,30272.28,30147.64,30263.75,1230.14185 +2023-04-11 23:00:00,30263.74,30274.19,30160.0,30200.42,1266.59655 +2023-04-12 00:00:00,30200.43,30350.07,30193.67,30224.78,1803.85075 +2023-04-12 01:00:00,30224.77,30292.44,30122.72,30170.8,1688.66019 +2023-04-12 02:00:00,30170.8,30170.8,29811.82,29916.16,5625.33965 +2023-04-12 03:00:00,29916.16,29989.19,29858.19,29922.04,2277.12119 +2023-04-12 04:00:00,29922.04,29995.35,29887.03,29978.58,1539.74214 +2023-04-12 05:00:00,29978.59,29999.23,29891.46,29920.0,1493.93185 +2023-04-12 06:00:00,29919.99,29956.81,29850.0,29932.89,1412.52475 +2023-04-12 07:00:00,29932.88,30070.42,29924.26,29987.0,1623.28548 +2023-04-12 08:00:00,29986.99,30050.47,29913.71,29914.97,1468.79021 +2023-04-12 09:00:00,29914.97,30007.83,29895.98,30007.68,1502.65731 +2023-04-12 10:00:00,30007.67,30029.37,29978.13,29996.27,1155.85308 +2023-04-12 11:00:00,29996.28,30019.65,29930.95,30016.3,1457.13626 +2023-04-12 12:00:00,30016.31,30486.0,29919.0,30157.09,8712.89441 +2023-04-12 13:00:00,30157.09,30340.22,29964.0,30053.73,5716.56104 +2023-04-12 14:00:00,30053.72,30263.4,30016.95,30024.69,4889.98136 +2023-04-12 15:00:00,30024.69,30066.96,29637.4,29964.02,6989.08971 +2023-04-12 16:00:00,29964.03,30034.99,29915.01,29939.02,1972.26301 +2023-04-12 17:00:00,29939.02,30091.01,29907.14,30023.92,2066.73716 +2023-04-12 18:00:00,30023.93,30057.52,29845.01,29917.26,2390.44208 +2023-04-12 19:00:00,29917.27,29949.76,29760.13,29798.59,2099.05832 +2023-04-12 20:00:00,29798.59,29955.0,29775.68,29947.47,1063.07245 +2023-04-12 21:00:00,29947.48,29979.74,29900.77,29944.12,759.66879 +2023-04-12 22:00:00,29944.12,29975.41,29796.21,29841.35,1285.14991 +2023-04-12 23:00:00,29841.35,29939.61,29823.45,29888.07,1055.67341 +2023-04-13 00:00:00,29888.07,30035.28,29854.59,29984.69,1441.58145 +2023-04-13 01:00:00,29984.7,30077.49,29945.64,30065.13,1264.68096 +2023-04-13 02:00:00,30065.13,30200.0,29997.51,30116.51,1754.75029 +2023-04-13 03:00:00,30116.51,30121.7,30040.0,30072.17,1024.40584 +2023-04-13 04:00:00,30072.17,30106.16,30041.22,30053.65,795.61445 +2023-04-13 05:00:00,30053.65,30128.59,30041.48,30105.08,733.63445 +2023-04-13 06:00:00,30105.08,30116.87,29986.64,30016.54,1944.53521 +2023-04-13 07:00:00,30016.53,30107.1,29982.93,30068.6,1613.8598 +2023-04-13 08:00:00,30068.6,30269.0,30039.0,30188.14,3438.06571 +2023-04-13 09:00:00,30188.15,30374.87,30150.5,30204.85,4030.14331 +2023-04-13 10:00:00,30204.85,30244.09,30152.0,30203.14,1599.09125 +2023-04-13 11:00:00,30203.13,30235.0,30151.0,30159.82,1682.19602 +2023-04-13 12:00:00,30159.81,30303.64,30134.16,30272.14,3033.01027 +2023-04-13 13:00:00,30272.13,30328.91,30165.01,30175.75,2455.37582 +2023-04-13 14:00:00,30175.75,30530.0,30173.94,30435.34,4882.66693 +2023-04-13 15:00:00,30435.33,30595.0,30300.0,30441.43,4400.53673 +2023-04-13 16:00:00,30441.43,30476.42,30262.4,30322.37,2727.282 +2023-04-13 17:00:00,30322.38,30435.48,30283.72,30425.85,2355.74887 +2023-04-13 18:00:00,30425.85,30535.76,30409.78,30440.78,2137.20153 +2023-04-13 19:00:00,30440.79,30440.79,30307.09,30335.13,2237.80037 +2023-04-13 20:00:00,30335.13,30335.14,30205.0,30251.97,2599.77022 +2023-04-13 21:00:00,30251.96,30328.42,30245.01,30283.7,1226.19143 +2023-04-13 22:00:00,30283.7,30394.7,30283.69,30296.09,1453.81237 +2023-04-13 23:00:00,30296.09,30388.71,30280.11,30373.84,1102.16203 +2023-04-14 00:00:00,30373.84,30799.61,30310.03,30745.73,6387.55449 +2023-04-14 01:00:00,30745.72,30893.79,30682.09,30775.34,6005.99956 +2023-04-14 02:00:00,30775.34,30808.78,30520.0,30595.8,3493.63348 +2023-04-14 03:00:00,30595.8,30738.64,30549.33,30690.88,2636.10187 +2023-04-14 04:00:00,30690.89,30754.05,30674.53,30708.82,1999.62142 +2023-04-14 05:00:00,30708.82,30836.54,30698.25,30796.28,2299.64863 +2023-04-14 06:00:00,30796.27,31000.0,30714.5,30942.87,4121.46412 +2023-04-14 07:00:00,30942.86,30963.69,30725.01,30733.72,3490.1231 +2023-04-14 08:00:00,30733.73,30788.47,30657.14,30730.22,2525.37705 +2023-04-14 09:00:00,30730.22,30798.29,30700.0,30794.16,1798.17559 +2023-04-14 10:00:00,30794.16,30827.27,30758.89,30766.01,1912.7192 +2023-04-14 11:00:00,30766.01,30806.7,30727.63,30801.89,1391.49261 +2023-04-14 12:00:00,30801.89,30850.0,30575.0,30616.98,3976.8216 +2023-04-14 13:00:00,30616.98,30749.58,30610.03,30721.54,3317.94871 +2023-04-14 14:00:00,30721.54,30757.6,30483.21,30599.89,4968.13489 +2023-04-14 15:00:00,30599.89,30629.0,30101.0,30237.89,7370.81084 +2023-04-14 16:00:00,30237.88,30269.41,29966.0,30147.49,5062.47285 +2023-04-14 17:00:00,30147.49,30282.08,30131.0,30276.62,3337.41802 +2023-04-14 18:00:00,30276.62,30357.8,30243.22,30277.1,2240.74996 +2023-04-14 19:00:00,30277.11,30346.99,30200.76,30324.09,1589.86235 +2023-04-14 20:00:00,30324.09,30522.07,30272.25,30448.82,2857.89041 +2023-04-14 21:00:00,30448.82,30510.15,30393.26,30454.09,1259.30044 +2023-04-14 22:00:00,30454.09,30454.09,30410.96,30435.34,940.86198 +2023-04-14 23:00:00,30435.33,30481.87,30370.52,30466.93,1000.01135 +2023-04-15 00:00:00,30466.93,30595.6,30372.48,30372.48,2000.69786 +2023-04-15 01:00:00,30372.48,30399.0,30278.08,30370.01,1734.50215 +2023-04-15 02:00:00,30370.01,30441.17,30346.4,30380.0,1061.35596 +2023-04-15 03:00:00,30380.0,30421.94,30362.62,30376.14,950.38783 +2023-04-15 04:00:00,30376.13,30394.5,30337.97,30356.11,1130.26962 +2023-04-15 05:00:00,30356.1,30434.83,30352.52,30427.05,1221.79719 +2023-04-15 06:00:00,30427.05,30436.46,30363.23,30390.99,884.87137 +2023-04-15 07:00:00,30390.99,30467.92,30389.35,30433.3,917.46158 +2023-04-15 08:00:00,30433.29,30456.73,30364.7,30385.12,910.28118 +2023-04-15 09:00:00,30385.13,30464.9,30385.12,30459.94,940.59141 +2023-04-15 10:00:00,30459.94,30470.0,30373.41,30417.07,880.4227 +2023-04-15 11:00:00,30417.06,30439.7,30365.56,30385.3,936.52967 +2023-04-15 12:00:00,30385.31,30444.0,30377.38,30423.28,726.92448 +2023-04-15 13:00:00,30423.29,30442.66,30285.0,30335.19,1432.79203 +2023-04-15 14:00:00,30335.19,30376.95,30302.24,30359.39,921.18977 +2023-04-15 15:00:00,30359.38,30420.0,30323.41,30325.27,1191.56408 +2023-04-15 16:00:00,30325.27,30339.35,30261.95,30319.98,1926.1069 +2023-04-15 17:00:00,30319.98,30319.99,30202.0,30246.21,1110.86328 +2023-04-15 18:00:00,30246.22,30301.72,30244.75,30300.77,620.03197 +2023-04-15 19:00:00,30300.76,30331.75,30226.72,30331.74,1069.84607 +2023-04-15 20:00:00,30331.74,30344.84,30261.33,30280.65,904.81804 +2023-04-15 21:00:00,30280.65,30308.76,30239.86,30263.77,640.54328 +2023-04-15 22:00:00,30263.77,30360.19,30236.39,30350.98,791.69584 +2023-04-15 23:00:00,30350.99,30359.92,30282.35,30295.09,524.26821 +2023-04-16 00:00:00,30295.1,30319.04,30270.11,30277.54,603.52064 +2023-04-16 01:00:00,30277.53,30277.54,30120.0,30236.95,1595.55527 +2023-04-16 02:00:00,30236.96,30284.78,30224.43,30264.2,638.70251 +2023-04-16 03:00:00,30264.2,30269.33,30229.34,30249.37,546.48173 +2023-04-16 04:00:00,30249.36,30316.0,30245.82,30298.52,692.66401 +2023-04-16 05:00:00,30298.53,30340.06,30295.97,30306.32,894.77371 +2023-04-16 06:00:00,30306.32,30347.38,30302.68,30306.07,567.70244 +2023-04-16 07:00:00,30306.06,30399.4,30300.0,30344.97,766.15445 +2023-04-16 08:00:00,30344.97,30353.96,30328.01,30337.4,565.77648 +2023-04-16 09:00:00,30337.4,30337.41,30254.99,30279.34,1316.58369 +2023-04-16 10:00:00,30279.34,30290.16,30257.21,30290.15,951.24663 +2023-04-16 11:00:00,30290.15,30321.6,30220.4,30226.45,811.54029 +2023-04-16 12:00:00,30226.46,30277.38,30219.71,30260.0,1275.93186 +2023-04-16 13:00:00,30260.01,30260.01,30160.4,30249.99,1329.34331 +2023-04-16 14:00:00,30249.99,30320.0,30245.01,30311.83,1142.12351 +2023-04-16 15:00:00,30311.83,30362.0,30300.0,30332.98,926.17659 +2023-04-16 16:00:00,30332.98,30335.0,30259.69,30335.0,1148.83322 +2023-04-16 17:00:00,30335.0,30379.62,30300.0,30300.0,1103.25031 +2023-04-16 18:00:00,30300.0,30480.0,30298.87,30478.43,1285.55073 +2023-04-16 19:00:00,30478.43,30549.99,30281.69,30309.06,3341.81382 +2023-04-16 20:00:00,30309.05,30407.98,30192.0,30343.04,2019.66236 +2023-04-16 21:00:00,30343.04,30390.0,30267.31,30385.62,1088.79818 +2023-04-16 22:00:00,30385.61,30404.82,30300.72,30331.04,932.60749 +2023-04-16 23:00:00,30331.03,30349.65,30245.0,30304.65,887.19999 +2023-04-17 00:00:00,30304.66,30316.06,29790.01,29842.86,6333.0212 +2023-04-17 01:00:00,29842.86,29993.89,29740.64,29946.22,3446.41352 +2023-04-17 02:00:00,29946.22,30101.31,29890.57,30020.0,2031.32353 +2023-04-17 03:00:00,30020.0,30040.64,29950.0,29982.8,1294.27878 +2023-04-17 04:00:00,29982.8,29985.27,29909.17,29981.18,1376.0461 +2023-04-17 05:00:00,29981.18,30007.56,29930.99,29997.89,1116.48376 +2023-04-17 06:00:00,29997.9,30004.33,29888.0,29901.28,1274.17615 +2023-04-17 07:00:00,29901.27,29940.0,29832.0,29838.3,1806.36891 +2023-04-17 08:00:00,29838.3,29919.15,29801.0,29918.1,2260.63657 +2023-04-17 09:00:00,29918.1,29922.5,29845.95,29876.97,1158.48993 +2023-04-17 10:00:00,29876.96,29888.88,29764.28,29884.66,3250.22082 +2023-04-17 11:00:00,29884.67,29889.16,29366.0,29570.81,5288.59201 +2023-04-17 12:00:00,29570.8,29593.14,29442.91,29529.85,4140.821 +2023-04-17 13:00:00,29529.86,29536.51,29250.0,29402.2,4553.82473 +2023-04-17 14:00:00,29402.2,29481.96,29356.75,29440.42,2451.69041 +2023-04-17 15:00:00,29440.41,29464.06,29240.65,29358.31,2604.126 +2023-04-17 16:00:00,29358.3,29480.0,29330.85,29464.43,2816.77871 +2023-04-17 17:00:00,29464.42,29527.26,29447.63,29462.67,1471.3224 +2023-04-17 18:00:00,29462.67,29572.0,29458.09,29524.97,1269.23421 +2023-04-17 19:00:00,29524.96,29580.17,29458.0,29467.24,1755.32231 +2023-04-17 20:00:00,29467.25,29492.8,29421.11,29443.75,1261.16452 +2023-04-17 21:00:00,29443.75,29471.97,29391.92,29452.22,1280.13898 +2023-04-17 22:00:00,29452.22,29536.93,29452.21,29502.28,1235.66661 +2023-04-17 23:00:00,29502.28,29510.6,29396.88,29430.27,965.67011 +2023-04-18 00:00:00,29430.27,29450.29,29280.01,29364.16,1357.21158 +2023-04-18 01:00:00,29364.16,29414.28,29096.78,29373.53,3579.77139 +2023-04-18 02:00:00,29373.53,29489.47,29373.52,29465.84,1471.03294 +2023-04-18 03:00:00,29465.83,29500.0,29442.54,29446.99,932.02903 +2023-04-18 04:00:00,29447.0,29506.76,29442.56,29494.69,881.6166 +2023-04-18 05:00:00,29494.7,29593.39,29494.69,29542.14,2113.51105 +2023-04-18 06:00:00,29542.15,29740.0,29542.14,29720.98,2778.52413 +2023-04-18 07:00:00,29720.98,29803.0,29672.87,29775.62,2229.71009 +2023-04-18 08:00:00,29775.61,29831.0,29693.1,29703.89,1858.73511 +2023-04-18 09:00:00,29703.89,29939.99,29700.0,29897.68,2742.65157 +2023-04-18 10:00:00,29897.69,29971.71,29868.03,29899.26,2365.16801 +2023-04-18 11:00:00,29899.26,30381.68,29888.9,30380.59,6974.54325 +2023-04-18 12:00:00,30380.59,30485.0,30279.8,30303.14,6137.65968 +2023-04-18 13:00:00,30303.14,30433.18,30282.63,30381.31,3427.7542 +2023-04-18 14:00:00,30381.32,30390.96,30118.41,30247.81,3658.98151 +2023-04-18 15:00:00,30247.81,30284.78,30099.37,30184.86,3044.05642 +2023-04-18 16:00:00,30184.85,30262.3,30158.33,30220.85,2014.91543 +2023-04-18 17:00:00,30220.85,30262.86,30014.14,30025.51,2404.49389 +2023-04-18 18:00:00,30025.51,30274.21,29945.58,30144.5,3991.73137 +2023-04-18 19:00:00,30144.5,30236.9,30100.0,30221.52,1565.78657 +2023-04-18 20:00:00,30221.53,30450.0,30150.0,30419.12,2205.65017 +2023-04-18 21:00:00,30419.12,30442.73,30278.79,30371.69,1582.56753 +2023-04-18 22:00:00,30371.68,30404.19,30295.23,30370.86,1240.30208 +2023-04-18 23:00:00,30370.85,30408.44,30305.66,30380.01,1446.49074 +2023-04-19 00:00:00,30380.01,30413.53,30282.95,30319.25,1436.64071 +2023-04-19 01:00:00,30319.25,30348.28,30223.12,30233.42,1379.54743 +2023-04-19 02:00:00,30233.42,30259.4,30126.0,30200.63,1707.51968 +2023-04-19 03:00:00,30200.63,30277.32,30172.59,30211.23,806.07798 +2023-04-19 04:00:00,30211.23,30237.69,30148.0,30202.57,1200.22448 +2023-04-19 05:00:00,30202.57,30325.51,30177.66,30268.27,1324.05811 +2023-04-19 06:00:00,30268.28,30272.77,30006.0,30008.13,2762.21584 +2023-04-19 07:00:00,30008.13,30124.21,29980.0,30077.76,2185.97001 +2023-04-19 08:00:00,30077.76,30077.76,29000.0,29168.47,19990.47095 +2023-04-19 09:00:00,29168.47,29327.21,29040.0,29200.57,5604.55168 +2023-04-19 10:00:00,29200.58,29286.64,29100.0,29257.26,3784.17349 +2023-04-19 11:00:00,29257.26,29333.0,29235.53,29310.65,3237.826 +2023-04-19 12:00:00,29310.64,29310.65,29185.0,29218.66,2601.083 +2023-04-19 13:00:00,29218.66,29333.0,29181.65,29333.0,2838.167 +2023-04-19 14:00:00,29333.0,29500.0,29330.66,29393.46,3885.91413 +2023-04-19 15:00:00,29393.46,29428.9,29100.0,29260.44,3660.78588 +2023-04-19 16:00:00,29260.43,29370.0,29240.01,29315.24,1921.49063 +2023-04-19 17:00:00,29315.24,29325.73,29080.0,29318.14,2569.77171 +2023-04-19 18:00:00,29318.14,29354.3,29220.01,29277.45,2641.42752 +2023-04-19 19:00:00,29277.46,29344.59,29200.0,29227.07,1770.30804 +2023-04-19 20:00:00,29227.06,29315.61,29147.27,29237.71,2565.25344 +2023-04-19 21:00:00,29237.71,29240.15,28813.88,29170.0,5027.35416 +2023-04-19 22:00:00,29169.99,29237.29,29036.95,29076.2,2055.79696 +2023-04-19 23:00:00,29076.2,29088.18,28520.0,28797.1,9618.85773 +2023-04-20 00:00:00,28797.1,28965.99,28650.58,28920.01,3614.1302 +2023-04-20 01:00:00,28920.01,29000.0,28838.47,28934.07,2361.7833 +2023-04-20 02:00:00,28934.07,28958.06,28716.08,28742.57,2107.11863 +2023-04-20 03:00:00,28742.58,28883.3,28549.0,28862.52,3246.80956 +2023-04-20 04:00:00,28862.51,28956.19,28845.71,28867.52,1912.27378 +2023-04-20 05:00:00,28867.52,28945.0,28818.8,28893.52,1414.49588 +2023-04-20 06:00:00,28893.53,29088.3,28893.52,28925.58,2449.48281 +2023-04-20 07:00:00,28925.58,28947.16,28852.17,28869.66,1893.31144 +2023-04-20 08:00:00,28869.66,28951.0,28729.0,28826.6,2350.40289 +2023-04-20 09:00:00,28826.61,28909.86,28822.13,28866.0,1363.64624 +2023-04-20 10:00:00,28866.0,28906.5,28778.57,28855.22,1473.59453 +2023-04-20 11:00:00,28855.23,28860.23,28590.0,28607.13,3549.75685 +2023-04-20 12:00:00,28607.12,28978.69,28334.0,28893.0,7438.34226 +2023-04-20 13:00:00,28892.99,28898.57,28715.92,28820.08,3350.80634 +2023-04-20 14:00:00,28820.07,28875.47,28676.0,28719.71,2495.42561 +2023-04-20 15:00:00,28719.72,28734.93,28440.66,28506.69,5174.16292 +2023-04-20 16:00:00,28506.7,28658.81,28260.0,28442.56,6633.85941 +2023-04-20 17:00:00,28442.56,28607.54,28351.86,28452.2,3438.6153 +2023-04-20 18:00:00,28452.21,28526.93,28280.96,28360.49,4310.02689 +2023-04-20 19:00:00,28360.48,28361.83,28010.0,28104.38,7082.27731 +2023-04-20 20:00:00,28104.38,28321.69,28012.0,28204.56,3169.97933 +2023-04-20 21:00:00,28204.57,28286.4,28160.0,28230.4,1941.54866 +2023-04-20 22:00:00,28230.41,28365.5,28177.42,28249.1,2370.0345 +2023-04-20 23:00:00,28249.1,28318.65,28183.97,28243.65,1737.20908 +2023-04-21 00:00:00,28243.65,28374.02,28090.0,28291.26,3415.68342 +2023-04-21 01:00:00,28291.25,28320.25,28192.08,28200.91,1276.31287 +2023-04-21 02:00:00,28200.91,28248.46,28136.63,28247.5,1207.44799 +2023-04-21 03:00:00,28247.49,28333.6,28239.99,28321.41,1237.03832 +2023-04-21 04:00:00,28321.42,28348.0,28226.38,28236.16,1161.5023 +2023-04-21 05:00:00,28236.15,28257.7,28154.73,28158.21,1526.07043 +2023-04-21 06:00:00,28158.22,28216.1,27815.89,27916.88,6833.1214 +2023-04-21 07:00:00,27916.87,28173.94,27839.31,28155.03,5443.96189 +2023-04-21 08:00:00,28155.02,28237.3,28015.71,28071.9,2847.93515 +2023-04-21 09:00:00,28071.89,28112.5,27967.09,28060.85,1945.42052 +2023-04-21 10:00:00,28060.85,28152.62,27936.8,28001.96,2090.75767 +2023-04-21 11:00:00,28001.96,28093.55,27919.69,28066.21,2602.24007 +2023-04-21 12:00:00,28066.22,28230.43,27962.65,28218.64,2969.54986 +2023-04-21 13:00:00,28218.65,28308.45,28091.99,28113.44,3281.46181 +2023-04-21 14:00:00,28113.44,28225.93,28034.64,28060.86,4046.91355 +2023-04-21 15:00:00,28060.87,28139.62,27985.45,28040.7,3797.57977 +2023-04-21 16:00:00,28040.7,28090.54,27951.9,28042.71,2704.97522 +2023-04-21 17:00:00,28042.71,28057.67,27777.01,27901.63,4241.81423 +2023-04-21 18:00:00,27901.64,27989.68,27712.75,27783.96,2900.94873 +2023-04-21 19:00:00,27783.97,27801.0,27184.54,27279.91,10931.37477 +2023-04-21 20:00:00,27279.9,27409.62,27166.0,27270.88,4637.26313 +2023-04-21 21:00:00,27270.87,27377.29,27233.63,27279.99,2197.73641 +2023-04-21 22:00:00,27279.99,27351.29,27125.0,27266.08,2829.16857 +2023-04-21 23:00:00,27266.07,27341.63,27199.39,27262.84,1558.48982 +2023-04-22 00:00:00,27262.84,27331.99,27217.16,27225.08,1442.87947 +2023-04-22 01:00:00,27225.07,27310.0,27140.35,27291.67,1655.94095 +2023-04-22 02:00:00,27291.66,27321.69,27233.71,27241.52,1145.58387 +2023-04-22 03:00:00,27241.53,27367.77,27235.89,27322.16,1165.77529 +2023-04-22 04:00:00,27322.15,27371.01,27303.0,27347.99,1012.84317 +2023-04-22 05:00:00,27347.98,27397.63,27308.0,27397.63,901.77648 +2023-04-22 06:00:00,27397.62,27397.63,27303.27,27346.5,1005.30401 +2023-04-22 07:00:00,27346.51,27351.94,27225.0,27277.76,1270.30835 +2023-04-22 08:00:00,27277.75,27308.07,27188.0,27211.42,1396.19901 +2023-04-22 09:00:00,27211.42,27271.67,27211.41,27239.06,982.92136 +2023-04-22 10:00:00,27239.07,27267.99,27184.24,27250.04,1412.45392 +2023-04-22 11:00:00,27250.05,27324.58,27238.85,27286.65,1059.79539 +2023-04-22 12:00:00,27286.65,27359.06,27283.18,27338.04,1257.98134 +2023-04-22 13:00:00,27338.05,27358.41,27231.0,27254.99,1009.81433 +2023-04-22 14:00:00,27255.0,27497.99,27244.56,27476.09,2045.92986 +2023-04-22 15:00:00,27476.1,27562.17,27382.07,27488.93,2552.36396 +2023-04-22 16:00:00,27488.93,27696.0,27484.63,27586.57,3396.20238 +2023-04-22 17:00:00,27586.56,27804.38,27567.6,27668.63,2231.92857 +2023-04-22 18:00:00,27668.62,27676.64,27523.67,27601.29,1421.94145 +2023-04-22 19:00:00,27601.3,27658.52,27586.32,27622.61,1339.45506 +2023-04-22 20:00:00,27622.61,27700.07,27622.61,27634.45,1098.6248 +2023-04-22 21:00:00,27634.45,27669.09,27566.91,27669.09,859.79273 +2023-04-22 22:00:00,27669.09,27875.06,27650.63,27853.28,3030.05028 +2023-04-22 23:00:00,27853.28,27882.72,27800.8,27816.85,1327.83083 +2023-04-23 00:00:00,27816.85,27816.85,27415.56,27541.8,2501.3931 +2023-04-23 01:00:00,27541.79,27661.97,27477.03,27551.15,1530.50343 +2023-04-23 02:00:00,27551.14,27600.0,27483.68,27592.02,1293.26362 +2023-04-23 03:00:00,27592.02,27643.57,27533.76,27557.84,1257.64328 +2023-04-23 04:00:00,27557.83,27627.44,27547.04,27605.82,819.7327 +2023-04-23 05:00:00,27605.82,27620.18,27531.85,27585.14,823.39319 +2023-04-23 06:00:00,27585.13,27624.95,27555.7,27588.14,824.30123 +2023-04-23 07:00:00,27588.15,27751.47,27550.83,27718.9,1605.49803 +2023-04-23 08:00:00,27718.89,27777.0,27669.27,27710.51,1412.67493 +2023-04-23 09:00:00,27710.51,27724.49,27587.09,27628.95,1035.90417 +2023-04-23 10:00:00,27628.95,27642.89,27482.79,27527.61,1501.22496 +2023-04-23 11:00:00,27527.61,27648.43,27508.57,27642.9,1239.70815 +2023-04-23 12:00:00,27642.89,27735.25,27589.44,27605.99,1109.95639 +2023-04-23 13:00:00,27605.99,27663.08,27572.55,27630.76,833.12852 +2023-04-23 14:00:00,27630.76,27680.03,27500.0,27552.51,1200.8758 +2023-04-23 15:00:00,27552.51,27576.92,27311.25,27474.47,2799.21877 +2023-04-23 16:00:00,27474.47,27689.83,27368.72,27584.42,2112.70555 +2023-04-23 17:00:00,27584.43,27632.31,27479.83,27512.97,1379.19108 +2023-04-23 18:00:00,27512.97,27543.49,27330.0,27455.7,3024.85463 +2023-04-23 19:00:00,27455.69,27526.81,27411.93,27465.77,1720.68657 +2023-04-23 20:00:00,27465.78,27546.83,27402.88,27504.62,1298.63819 +2023-04-23 21:00:00,27504.62,27552.76,27490.0,27517.83,1003.94838 +2023-04-23 22:00:00,27517.83,27642.03,27423.46,27591.73,1270.69427 +2023-04-23 23:00:00,27591.73,27650.28,27543.47,27590.6,1212.95687 +2023-04-24 00:00:00,27590.59,27871.69,27427.3,27807.49,2569.36143 +2023-04-24 01:00:00,27807.5,28000.0,27685.0,27752.48,3284.37771 +2023-04-24 02:00:00,27752.47,27827.53,27670.28,27745.17,1361.78446 +2023-04-24 03:00:00,27745.17,27791.91,27677.12,27790.48,962.81623 +2023-04-24 04:00:00,27790.49,27800.0,27696.12,27702.34,825.62724 +2023-04-24 05:00:00,27702.33,27758.48,27633.17,27654.83,1126.49058 +2023-04-24 06:00:00,27654.83,27703.85,27466.75,27546.68,1795.5999 +2023-04-24 07:00:00,27546.69,27546.69,27350.0,27451.97,2453.26895 +2023-04-24 08:00:00,27451.98,27519.74,27157.14,27185.75,3460.62961 +2023-04-24 09:00:00,27185.74,27373.21,27167.1,27313.1,2808.54974 +2023-04-24 10:00:00,27313.1,27436.13,27307.66,27418.91,2155.25764 +2023-04-24 11:00:00,27418.91,27553.24,27378.42,27550.84,1889.47225 +2023-04-24 12:00:00,27550.83,27580.0,27425.95,27443.85,1624.98406 +2023-04-24 13:00:00,27443.84,27720.57,27389.49,27624.25,3596.3464 +2023-04-24 14:00:00,27624.24,27700.0,27280.09,27430.19,3351.51898 +2023-04-24 15:00:00,27430.19,27431.78,27200.0,27267.05,2847.37861 +2023-04-24 16:00:00,27267.06,27394.52,27028.64,27110.55,3676.58845 +2023-04-24 17:00:00,27110.56,27409.46,26942.82,27381.49,4336.61496 +2023-04-24 18:00:00,27381.48,27579.8,27290.0,27339.9,2879.10149 +2023-04-24 19:00:00,27339.91,27416.15,27321.68,27383.29,1417.11356 +2023-04-24 20:00:00,27383.28,27483.0,27340.15,27460.44,1258.46075 +2023-04-24 21:00:00,27460.44,27460.45,27320.47,27414.64,913.66653 +2023-04-24 22:00:00,27414.64,27518.2,27382.6,27463.87,1111.74438 +2023-04-24 23:00:00,27463.86,27560.73,27443.58,27510.93,1404.81483 +2023-04-25 00:00:00,27510.93,27590.28,27432.01,27459.04,1950.66514 +2023-04-25 01:00:00,27459.04,27517.0,27368.86,27403.24,1156.19576 +2023-04-25 02:00:00,27403.25,27429.99,27321.58,27402.81,1172.92261 +2023-04-25 03:00:00,27402.82,27432.62,27313.74,27345.72,1030.2851 +2023-04-25 04:00:00,27345.71,27445.99,27331.41,27410.0,1077.2673 +2023-04-25 05:00:00,27409.99,27459.58,27320.5,27413.2,1013.74584 +2023-04-25 06:00:00,27413.2,27446.13,27345.39,27357.31,954.62036 +2023-04-25 07:00:00,27357.32,27405.25,27240.8,27266.54,2094.67771 +2023-04-25 08:00:00,27266.54,27443.63,27192.0,27430.87,2197.0758 +2023-04-25 09:00:00,27430.87,27441.84,27284.12,27323.0,1531.27719 +2023-04-25 10:00:00,27323.0,27350.56,27286.9,27331.01,1325.2978 +2023-04-25 11:00:00,27331.01,27434.28,27314.48,27390.96,1578.3257 +2023-04-25 12:00:00,27390.96,27478.5,27357.2,27394.26,1350.3665 +2023-04-25 13:00:00,27394.25,27482.71,27320.99,27344.62,2022.9015 +2023-04-25 14:00:00,27344.62,27396.84,27199.17,27294.69,3193.442 +2023-04-25 15:00:00,27294.68,27433.96,27272.69,27345.0,2280.89442 +2023-04-25 16:00:00,27345.0,27419.06,27316.2,27393.27,1431.54374 +2023-04-25 17:00:00,27393.27,27650.1,27320.0,27617.65,3270.74968 +2023-04-25 18:00:00,27617.66,27790.19,27553.3,27577.66,3442.00515 +2023-04-25 19:00:00,27577.66,27660.07,27478.22,27611.4,1985.17784 +2023-04-25 20:00:00,27611.39,28047.39,27611.01,27975.01,4887.03937 +2023-04-25 21:00:00,27975.01,28309.61,27975.01,28262.89,4911.51219 +2023-04-25 22:00:00,28262.89,28399.99,28195.6,28233.25,3690.05756 +2023-04-25 23:00:00,28233.26,28359.14,28161.54,28300.79,2777.10011 +2023-04-26 00:00:00,28300.8,28481.0,28266.17,28299.63,3774.55591 +2023-04-26 01:00:00,28299.63,28401.41,28244.62,28392.01,2394.90274 +2023-04-26 02:00:00,28392.02,28412.34,28345.45,28389.28,1499.4761 +2023-04-26 03:00:00,28389.28,28461.85,28306.01,28309.1,2125.51001 +2023-04-26 04:00:00,28309.09,28370.93,28301.05,28328.94,1683.21153 +2023-04-26 05:00:00,28328.94,28418.55,28328.94,28395.25,1620.98612 +2023-04-26 06:00:00,28395.26,28599.0,28339.51,28395.01,3017.67117 +2023-04-26 07:00:00,28395.0,28405.93,28314.4,28376.18,2119.61755 +2023-04-26 08:00:00,28376.19,28780.0,28371.99,28727.19,5826.88036 +2023-04-26 09:00:00,28727.19,28935.81,28683.83,28867.5,5370.7543 +2023-04-26 10:00:00,28867.5,29105.36,28779.75,28998.82,5922.80477 +2023-04-26 11:00:00,28998.81,29138.83,28858.57,28952.32,4217.81491 +2023-04-26 12:00:00,28952.31,30020.0,28952.31,29965.45,13638.2689 +2023-04-26 13:00:00,29965.45,30036.0,29652.9,29847.06,7792.00524 +2023-04-26 14:00:00,29847.07,29898.41,29524.55,29700.22,5051.65664 +2023-04-26 15:00:00,29700.22,29856.96,29680.02,29820.03,3075.64304 +2023-04-26 16:00:00,29820.02,29900.0,29731.45,29810.28,3475.2222 +2023-04-26 17:00:00,29810.27,29847.8,29650.0,29720.92,2212.73828 +2023-04-26 18:00:00,29720.92,29808.69,29708.67,29741.53,2550.409 +2023-04-26 19:00:00,29741.52,29741.53,27694.06,27884.24,19717.17915 +2023-04-26 20:00:00,27884.25,28420.9,27235.0,28413.39,17791.5633 +2023-04-26 21:00:00,28413.38,28704.23,28088.88,28677.65,6259.51455 +2023-04-26 22:00:00,28677.65,28739.99,28168.74,28298.25,5561.31019 +2023-04-26 23:00:00,28298.26,28454.29,28261.58,28415.29,2528.70807 +2023-04-27 00:00:00,28415.29,29480.5,28378.86,29225.54,10429.77342 +2023-04-27 01:00:00,29225.54,29343.35,28553.74,28741.72,6310.87368 +2023-04-27 02:00:00,28741.72,29107.66,28741.71,29034.33,3067.76253 +2023-04-27 03:00:00,29034.33,29050.0,28835.0,28885.79,2639.35104 +2023-04-27 04:00:00,28885.78,29153.0,28870.81,29096.12,2417.63213 +2023-04-27 05:00:00,29096.11,29278.88,29050.68,29083.11,2944.33528 +2023-04-27 06:00:00,29083.12,29096.54,28632.25,28793.3,4200.99453 +2023-04-27 07:00:00,28793.3,28956.62,28697.51,28893.83,2865.79785 +2023-04-27 08:00:00,28893.84,29094.75,28780.45,28955.43,3333.79914 +2023-04-27 09:00:00,28955.43,29035.08,28870.0,28931.71,2139.13542 +2023-04-27 10:00:00,28931.71,29035.91,28890.0,28990.77,2115.38753 +2023-04-27 11:00:00,28990.76,29139.85,28882.0,28934.21,3495.85771 +2023-04-27 12:00:00,28934.21,29054.46,28661.58,28862.13,4449.11458 +2023-04-27 13:00:00,28862.14,28960.26,28852.82,28936.32,2598.56701 +2023-04-27 14:00:00,28936.33,29090.0,28936.32,28974.54,3278.45454 +2023-04-27 15:00:00,28974.54,29555.0,28831.06,29149.73,7609.9048 +2023-04-27 16:00:00,29149.74,29215.79,29013.44,29129.75,2555.38866 +2023-04-27 17:00:00,29129.74,29443.43,29092.08,29296.14,3575.12046 +2023-04-27 18:00:00,29296.14,29890.0,29232.79,29772.12,8249.6833 +2023-04-27 19:00:00,29772.12,29858.19,29450.98,29673.98,6466.91243 +2023-04-27 20:00:00,29673.98,29754.99,29467.99,29619.3,3745.54785 +2023-04-27 21:00:00,29619.3,29783.15,29536.36,29647.07,2314.32416 +2023-04-27 22:00:00,29647.08,29664.01,29255.53,29385.2,2867.48447 +2023-04-27 23:00:00,29385.21,29499.99,29377.0,29472.77,1759.62179 +2023-04-28 00:00:00,29472.77,29563.01,29354.23,29554.25,2786.01141 +2023-04-28 01:00:00,29554.25,29599.54,29400.62,29516.32,2564.88307 +2023-04-28 02:00:00,29516.33,29544.38,29373.4,29395.89,1714.73543 +2023-04-28 03:00:00,29395.89,29436.61,29330.0,29420.52,2006.25839 +2023-04-28 04:00:00,29420.52,29540.0,29409.0,29501.91,1549.61107 +2023-04-28 05:00:00,29501.91,29566.92,29456.56,29473.95,1217.42424 +2023-04-28 06:00:00,29473.94,29516.01,29396.89,29467.12,2531.99159 +2023-04-28 07:00:00,29467.11,29522.0,29432.0,29488.83,2240.56841 +2023-04-28 08:00:00,29488.83,29495.34,29142.25,29251.98,3694.98203 +2023-04-28 09:00:00,29251.99,29301.13,29137.76,29199.44,1871.70574 +2023-04-28 10:00:00,29199.44,29348.09,29175.6,29262.33,1903.3994 +2023-04-28 11:00:00,29262.34,29324.83,29200.0,29235.36,2076.76213 +2023-04-28 12:00:00,29235.36,29467.36,29186.67,29229.29,3220.79504 +2023-04-28 13:00:00,29229.28,29357.92,28891.0,29029.48,4727.52321 +2023-04-28 14:00:00,29029.49,29301.45,29003.24,29096.69,4044.37036 +2023-04-28 15:00:00,29096.69,29175.9,28938.1,29146.89,4061.39296 +2023-04-28 16:00:00,29146.88,29300.0,29101.28,29273.42,2328.58528 +2023-04-28 17:00:00,29273.42,29286.35,29144.28,29239.36,1800.77456 +2023-04-28 18:00:00,29239.37,29255.4,29120.0,29242.66,1363.63262 +2023-04-28 19:00:00,29242.67,29437.81,29242.66,29328.53,2546.56049 +2023-04-28 20:00:00,29328.53,29408.35,29298.47,29338.01,1281.58493 +2023-04-28 21:00:00,29338.0,29366.53,29303.28,29328.6,939.15429 +2023-04-28 22:00:00,29328.61,29429.36,29322.97,29345.34,1042.96903 +2023-04-28 23:00:00,29345.35,29391.25,29276.75,29311.7,782.4901 +2023-04-29 00:00:00,29311.69,29400.0,29195.58,29262.02,1261.41857 +2023-04-29 01:00:00,29262.03,29299.0,29215.37,29272.64,651.5558 +2023-04-29 02:00:00,29272.65,29396.55,29270.76,29374.87,1484.51966 +2023-04-29 03:00:00,29374.88,29397.59,29338.93,29345.74,869.26881 +2023-04-29 04:00:00,29345.75,29448.88,29342.0,29372.66,932.95637 +2023-04-29 05:00:00,29372.67,29431.63,29353.27,29356.03,710.46063 +2023-04-29 06:00:00,29356.03,29382.09,29289.44,29328.64,808.31293 +2023-04-29 07:00:00,29328.64,29369.07,29294.65,29345.54,1033.64771 +2023-04-29 08:00:00,29345.54,29360.0,29272.16,29313.87,939.33085 +2023-04-29 09:00:00,29313.86,29316.59,29250.96,29298.84,921.57047 +2023-04-29 10:00:00,29298.85,29309.4,29241.55,29267.56,612.08756 +2023-04-29 11:00:00,29267.56,29334.63,29234.39,29332.11,758.00605 +2023-04-29 12:00:00,29332.11,29340.0,29281.36,29281.37,563.46249 +2023-04-29 13:00:00,29281.37,29391.52,29281.29,29384.1,1035.66831 +2023-04-29 14:00:00,29384.1,29393.39,29325.34,29336.06,1170.00584 +2023-04-29 15:00:00,29336.05,29345.72,29210.24,29271.21,850.1386 +2023-04-29 16:00:00,29271.21,29300.0,29244.88,29281.78,606.55339 +2023-04-29 17:00:00,29281.78,29281.78,29031.0,29155.24,1712.45335 +2023-04-29 18:00:00,29155.24,29218.29,29128.84,29176.0,701.71618 +2023-04-29 19:00:00,29176.0,29309.05,29165.08,29240.67,857.26192 +2023-04-29 20:00:00,29240.68,29265.0,29201.11,29221.43,489.29953 +2023-04-29 21:00:00,29221.44,29256.51,29171.46,29230.0,513.58947 +2023-04-29 22:00:00,29229.99,29236.73,29181.15,29200.65,432.48567 +2023-04-29 23:00:00,29200.66,29241.72,29138.25,29230.45,551.06042 +2023-04-30 00:00:00,29230.45,29230.49,29120.43,29136.0,523.0232 +2023-04-30 01:00:00,29136.01,29168.46,29086.28,29096.99,731.24722 +2023-04-30 02:00:00,29097.0,29180.0,29079.59,29176.96,668.42154 +2023-04-30 03:00:00,29176.95,29190.45,29143.81,29178.87,419.57601 +2023-04-30 04:00:00,29178.88,29217.17,29171.22,29210.61,403.79509 +2023-04-30 05:00:00,29210.62,29265.0,29205.65,29258.49,570.39702 +2023-04-30 06:00:00,29258.49,29281.18,29239.14,29271.38,620.9846 +2023-04-30 07:00:00,29271.39,29295.96,29264.82,29266.43,516.15781 +2023-04-30 08:00:00,29266.43,29348.31,29242.09,29269.99,843.85753 +2023-04-30 09:00:00,29270.0,29283.19,29223.73,29258.6,518.10814 +2023-04-30 10:00:00,29258.61,29315.0,29178.56,29221.93,804.89913 +2023-04-30 11:00:00,29221.92,29252.32,29160.53,29197.01,619.01934 +2023-04-30 12:00:00,29197.02,29249.97,29182.74,29238.2,576.09554 +2023-04-30 13:00:00,29238.2,29330.14,29237.29,29292.51,835.42103 +2023-04-30 14:00:00,29292.51,29436.49,29255.0,29395.01,1565.14928 +2023-04-30 15:00:00,29395.01,29969.39,29395.0,29655.18,9796.04173 +2023-04-30 16:00:00,29655.18,29870.22,29620.3,29717.55,3786.44264 +2023-04-30 17:00:00,29717.55,29825.41,29644.36,29644.37,1762.97632 +2023-04-30 18:00:00,29644.37,29671.69,29513.0,29577.09,2321.52808 +2023-04-30 19:00:00,29577.09,29594.35,29211.28,29361.13,4599.07143 +2023-04-30 20:00:00,29361.13,29361.13,29160.96,29329.89,2919.70607 +2023-04-30 21:00:00,29329.9,29486.5,29316.39,29411.21,1700.77908 +2023-04-30 22:00:00,29411.21,29432.15,29367.15,29378.72,784.42099 +2023-04-30 23:00:00,29378.72,29420.23,29177.92,29233.21,1865.41838 +2023-05-01 00:00:00,29233.2,29337.34,29215.93,29315.57,1884.84043 +2023-05-01 01:00:00,29315.57,29315.57,28369.95,28504.36,7975.68782 +2023-05-01 02:00:00,28504.36,28680.38,28414.0,28549.41,4047.55713 +2023-05-01 03:00:00,28549.42,28592.95,28436.27,28561.06,2058.7653 +2023-05-01 04:00:00,28561.07,28589.84,28486.29,28555.0,1378.42285 +2023-05-01 05:00:00,28555.01,28635.53,28250.15,28483.68,3283.4505 +2023-05-01 06:00:00,28483.68,28598.05,28447.21,28594.34,1656.2594 +2023-05-01 07:00:00,28594.34,28713.94,28577.52,28629.09,2275.10997 +2023-05-01 08:00:00,28629.08,28631.96,28550.1,28574.45,1443.35753 +2023-05-01 09:00:00,28574.45,28670.1,28500.0,28524.98,1319.00148 +2023-05-01 10:00:00,28524.99,28561.39,28487.42,28552.43,958.59903 +2023-05-01 11:00:00,28552.42,28591.63,28504.63,28523.86,1118.82922 +2023-05-01 12:00:00,28523.85,28610.26,28452.25,28596.32,1527.608 +2023-05-01 13:00:00,28596.32,28629.42,28442.58,28457.84,1381.12291 +2023-05-01 14:00:00,28457.84,28573.57,28311.11,28473.3,2883.79202 +2023-05-01 15:00:00,28473.31,28488.31,28075.36,28170.64,6264.40389 +2023-05-01 16:00:00,28170.64,28388.16,28014.5,28360.8,3765.71997 +2023-05-01 17:00:00,28360.8,28410.95,28167.44,28278.22,1990.6303 +2023-05-01 18:00:00,28278.21,28292.15,28090.71,28173.83,1658.95991 +2023-05-01 19:00:00,28173.83,28190.25,27799.99,27843.36,6753.52126 +2023-05-01 20:00:00,27843.35,27964.48,27666.95,27678.09,3290.79657 +2023-05-01 21:00:00,27678.09,28085.81,27672.86,27985.46,2043.35856 +2023-05-01 22:00:00,27985.46,28159.26,27940.0,28020.01,1962.47535 +2023-05-01 23:00:00,28020.0,28144.49,28009.36,28068.26,1511.39018 +2023-05-02 00:00:00,28068.26,28145.6,27978.11,28050.42,1830.29425 +2023-05-02 01:00:00,28050.42,28092.61,27918.49,27942.87,1287.16353 +2023-05-02 02:00:00,27942.86,28035.98,27925.74,28008.52,1085.71012 +2023-05-02 03:00:00,28008.53,28046.52,27931.43,28043.76,931.28339 +2023-05-02 04:00:00,28043.75,28046.52,27918.45,27927.69,875.74443 +2023-05-02 05:00:00,27927.68,28015.0,27872.0,28000.01,1023.80797 +2023-05-02 06:00:00,28000.0,28035.02,27967.13,27999.1,844.57677 +2023-05-02 07:00:00,27999.1,28164.55,27992.84,28057.47,1493.66088 +2023-05-02 08:00:00,28057.47,28133.33,28014.06,28028.54,1472.12476 +2023-05-02 09:00:00,28028.55,28069.2,27939.4,27983.2,1476.82599 +2023-05-02 10:00:00,27983.21,28045.72,27967.56,28016.52,1027.43936 +2023-05-02 11:00:00,28016.53,28098.59,28012.9,28084.83,1064.03684 +2023-05-02 12:00:00,28084.83,28250.0,28004.53,28106.95,1987.05382 +2023-05-02 13:00:00,28106.94,28141.0,27936.26,28009.07,1962.38719 +2023-05-02 14:00:00,28009.07,28629.93,27910.0,28374.22,9106.02335 +2023-05-02 15:00:00,28374.22,28767.08,28263.7,28540.68,7079.13957 +2023-05-02 16:00:00,28540.69,28614.45,28444.3,28468.58,2584.05309 +2023-05-02 17:00:00,28468.58,28594.58,28431.48,28583.52,1660.93542 +2023-05-02 18:00:00,28583.53,28811.98,28537.19,28718.9,2684.15827 +2023-05-02 19:00:00,28718.9,28879.88,28655.66,28686.14,3394.53773 +2023-05-02 20:00:00,28686.13,28788.99,28622.44,28675.98,1833.48542 +2023-05-02 21:00:00,28675.98,28693.66,28616.08,28660.46,834.82841 +2023-05-02 22:00:00,28660.45,28815.43,28651.99,28736.91,1996.34648 +2023-05-02 23:00:00,28736.91,28770.18,28625.19,28669.86,1288.90536 +2023-05-03 00:00:00,28669.85,28689.35,28488.17,28503.72,2005.37832 +2023-05-03 01:00:00,28503.71,28594.56,28489.42,28542.06,1372.22488 +2023-05-03 02:00:00,28542.06,28543.9,28336.3,28508.62,1731.62909 +2023-05-03 03:00:00,28508.62,28538.3,28444.13,28520.9,945.1496 +2023-05-03 04:00:00,28520.89,28525.24,28428.61,28514.99,953.77599 +2023-05-03 05:00:00,28514.99,28524.12,28452.1,28477.19,874.38274 +2023-05-03 06:00:00,28477.2,28680.0,28427.56,28600.02,2073.85163 +2023-05-03 07:00:00,28600.02,28674.69,28582.44,28653.8,1406.01574 +2023-05-03 08:00:00,28653.81,28767.93,28589.0,28691.21,1885.69026 +2023-05-03 09:00:00,28691.21,28696.78,28602.54,28665.36,1196.99083 +2023-05-03 10:00:00,28665.37,28678.23,28557.16,28573.49,1510.2601 +2023-05-03 11:00:00,28573.49,28646.43,28526.18,28543.74,1510.8684 +2023-05-03 12:00:00,28543.73,28583.33,28207.61,28306.53,4857.55836 +2023-05-03 13:00:00,28306.53,28400.0,28128.31,28373.55,4086.10572 +2023-05-03 14:00:00,28373.55,28384.69,28113.69,28215.86,2876.4678 +2023-05-03 15:00:00,28215.86,28347.29,28152.46,28311.51,1861.78483 +2023-05-03 16:00:00,28311.52,28488.0,28247.41,28476.96,2382.78705 +2023-05-03 17:00:00,28476.96,28780.0,28380.0,28576.7,4679.85417 +2023-05-03 18:00:00,28576.7,28800.0,28218.65,28444.29,8652.90108 +2023-05-03 19:00:00,28444.29,28507.82,28211.08,28322.98,3400.7739 +2023-05-03 20:00:00,28322.97,28577.21,28285.19,28518.72,1994.26637 +2023-05-03 21:00:00,28518.71,29057.62,28517.71,28923.52,5633.43575 +2023-05-03 22:00:00,28923.53,29266.66,28923.52,29107.13,4541.42253 +2023-05-03 23:00:00,29107.13,29143.47,28941.44,29026.16,2182.21699 +2023-05-04 00:00:00,29026.16,29104.27,28950.98,29043.94,1804.91666 +2023-05-04 01:00:00,29043.93,29078.75,28975.0,29070.67,1325.13559 +2023-05-04 02:00:00,29070.67,29195.94,28991.35,29060.61,1746.59499 +2023-05-04 03:00:00,29060.6,29100.0,29016.78,29096.86,1146.74487 +2023-05-04 04:00:00,29096.85,29130.0,29064.31,29102.33,1170.15303 +2023-05-04 05:00:00,29102.32,29215.9,29057.82,29203.9,1750.90189 +2023-05-04 06:00:00,29203.9,29237.73,29090.56,29166.72,1440.65079 +2023-05-04 07:00:00,29166.72,29177.46,29038.31,29058.19,1492.85404 +2023-05-04 08:00:00,29058.2,29110.45,28982.58,29089.26,1138.34053 +2023-05-04 09:00:00,29089.26,29109.65,29035.26,29088.97,936.80424 +2023-05-04 10:00:00,29088.98,29379.83,29065.23,29243.62,3163.68955 +2023-05-04 11:00:00,29243.62,29264.48,29111.06,29154.66,1563.3488 +2023-05-04 12:00:00,29154.65,29232.87,28982.91,29054.84,2830.09226 +2023-05-04 13:00:00,29054.85,29086.33,28663.64,28761.51,6069.57723 +2023-05-04 14:00:00,28761.52,28938.54,28736.33,28783.65,3061.58107 +2023-05-04 15:00:00,28783.66,28949.66,28774.58,28866.19,1960.27071 +2023-05-04 16:00:00,28866.2,28972.92,28795.01,28924.82,1891.09912 +2023-05-04 17:00:00,28924.83,28957.64,28792.0,28842.29,1362.28084 +2023-05-04 18:00:00,28842.29,28855.42,28673.59,28799.23,2039.99627 +2023-05-04 19:00:00,28799.23,28897.22,28723.08,28895.12,1511.57239 +2023-05-04 20:00:00,28895.31,28920.0,28816.48,28870.16,973.21274 +2023-05-04 21:00:00,28870.16,28895.28,28784.25,28839.98,697.03944 +2023-05-04 22:00:00,28839.98,28852.17,28748.0,28779.9,865.66577 +2023-05-04 23:00:00,28779.91,28856.51,28770.34,28838.16,632.95219 +2023-05-05 00:00:00,28838.16,28961.21,28819.77,28937.63,1340.11631 +2023-05-05 01:00:00,28937.62,29349.0,28880.03,29325.74,4167.38231 +2023-05-05 02:00:00,29325.75,29531.0,29200.0,29246.26,4145.20483 +2023-05-05 03:00:00,29246.27,29295.09,29144.44,29198.23,2294.6153 +2023-05-05 04:00:00,29198.22,29275.0,29179.81,29228.08,2306.77755 +2023-05-05 05:00:00,29228.08,29258.77,29157.56,29198.0,903.49186 +2023-05-05 06:00:00,29198.01,29230.87,29125.01,29163.8,1263.33509 +2023-05-05 07:00:00,29163.79,29241.42,29029.87,29062.29,2549.32065 +2023-05-05 08:00:00,29062.29,29118.46,29036.31,29058.0,1334.10952 +2023-05-05 09:00:00,29058.01,29141.14,29022.27,29101.0,1102.3445 +2023-05-05 10:00:00,29100.99,29137.99,29069.23,29110.68,1405.20482 +2023-05-05 11:00:00,29110.67,29195.97,29069.06,29149.36,1464.64879 +2023-05-05 12:00:00,29149.36,29274.23,28800.0,28952.39,5909.8738 +2023-05-05 13:00:00,28952.38,29254.41,28897.31,29175.57,3546.70158 +2023-05-05 14:00:00,29175.57,29439.99,29113.42,29259.19,4620.42913 +2023-05-05 15:00:00,29259.2,29371.68,29159.25,29356.45,2596.07815 +2023-05-05 16:00:00,29356.44,29677.0,29356.44,29586.93,6285.16295 +2023-05-05 17:00:00,29586.94,29677.0,29454.24,29460.39,2591.87894 +2023-05-05 18:00:00,29460.39,29562.01,29315.78,29399.16,2531.69332 +2023-05-05 19:00:00,29399.16,29561.66,29374.95,29561.66,1653.74073 +2023-05-05 20:00:00,29561.66,29588.04,29450.69,29493.12,1403.86794 +2023-05-05 21:00:00,29493.13,29545.32,29453.27,29486.78,912.46159 +2023-05-05 22:00:00,29486.79,29650.0,29475.58,29589.73,1200.48174 +2023-05-05 23:00:00,29589.73,29599.18,29475.35,29505.61,886.90908 +2023-05-06 00:00:00,29505.6,29820.0,29475.37,29671.11,2876.15709 +2023-05-06 01:00:00,29671.12,29689.05,29491.9,29541.39,1775.51947 +2023-05-06 02:00:00,29541.38,29550.39,29435.13,29463.76,1344.01472 +2023-05-06 03:00:00,29463.77,29466.76,29337.83,29353.61,2321.96356 +2023-05-06 04:00:00,29353.62,29427.61,29317.08,29343.31,1068.49294 +2023-05-06 05:00:00,29343.3,29385.18,29333.05,29346.99,695.91934 +2023-05-06 06:00:00,29346.99,29388.56,29250.65,29386.17,1516.70255 +2023-05-06 07:00:00,29386.18,29437.01,29362.5,29363.35,963.10696 +2023-05-06 08:00:00,29363.34,29367.2,29132.14,29330.12,2790.29274 +2023-05-06 09:00:00,29330.12,29356.47,29280.0,29285.06,832.71111 +2023-05-06 10:00:00,29285.05,29327.71,29207.11,29238.57,2393.13084 +2023-05-06 11:00:00,29238.58,29271.33,29200.01,29266.15,1206.86805 +2023-05-06 12:00:00,29266.16,29267.24,29000.0,29096.85,3078.70455 +2023-05-06 13:00:00,29096.85,29096.86,28863.89,28935.84,3700.88519 +2023-05-06 14:00:00,28935.84,28935.85,28526.67,28606.61,7001.35513 +2023-05-06 15:00:00,28606.62,28633.01,28300.0,28576.61,4139.09764 +2023-05-06 16:00:00,28576.62,28713.83,28535.26,28701.53,2349.37683 +2023-05-06 17:00:00,28701.53,28843.85,28669.48,28771.89,2266.81704 +2023-05-06 18:00:00,28771.89,28964.0,28770.44,28912.43,1999.33159 +2023-05-06 19:00:00,28912.43,28964.68,28840.5,28842.82,1207.70007 +2023-05-06 20:00:00,28842.82,28870.0,28774.57,28795.89,1131.18229 +2023-05-06 21:00:00,28795.9,28824.41,28642.0,28807.43,1069.95354 +2023-05-06 22:00:00,28807.43,28858.72,28758.44,28835.12,818.91273 +2023-05-06 23:00:00,28835.11,28880.49,28809.23,28848.2,701.08862 +2023-05-07 00:00:00,28848.19,28956.3,28791.85,28942.72,1392.95929 +2023-05-07 01:00:00,28942.73,29138.29,28814.48,28887.79,2426.74865 +2023-05-07 02:00:00,28887.78,28945.48,28813.82,28816.2,1040.8691 +2023-05-07 03:00:00,28816.2,28845.63,28744.08,28798.56,1362.29961 +2023-05-07 04:00:00,28798.57,28853.28,28787.02,28840.03,669.57948 +2023-05-07 05:00:00,28840.03,28911.05,28824.88,28890.0,1109.88261 +2023-05-07 06:00:00,28890.0,28936.0,28851.78,28914.55,1097.17087 +2023-05-07 07:00:00,28914.56,28952.56,28892.04,28910.41,691.54569 +2023-05-07 08:00:00,28910.42,28960.03,28843.76,28857.06,902.62875 +2023-05-07 09:00:00,28857.06,28890.77,28757.38,28815.77,1225.04533 +2023-05-07 10:00:00,28815.77,28863.75,28794.89,28847.74,746.11679 +2023-05-07 11:00:00,28847.74,28919.41,28705.12,28840.06,1399.44636 +2023-05-07 12:00:00,28840.07,28940.0,28840.0,28919.07,820.69884 +2023-05-07 13:00:00,28919.06,28989.99,28884.65,28920.0,1231.7798 +2023-05-07 14:00:00,28920.0,29095.88,28884.44,29045.71,1954.60978 +2023-05-07 15:00:00,29045.71,29053.21,28900.99,28942.67,1282.23253 +2023-05-07 16:00:00,28942.66,28973.09,28807.0,28953.65,1401.91519 +2023-05-07 17:00:00,28953.64,29029.11,28877.55,28904.56,1073.87189 +2023-05-07 18:00:00,28904.56,28954.99,28857.49,28857.62,724.37308 +2023-05-07 19:00:00,28857.5,28930.29,28770.69,28907.73,1057.53936 +2023-05-07 20:00:00,28907.73,28949.34,28885.09,28912.07,780.08677 +2023-05-07 21:00:00,28912.08,28952.87,28750.0,28772.83,938.38589 +2023-05-07 22:00:00,28772.84,28840.86,28716.0,28739.22,1046.31616 +2023-05-07 23:00:00,28739.22,28792.19,28395.23,28430.1,3627.30846 +2023-05-08 00:00:00,28430.09,28631.01,28357.7,28572.17,3090.48598 +2023-05-08 01:00:00,28572.17,28587.77,28034.34,28220.34,6092.20654 +2023-05-08 02:00:00,28220.35,28302.08,28129.74,28284.98,2966.43174 +2023-05-08 03:00:00,28284.98,28284.98,28004.23,28199.71,2709.99534 +2023-05-08 04:00:00,28199.72,28227.01,28112.79,28125.0,1519.54643 +2023-05-08 05:00:00,28125.01,28262.19,28075.24,28260.47,1588.77487 +2023-05-08 06:00:00,28260.46,28260.47,28124.39,28170.75,1843.76649 +2023-05-08 07:00:00,28170.74,28192.12,27830.85,27975.48,3437.96235 +2023-05-08 08:00:00,27975.47,27989.11,27577.01,27704.94,5210.60203 +2023-05-08 09:00:00,27704.95,27937.5,27680.0,27914.94,3757.37919 +2023-05-08 10:00:00,27914.94,27951.75,27868.82,27936.14,1899.42493 +2023-05-08 11:00:00,27936.14,27973.44,27870.27,27934.09,1669.58348 +2023-05-08 12:00:00,27934.09,27942.48,27747.41,27766.81,2751.68104 +2023-05-08 13:00:00,27766.82,27971.79,27732.23,27855.78,2647.0181 +2023-05-08 14:00:00,27855.78,27980.0,27669.5,27970.53,2902.98597 +2023-05-08 15:00:00,27970.53,28082.14,27857.34,27887.58,2963.51087 +2023-05-08 16:00:00,27887.58,27930.21,27833.58,27867.2,1433.93484 +2023-05-08 17:00:00,27867.21,27908.93,27523.0,27530.0,3057.90883 +2023-05-08 18:00:00,27530.0,27613.74,27310.07,27475.26,7288.67063 +2023-05-08 19:00:00,27475.26,27498.35,27289.39,27340.72,3607.05921 +2023-05-08 20:00:00,27340.72,27550.88,27262.0,27534.91,2328.5547 +2023-05-08 21:00:00,27534.92,27656.53,27421.07,27541.41,1380.56464 +2023-05-08 22:00:00,27541.41,27660.88,27528.35,27653.09,1118.20371 +2023-05-08 23:00:00,27653.09,27699.8,27584.47,27668.79,978.10988 +2023-05-09 00:00:00,27668.8,27668.89,27534.55,27578.26,1189.99499 +2023-05-09 01:00:00,27578.27,27749.34,27560.85,27701.39,1798.12786 +2023-05-09 02:00:00,27701.4,27701.4,27564.24,27641.55,1874.75734 +2023-05-09 03:00:00,27641.54,27648.91,27543.97,27629.34,1202.22229 +2023-05-09 04:00:00,27629.35,27649.43,27565.71,27608.96,994.53351 +2023-05-09 05:00:00,27608.96,27618.0,27512.36,27549.7,1904.4388 +2023-05-09 06:00:00,27549.7,27588.88,27437.32,27547.76,1801.85844 +2023-05-09 07:00:00,27547.76,27673.72,27506.29,27666.64,1583.32311 +2023-05-09 08:00:00,27666.63,27670.23,27550.94,27569.87,1667.22167 +2023-05-09 09:00:00,27569.87,27598.47,27534.93,27579.99,1316.57758 +2023-05-09 10:00:00,27580.0,27651.22,27553.38,27584.56,1353.14931 +2023-05-09 11:00:00,27584.56,27728.99,27517.7,27678.31,1759.03352 +2023-05-09 12:00:00,27678.31,27815.8,27644.99,27758.34,2512.30701 +2023-05-09 13:00:00,27758.35,27818.0,27556.8,27619.3,2263.23396 +2023-05-09 14:00:00,27619.31,27631.72,27402.94,27540.31,3234.06108 +2023-05-09 15:00:00,27540.32,27584.48,27370.01,27400.39,2511.96687 +2023-05-09 16:00:00,27400.39,27700.0,27353.0,27699.14,2737.81688 +2023-05-09 17:00:00,27699.15,27750.0,27566.41,27614.43,1632.90241 +2023-05-09 18:00:00,27614.43,27680.1,27520.0,27556.34,1543.81599 +2023-05-09 19:00:00,27556.35,27719.85,27464.9,27716.32,1691.92608 +2023-05-09 20:00:00,27716.32,27775.18,27606.09,27649.22,1464.7329 +2023-05-09 21:00:00,27649.21,27658.53,27579.72,27602.74,693.08567 +2023-05-09 22:00:00,27602.74,27608.16,27521.49,27579.61,837.28188 +2023-05-09 23:00:00,27579.6,27659.59,27577.7,27628.27,544.94154 +2023-05-10 00:00:00,27628.28,27786.01,27620.19,27747.06,1554.71882 +2023-05-10 01:00:00,27747.07,27849.94,27670.23,27697.98,1250.47622 +2023-05-10 02:00:00,27697.98,27741.56,27651.8,27671.74,1151.72966 +2023-05-10 03:00:00,27671.74,27724.0,27660.0,27685.29,1537.15797 +2023-05-10 04:00:00,27685.29,27691.88,27647.56,27689.78,926.08944 +2023-05-10 05:00:00,27689.78,27720.97,27652.54,27655.55,845.1032 +2023-05-10 06:00:00,27655.55,27655.56,27580.0,27628.27,1268.16173 +2023-05-10 07:00:00,27628.27,27631.39,27529.88,27542.26,1127.20242 +2023-05-10 08:00:00,27542.26,27597.74,27474.91,27572.48,1438.10754 +2023-05-10 09:00:00,27572.47,27607.38,27537.0,27577.7,847.93871 +2023-05-10 10:00:00,27577.69,27614.53,27536.4,27590.09,977.20685 +2023-05-10 11:00:00,27590.09,27679.1,27590.09,27677.09,1078.03722 +2023-05-10 12:00:00,27677.08,28183.92,27635.81,28175.28,8888.81305 +2023-05-10 13:00:00,28175.27,28331.42,28033.27,28169.76,5846.21294 +2023-05-10 14:00:00,28169.76,28254.91,28053.07,28089.31,2939.04101 +2023-05-10 15:00:00,28089.3,28227.95,28077.28,28153.2,2498.96113 +2023-05-10 16:00:00,28153.21,28299.15,28145.79,28182.17,2765.3531 +2023-05-10 17:00:00,28182.18,28218.88,26777.0,27498.72,17856.79677 +2023-05-10 18:00:00,27498.73,27539.57,27355.09,27432.18,3179.80461 +2023-05-10 19:00:00,27432.18,27790.49,27411.72,27692.26,3879.56771 +2023-05-10 20:00:00,27692.27,27982.23,27652.68,27857.22,3083.71356 +2023-05-10 21:00:00,27857.22,27868.4,27219.0,27508.57,3481.95503 +2023-05-10 22:00:00,27508.57,27699.0,27490.62,27670.34,1448.78244 +2023-05-10 23:00:00,27670.35,27723.99,27572.85,27598.75,1284.18242 +2023-05-11 00:00:00,27598.74,27622.68,27426.99,27515.09,1631.16638 +2023-05-11 01:00:00,27515.09,27579.67,27474.21,27554.12,960.18361 +2023-05-11 02:00:00,27554.12,27577.82,27498.48,27503.66,994.183 +2023-05-11 03:00:00,27503.66,27503.66,27367.76,27446.9,2165.81389 +2023-05-11 04:00:00,27446.9,27494.99,27395.88,27493.55,1031.82105 +2023-05-11 05:00:00,27493.56,27536.96,27422.03,27528.85,996.91245 +2023-05-11 06:00:00,27528.86,27536.18,27457.3,27504.52,922.87647 +2023-05-11 07:00:00,27504.53,27553.21,27416.02,27450.07,1116.63395 +2023-05-11 08:00:00,27450.07,27450.07,27257.98,27390.46,2204.99244 +2023-05-11 09:00:00,27390.47,27448.95,27345.07,27417.47,1277.08676 +2023-05-11 10:00:00,27417.47,27490.29,27408.93,27459.86,964.14628 +2023-05-11 11:00:00,27459.87,27482.56,27375.02,27405.61,918.71881 +2023-05-11 12:00:00,27405.62,27630.14,27300.82,27399.0,3105.5244 +2023-05-11 13:00:00,27399.0,27494.94,27099.98,27206.61,3882.50831 +2023-05-11 14:00:00,27206.62,27343.37,26952.0,27121.19,4296.13557 +2023-05-11 15:00:00,27121.19,27223.81,27046.49,27179.42,2869.6044 +2023-05-11 16:00:00,27179.43,27219.52,27097.25,27129.17,2346.59703 +2023-05-11 17:00:00,27129.17,27148.58,26742.9,26907.28,5876.68371 +2023-05-11 18:00:00,26907.27,26993.19,26770.26,26963.73,2873.47032 +2023-05-11 19:00:00,26963.74,27055.0,26702.05,26843.05,2471.46579 +2023-05-11 20:00:00,26843.06,27037.61,26807.22,26996.18,1419.53922 +2023-05-11 21:00:00,26996.17,27060.47,26941.51,26977.99,821.53189 +2023-05-11 22:00:00,26978.0,27056.44,26900.0,26903.81,1043.33136 +2023-05-11 23:00:00,26903.8,27056.18,26820.0,26968.62,1444.38656 +2023-05-12 00:00:00,26968.61,27042.96,26922.54,27033.78,1095.41646 +2023-05-12 01:00:00,27033.78,27091.12,26850.0,26878.48,1558.83797 +2023-05-12 02:00:00,26878.48,26889.99,26539.28,26646.7,3672.2498 +2023-05-12 03:00:00,26646.7,26707.96,26528.01,26584.32,3288.95433 +2023-05-12 04:00:00,26584.33,26710.0,26513.18,26654.19,2925.73321 +2023-05-12 05:00:00,26654.19,26667.89,26177.0,26276.67,5076.54058 +2023-05-12 06:00:00,26276.68,26318.62,26120.74,26299.75,4904.76776 +2023-05-12 07:00:00,26299.74,26390.14,26265.18,26311.52,3057.22916 +2023-05-12 08:00:00,26311.51,26374.99,26234.79,26289.12,1829.06985 +2023-05-12 09:00:00,26289.12,26437.0,26289.12,26380.93,2189.28699 +2023-05-12 10:00:00,26380.92,26430.22,26334.17,26343.27,1311.8232 +2023-05-12 11:00:00,26343.28,26423.26,26322.01,26348.01,1097.83791 +2023-05-12 12:00:00,26348.02,26486.48,26324.02,26412.22,1965.6531 +2023-05-12 13:00:00,26412.23,26556.96,26358.89,26450.0,2481.73655 +2023-05-12 14:00:00,26450.0,26614.67,26292.1,26313.85,3958.98542 +2023-05-12 15:00:00,26313.84,26394.8,26271.65,26320.84,2061.52029 +2023-05-12 16:00:00,26320.83,26408.19,26241.07,26290.98,1999.89361 +2023-05-12 17:00:00,26290.99,26403.49,26277.21,26304.49,1714.97285 +2023-05-12 18:00:00,26304.48,26365.7,26299.29,26299.3,1649.14121 +2023-05-12 19:00:00,26299.29,26500.0,25811.46,26459.62,8559.66341 +2023-05-12 20:00:00,26459.63,26500.0,26360.85,26438.42,3310.02132 +2023-05-12 21:00:00,26438.42,26810.58,26438.41,26750.09,4356.95279 +2023-05-12 22:00:00,26750.1,26894.9,26637.42,26684.77,2097.69072 +2023-05-12 23:00:00,26684.78,26806.5,26657.04,26795.01,1043.95645 +2023-05-13 00:00:00,26795.01,26850.0,26692.03,26838.99,1272.65293 +2023-05-13 01:00:00,26838.99,26983.98,26785.66,26827.2,2460.82265 +2023-05-13 02:00:00,26827.2,26840.0,26764.17,26779.94,935.28246 +2023-05-13 03:00:00,26779.95,26855.23,26772.58,26808.27,657.98033 +2023-05-13 04:00:00,26808.27,26845.59,26752.83,26797.75,610.98658 +2023-05-13 05:00:00,26797.75,26870.19,26737.59,26741.03,1020.99556 +2023-05-13 06:00:00,26741.02,26766.84,26712.87,26731.59,804.56031 +2023-05-13 07:00:00,26731.58,26796.1,26695.41,26771.88,888.20033 +2023-05-13 08:00:00,26771.87,26815.03,26746.53,26799.73,741.05432 +2023-05-13 09:00:00,26799.74,26849.81,26790.0,26842.05,634.51416 +2023-05-13 10:00:00,26842.05,26877.0,26765.61,26830.69,755.03356 +2023-05-13 11:00:00,26830.68,26863.0,26796.92,26823.94,750.06559 +2023-05-13 12:00:00,26823.93,26904.98,26763.51,26824.6,996.91357 +2023-05-13 13:00:00,26824.6,26888.68,26782.58,26821.38,1081.27868 +2023-05-13 14:00:00,26821.38,26847.36,26736.0,26789.12,1237.066 +2023-05-13 15:00:00,26789.12,26822.79,26760.69,26816.25,654.43967 +2023-05-13 16:00:00,26816.25,26834.02,26782.29,26822.8,523.07779 +2023-05-13 17:00:00,26822.8,26848.02,26792.53,26812.32,552.69007 +2023-05-13 18:00:00,26812.31,27045.45,26757.32,26785.0,2035.24653 +2023-05-13 19:00:00,26785.0,26958.13,26770.73,26837.94,1496.20121 +2023-05-13 20:00:00,26837.93,26922.21,26836.71,26904.86,710.40684 +2023-05-13 21:00:00,26904.86,26939.4,26853.3,26862.56,596.64592 +2023-05-13 22:00:00,26862.55,26899.67,26839.88,26889.94,590.14208 +2023-05-13 23:00:00,26889.95,26929.08,26750.0,26775.28,808.64707 +2023-05-14 00:00:00,26775.27,26811.65,26560.53,26741.31,1590.47799 +2023-05-14 01:00:00,26741.31,26751.96,26635.65,26730.0,931.55827 +2023-05-14 02:00:00,26729.99,26839.73,26720.97,26810.64,745.71153 +2023-05-14 03:00:00,26810.64,26874.42,26784.47,26865.03,786.9463 +2023-05-14 04:00:00,26865.04,26876.94,26793.53,26825.87,604.65065 +2023-05-14 05:00:00,26825.88,26849.89,26802.82,26828.49,357.86079 +2023-05-14 06:00:00,26828.49,26898.87,26822.97,26843.29,604.6997 +2023-05-14 07:00:00,26843.29,26873.66,26828.67,26855.21,428.98202 +2023-05-14 08:00:00,26855.22,26886.73,26829.98,26845.53,463.16594 +2023-05-14 09:00:00,26845.53,26868.73,26808.81,26842.53,580.18808 +2023-05-14 10:00:00,26842.53,26849.97,26814.35,26827.07,662.8264 +2023-05-14 11:00:00,26827.07,26829.26,26790.02,26805.98,653.82849 +2023-05-14 12:00:00,26805.97,26880.0,26744.7,26871.33,843.18767 +2023-05-14 13:00:00,26871.32,26929.99,26819.12,26912.42,939.3887 +2023-05-14 14:00:00,26912.41,26977.0,26850.11,26963.41,931.8294 +2023-05-14 15:00:00,26963.42,27200.0,26960.98,27082.02,3762.00643 +2023-05-14 16:00:00,27082.01,27135.04,26925.17,26958.7,1366.47477 +2023-05-14 17:00:00,26958.69,26982.02,26866.09,26940.72,1118.93132 +2023-05-14 18:00:00,26940.71,26953.49,26856.0,26920.72,865.94321 +2023-05-14 19:00:00,26920.72,26939.35,26827.23,26878.97,918.52126 +2023-05-14 20:00:00,26878.96,26961.55,26842.57,26942.55,686.76702 +2023-05-14 21:00:00,26942.55,26957.93,26882.03,26906.62,648.05209 +2023-05-14 22:00:00,26906.62,26943.63,26870.42,26900.79,506.44623 +2023-05-14 23:00:00,26900.79,26928.53,26854.19,26917.62,596.35934 +2023-05-15 00:00:00,26917.61,26931.24,26726.0,26800.25,2062.76348 +2023-05-15 01:00:00,26800.25,27290.93,26780.0,27208.38,3347.54444 +2023-05-15 02:00:00,27208.38,27253.52,27122.21,27162.07,2186.24335 +2023-05-15 03:00:00,27162.07,27259.72,27161.0,27232.8,1207.60297 +2023-05-15 04:00:00,27232.8,27300.0,27180.01,27289.04,1579.04566 +2023-05-15 05:00:00,27289.03,27380.0,27235.34,27335.52,2511.13618 +2023-05-15 06:00:00,27335.52,27550.03,27312.38,27475.63,3954.95747 +2023-05-15 07:00:00,27475.64,27498.02,27387.53,27407.48,1291.18769 +2023-05-15 08:00:00,27407.47,27448.0,27385.8,27434.67,1308.68361 +2023-05-15 09:00:00,27434.67,27485.5,27335.0,27390.5,1426.13046 +2023-05-15 10:00:00,27390.51,27450.19,27351.01,27416.61,1065.59599 +2023-05-15 11:00:00,27416.61,27454.66,27315.55,27336.12,1193.94307 +2023-05-15 12:00:00,27336.12,27411.99,27330.8,27395.73,944.51959 +2023-05-15 13:00:00,27395.72,27450.0,27347.37,27374.25,1282.24467 +2023-05-15 14:00:00,27374.25,27534.0,27221.2,27404.71,2567.23613 +2023-05-15 15:00:00,27404.71,27448.52,27366.12,27396.8,1222.97454 +2023-05-15 16:00:00,27396.81,27586.0,27366.53,27482.65,2076.32467 +2023-05-15 17:00:00,27482.66,27663.59,27416.53,27506.41,3148.20526 +2023-05-15 18:00:00,27506.42,27525.59,27381.47,27431.88,1432.72999 +2023-05-15 19:00:00,27431.88,27443.8,27317.9,27418.24,1039.91292 +2023-05-15 20:00:00,27418.24,27418.24,27331.66,27346.3,669.58747 +2023-05-15 21:00:00,27346.31,27386.05,27315.95,27362.45,636.66443 +2023-05-15 22:00:00,27362.45,27368.0,27250.26,27310.17,901.46521 +2023-05-15 23:00:00,27310.16,27317.79,27126.73,27162.14,1373.38408 +2023-05-16 00:00:00,27162.15,27296.89,27082.99,27205.57,1477.27659 +2023-05-16 01:00:00,27205.56,27252.17,26852.11,27024.64,3830.42268 +2023-05-16 02:00:00,27024.64,27089.0,26976.61,27080.49,1022.5571 +2023-05-16 03:00:00,27080.49,27145.3,27061.66,27130.0,1081.92788 +2023-05-16 04:00:00,27130.02,27145.88,27080.0,27114.73,715.81049 +2023-05-16 05:00:00,27114.74,27157.86,27033.69,27061.55,805.05291 +2023-05-16 06:00:00,27061.54,27085.0,26993.71,27065.57,858.55119 +2023-05-16 07:00:00,27065.57,27252.59,27062.55,27252.58,1705.48229 +2023-05-16 08:00:00,27252.58,27286.08,27095.4,27202.22,1672.34022 +2023-05-16 09:00:00,27202.21,27221.43,27071.88,27092.56,1690.39248 +2023-05-16 10:00:00,27092.55,27110.06,26987.02,27013.92,1896.77266 +2023-05-16 11:00:00,27013.93,27126.98,26996.82,27059.03,1259.52205 +2023-05-16 12:00:00,27059.03,27137.69,26976.95,27060.0,1841.76607 +2023-05-16 13:00:00,27060.0,27128.21,26976.09,26984.84,1762.15706 +2023-05-16 14:00:00,26984.84,27042.39,26900.0,26982.79,2126.62309 +2023-05-16 15:00:00,26982.8,27090.77,26980.02,27038.02,1455.15109 +2023-05-16 16:00:00,27038.01,27151.51,26981.48,27052.83,1346.99992 +2023-05-16 17:00:00,27052.84,27100.0,26959.46,27086.56,1353.71446 +2023-05-16 18:00:00,27086.56,27116.92,27000.57,27051.78,1435.44912 +2023-05-16 19:00:00,27051.79,27071.98,26880.0,26933.05,1155.54439 +2023-05-16 20:00:00,26933.06,26993.45,26897.34,26951.41,864.34377 +2023-05-16 21:00:00,26951.41,27049.0,26923.12,27012.97,835.17918 +2023-05-16 22:00:00,27012.98,27039.99,26975.71,26998.36,531.08583 +2023-05-16 23:00:00,26998.37,27049.74,26962.13,27033.84,546.33199 +2023-05-17 00:00:00,27033.85,27115.0,26982.93,27098.59,983.05573 +2023-05-17 01:00:00,27098.58,27238.55,27058.61,27170.77,1800.20541 +2023-05-17 02:00:00,27170.78,27191.58,27062.66,27065.15,899.9553 +2023-05-17 03:00:00,27065.15,27131.7,27041.0,27060.04,782.44402 +2023-05-17 04:00:00,27060.05,27100.0,27055.09,27072.5,596.52444 +2023-05-17 05:00:00,27072.51,27072.51,26985.37,26990.78,998.82757 +2023-05-17 06:00:00,26990.78,27005.97,26931.54,26993.92,1101.58501 +2023-05-17 07:00:00,26993.93,27032.66,26760.0,26845.14,2346.35861 +2023-05-17 08:00:00,26845.14,26861.89,26774.83,26813.07,2167.66485 +2023-05-17 09:00:00,26813.08,26877.42,26798.55,26871.8,892.06297 +2023-05-17 10:00:00,26871.8,26914.3,26835.0,26868.21,1099.71969 +2023-05-17 11:00:00,26868.22,26868.22,26573.62,26637.62,3524.12183 +2023-05-17 12:00:00,26637.61,26760.56,26600.1,26669.89,2011.23741 +2023-05-17 13:00:00,26669.88,26757.77,26590.68,26635.91,1843.73332 +2023-05-17 14:00:00,26635.91,26830.22,26544.71,26780.77,2855.97748 +2023-05-17 15:00:00,26780.78,26836.06,26708.68,26796.93,1501.02651 +2023-05-17 16:00:00,26796.93,26947.76,26741.36,26905.1,1897.00592 +2023-05-17 17:00:00,26905.1,27174.0,26862.19,27086.12,2961.63608 +2023-05-17 18:00:00,27086.12,27205.0,27064.95,27099.07,2469.59544 +2023-05-17 19:00:00,27099.08,27447.29,27099.07,27385.09,4016.4588 +2023-05-17 20:00:00,27385.09,27467.02,27274.45,27340.59,2209.3942 +2023-05-17 21:00:00,27340.6,27500.0,27275.0,27364.96,1881.97764 +2023-05-17 22:00:00,27364.96,27388.88,27301.12,27333.73,973.19375 +2023-05-17 23:00:00,27333.72,27431.0,27333.72,27405.61,1145.21587 +2023-05-18 00:00:00,27405.62,27485.33,27354.15,27357.42,1554.65732 +2023-05-18 01:00:00,27357.42,27392.55,27306.59,27323.21,963.18663 +2023-05-18 02:00:00,27323.21,27388.86,27286.58,27349.32,1112.44294 +2023-05-18 03:00:00,27349.32,27378.9,27331.9,27365.69,1163.73376 +2023-05-18 04:00:00,27365.69,27367.09,27300.0,27302.62,803.62547 +2023-05-18 05:00:00,27302.62,27318.63,27217.01,27220.16,1187.68354 +2023-05-18 06:00:00,27220.16,27250.0,27152.29,27210.88,1481.05219 +2023-05-18 07:00:00,27210.89,27454.14,27200.0,27391.61,2215.54298 +2023-05-18 08:00:00,27391.61,27440.01,27346.45,27388.54,1700.75228 +2023-05-18 09:00:00,27388.53,27430.0,27354.63,27405.0,1177.10188 +2023-05-18 10:00:00,27405.0,27423.74,27334.02,27347.86,1060.68169 +2023-05-18 11:00:00,27347.86,27400.0,27342.62,27398.97,994.18461 +2023-05-18 12:00:00,27398.97,27472.14,27226.33,27237.02,2455.64136 +2023-05-18 13:00:00,27237.02,27283.0,27180.17,27257.21,2118.36446 +2023-05-18 14:00:00,27257.21,27404.51,27021.95,27244.99,3841.20211 +2023-05-18 15:00:00,27245.0,27300.0,27045.1,27086.77,2964.70782 +2023-05-18 16:00:00,27086.78,27118.36,26981.56,27069.56,2607.92394 +2023-05-18 17:00:00,27069.55,27090.58,26361.2,26488.99,7917.59124 +2023-05-18 18:00:00,26489.0,26653.4,26409.77,26617.62,4334.33737 +2023-05-18 19:00:00,26617.62,26847.99,26572.71,26734.01,2789.36175 +2023-05-18 20:00:00,26734.01,26771.53,26691.2,26720.63,1111.68683 +2023-05-18 21:00:00,26720.63,27065.27,26720.63,26917.24,2155.55537 +2023-05-18 22:00:00,26917.24,26948.14,26843.93,26891.75,792.82654 +2023-05-18 23:00:00,26891.74,26894.92,26817.48,26821.28,694.80735 +2023-05-19 00:00:00,26821.28,26929.04,26799.28,26885.47,858.88397 +2023-05-19 01:00:00,26885.47,26914.64,26749.33,26809.99,971.75973 +2023-05-19 02:00:00,26810.0,26849.21,26762.77,26802.05,768.22407 +2023-05-19 03:00:00,26802.05,26874.59,26769.35,26834.73,686.05386 +2023-05-19 04:00:00,26834.73,26876.25,26812.03,26875.0,567.94706 +2023-05-19 05:00:00,26874.99,26888.82,26827.28,26876.45,613.86669 +2023-05-19 06:00:00,26876.44,26938.49,26866.05,26902.72,1116.97452 +2023-05-19 07:00:00,26902.72,26960.24,26844.04,26851.38,1597.05942 +2023-05-19 08:00:00,26851.39,26926.61,26834.32,26886.52,844.68404 +2023-05-19 09:00:00,26886.53,26906.73,26819.0,26842.18,911.71229 +2023-05-19 10:00:00,26842.18,26876.66,26790.72,26823.08,1055.88297 +2023-05-19 11:00:00,26823.08,26878.88,26798.54,26855.89,1023.64289 +2023-05-19 12:00:00,26855.9,26988.2,26855.89,26909.94,1400.69728 +2023-05-19 13:00:00,26909.93,26955.0,26843.2,26865.46,1042.98471 +2023-05-19 14:00:00,26865.47,26865.47,26762.31,26835.33,1409.69993 +2023-05-19 15:00:00,26835.34,27183.6,26630.0,26883.65,6876.15325 +2023-05-19 16:00:00,26883.65,26961.34,26801.56,26837.72,1752.64044 +2023-05-19 17:00:00,26837.73,26973.56,26825.0,26919.17,1328.47539 +2023-05-19 18:00:00,26919.16,26937.62,26872.83,26890.8,910.10451 +2023-05-19 19:00:00,26890.8,26890.81,26780.73,26834.46,1018.50532 +2023-05-19 20:00:00,26834.47,26875.81,26807.73,26831.04,599.06929 +2023-05-19 21:00:00,26831.03,26906.13,26826.57,26906.12,556.46863 +2023-05-19 22:00:00,26906.13,26921.21,26862.18,26871.15,454.80868 +2023-05-19 23:00:00,26871.15,26900.0,26864.03,26880.26,387.8365 +2023-05-20 00:00:00,26880.26,26908.42,26825.11,26845.71,564.98609 +2023-05-20 01:00:00,26845.71,26885.86,26845.54,26858.98,270.6386 +2023-05-20 02:00:00,26858.98,26870.05,26832.36,26839.63,327.99884 +2023-05-20 03:00:00,26839.63,26874.74,26839.62,26865.58,318.51343 +2023-05-20 04:00:00,26865.59,26873.63,26851.11,26873.63,337.53628 +2023-05-20 05:00:00,26873.62,26873.63,26840.0,26869.36,358.13357 +2023-05-20 06:00:00,26869.36,26870.0,26835.1,26854.04,530.4636 +2023-05-20 07:00:00,26854.05,26857.21,26840.0,26854.98,338.19574 +2023-05-20 08:00:00,26854.98,26917.38,26854.97,26908.98,465.98316 +2023-05-20 09:00:00,26908.99,26913.53,26869.96,26880.31,566.81186 +2023-05-20 10:00:00,26880.31,26902.68,26874.88,26887.08,424.02931 +2023-05-20 11:00:00,26887.08,26904.11,26871.78,26880.06,379.04245 +2023-05-20 12:00:00,26880.05,26945.66,26880.05,26895.77,656.69076 +2023-05-20 13:00:00,26895.77,26916.76,26875.51,26889.11,627.69597 +2023-05-20 14:00:00,26889.12,26928.23,26889.11,26920.01,540.29829 +2023-05-20 15:00:00,26920.02,26976.0,26891.6,26945.66,767.49336 +2023-05-20 16:00:00,26945.67,26948.19,26913.25,26918.46,424.56655 +2023-05-20 17:00:00,26918.46,27146.22,26917.69,27139.45,1493.95747 +2023-05-20 18:00:00,27139.46,27150.0,27027.14,27029.05,2061.90664 +2023-05-20 19:00:00,27029.04,27073.61,26969.55,27063.03,940.38514 +2023-05-20 20:00:00,27063.04,27091.95,27004.16,27011.29,575.07562 +2023-05-20 21:00:00,27011.29,27055.69,26967.18,27033.03,580.97902 +2023-05-20 22:00:00,27033.02,27068.06,27011.31,27067.32,314.66996 +2023-05-20 23:00:00,27067.31,27129.36,27045.73,27102.43,568.49547 +2023-05-21 00:00:00,27102.42,27277.55,27063.09,27237.75,1460.27722 +2023-05-21 01:00:00,27237.76,27257.19,27150.95,27158.79,820.46066 +2023-05-21 02:00:00,27158.79,27191.04,27145.59,27168.54,544.77241 +2023-05-21 03:00:00,27168.53,27191.1,27156.6,27176.22,367.38889 +2023-05-21 04:00:00,27176.22,27176.22,27118.0,27129.32,462.73225 +2023-05-21 05:00:00,27129.32,27138.34,27089.74,27098.85,668.41698 +2023-05-21 06:00:00,27098.84,27103.0,27065.01,27083.85,484.56662 +2023-05-21 07:00:00,27083.85,27083.86,27047.88,27054.99,573.34622 +2023-05-21 08:00:00,27055.0,27072.67,27025.74,27042.87,503.95228 +2023-05-21 09:00:00,27042.88,27077.22,27030.0,27077.21,486.32887 +2023-05-21 10:00:00,27077.22,27085.81,26890.39,26955.0,1582.39716 +2023-05-21 11:00:00,26954.99,26955.0,26776.23,26829.94,2524.77054 +2023-05-21 12:00:00,26829.93,26949.82,26803.58,26930.01,1672.18181 +2023-05-21 13:00:00,26930.0,26935.79,26888.07,26890.69,637.30013 +2023-05-21 14:00:00,26890.69,26972.21,26881.0,26898.32,850.35544 +2023-05-21 15:00:00,26898.32,26977.0,26811.0,26898.97,1138.95152 +2023-05-21 16:00:00,26898.97,26916.81,26851.65,26886.43,707.36867 +2023-05-21 17:00:00,26886.42,26933.33,26832.98,26871.55,831.38138 +2023-05-21 18:00:00,26871.55,26894.75,26846.38,26872.28,608.30466 +2023-05-21 19:00:00,26872.27,26916.99,26855.8,26902.12,632.57797 +2023-05-21 20:00:00,26902.13,26926.29,26820.0,26845.8,714.82489 +2023-05-21 21:00:00,26845.79,26846.65,26666.03,26745.15,2132.48646 +2023-05-21 22:00:00,26745.15,26794.81,26731.42,26754.81,515.25099 +2023-05-21 23:00:00,26754.82,26804.63,26726.15,26747.78,427.47877 +2023-05-22 00:00:00,26747.78,26779.54,26549.29,26656.11,1814.57122 +2023-05-22 01:00:00,26656.1,26688.23,26560.0,26584.17,1348.4227 +2023-05-22 02:00:00,26584.17,26666.04,26538.21,26649.67,1427.40856 +2023-05-22 03:00:00,26649.67,26675.69,26635.77,26644.8,627.38681 +2023-05-22 04:00:00,26644.8,26728.79,26643.12,26691.67,767.58316 +2023-05-22 05:00:00,26691.66,26800.0,26691.66,26756.09,941.74353 +2023-05-22 06:00:00,26756.08,26913.14,26751.46,26821.69,1452.87038 +2023-05-22 07:00:00,26821.68,26875.77,26795.03,26843.13,857.76414 +2023-05-22 08:00:00,26843.12,26900.0,26826.62,26826.62,694.36389 +2023-05-22 09:00:00,26826.62,26887.62,26824.66,26862.57,601.11258 +2023-05-22 10:00:00,26862.56,26875.56,26795.75,26831.77,661.21279 +2023-05-22 11:00:00,26831.77,26834.12,26767.34,26826.78,668.56744 +2023-05-22 12:00:00,26826.79,26866.0,26731.0,26731.6,971.3034 +2023-05-22 13:00:00,26731.61,27099.89,26702.91,27007.0,3265.09349 +2023-05-22 14:00:00,27007.01,27041.34,26769.49,26957.28,2749.7847 +2023-05-22 15:00:00,26957.27,26977.23,26811.73,26877.18,1426.88984 +2023-05-22 16:00:00,26877.17,26925.1,26835.65,26873.16,1066.53729 +2023-05-22 17:00:00,26873.16,26896.87,26781.99,26850.16,1296.73483 +2023-05-22 18:00:00,26850.16,26930.0,26836.44,26880.19,901.94161 +2023-05-22 19:00:00,26880.19,26889.96,26819.1,26862.43,883.21086 +2023-05-22 20:00:00,26862.43,26934.93,26833.21,26895.13,525.7812 +2023-05-22 21:00:00,26895.14,26959.52,26880.44,26900.52,576.12171 +2023-05-22 22:00:00,26900.52,26913.78,26872.02,26872.03,371.218 +2023-05-22 23:00:00,26872.02,26883.17,26834.45,26849.27,561.21415 +2023-05-23 00:00:00,26849.28,26936.58,26798.11,26822.33,824.15766 +2023-05-23 01:00:00,26822.34,27110.0,26803.36,26994.98,3103.48337 +2023-05-23 02:00:00,26994.98,27173.53,26994.97,27128.42,2379.27506 +2023-05-23 03:00:00,27128.41,27442.03,27115.2,27366.67,5427.82964 +2023-05-23 04:00:00,27366.67,27435.34,27338.35,27381.65,3187.08987 +2023-05-23 05:00:00,27381.64,27495.83,27366.69,27387.49,2396.74337 +2023-05-23 06:00:00,27387.5,27426.52,27278.18,27292.49,2210.67511 +2023-05-23 07:00:00,27292.5,27324.28,27205.01,27304.4,1584.70412 +2023-05-23 08:00:00,27304.4,27337.0,27250.32,27334.52,1097.53462 +2023-05-23 09:00:00,27334.52,27347.07,27269.86,27273.54,1137.51824 +2023-05-23 10:00:00,27273.54,27334.78,27253.27,27327.8,922.81316 +2023-05-23 11:00:00,27327.8,27349.0,27283.22,27337.36,876.93211 +2023-05-23 12:00:00,27337.36,27386.26,27240.45,27284.78,1444.60836 +2023-05-23 13:00:00,27284.77,27306.72,27175.19,27236.03,1841.3558 +2023-05-23 14:00:00,27236.04,27358.22,27233.17,27321.35,1436.29183 +2023-05-23 15:00:00,27321.34,27359.93,27291.02,27320.05,1259.92714 +2023-05-23 16:00:00,27320.04,27328.48,27200.16,27229.23,1338.80023 +2023-05-23 17:00:00,27229.24,27270.23,27185.52,27203.71,1066.45387 +2023-05-23 18:00:00,27203.71,27219.97,27119.0,27139.01,1406.66368 +2023-05-23 19:00:00,27139.01,27219.48,27100.79,27181.22,1136.08024 +2023-05-23 20:00:00,27181.23,27242.67,27151.38,27215.11,1131.92459 +2023-05-23 21:00:00,27215.1,27239.41,27187.56,27200.38,486.93209 +2023-05-23 22:00:00,27200.37,27221.12,27178.09,27194.91,573.16334 +2023-05-23 23:00:00,27194.91,27249.38,27192.35,27219.61,429.88108 +2023-05-24 00:00:00,27219.61,27219.61,27124.91,27156.7,803.33097 +2023-05-24 01:00:00,27156.71,27188.93,27134.99,27138.19,673.22575 +2023-05-24 02:00:00,27138.2,27170.71,27111.0,27161.76,612.33363 +2023-05-24 03:00:00,27161.75,27164.59,26649.88,26786.0,6221.40696 +2023-05-24 04:00:00,26786.01,26812.63,26704.71,26804.12,2292.1151 +2023-05-24 05:00:00,26804.11,26830.42,26718.03,26775.45,1847.73988 +2023-05-24 06:00:00,26775.44,26775.45,26613.0,26712.55,1656.34699 +2023-05-24 07:00:00,26712.56,26757.72,26646.0,26678.67,1519.91544 +2023-05-24 08:00:00,26678.67,26754.02,26670.0,26748.58,1372.73962 +2023-05-24 09:00:00,26748.58,26839.02,26737.4,26750.8,1723.75942 +2023-05-24 10:00:00,26750.8,26762.6,26715.06,26730.0,1033.32953 +2023-05-24 11:00:00,26730.01,26764.91,26680.64,26742.24,1102.61352 +2023-05-24 12:00:00,26742.25,26742.25,26661.05,26695.41,1301.37294 +2023-05-24 13:00:00,26695.41,26709.62,26274.69,26442.86,5577.53705 +2023-05-24 14:00:00,26442.85,26442.86,26144.36,26254.93,6194.4086 +2023-05-24 15:00:00,26254.93,26377.63,26080.5,26314.69,5950.33781 +2023-05-24 16:00:00,26314.69,26326.47,26159.97,26238.01,2384.09871 +2023-05-24 17:00:00,26238.01,26358.99,26170.18,26285.01,2314.20204 +2023-05-24 18:00:00,26285.01,26324.41,26214.0,26220.55,1901.30293 +2023-05-24 19:00:00,26220.55,26397.64,26201.67,26252.33,2349.96235 +2023-05-24 20:00:00,26252.34,26486.46,26242.62,26404.18,2878.77545 +2023-05-24 21:00:00,26404.18,26464.65,26310.48,26368.66,1223.45586 +2023-05-24 22:00:00,26368.66,26406.0,26313.47,26348.52,746.24121 +2023-05-24 23:00:00,26348.52,26394.16,26318.25,26329.01,712.51394 +2023-05-25 00:00:00,26329.0,26394.37,26197.12,26236.47,1510.80228 +2023-05-25 01:00:00,26236.46,26318.58,25871.89,26124.08,4961.18524 +2023-05-25 02:00:00,26124.08,26147.0,26052.88,26122.71,980.06435 +2023-05-25 03:00:00,26122.72,26227.71,26122.71,26183.72,1286.50113 +2023-05-25 04:00:00,26183.73,26269.3,26153.0,26224.39,1119.75205 +2023-05-25 05:00:00,26224.39,26279.45,26214.4,26260.12,876.80372 +2023-05-25 06:00:00,26260.11,26300.0,26220.01,26261.27,918.14311 +2023-05-25 07:00:00,26261.26,26267.29,26126.76,26131.27,1260.39696 +2023-05-25 08:00:00,26131.27,26252.26,26128.37,26223.87,1292.58748 +2023-05-25 09:00:00,26223.87,26286.76,26223.04,26284.76,924.32631 +2023-05-25 10:00:00,26284.76,26302.88,26213.79,26248.18,941.55516 +2023-05-25 11:00:00,26248.17,26335.16,26205.84,26296.62,1191.27834 +2023-05-25 12:00:00,26296.61,26499.99,26296.61,26403.52,3353.24498 +2023-05-25 13:00:00,26403.52,26432.96,26269.53,26338.37,2000.3342 +2023-05-25 14:00:00,26338.36,26426.85,26287.9,26364.65,1932.76207 +2023-05-25 15:00:00,26364.66,26391.71,26168.6,26226.12,2252.36031 +2023-05-25 16:00:00,26226.12,26320.03,26207.47,26276.73,1544.87957 +2023-05-25 17:00:00,26276.73,26393.75,26250.01,26350.84,1595.73866 +2023-05-25 18:00:00,26350.85,26413.08,26330.47,26374.54,1501.99422 +2023-05-25 19:00:00,26374.53,26631.98,26370.16,26468.68,3098.11072 +2023-05-25 20:00:00,26468.67,26522.8,26458.52,26485.21,814.61595 +2023-05-25 21:00:00,26485.21,26485.22,26437.53,26475.86,672.1993 +2023-05-25 22:00:00,26475.85,26478.44,26432.46,26454.41,565.98514 +2023-05-25 23:00:00,26454.41,26551.02,26454.41,26473.79,839.8277 +2023-05-26 00:00:00,26473.8,26505.24,26384.36,26469.93,1100.64504 +2023-05-26 01:00:00,26469.94,26539.34,26350.0,26414.9,2072.24102 +2023-05-26 02:00:00,26414.9,26442.37,26385.36,26403.34,615.13573 +2023-05-26 03:00:00,26403.34,26467.56,26394.54,26435.14,659.12119 +2023-05-26 04:00:00,26435.14,26450.85,26410.03,26426.43,572.61717 +2023-05-26 05:00:00,26426.44,26432.1,26336.99,26347.43,834.85234 +2023-05-26 06:00:00,26347.44,26442.8,26327.24,26434.4,1030.08019 +2023-05-26 07:00:00,26434.4,26534.05,26414.36,26501.33,1532.23064 +2023-05-26 08:00:00,26501.34,26549.0,26468.26,26473.36,1664.40136 +2023-05-26 09:00:00,26473.37,26473.5,26427.93,26445.45,1165.18735 +2023-05-26 10:00:00,26445.46,26485.86,26423.62,26450.13,917.13231 +2023-05-26 11:00:00,26450.12,26500.0,26429.16,26463.29,1288.54293 +2023-05-26 12:00:00,26463.29,26528.64,26355.81,26440.04,2090.29052 +2023-05-26 13:00:00,26440.04,26593.35,26440.04,26539.97,2147.29604 +2023-05-26 14:00:00,26539.98,26932.16,26539.97,26760.01,5884.01743 +2023-05-26 15:00:00,26760.0,26846.29,26741.61,26750.21,2715.69143 +2023-05-26 16:00:00,26750.22,26830.0,26744.63,26792.36,1276.23413 +2023-05-26 17:00:00,26792.35,26837.34,26686.04,26713.0,1672.57471 +2023-05-26 18:00:00,26713.0,26757.09,26610.49,26730.69,1922.71379 +2023-05-26 19:00:00,26730.68,26822.88,26730.68,26767.21,1434.76741 +2023-05-26 20:00:00,26767.22,26807.5,26736.11,26747.66,915.97852 +2023-05-26 21:00:00,26747.66,26790.0,26722.35,26725.24,668.95967 +2023-05-26 22:00:00,26725.23,26754.11,26686.0,26686.0,476.78842 +2023-05-26 23:00:00,26686.01,26726.77,26686.0,26705.92,403.68779 +2023-05-27 00:00:00,26705.93,26713.4,26633.0,26651.92,757.05421 +2023-05-27 01:00:00,26651.93,26713.76,26645.62,26713.76,944.48038 +2023-05-27 02:00:00,26713.75,26742.98,26688.08,26742.97,459.21649 +2023-05-27 03:00:00,26742.98,26782.73,26713.15,26752.0,510.19944 +2023-05-27 04:00:00,26752.0,26786.51,26725.5,26760.96,736.6081 +2023-05-27 05:00:00,26760.95,26763.71,26724.76,26725.16,417.81894 +2023-05-27 06:00:00,26725.16,26763.99,26710.0,26749.47,575.0991 +2023-05-27 07:00:00,26749.46,26749.47,26710.0,26722.8,427.07326 +2023-05-27 08:00:00,26722.8,26722.8,26676.17,26688.65,670.07974 +2023-05-27 09:00:00,26688.64,26732.66,26683.43,26699.17,447.03861 +2023-05-27 10:00:00,26699.16,26716.55,26667.93,26676.89,675.33439 +2023-05-27 11:00:00,26676.89,26714.01,26666.37,26699.02,450.38607 +2023-05-27 12:00:00,26699.02,26743.8,26677.4,26711.5,608.65364 +2023-05-27 13:00:00,26711.5,26777.77,26551.0,26628.29,1169.30285 +2023-05-27 14:00:00,26628.29,26724.19,26607.42,26666.87,876.55253 +2023-05-27 15:00:00,26666.87,26690.06,26636.98,26690.05,519.80287 +2023-05-27 16:00:00,26690.06,26694.26,26620.35,26664.07,526.03404 +2023-05-27 17:00:00,26664.07,26765.03,26663.62,26756.7,878.06118 +2023-05-27 18:00:00,26756.71,26846.0,26702.63,26702.64,972.08491 +2023-05-27 19:00:00,26702.64,26765.73,26702.63,26729.6,405.54357 +2023-05-27 20:00:00,26729.6,26751.52,26726.01,26751.52,338.38058 +2023-05-27 21:00:00,26751.52,26774.95,26733.84,26771.27,329.47792 +2023-05-27 22:00:00,26771.28,26835.93,26761.88,26803.28,773.85827 +2023-05-27 23:00:00,26803.28,26895.0,26803.27,26854.27,627.54561 +2023-05-28 00:00:00,26854.28,27119.5,26764.36,27072.42,2783.3021 +2023-05-28 01:00:00,27072.41,27165.62,27070.83,27093.94,2381.56573 +2023-05-28 02:00:00,27093.94,27129.64,27072.16,27100.01,894.21219 +2023-05-28 03:00:00,27100.0,27247.1,27100.0,27187.23,1945.12459 +2023-05-28 04:00:00,27187.24,27285.52,27167.97,27167.97,1840.13486 +2023-05-28 05:00:00,27167.98,27190.81,27128.41,27164.75,1459.78402 +2023-05-28 06:00:00,27164.75,27228.91,27164.75,27184.9,1455.13251 +2023-05-28 07:00:00,27184.9,27229.15,27182.01,27226.37,863.34309 +2023-05-28 08:00:00,27226.38,27247.42,27178.36,27197.63,986.50776 +2023-05-28 09:00:00,27197.63,27198.99,27136.01,27156.68,703.64548 +2023-05-28 10:00:00,27156.69,27218.94,27147.19,27212.35,628.63901 +2023-05-28 11:00:00,27212.34,27344.23,27153.75,27153.76,1795.88389 +2023-05-28 12:00:00,27153.76,27187.37,27100.02,27142.48,1070.92681 +2023-05-28 13:00:00,27142.49,27226.46,27134.75,27181.31,928.51519 +2023-05-28 14:00:00,27181.31,27239.99,27168.09,27190.21,975.37554 +2023-05-28 15:00:00,27190.21,27280.0,27171.56,27272.17,1084.12486 +2023-05-28 16:00:00,27272.17,27344.0,27224.7,27252.27,1293.84044 +2023-05-28 17:00:00,27252.26,27424.44,27212.91,27351.59,1824.71681 +2023-05-28 18:00:00,27351.59,27746.33,27314.49,27589.75,5361.54706 +2023-05-28 19:00:00,27589.76,27630.36,27477.56,27525.99,1660.16644 +2023-05-28 20:00:00,27525.99,27593.84,27525.99,27554.48,835.87875 +2023-05-28 21:00:00,27554.47,27956.0,27548.68,27835.02,2628.63416 +2023-05-28 22:00:00,27835.03,28175.0,27835.02,28090.39,5264.43925 +2023-05-28 23:00:00,28090.39,28261.32,28050.69,28065.0,3250.56801 +2023-05-29 00:00:00,28065.01,28447.14,28065.0,28192.53,5865.77291 +2023-05-29 01:00:00,28192.52,28214.68,28133.71,28166.57,2156.43484 +2023-05-29 02:00:00,28166.57,28179.0,28096.0,28096.01,1428.54515 +2023-05-29 03:00:00,28096.01,28134.25,27914.28,27954.99,2727.71419 +2023-05-29 04:00:00,27954.99,28004.41,27854.0,27947.07,2298.30663 +2023-05-29 05:00:00,27947.07,28047.01,27938.36,27990.72,1494.37831 +2023-05-29 06:00:00,27990.71,28037.28,27982.59,28002.49,1003.4448 +2023-05-29 07:00:00,28002.49,28002.55,27841.0,27907.87,1855.23496 +2023-05-29 08:00:00,27907.86,27945.0,27846.72,27900.61,1186.17515 +2023-05-29 09:00:00,27900.6,27944.77,27857.22,27939.95,907.5865 +2023-05-29 10:00:00,27939.96,27971.01,27745.78,27857.59,1871.39317 +2023-05-29 11:00:00,27857.6,27936.53,27842.93,27913.87,1062.90718 +2023-05-29 12:00:00,27913.87,27949.7,27862.92,27876.98,972.08024 +2023-05-29 13:00:00,27876.98,27944.13,27862.44,27903.12,1134.13561 +2023-05-29 14:00:00,27903.12,27932.53,27699.0,27787.77,2069.21576 +2023-05-29 15:00:00,27787.77,27841.94,27588.0,27630.51,3367.56031 +2023-05-29 16:00:00,27630.5,27673.64,27545.53,27597.24,3363.29117 +2023-05-29 17:00:00,27597.24,27737.99,27524.6,27689.14,2206.1068 +2023-05-29 18:00:00,27689.14,27719.02,27612.36,27635.45,1185.41365 +2023-05-29 19:00:00,27635.46,27706.62,27621.51,27637.94,847.85027 +2023-05-29 20:00:00,27637.94,27697.7,27627.81,27682.77,620.80317 +2023-05-29 21:00:00,27682.78,27724.72,27650.0,27666.7,548.09133 +2023-05-29 22:00:00,27666.7,27693.33,27554.57,27689.22,1053.68751 +2023-05-29 23:00:00,27689.22,27818.0,27681.76,27736.4,1159.28984 +2023-05-30 00:00:00,27736.39,27768.15,27584.45,27709.55,1142.62432 +2023-05-30 01:00:00,27709.55,27795.55,27699.76,27766.03,805.67337 +2023-05-30 02:00:00,27766.03,27795.39,27722.74,27783.43,678.01949 +2023-05-30 03:00:00,27783.43,27940.55,27773.69,27829.23,1430.88893 +2023-05-30 04:00:00,27829.23,27848.09,27760.38,27776.19,733.62881 +2023-05-30 05:00:00,27776.18,27776.19,27672.93,27753.38,969.42806 +2023-05-30 06:00:00,27753.38,27821.86,27752.88,27795.81,835.43097 +2023-05-30 07:00:00,27795.82,27848.28,27729.1,27733.22,1013.19295 +2023-05-30 08:00:00,27733.22,27817.81,27712.19,27781.78,1052.95799 +2023-05-30 09:00:00,27781.77,27893.0,27781.77,27852.33,1019.62795 +2023-05-30 10:00:00,27852.34,28037.22,27852.33,27900.18,2404.59354 +2023-05-30 11:00:00,27900.18,28038.59,27856.85,28021.4,1991.33792 +2023-05-30 12:00:00,28021.39,28027.78,27794.73,27903.51,2403.11474 +2023-05-30 13:00:00,27903.52,27969.65,27755.01,27800.01,2335.85353 +2023-05-30 14:00:00,27800.02,27865.0,27621.0,27622.65,2909.60156 +2023-05-30 15:00:00,27622.65,27738.01,27615.0,27673.08,1775.51775 +2023-05-30 16:00:00,27673.08,27743.48,27554.0,27713.43,1956.96687 +2023-05-30 17:00:00,27713.43,27776.15,27625.14,27696.12,1545.38259 +2023-05-30 18:00:00,27696.12,27799.0,27664.32,27765.84,1204.83819 +2023-05-30 19:00:00,27765.84,27862.84,27750.8,27850.2,1102.54064 +2023-05-30 20:00:00,27850.21,27855.13,27751.51,27762.51,867.54354 +2023-05-30 21:00:00,27762.52,27842.0,27655.14,27719.37,872.5504 +2023-05-30 22:00:00,27719.38,27758.91,27651.17,27738.52,856.88406 +2023-05-30 23:00:00,27738.52,27742.96,27673.44,27694.4,778.55554 +2023-05-31 00:00:00,27694.39,27757.42,27657.99,27754.78,653.06905 +2023-05-31 01:00:00,27754.79,27835.51,27738.67,27742.09,1115.07427 +2023-05-31 02:00:00,27742.09,27742.09,27571.04,27673.47,1957.15814 +2023-05-31 03:00:00,27673.47,27690.44,27600.0,27657.3,864.36479 +2023-05-31 04:00:00,27657.29,27677.67,27250.88,27257.7,4851.38937 +2023-05-31 05:00:00,27257.7,27282.58,27021.0,27088.15,5956.78206 +2023-05-31 06:00:00,27088.16,27188.97,26968.49,27163.37,2753.03347 +2023-05-31 07:00:00,27163.36,27206.35,27117.71,27167.9,1291.59774 +2023-05-31 08:00:00,27167.91,27203.73,27107.62,27136.93,1843.63071 +2023-05-31 09:00:00,27136.92,27157.58,27044.86,27133.28,1840.55232 +2023-05-31 10:00:00,27133.27,27142.76,27046.2,27056.53,1368.46166 +2023-05-31 11:00:00,27056.52,27130.0,26994.33,27097.18,1999.06572 +2023-05-31 12:00:00,27097.18,27119.0,27043.92,27072.34,1378.73155 +2023-05-31 13:00:00,27072.34,27231.34,27060.0,27117.11,1938.22341 +2023-05-31 14:00:00,27117.1,27119.24,26851.0,27033.86,5162.13378 +2023-05-31 15:00:00,27033.87,27064.03,26880.58,26911.54,2045.34009 +2023-05-31 16:00:00,26911.55,26979.04,26839.01,26936.01,1810.52658 +2023-05-31 17:00:00,26936.0,27084.51,26916.35,27055.4,1785.13173 +2023-05-31 18:00:00,27055.39,27093.32,27020.1,27037.06,947.99679 +2023-05-31 19:00:00,27037.06,27123.43,27000.2,27010.57,1064.24189 +2023-05-31 20:00:00,27010.57,27116.13,27005.16,27114.2,835.43916 +2023-05-31 21:00:00,27114.19,27119.77,27045.61,27090.79,644.01902 +2023-05-31 22:00:00,27090.78,27193.24,27084.92,27183.98,999.11868 +2023-05-31 23:00:00,27183.97,27299.99,27159.63,27210.35,1483.72375 +2023-06-01 00:00:00,27210.36,27350.0,27023.35,27065.77,2772.82443 +2023-06-01 01:00:00,27065.76,27165.47,27059.74,27078.56,1785.47203 +2023-06-01 02:00:00,27078.56,27114.16,26640.0,26719.26,3775.37874 +2023-06-01 03:00:00,26719.26,26838.89,26605.05,26779.94,2879.51275 +2023-06-01 04:00:00,26779.93,26822.81,26746.0,26804.15,1223.77081 +2023-06-01 05:00:00,26804.14,26863.62,26784.89,26849.2,786.7396 +2023-06-01 06:00:00,26849.2,26883.6,26778.08,26785.13,1305.19049 +2023-06-01 07:00:00,26785.14,26864.09,26764.16,26802.67,1298.07343 +2023-06-01 08:00:00,26802.66,26922.76,26790.96,26912.53,1139.4347 +2023-06-01 09:00:00,26912.54,26951.07,26899.54,26908.63,1023.37411 +2023-06-01 10:00:00,26908.63,26934.83,26858.33,26860.0,894.7211 +2023-06-01 11:00:00,26860.0,26905.02,26841.65,26892.96,1218.03791 +2023-06-01 12:00:00,26892.95,26964.88,26782.53,26941.79,1939.00748 +2023-06-01 13:00:00,26941.8,26971.07,26867.95,26891.74,1377.22419 +2023-06-01 14:00:00,26891.74,26981.34,26833.01,26898.08,2050.06214 +2023-06-01 15:00:00,26898.07,26947.24,26860.01,26894.48,1115.38165 +2023-06-01 16:00:00,26894.47,27175.0,26795.06,27092.08,3182.53568 +2023-06-01 17:00:00,27092.07,27137.42,26916.29,26956.94,2445.80688 +2023-06-01 18:00:00,26956.93,27048.43,26938.06,26964.77,907.67826 +2023-06-01 19:00:00,26964.76,26984.68,26656.0,26862.68,2438.22631 +2023-06-01 20:00:00,26862.68,26919.99,26828.82,26863.0,875.88118 +2023-06-01 21:00:00,26862.99,26942.98,26855.77,26889.84,837.24211 +2023-06-01 22:00:00,26889.85,26902.43,26849.43,26880.97,751.81829 +2023-06-01 23:00:00,26880.97,26883.51,26713.34,26817.93,1194.41453 +2023-06-02 00:00:00,26817.93,26824.64,26505.0,26786.03,3258.7619 +2023-06-02 01:00:00,26786.04,26849.09,26716.8,26811.9,1616.17119 +2023-06-02 02:00:00,26811.89,26984.26,26811.89,26960.01,1391.57953 +2023-06-02 03:00:00,26960.01,27017.0,26932.16,27000.0,749.52898 +2023-06-02 04:00:00,27000.01,27120.0,26949.4,27068.27,1679.75278 +2023-06-02 05:00:00,27068.27,27213.0,27064.96,27152.6,2395.14389 +2023-06-02 06:00:00,27152.6,27164.94,27068.0,27071.06,1558.53392 +2023-06-02 07:00:00,27071.05,27114.16,27045.8,27049.65,1223.21395 +2023-06-02 08:00:00,27049.65,27172.39,27049.38,27166.14,984.41797 +2023-06-02 09:00:00,27166.13,27183.07,27068.47,27080.68,1108.38127 +2023-06-02 10:00:00,27080.68,27104.2,27061.6,27096.99,603.14207 +2023-06-02 11:00:00,27096.98,27171.46,27072.55,27130.75,881.16869 +2023-06-02 12:00:00,27130.75,27240.0,26987.0,27095.42,3559.44337 +2023-06-02 13:00:00,27095.43,27134.4,26860.71,26908.84,2607.33789 +2023-06-02 14:00:00,26908.85,26986.08,26890.0,26964.74,1685.83953 +2023-06-02 15:00:00,26964.75,27107.34,26962.99,27095.92,1248.06997 +2023-06-02 16:00:00,27095.93,27120.02,27032.93,27056.06,1402.81796 +2023-06-02 17:00:00,27056.06,27093.82,27023.58,27057.58,952.23822 +2023-06-02 18:00:00,27057.57,27193.62,27006.22,27192.6,1502.23473 +2023-06-02 19:00:00,27192.61,27287.64,27131.02,27239.02,2437.06595 +2023-06-02 20:00:00,27239.03,27274.1,27172.84,27172.84,1339.76508 +2023-06-02 21:00:00,27172.84,27246.11,27143.37,27207.4,868.89438 +2023-06-02 22:00:00,27207.41,27300.0,27199.0,27262.92,855.95607 +2023-06-02 23:00:00,27262.91,27269.22,27229.9,27242.59,471.4434 +2023-06-03 00:00:00,27242.59,27242.6,27152.2,27165.09,678.25975 +2023-06-03 01:00:00,27165.08,27189.4,27092.0,27130.4,1101.74244 +2023-06-03 02:00:00,27130.41,27169.26,27129.17,27153.26,612.83696 +2023-06-03 03:00:00,27153.26,27171.47,27131.89,27143.2,323.04687 +2023-06-03 04:00:00,27143.2,27163.77,27105.73,27160.24,420.01096 +2023-06-03 05:00:00,27160.24,27168.4,27137.34,27157.2,370.29837 +2023-06-03 06:00:00,27157.2,27212.78,27157.2,27182.35,551.27991 +2023-06-03 07:00:00,27182.35,27200.01,27165.23,27174.42,480.87524 +2023-06-03 08:00:00,27174.42,27181.0,27141.94,27146.62,394.76994 +2023-06-03 09:00:00,27146.62,27151.52,27129.41,27151.51,379.06522 +2023-06-03 10:00:00,27151.51,27180.03,27112.73,27140.0,736.47675 +2023-06-03 11:00:00,27139.99,27171.48,27123.74,27129.79,510.67532 +2023-06-03 12:00:00,27129.78,27173.73,27129.78,27165.81,479.78328 +2023-06-03 13:00:00,27165.81,27183.99,27149.88,27166.98,520.87423 +2023-06-03 14:00:00,27166.97,27193.62,27166.97,27171.24,439.7442 +2023-06-03 15:00:00,27171.25,27333.29,27126.85,27305.26,1647.91895 +2023-06-03 16:00:00,27305.27,27318.63,27227.19,27248.48,1156.43612 +2023-06-03 17:00:00,27248.49,27253.57,27111.79,27160.9,1185.19741 +2023-06-03 18:00:00,27160.91,27183.09,27125.34,27147.43,634.17095 +2023-06-03 19:00:00,27147.44,27163.13,27025.59,27096.36,1111.9535 +2023-06-03 20:00:00,27096.37,27124.68,27054.41,27062.33,698.85558 +2023-06-03 21:00:00,27062.34,27074.66,26914.93,27004.41,1401.33078 +2023-06-03 22:00:00,27004.41,27079.79,27004.4,27071.55,431.07884 +2023-06-03 23:00:00,27071.55,27085.51,27050.38,27069.22,328.6596 +2023-06-04 00:00:00,27069.22,27069.23,27001.59,27005.13,492.5209 +2023-06-04 01:00:00,27005.13,27079.79,26951.0,27041.03,704.48666 +2023-06-04 02:00:00,27041.04,27100.43,27034.13,27091.27,448.49261 +2023-06-04 03:00:00,27091.28,27091.28,27042.85,27061.38,372.13858 +2023-06-04 04:00:00,27061.37,27083.56,27042.37,27054.95,377.40749 +2023-06-04 05:00:00,27054.95,27056.47,27027.0,27038.63,250.41259 +2023-06-04 06:00:00,27038.62,27141.7,27038.62,27127.78,892.17539 +2023-06-04 07:00:00,27127.78,27163.94,27127.78,27150.45,938.24329 +2023-06-04 08:00:00,27150.46,27158.12,27123.81,27150.82,458.66225 +2023-06-04 09:00:00,27150.81,27249.86,27150.81,27215.89,806.3478 +2023-06-04 10:00:00,27215.88,27230.17,27190.34,27221.05,532.53164 +2023-06-04 11:00:00,27221.06,27235.67,27175.51,27198.55,939.50915 +2023-06-04 12:00:00,27198.54,27216.58,27160.11,27210.1,736.78595 +2023-06-04 13:00:00,27210.1,27298.0,27206.36,27245.46,963.22786 +2023-06-04 14:00:00,27245.47,27271.05,27170.0,27234.2,1120.61661 +2023-06-04 15:00:00,27234.2,27244.58,27178.99,27179.0,627.04149 +2023-06-04 16:00:00,27179.0,27197.98,27155.0,27170.66,709.24706 +2023-06-04 17:00:00,27170.66,27210.41,27168.05,27176.76,429.63017 +2023-06-04 18:00:00,27176.75,27209.03,27176.75,27194.18,488.86549 +2023-06-04 19:00:00,27194.19,27222.0,27188.49,27213.11,358.87616 +2023-06-04 20:00:00,27213.11,27269.09,27205.84,27241.51,546.99091 +2023-06-04 21:00:00,27241.5,27280.0,27187.39,27194.57,630.62225 +2023-06-04 22:00:00,27194.57,27455.02,27188.27,27234.06,3633.43419 +2023-06-04 23:00:00,27234.06,27319.84,27043.65,27115.21,1800.144 +2023-06-05 00:00:00,27115.2,27129.33,26966.0,27024.76,1770.73298 +2023-06-05 01:00:00,27024.75,27054.97,26948.1,27047.14,1087.24287 +2023-06-05 02:00:00,27047.14,27079.05,26859.0,26922.71,1366.6475 +2023-06-05 03:00:00,26922.72,26924.81,26791.04,26843.58,2225.14224 +2023-06-05 04:00:00,26843.57,26870.54,26769.51,26837.0,1119.14678 +2023-06-05 05:00:00,26837.0,26837.91,26740.38,26816.7,1838.2393 +2023-06-05 06:00:00,26816.7,26834.63,26761.26,26765.34,1222.38539 +2023-06-05 07:00:00,26765.33,26832.38,26742.13,26829.99,1242.361 +2023-06-05 08:00:00,26830.0,26840.77,26794.79,26798.64,837.57029 +2023-06-05 09:00:00,26798.63,26825.09,26713.74,26776.99,1324.97756 +2023-06-05 10:00:00,26777.0,26792.7,26714.0,26716.8,1350.86586 +2023-06-05 11:00:00,26716.8,26799.66,26668.0,26773.39,1210.05222 +2023-06-05 12:00:00,26773.39,26782.63,26654.39,26690.76,1525.13085 +2023-06-05 13:00:00,26690.76,26765.3,26640.0,26728.64,1517.5261 +2023-06-05 14:00:00,26728.63,26817.61,26699.99,26802.21,1631.85739 +2023-06-05 15:00:00,26802.21,26809.59,26000.0,26007.53,10045.19226 +2023-06-05 16:00:00,26007.53,26074.51,25471.0,25809.05,15303.29987 +2023-06-05 17:00:00,25809.05,25809.7,25578.96,25756.28,4108.6381 +2023-06-05 18:00:00,25756.27,25756.28,25526.15,25564.43,3580.96488 +2023-06-05 19:00:00,25564.42,25637.82,25388.0,25629.99,4463.15529 +2023-06-05 20:00:00,25630.0,25680.01,25587.47,25631.16,1859.43545 +2023-06-05 21:00:00,25631.15,25685.84,25509.98,25658.35,1572.51351 +2023-06-05 22:00:00,25658.35,25774.9,25647.29,25710.73,1838.0922 +2023-06-05 23:00:00,25710.74,25858.42,25701.42,25728.2,1764.43316 +2023-06-06 00:00:00,25728.2,25756.34,25675.26,25690.89,1829.55213 +2023-06-06 01:00:00,25690.89,25695.59,25611.9,25640.01,1515.07302 +2023-06-06 02:00:00,25640.02,25801.09,25601.0,25764.76,1638.10867 +2023-06-06 03:00:00,25764.76,25764.76,25712.02,25730.83,754.55594 +2023-06-06 04:00:00,25730.83,25806.6,25726.11,25797.65,679.57161 +2023-06-06 05:00:00,25797.66,25821.41,25758.0,25769.95,942.45063 +2023-06-06 06:00:00,25769.96,25807.63,25752.6,25766.21,1146.56549 +2023-06-06 07:00:00,25766.21,25809.9,25706.18,25722.33,1793.86272 +2023-06-06 08:00:00,25722.34,25746.03,25670.9,25707.8,1185.0488 +2023-06-06 09:00:00,25707.8,25789.71,25691.72,25750.76,791.97455 +2023-06-06 10:00:00,25750.75,25797.0,25741.99,25742.36,861.22598 +2023-06-06 11:00:00,25742.36,25749.17,25640.33,25686.64,1867.16747 +2023-06-06 12:00:00,25686.64,25737.23,25351.02,25533.41,5378.21189 +2023-06-06 13:00:00,25533.41,25784.31,25385.8,25735.2,4315.54458 +2023-06-06 14:00:00,25735.2,26111.15,25735.2,26024.73,6006.62536 +2023-06-06 15:00:00,26024.72,26143.69,25925.85,26066.11,2880.24787 +2023-06-06 16:00:00,26066.12,26401.0,26066.11,26369.99,3915.54382 +2023-06-06 17:00:00,26370.0,26780.0,26290.56,26669.16,8776.3447 +2023-06-06 18:00:00,26669.16,26782.52,26637.64,26698.08,2926.69288 +2023-06-06 19:00:00,26698.08,27216.89,26690.93,27080.13,6336.18815 +2023-06-06 20:00:00,27080.12,27222.0,26857.92,26944.98,5242.13695 +2023-06-06 21:00:00,26944.99,27092.82,26938.06,27057.03,2014.79907 +2023-06-06 22:00:00,27057.03,27188.46,27044.34,27152.65,1842.84082 +2023-06-06 23:00:00,27152.66,27355.33,27120.02,27230.08,3752.27128 +2023-06-07 00:00:00,27230.07,27391.77,27163.06,27179.8,2992.02834 +2023-06-07 01:00:00,27179.8,27222.14,27065.89,27085.83,2618.44012 +2023-06-07 02:00:00,27085.82,27093.95,26912.69,26943.69,2657.89391 +2023-06-07 03:00:00,26943.68,26967.88,26720.47,26909.01,3105.70144 +2023-06-07 04:00:00,26909.01,26965.0,26874.76,26933.12,1266.22184 +2023-06-07 05:00:00,26933.11,26980.04,26871.71,26912.99,1028.78255 +2023-06-07 06:00:00,26912.99,26943.9,26814.71,26829.3,1276.59358 +2023-06-07 07:00:00,26829.3,26899.99,26753.01,26795.87,1823.54312 +2023-06-07 08:00:00,26795.87,26840.9,26761.41,26816.47,1198.72003 +2023-06-07 09:00:00,26816.47,26816.47,26428.58,26486.28,3819.66805 +2023-06-07 10:00:00,26486.28,26629.99,26352.0,26595.74,3987.08298 +2023-06-07 11:00:00,26595.73,26968.0,26579.6,26896.14,3293.93935 +2023-06-07 12:00:00,26896.14,26932.1,26743.02,26802.35,2251.66556 +2023-06-07 13:00:00,26802.35,26864.26,26670.94,26818.62,2295.14329 +2023-06-07 14:00:00,26818.63,26818.63,26340.55,26443.57,5906.95885 +2023-06-07 15:00:00,26443.56,26679.03,26236.0,26349.52,5675.3498 +2023-06-07 16:00:00,26349.52,26439.34,26240.47,26329.16,3138.06466 +2023-06-07 17:00:00,26329.15,26553.78,26272.63,26507.04,2310.94402 +2023-06-07 18:00:00,26507.05,26530.08,26441.56,26472.94,1192.52054 +2023-06-07 19:00:00,26472.95,26531.05,26442.37,26482.42,1028.3047 +2023-06-07 20:00:00,26482.43,26493.3,26317.4,26359.93,1711.09205 +2023-06-07 21:00:00,26359.94,26457.23,26125.01,26156.0,2031.37972 +2023-06-07 22:00:00,26154.52,26373.33,26132.4,26275.9,1989.36987 +2023-06-07 23:00:00,26275.9,26364.95,26257.35,26339.34,1020.03527 +2023-06-08 00:00:00,26339.34,26440.49,26305.11,26390.01,1503.99009 +2023-06-08 01:00:00,26390.01,26470.0,26383.9,26443.6,1022.65527 +2023-06-08 02:00:00,26443.6,26446.0,26363.48,26386.51,1033.29331 +2023-06-08 03:00:00,26386.5,26386.51,26210.0,26344.17,1658.6812 +2023-06-08 04:00:00,26344.16,26428.06,26326.19,26400.97,718.48832 +2023-06-08 05:00:00,26400.96,26435.22,26350.0,26377.51,839.63098 +2023-06-08 06:00:00,26377.51,26495.01,26290.19,26427.34,1115.90348 +2023-06-08 07:00:00,26427.34,26523.93,26416.92,26444.69,1051.35051 +2023-06-08 08:00:00,26444.68,26463.99,26403.87,26441.54,620.38652 +2023-06-08 09:00:00,26441.55,26444.18,26370.0,26385.06,750.87232 +2023-06-08 10:00:00,26385.05,26496.1,26368.04,26484.77,799.15752 +2023-06-08 11:00:00,26484.77,26504.94,26408.92,26432.0,1034.12004 +2023-06-08 12:00:00,26432.01,26575.95,26370.0,26462.9,2417.66604 +2023-06-08 13:00:00,26462.9,26479.0,26300.0,26400.93,2457.93413 +2023-06-08 14:00:00,26400.92,26686.87,26351.32,26648.55,2988.17396 +2023-06-08 15:00:00,26648.54,26810.0,26579.97,26721.68,2794.1661 +2023-06-08 16:00:00,26721.69,26732.24,26414.02,26498.4,2839.83235 +2023-06-08 17:00:00,26498.39,26515.12,26435.01,26485.0,976.46959 +2023-06-08 18:00:00,26485.0,26571.99,26442.0,26550.0,1050.51441 +2023-06-08 19:00:00,26550.0,26564.38,26515.99,26539.9,591.34861 +2023-06-08 20:00:00,26539.86,26649.97,26521.07,26637.3,958.11632 +2023-06-08 21:00:00,26637.31,26644.51,26552.0,26573.42,663.12157 +2023-06-08 22:00:00,26573.42,26601.77,26525.89,26544.38,545.50744 +2023-06-08 23:00:00,26544.39,26553.53,26488.01,26498.61,644.13075 +2023-06-09 00:00:00,26498.62,26509.72,26430.0,26456.95,935.16043 +2023-06-09 01:00:00,26456.95,26596.58,26439.98,26504.21,1113.87611 +2023-06-09 02:00:00,26504.21,26537.18,26269.91,26457.51,2532.48238 +2023-06-09 03:00:00,26457.5,26501.75,26439.11,26483.7,741.0086 +2023-06-09 04:00:00,26483.69,26507.11,26424.35,26491.38,877.26907 +2023-06-09 05:00:00,26491.38,26533.3,26475.51,26504.54,683.74932 +2023-06-09 06:00:00,26504.54,26576.55,26475.24,26492.93,1051.33756 +2023-06-09 07:00:00,26492.92,26500.0,26440.38,26493.43,1003.56886 +2023-06-09 08:00:00,26493.44,26650.0,26491.66,26642.37,1657.03118 +2023-06-09 09:00:00,26642.38,26685.43,26591.0,26639.03,1272.2901 +2023-06-09 10:00:00,26639.03,26675.82,26602.51,26635.4,988.92677 +2023-06-09 11:00:00,26635.39,26644.96,26560.0,26610.19,968.93409 +2023-06-09 12:00:00,26610.18,26699.99,26610.18,26673.76,1186.0818 +2023-06-09 13:00:00,26673.75,26783.33,26627.21,26634.65,2351.81394 +2023-06-09 14:00:00,26634.64,26712.52,26536.96,26594.64,1793.16256 +2023-06-09 15:00:00,26594.63,26633.76,26452.86,26477.37,1874.5623 +2023-06-09 16:00:00,26477.36,26529.54,26442.98,26482.84,1257.10608 +2023-06-09 17:00:00,26482.83,26515.0,26417.92,26496.06,1105.22958 +2023-06-09 18:00:00,26496.05,26516.71,26412.44,26450.0,917.15989 +2023-06-09 19:00:00,26450.0,26490.0,26383.05,26407.15,1165.90636 +2023-06-09 20:00:00,26407.15,26470.0,26397.11,26451.16,869.25481 +2023-06-09 21:00:00,26451.16,26499.5,26445.75,26479.52,534.364 +2023-06-09 22:00:00,26479.51,26500.0,26458.07,26492.69,472.82674 +2023-06-09 23:00:00,26492.69,26498.17,26449.78,26477.81,581.60717 +2023-06-10 00:00:00,26477.8,26487.26,26450.0,26459.99,665.29959 +2023-06-10 01:00:00,26459.99,26533.87,26311.31,26396.93,1547.82949 +2023-06-10 02:00:00,26396.94,26437.08,26280.0,26326.92,1554.34919 +2023-06-10 03:00:00,26326.93,26365.74,26266.0,26323.07,1254.18152 +2023-06-10 04:00:00,26323.07,26349.17,25715.46,25765.28,9775.41263 +2023-06-10 05:00:00,25765.29,25808.12,25456.41,25518.06,7756.38422 +2023-06-10 06:00:00,25518.06,25638.93,25457.46,25538.81,5172.6708 +2023-06-10 07:00:00,25538.81,25743.8,25493.27,25651.09,5389.58832 +2023-06-10 08:00:00,25651.08,25750.25,25561.25,25669.07,3349.48241 +2023-06-10 09:00:00,25669.06,25682.78,25614.85,25651.88,1441.75021 +2023-06-10 10:00:00,25651.89,25701.68,25598.49,25698.31,1177.12476 +2023-06-10 11:00:00,25698.3,25739.29,25659.07,25731.4,1197.11154 +2023-06-10 12:00:00,25731.41,25731.41,25608.58,25616.18,1533.2788 +2023-06-10 13:00:00,25616.19,25679.06,25572.94,25657.49,1219.23391 +2023-06-10 14:00:00,25657.5,25706.57,25627.0,25668.34,1412.86466 +2023-06-10 15:00:00,25668.35,25679.93,25600.0,25628.8,1103.39326 +2023-06-10 16:00:00,25628.81,25649.5,25582.01,25588.67,1188.53634 +2023-06-10 17:00:00,25588.67,26154.0,25400.0,26022.34,7288.3803 +2023-06-10 18:00:00,26022.34,26043.49,25358.0,25547.28,4939.79125 +2023-06-10 19:00:00,25547.28,25750.95,25540.56,25750.0,1558.2151 +2023-06-10 20:00:00,25750.01,25873.54,25679.59,25751.25,1741.52798 +2023-06-10 21:00:00,25751.25,25829.72,25687.26,25761.28,928.70332 +2023-06-10 22:00:00,25761.29,25932.02,25745.78,25875.16,1084.6685 +2023-06-10 23:00:00,25875.17,25892.38,25830.0,25841.21,664.82298 +2023-06-11 00:00:00,25841.22,25850.0,25730.86,25750.28,1006.26589 +2023-06-11 01:00:00,25750.27,25864.32,25718.97,25824.99,1035.45895 +2023-06-11 02:00:00,25824.99,25827.93,25747.28,25766.72,1166.38053 +2023-06-11 03:00:00,25766.71,25770.0,25695.0,25727.51,1010.00082 +2023-06-11 04:00:00,25727.51,25759.99,25634.7,25727.74,1218.85905 +2023-06-11 05:00:00,25727.74,25834.59,25727.74,25819.1,913.31373 +2023-06-11 06:00:00,25819.1,25823.91,25767.34,25786.49,595.08665 +2023-06-11 07:00:00,25786.49,25796.88,25740.02,25741.33,941.71498 +2023-06-11 08:00:00,25741.32,25768.54,25695.08,25740.2,643.87081 +2023-06-11 09:00:00,25740.21,25772.97,25701.42,25706.26,797.94329 +2023-06-11 10:00:00,25706.25,25795.27,25695.0,25774.08,1170.50916 +2023-06-11 11:00:00,25774.08,25842.44,25757.13,25796.06,1164.36338 +2023-06-11 12:00:00,25796.05,25798.72,25747.61,25750.0,809.95086 +2023-06-11 13:00:00,25750.01,25776.13,25672.68,25703.33,1389.19458 +2023-06-11 14:00:00,25703.32,25806.11,25694.72,25753.19,950.1524 +2023-06-11 15:00:00,25753.18,25778.08,25732.95,25751.36,932.80837 +2023-06-11 16:00:00,25751.36,25953.24,25738.07,25868.39,2437.41159 +2023-06-11 17:00:00,25868.39,26080.74,25836.88,25941.63,2832.13906 +2023-06-11 18:00:00,25941.63,26047.58,25927.86,25975.0,1574.00804 +2023-06-11 19:00:00,25974.99,26106.66,25934.56,26030.89,1470.74385 +2023-06-11 20:00:00,26030.89,26206.88,26030.88,26123.68,1809.46899 +2023-06-11 21:00:00,26123.69,26139.78,25972.64,26046.37,963.47924 +2023-06-11 22:00:00,26046.37,26070.0,25745.03,25895.8,2097.21566 +2023-06-11 23:00:00,25895.79,25938.8,25819.66,25925.55,1083.95607 +2023-06-12 00:00:00,25925.54,26028.5,25856.84,25965.13,1363.72265 +2023-06-12 01:00:00,25965.13,26000.0,25891.66,25935.17,1111.02989 +2023-06-12 02:00:00,25935.17,25959.56,25602.11,25773.47,3157.17512 +2023-06-12 03:00:00,25773.48,25848.84,25752.87,25791.29,1034.01167 +2023-06-12 04:00:00,25791.29,25823.53,25756.57,25814.98,1104.75677 +2023-06-12 05:00:00,25814.99,25818.89,25762.57,25772.8,771.01816 +2023-06-12 06:00:00,25772.8,25905.63,25744.06,25844.34,1131.26471 +2023-06-12 07:00:00,25844.34,25858.31,25773.2,25802.98,889.02955 +2023-06-12 08:00:00,25802.97,25948.91,25780.0,25939.32,1461.74645 +2023-06-12 09:00:00,25939.31,26106.48,25920.0,25965.1,2237.04529 +2023-06-12 10:00:00,25965.1,26059.59,25944.18,25964.59,1224.51558 +2023-06-12 11:00:00,25964.6,26029.25,25936.3,25988.83,910.4549 +2023-06-12 12:00:00,25988.82,25993.6,25899.89,25933.1,967.00744 +2023-06-12 13:00:00,25933.1,25933.11,25779.71,25798.3,1714.07782 +2023-06-12 14:00:00,25798.29,25878.84,25734.47,25846.35,1501.21474 +2023-06-12 15:00:00,25846.35,25866.34,25766.86,25824.63,1285.36761 +2023-06-12 16:00:00,25824.63,25905.23,25789.26,25825.41,1232.739 +2023-06-12 17:00:00,25825.41,25966.18,25652.04,25804.56,2309.53466 +2023-06-12 18:00:00,25804.55,25863.48,25756.77,25845.31,864.86544 +2023-06-12 19:00:00,25845.32,25851.27,25761.47,25824.23,807.4572 +2023-06-12 20:00:00,25824.23,25898.99,25804.3,25893.48,745.83335 +2023-06-12 21:00:00,25893.48,25939.33,25880.12,25930.52,649.35736 +2023-06-12 22:00:00,25930.52,25970.05,25888.98,25929.93,788.63176 +2023-06-12 23:00:00,25929.93,25938.48,25870.0,25905.19,638.65181 +2023-06-13 00:00:00,25905.2,26033.91,25820.0,25868.89,1834.85547 +2023-06-13 01:00:00,25868.88,26048.7,25818.07,25970.67,1294.33307 +2023-06-13 02:00:00,25970.67,26157.99,25937.11,26125.49,2041.22597 +2023-06-13 03:00:00,26125.49,26151.37,26043.04,26063.85,1476.54989 +2023-06-13 04:00:00,26063.85,26070.18,25973.7,26055.51,1005.47285 +2023-06-13 05:00:00,26055.51,26121.01,26030.89,26080.82,1109.71017 +2023-06-13 06:00:00,26080.82,26133.03,26054.56,26080.01,806.11619 +2023-06-13 07:00:00,26080.01,26114.94,26070.0,26073.92,732.88273 +2023-06-13 08:00:00,26073.91,26272.25,26060.77,26176.83,2197.84688 +2023-06-13 09:00:00,26176.82,26206.81,26105.09,26147.37,1514.76235 +2023-06-13 10:00:00,26147.37,26170.89,26111.91,26156.31,940.55651 +2023-06-13 11:00:00,26156.31,26212.5,26086.9,26191.81,2621.02821 +2023-06-13 12:00:00,26191.81,26433.21,25891.25,26082.29,6842.52332 +2023-06-13 13:00:00,26082.29,26143.68,26001.64,26032.92,2780.76467 +2023-06-13 14:00:00,26032.91,26050.0,25901.07,25985.67,2400.96975 +2023-06-13 15:00:00,25985.66,25985.67,25712.57,25759.54,3923.18742 +2023-06-13 16:00:00,25759.54,25880.3,25739.38,25865.29,1682.8275 +2023-06-13 17:00:00,25865.3,25893.46,25777.44,25821.88,1126.74634 +2023-06-13 18:00:00,25821.87,25978.37,25802.79,25889.63,1208.09908 +2023-06-13 19:00:00,25889.64,25928.72,25868.99,25902.84,564.47241 +2023-06-13 20:00:00,25902.83,25959.26,25821.83,25847.98,1213.06145 +2023-06-13 21:00:00,25847.97,25880.64,25817.72,25847.45,715.16853 +2023-06-13 22:00:00,25847.44,25863.29,25808.1,25840.0,419.40495 +2023-06-13 23:00:00,25840.01,25937.66,25840.0,25934.25,613.04282 +2023-06-14 00:00:00,25934.24,26030.0,25911.6,25989.72,1127.65179 +2023-06-14 01:00:00,25989.72,26052.5,25957.95,26046.27,757.63957 +2023-06-14 02:00:00,26046.27,26055.99,26013.6,26027.4,688.05766 +2023-06-14 03:00:00,26027.4,26031.68,25964.46,25985.07,677.42228 +2023-06-14 04:00:00,25985.06,26005.36,25967.16,25981.01,581.10579 +2023-06-14 05:00:00,25981.0,25984.83,25837.13,25845.14,947.05325 +2023-06-14 06:00:00,25845.14,25925.13,25840.0,25894.54,591.60636 +2023-06-14 07:00:00,25894.53,25923.84,25872.02,25897.72,995.8449 +2023-06-14 08:00:00,25897.71,25942.88,25885.35,25928.3,682.54353 +2023-06-14 09:00:00,25928.3,25989.98,25911.23,25980.53,693.04545 +2023-06-14 10:00:00,25980.53,25988.67,25939.04,25956.99,784.08866 +2023-06-14 11:00:00,25957.0,26028.58,25950.0,25975.71,970.02164 +2023-06-14 12:00:00,25975.71,26085.33,25963.1,26022.15,1554.08203 +2023-06-14 13:00:00,26022.15,26029.98,25927.22,25990.0,1394.33783 +2023-06-14 14:00:00,25990.0,26030.0,25970.0,26001.27,958.62879 +2023-06-14 15:00:00,26001.26,26020.0,25950.0,25986.75,786.48022 +2023-06-14 16:00:00,25986.74,26012.02,25962.25,25965.86,723.52435 +2023-06-14 17:00:00,25965.87,26045.0,25888.0,26027.04,2025.51272 +2023-06-14 18:00:00,26027.03,26098.0,25753.38,25915.03,4206.21158 +2023-06-14 19:00:00,25915.02,25979.45,25833.88,25874.59,1576.36842 +2023-06-14 20:00:00,25874.58,25879.69,24820.56,24934.21,13801.71624 +2023-06-14 21:00:00,24934.21,25190.03,24826.08,25121.25,4418.26518 +2023-06-14 22:00:00,25121.25,25121.25,24950.0,25034.98,2326.53078 +2023-06-14 23:00:00,25034.98,25140.0,24972.37,25128.6,1809.57706 +2023-06-15 00:00:00,25128.6,25206.52,25084.26,25206.51,1307.44938 +2023-06-15 01:00:00,25206.52,25206.52,25030.01,25064.79,1269.01361 +2023-06-15 02:00:00,25064.79,25133.86,25050.73,25083.79,857.0912 +2023-06-15 03:00:00,25083.79,25093.69,25051.91,25065.35,821.83214 +2023-06-15 04:00:00,25065.35,25065.35,24980.0,25028.15,1458.4525 +2023-06-15 05:00:00,25028.15,25056.48,24924.61,25031.42,1845.1595 +2023-06-15 06:00:00,25031.42,25072.35,24906.0,24927.95,2303.79392 +2023-06-15 07:00:00,24927.94,25007.14,24872.35,24983.8,2125.73065 +2023-06-15 08:00:00,24983.81,25048.0,24960.0,24974.26,1760.88886 +2023-06-15 09:00:00,24974.27,25011.75,24900.38,24947.71,2346.93133 +2023-06-15 10:00:00,24947.71,24975.17,24873.05,24923.51,1649.06568 +2023-06-15 11:00:00,24923.51,25050.0,24800.0,25014.97,3027.89388 +2023-06-15 12:00:00,25014.97,25037.63,24921.11,24954.45,2136.83793 +2023-06-15 13:00:00,24954.45,25108.54,24940.0,25055.22,3171.54536 +2023-06-15 14:00:00,25055.22,25079.15,24992.05,25014.62,1660.89608 +2023-06-15 15:00:00,25014.62,25033.23,24953.02,24959.95,1465.75293 +2023-06-15 16:00:00,24959.96,25017.72,24929.0,24999.99,1044.19668 +2023-06-15 17:00:00,25000.0,25164.99,24963.42,25144.72,2120.36139 +2023-06-15 18:00:00,25143.85,25390.77,25068.2,25389.97,2952.36144 +2023-06-15 19:00:00,25389.97,25518.49,25349.22,25455.49,3500.64968 +2023-06-15 20:00:00,25455.49,25610.6,25220.25,25566.0,3305.06895 +2023-06-15 21:00:00,25566.0,25759.01,25511.98,25574.6,3404.24617 +2023-06-15 22:00:00,25574.6,25653.84,25549.06,25629.3,1833.93541 +2023-06-15 23:00:00,25629.29,25635.0,25554.8,25598.49,1295.70596 +2023-06-16 00:00:00,25598.49,25598.49,25440.39,25496.59,1526.44363 +2023-06-16 01:00:00,25496.59,25576.57,25452.98,25517.48,790.29299 +2023-06-16 02:00:00,25517.47,25560.1,25483.94,25554.88,884.2962 +2023-06-16 03:00:00,25554.88,25606.59,25530.52,25561.74,714.16786 +2023-06-16 04:00:00,25561.75,25629.73,25523.51,25528.77,1020.15967 +2023-06-16 05:00:00,25528.77,25570.7,25475.84,25553.04,1197.37288 +2023-06-16 06:00:00,25553.04,25628.77,25537.42,25578.58,1078.73245 +2023-06-16 07:00:00,25578.59,25623.87,25536.82,25537.01,774.22279 +2023-06-16 08:00:00,25537.0,25624.38,25537.0,25545.25,1261.91516 +2023-06-16 09:00:00,25545.25,25621.16,25545.24,25595.95,970.41927 +2023-06-16 10:00:00,25595.96,25603.92,25557.19,25570.0,941.11002 +2023-06-16 11:00:00,25570.0,25570.01,25462.03,25474.51,1934.80076 +2023-06-16 12:00:00,25474.51,25588.97,25473.0,25569.99,1279.65475 +2023-06-16 13:00:00,25570.0,25628.29,25487.22,25492.64,1667.8914 +2023-06-16 14:00:00,25492.64,25725.0,25175.56,25616.01,5032.36177 +2023-06-16 15:00:00,25616.0,25896.78,25558.33,25840.01,4960.14402 +2023-06-16 16:00:00,25840.0,25993.61,25774.02,25959.77,5304.24841 +2023-06-16 17:00:00,25959.77,26330.0,25952.22,26320.99,6550.06039 +2023-06-16 18:00:00,26321.0,26518.0,26274.21,26361.4,6463.5021 +2023-06-16 19:00:00,26361.41,26410.04,26286.84,26382.43,2548.48138 +2023-06-16 20:00:00,26382.43,26464.58,26336.78,26412.13,1782.85421 +2023-06-16 21:00:00,26412.13,26418.34,26287.97,26297.84,1386.50927 +2023-06-16 22:00:00,26297.84,26387.57,26297.83,26370.51,783.86677 +2023-06-16 23:00:00,26370.52,26384.58,26333.86,26345.0,743.40847 +2023-06-17 00:00:00,26345.01,26372.4,26313.11,26313.11,974.86014 +2023-06-17 01:00:00,26313.11,26336.27,26193.88,26198.47,1171.06641 +2023-06-17 02:00:00,26198.47,26293.3,26181.0,26276.67,897.65743 +2023-06-17 03:00:00,26276.66,26293.06,26245.01,26262.16,453.4988 +2023-06-17 04:00:00,26262.17,26363.69,26246.0,26358.49,1001.41295 +2023-06-17 05:00:00,26358.5,26839.99,26342.19,26690.45,4713.90265 +2023-06-17 06:00:00,26690.44,26784.0,26648.74,26665.12,2599.38984 +2023-06-17 07:00:00,26665.13,26675.02,26563.55,26593.57,1251.24472 +2023-06-17 08:00:00,26593.58,26657.09,26555.2,26601.01,1461.0735 +2023-06-17 09:00:00,26601.0,26638.52,26563.58,26596.09,888.42071 +2023-06-17 10:00:00,26596.09,26639.82,26580.38,26588.77,770.46534 +2023-06-17 11:00:00,26588.77,26603.87,26473.5,26507.76,1545.16024 +2023-06-17 12:00:00,26507.75,26585.48,26421.0,26521.05,1413.49592 +2023-06-17 13:00:00,26521.04,26578.85,26508.17,26551.15,582.98587 +2023-06-17 14:00:00,26551.14,26558.26,26465.01,26496.62,757.58873 +2023-06-17 15:00:00,26496.63,26543.4,26311.0,26410.82,2671.95511 +2023-06-17 16:00:00,26410.82,26505.19,26378.95,26473.14,903.04957 +2023-06-17 17:00:00,26473.15,26490.61,26401.6,26423.42,640.26973 +2023-06-17 18:00:00,26423.41,26538.37,26413.1,26521.43,696.48183 +2023-06-17 19:00:00,26521.44,26524.66,26466.08,26475.3,473.33219 +2023-06-17 20:00:00,26475.31,26552.91,26465.42,26541.86,542.70775 +2023-06-17 21:00:00,26541.85,26546.71,26476.88,26525.4,464.18182 +2023-06-17 22:00:00,26525.4,26595.13,26524.25,26570.15,567.03737 +2023-06-17 23:00:00,26570.15,26574.3,26495.0,26516.99,400.98088 +2023-06-18 00:00:00,26516.99,26539.61,26378.98,26453.96,1331.58288 +2023-06-18 01:00:00,26453.95,26496.24,26427.28,26492.12,365.32205 +2023-06-18 02:00:00,26492.12,26517.62,26460.13,26475.52,267.02279 +2023-06-18 03:00:00,26475.53,26548.63,26475.52,26548.45,433.74135 +2023-06-18 04:00:00,26548.46,26559.63,26494.46,26535.51,478.61992 +2023-06-18 05:00:00,26535.51,26641.96,26534.03,26540.01,1370.12242 +2023-06-18 06:00:00,26540.02,26589.71,26472.03,26544.02,1007.59744 +2023-06-18 07:00:00,26544.02,26680.0,26544.01,26584.98,1212.7592 +2023-06-18 08:00:00,26584.99,26596.0,26494.44,26499.32,816.53392 +2023-06-18 09:00:00,26499.32,26540.85,26456.83,26527.34,735.25622 +2023-06-18 10:00:00,26527.34,26534.77,26476.0,26508.0,619.22015 +2023-06-18 11:00:00,26507.99,26508.07,26476.08,26500.0,354.68357 +2023-06-18 12:00:00,26500.0,26572.0,26444.0,26534.97,832.11229 +2023-06-18 13:00:00,26534.97,26550.0,26482.0,26486.0,562.35941 +2023-06-18 14:00:00,26486.01,26573.35,26457.0,26549.99,1462.33796 +2023-06-18 15:00:00,26550.0,26570.0,26526.92,26562.09,702.57369 +2023-06-18 16:00:00,26562.09,26649.74,26525.99,26620.12,1118.5581 +2023-06-18 17:00:00,26620.11,26657.99,26560.62,26630.0,719.39164 +2023-06-18 18:00:00,26630.0,26643.54,26582.08,26620.87,527.02386 +2023-06-18 19:00:00,26620.87,26651.0,26600.01,26650.0,469.3379 +2023-06-18 20:00:00,26650.01,26700.0,26355.1,26473.74,2454.33736 +2023-06-18 21:00:00,26473.74,26487.01,26396.16,26415.34,748.57242 +2023-06-18 22:00:00,26415.34,26459.14,26378.0,26402.26,725.92711 +2023-06-18 23:00:00,26402.26,26461.3,26255.85,26339.97,2223.31657 +2023-06-19 00:00:00,26339.98,26400.0,26256.61,26366.1,1243.35086 +2023-06-19 01:00:00,26366.1,26450.0,26348.26,26437.43,571.30976 +2023-06-19 02:00:00,26437.44,26469.58,26422.6,26446.33,529.45297 +2023-06-19 03:00:00,26446.33,26453.94,26380.0,26403.36,474.55 +2023-06-19 04:00:00,26403.36,26436.91,26369.0,26428.55,693.3889 +2023-06-19 05:00:00,26428.54,26467.39,26424.0,26465.59,586.86002 +2023-06-19 06:00:00,26465.6,26478.87,26403.73,26427.98,951.23956 +2023-06-19 07:00:00,26427.99,26439.76,26381.48,26428.01,693.85894 +2023-06-19 08:00:00,26428.0,26459.18,26390.45,26417.25,761.82685 +2023-06-19 09:00:00,26417.25,26432.0,26364.4,26401.03,682.26675 +2023-06-19 10:00:00,26401.02,26429.98,26370.29,26377.99,673.64356 +2023-06-19 11:00:00,26378.0,26448.0,26366.08,26447.73,707.16587 +2023-06-19 12:00:00,26447.73,26576.0,26429.26,26531.39,1618.70857 +2023-06-19 13:00:00,26531.39,26576.87,26500.54,26535.17,1011.25796 +2023-06-19 14:00:00,26535.17,26539.96,26384.3,26423.23,1613.24722 +2023-06-19 15:00:00,26423.24,26456.0,26348.01,26444.0,1203.69578 +2023-06-19 16:00:00,26443.99,26534.32,26308.45,26499.65,1904.21774 +2023-06-19 17:00:00,26499.64,26704.0,26484.0,26665.06,2820.29332 +2023-06-19 18:00:00,26665.06,27068.09,26482.0,26496.0,8647.53511 +2023-06-19 19:00:00,26495.99,26704.1,26369.99,26682.28,3224.03767 +2023-06-19 20:00:00,26682.29,26859.36,26678.61,26723.99,2498.57538 +2023-06-19 21:00:00,26724.0,26770.19,26652.19,26770.18,1051.539 +2023-06-19 22:00:00,26770.19,26831.77,26734.04,26754.99,941.64199 +2023-06-19 23:00:00,26754.98,26857.8,26723.27,26844.35,768.99596 +2023-06-20 00:00:00,26844.35,27031.49,26798.68,26982.28,2080.97523 +2023-06-20 01:00:00,26982.29,27179.03,26881.35,26902.31,3256.22412 +2023-06-20 02:00:00,26902.32,26945.25,26875.96,26914.5,1076.93919 +2023-06-20 03:00:00,26914.51,26972.3,26888.0,26896.52,1096.26955 +2023-06-20 04:00:00,26896.53,26969.64,26896.52,26965.94,893.56524 +2023-06-20 05:00:00,26965.94,27033.24,26794.01,26820.46,2045.50027 +2023-06-20 06:00:00,26821.36,26843.6,26755.0,26789.15,1377.18849 +2023-06-20 07:00:00,26789.15,26840.0,26758.76,26832.44,809.25754 +2023-06-20 08:00:00,26832.45,26837.4,26740.0,26754.25,1430.99115 +2023-06-20 09:00:00,26754.24,26814.68,26702.47,26780.56,1091.14439 +2023-06-20 10:00:00,26780.57,26831.52,26748.91,26775.98,893.78336 +2023-06-20 11:00:00,26775.99,26912.0,26754.0,26907.99,1134.44333 +2023-06-20 12:00:00,26907.99,26980.0,26834.62,26851.99,2026.36243 +2023-06-20 13:00:00,26851.99,26950.0,26783.27,26812.01,1821.68387 +2023-06-20 14:00:00,26812.0,26845.97,26652.0,26780.0,2224.02348 +2023-06-20 15:00:00,26780.0,27134.73,26740.0,27071.93,2863.75461 +2023-06-20 16:00:00,27071.94,27395.0,27001.73,27380.54,7125.20097 +2023-06-20 17:00:00,27380.55,27965.0,27339.85,27796.0,10764.48177 +2023-06-20 18:00:00,27796.0,28140.0,27778.0,28070.54,7564.05343 +2023-06-20 19:00:00,28070.53,28110.29,27788.13,27982.77,5015.37961 +2023-06-20 20:00:00,27982.77,28249.78,27872.0,28157.99,4647.76396 +2023-06-20 21:00:00,28158.0,28306.41,28067.91,28130.0,3007.1487 +2023-06-20 22:00:00,28130.0,28270.98,28104.3,28213.47,2099.29785 +2023-06-20 23:00:00,28213.47,28402.74,28147.67,28307.99,3321.52271 +2023-06-21 00:00:00,28308.0,28490.35,28257.99,28414.0,4203.05172 +2023-06-21 01:00:00,28413.99,29088.09,28395.31,28785.93,7635.67277 +2023-06-21 02:00:00,28785.93,28899.02,28759.15,28789.05,2735.89312 +2023-06-21 03:00:00,28789.05,28803.76,28678.0,28711.15,2577.8404 +2023-06-21 04:00:00,28711.15,28807.65,28680.0,28785.53,2715.9094 +2023-06-21 05:00:00,28785.1,28990.0,28770.89,28982.02,2947.98711 +2023-06-21 06:00:00,28982.01,29005.0,28771.87,28858.01,3655.7965 +2023-06-21 07:00:00,28858.01,28919.66,28823.64,28872.28,1940.58433 +2023-06-21 08:00:00,28872.28,28914.99,28787.7,28824.41,2167.51226 +2023-06-21 09:00:00,28824.41,28962.88,28821.13,28923.69,1963.16892 +2023-06-21 10:00:00,28923.69,29221.99,28815.23,28834.91,4598.89045 +2023-06-21 11:00:00,28834.92,29040.37,28801.0,28930.0,2413.47096 +2023-06-21 12:00:00,28930.0,29151.8,28889.11,28893.73,3981.45692 +2023-06-21 13:00:00,28893.74,29404.96,28875.81,29311.99,6154.83064 +2023-06-21 14:00:00,29311.99,29591.99,29073.7,29536.01,7616.12614 +2023-06-21 15:00:00,29536.02,30000.0,29467.78,29851.58,10154.81869 +2023-06-21 16:00:00,29851.58,30800.0,29763.37,30164.58,16779.70316 +2023-06-21 17:00:00,30164.58,30350.0,29854.0,30080.23,8536.62352 +2023-06-21 18:00:00,30080.23,30291.98,30010.18,30131.39,4150.12024 +2023-06-21 19:00:00,30131.38,30183.37,29903.82,30112.03,2699.01174 +2023-06-21 20:00:00,30112.02,30152.71,29860.0,29988.01,2348.95616 +2023-06-21 21:00:00,29988.01,30032.7,29800.0,29880.95,2564.403 +2023-06-21 22:00:00,29880.96,30149.99,29857.76,30114.56,2082.13438 +2023-06-21 23:00:00,30114.55,30195.77,29970.9,29993.89,2302.44159 +2023-06-22 00:00:00,29993.89,30245.51,29891.15,30139.48,3300.88077 +2023-06-22 01:00:00,30139.47,30213.83,30062.36,30159.06,1725.43539 +2023-06-22 02:00:00,30159.07,30500.0,30084.68,30472.11,3481.61782 +2023-06-22 03:00:00,30472.12,30493.58,30241.91,30296.01,1596.66569 +2023-06-22 04:00:00,30296.0,30350.0,30198.0,30350.0,1727.50704 +2023-06-22 05:00:00,30349.99,30350.0,30237.57,30285.3,1264.04066 +2023-06-22 06:00:00,30285.29,30293.85,30036.91,30130.02,2488.10638 +2023-06-22 07:00:00,30130.02,30190.0,30010.0,30100.75,2209.53115 +2023-06-22 08:00:00,30100.75,30152.0,30040.0,30096.7,1315.35716 +2023-06-22 09:00:00,30096.69,30178.19,30057.08,30134.36,1614.21962 +2023-06-22 10:00:00,30134.36,30244.0,30096.77,30178.0,1934.95374 +2023-06-22 11:00:00,30178.0,30184.68,29840.09,29928.0,5817.37663 +2023-06-22 12:00:00,29928.01,30137.68,29918.48,30115.49,2017.58877 +2023-06-22 13:00:00,30115.48,30351.14,30107.47,30235.99,3346.57669 +2023-06-22 14:00:00,30235.99,30291.99,29525.61,29746.76,6617.8747 +2023-06-22 15:00:00,29746.75,29963.58,29646.95,29850.65,4914.16651 +2023-06-22 16:00:00,29850.65,30176.96,29821.5,29970.02,3665.23691 +2023-06-22 17:00:00,29970.01,30187.27,29887.38,30145.29,2167.97436 +2023-06-22 18:00:00,30145.3,30167.08,29964.76,30133.99,1641.1442 +2023-06-22 19:00:00,30133.99,30234.83,30044.1,30213.11,1469.21738 +2023-06-22 20:00:00,30213.11,30256.76,30081.5,30152.07,1340.22068 +2023-06-22 21:00:00,30152.08,30164.17,29961.03,30054.07,992.20765 +2023-06-22 22:00:00,30054.06,30084.72,29880.0,29927.77,1431.6348 +2023-06-22 23:00:00,29927.78,29998.0,29884.91,29884.92,975.0299 +2023-06-23 00:00:00,29884.92,30054.0,29875.92,30010.0,1972.80262 +2023-06-23 01:00:00,30010.01,30045.45,29926.26,29933.53,820.96946 +2023-06-23 02:00:00,29933.52,29984.91,29800.0,29984.91,1236.23334 +2023-06-23 03:00:00,29984.91,30025.9,29975.73,30007.96,551.18386 +2023-06-23 04:00:00,30007.97,30082.25,29987.54,30002.0,866.65061 +2023-06-23 05:00:00,30002.0,30073.85,29987.05,30042.0,641.41454 +2023-06-23 06:00:00,30042.0,30062.33,29974.28,30012.18,852.43491 +2023-06-23 07:00:00,30012.18,30012.18,29904.29,29931.99,1994.66287 +2023-06-23 08:00:00,29932.0,30041.2,29906.71,30008.12,1058.14377 +2023-06-23 09:00:00,30008.12,30170.43,29963.62,30145.22,1631.38564 +2023-06-23 10:00:00,30145.21,30195.0,29938.0,30075.99,2211.52985 +2023-06-23 11:00:00,30076.0,30150.0,30038.65,30140.87,1156.0582 +2023-06-23 12:00:00,30140.86,30230.87,29996.0,30106.5,3104.11354 +2023-06-23 13:00:00,30106.51,30181.8,29911.07,30077.82,2448.78785 +2023-06-23 14:00:00,30077.82,30356.3,30010.61,30282.04,4001.96289 +2023-06-23 15:00:00,30282.05,31400.0,30252.0,31238.0,16528.62191 +2023-06-23 16:00:00,31238.01,31431.94,30666.67,31097.02,11756.58344 +2023-06-23 17:00:00,31097.02,31286.61,31007.18,31241.1,5100.61728 +2023-06-23 18:00:00,31241.1,31271.91,30880.78,30943.68,5050.67281 +2023-06-23 19:00:00,30943.69,30944.42,30615.33,30880.87,3979.10321 +2023-06-23 20:00:00,30880.88,30950.0,30788.51,30906.07,1641.73216 +2023-06-23 21:00:00,30906.07,30919.0,30540.69,30659.8,1810.41111 +2023-06-23 22:00:00,30659.8,30669.35,30453.1,30644.17,2299.67907 +2023-06-23 23:00:00,30644.17,30691.32,30522.5,30688.5,1216.14141 +2023-06-24 00:00:00,30688.51,30694.16,30459.32,30488.2,1984.0343 +2023-06-24 01:00:00,30488.2,30629.88,30410.0,30605.3,1586.32575 +2023-06-24 02:00:00,30605.31,30794.11,30580.01,30756.6,1600.85237 +2023-06-24 03:00:00,30756.61,30779.83,30702.8,30730.01,877.79624 +2023-06-24 04:00:00,30730.0,30753.35,30655.35,30703.68,658.95585 +2023-06-24 05:00:00,30703.69,30756.08,30676.13,30725.01,708.67254 +2023-06-24 06:00:00,30725.01,30788.0,30631.41,30697.94,1084.98195 +2023-06-24 07:00:00,30697.95,30697.95,30552.01,30567.58,1134.60715 +2023-06-24 08:00:00,30567.58,30665.43,30552.78,30608.82,1085.54371 +2023-06-24 09:00:00,30608.81,30637.21,30574.75,30621.63,654.58765 +2023-06-24 10:00:00,30621.64,30742.73,30605.01,30739.98,1090.05641 +2023-06-24 11:00:00,30739.99,30739.99,30656.4,30684.38,647.90422 +2023-06-24 12:00:00,30684.37,30800.0,30652.0,30694.57,1254.54445 +2023-06-24 13:00:00,30694.56,30720.0,30525.0,30640.69,1409.55169 +2023-06-24 14:00:00,30640.69,30720.0,30605.48,30688.53,984.95924 +2023-06-24 15:00:00,30688.52,30697.96,30282.07,30398.71,3770.28438 +2023-06-24 16:00:00,30398.72,30513.25,30250.0,30510.01,2499.12893 +2023-06-24 17:00:00,30510.01,30650.31,30502.0,30584.49,1834.45461 +2023-06-24 18:00:00,30584.5,30709.36,30570.0,30638.38,1184.3337 +2023-06-24 19:00:00,30638.39,30679.51,30598.83,30627.84,625.39568 +2023-06-24 20:00:00,30627.84,30627.85,30484.16,30507.56,803.57202 +2023-06-24 21:00:00,30507.56,30574.4,30408.95,30513.78,1066.66873 +2023-06-24 22:00:00,30513.78,30544.17,30476.5,30515.33,1129.22349 +2023-06-24 23:00:00,30515.33,30570.0,30485.7,30527.43,836.86629 +2023-06-25 00:00:00,30527.44,30582.0,30465.41,30513.23,788.33252 +2023-06-25 01:00:00,30513.24,30624.0,30467.47,30598.52,705.61728 +2023-06-25 02:00:00,30598.52,30686.16,30592.0,30621.3,817.81138 +2023-06-25 03:00:00,30621.3,30783.68,30619.76,30748.46,1226.4651 +2023-06-25 04:00:00,30748.46,31046.01,30748.46,30890.66,3602.56006 +2023-06-25 05:00:00,30890.65,30950.34,30829.28,30858.56,1393.62282 +2023-06-25 06:00:00,30858.55,30985.91,30752.0,30872.66,1962.4451 +2023-06-25 07:00:00,30872.66,30877.58,30666.87,30723.78,1559.94654 +2023-06-25 08:00:00,30723.78,30761.7,30666.67,30735.93,954.57784 +2023-06-25 09:00:00,30735.92,30735.93,30588.0,30683.99,1184.45572 +2023-06-25 10:00:00,30683.99,30692.79,30584.51,30621.27,934.08771 +2023-06-25 11:00:00,30621.28,30740.0,30590.0,30716.03,849.77887 +2023-06-25 12:00:00,30716.03,30739.8,30630.89,30669.4,841.00481 +2023-06-25 13:00:00,30669.39,30688.76,30515.68,30676.5,1794.7505 +2023-06-25 14:00:00,30676.49,30727.27,30530.0,30551.82,1501.2449 +2023-06-25 15:00:00,30551.82,30636.0,30462.0,30585.16,1701.88039 +2023-06-25 16:00:00,30585.16,30655.11,30500.2,30590.29,1015.29505 +2023-06-25 17:00:00,30590.3,30609.79,30488.0,30526.01,717.51394 +2023-06-25 18:00:00,30526.0,30526.01,30341.73,30453.03,2168.98604 +2023-06-25 19:00:00,30453.02,30453.03,30328.0,30429.78,969.63492 +2023-06-25 20:00:00,30429.78,30530.71,30277.49,30374.0,1341.69212 +2023-06-25 21:00:00,30374.01,30493.61,30362.55,30451.52,640.68737 +2023-06-25 22:00:00,30451.52,30571.89,30386.66,30500.86,865.46846 +2023-06-25 23:00:00,30500.86,30501.87,30432.43,30462.66,685.58857 +2023-06-26 00:00:00,30462.67,30550.0,30391.75,30394.89,1453.76516 +2023-06-26 01:00:00,30394.88,30405.56,29963.6,30172.74,5025.23679 +2023-06-26 02:00:00,30172.73,30240.0,30115.77,30222.48,1328.30002 +2023-06-26 03:00:00,30222.48,30328.63,30177.38,30296.36,1400.57854 +2023-06-26 04:00:00,30296.35,30323.99,30214.3,30245.17,1075.49423 +2023-06-26 05:00:00,30245.18,30272.93,30164.79,30215.05,923.87173 +2023-06-26 06:00:00,30215.04,30486.23,30194.59,30483.97,1882.17156 +2023-06-26 07:00:00,30483.97,30580.0,30283.0,30404.29,2925.00908 +2023-06-26 08:00:00,30404.28,30428.36,30323.37,30405.75,1461.7186 +2023-06-26 09:00:00,30405.76,30420.14,30245.88,30268.0,1428.10021 +2023-06-26 10:00:00,30268.0,30288.37,30130.0,30267.99,1680.23729 +2023-06-26 11:00:00,30268.0,30343.6,30250.0,30322.89,863.63679 +2023-06-26 12:00:00,30322.89,30398.0,30257.02,30359.3,1272.61484 +2023-06-26 13:00:00,30359.29,30658.49,30356.97,30639.14,2685.49565 +2023-06-26 14:00:00,30639.14,30666.0,30260.01,30394.56,3686.69779 +2023-06-26 15:00:00,30394.56,30461.37,30325.0,30419.62,1452.03887 +2023-06-26 16:00:00,30419.63,30432.0,29982.47,30100.47,4174.44025 +2023-06-26 17:00:00,30100.46,30170.38,29930.0,30084.63,3609.93446 +2023-06-26 18:00:00,30084.63,30239.62,30040.0,30213.36,1794.10177 +2023-06-26 19:00:00,30213.35,30306.96,30070.42,30243.97,1643.44544 +2023-06-26 20:00:00,30243.97,30290.0,30141.7,30161.78,1129.49012 +2023-06-26 21:00:00,30161.78,30220.59,30116.9,30158.07,809.37593 +2023-06-26 22:00:00,30158.07,30258.14,30099.0,30227.51,884.18364 +2023-06-26 23:00:00,30227.5,30286.63,30197.51,30267.99,590.47613 +2023-06-27 00:00:00,30267.99,30381.21,30226.17,30354.02,1243.43295 +2023-06-27 01:00:00,30354.01,30390.0,30273.02,30373.77,904.74577 +2023-06-27 02:00:00,30373.76,30496.88,30353.48,30480.06,1299.70052 +2023-06-27 03:00:00,30480.07,30484.0,30363.79,30371.57,1442.2585 +2023-06-27 04:00:00,30371.56,30385.0,30332.95,30348.8,940.55778 +2023-06-27 05:00:00,30348.81,30366.09,30247.98,30317.9,1197.28892 +2023-06-27 06:00:00,30317.91,30322.0,30233.58,30320.14,785.33529 +2023-06-27 07:00:00,30320.14,30470.8,30307.18,30411.22,1229.54018 +2023-06-27 08:00:00,30411.23,30448.45,30355.05,30395.14,984.61427 +2023-06-27 09:00:00,30395.13,30400.0,30336.0,30377.98,841.1378 +2023-06-27 10:00:00,30377.97,30705.35,30377.97,30656.57,4905.90376 +2023-06-27 11:00:00,30656.56,30786.99,30537.0,30729.1,2201.27766 +2023-06-27 12:00:00,30729.09,30769.04,30633.21,30713.99,2338.57206 +2023-06-27 13:00:00,30713.99,30720.0,30528.0,30610.41,1781.80311 +2023-06-27 14:00:00,30610.41,30994.97,30585.23,30808.63,5635.51146 +2023-06-27 15:00:00,30808.63,30820.0,30383.0,30498.74,3648.38913 +2023-06-27 16:00:00,30498.74,30748.0,30455.5,30710.65,2848.85496 +2023-06-27 17:00:00,30710.64,30769.96,30618.68,30733.2,2690.02139 +2023-06-27 18:00:00,30733.19,30737.93,30626.67,30686.32,1038.77446 +2023-06-27 19:00:00,30686.33,30737.99,30638.91,30648.03,931.40904 +2023-06-27 20:00:00,30648.03,30716.0,30554.09,30649.96,1119.38161 +2023-06-27 21:00:00,30649.96,30728.0,30575.29,30717.42,1359.51716 +2023-06-27 22:00:00,30717.41,30736.24,30579.34,30586.45,720.01602 +2023-06-27 23:00:00,30586.45,30726.27,30573.13,30692.44,611.59777 +2023-06-28 00:00:00,30692.44,30709.74,30460.56,30614.0,1933.84626 +2023-06-28 01:00:00,30614.01,30665.08,30474.96,30498.42,1035.89683 +2023-06-28 02:00:00,30498.43,30544.8,30336.36,30420.01,1423.15653 +2023-06-28 03:00:00,30420.01,30473.62,30394.86,30452.75,1029.95038 +2023-06-28 04:00:00,30452.74,30488.83,30390.96,30482.31,828.16855 +2023-06-28 05:00:00,30482.31,30482.31,30375.0,30452.53,801.89932 +2023-06-28 06:00:00,30452.54,30452.54,30343.58,30375.09,939.99925 +2023-06-28 07:00:00,30375.08,30393.49,30155.75,30186.13,3599.80219 +2023-06-28 08:00:00,30186.14,30280.8,30150.98,30278.0,1634.54287 +2023-06-28 09:00:00,30278.0,30332.53,30229.99,30304.42,1215.65755 +2023-06-28 10:00:00,30304.42,30344.07,30282.0,30337.62,791.8042 +2023-06-28 11:00:00,30337.61,30388.0,30306.13,30310.73,827.59683 +2023-06-28 12:00:00,30310.73,30370.0,30037.2,30101.99,3157.68025 +2023-06-28 13:00:00,30102.0,30211.54,30009.0,30202.34,2977.81675 +2023-06-28 14:00:00,30202.34,30490.86,30147.24,30316.0,3109.70456 +2023-06-28 15:00:00,30316.0,30449.83,30282.21,30411.06,1713.02471 +2023-06-28 16:00:00,30411.07,30466.36,30255.26,30258.0,1596.58976 +2023-06-28 17:00:00,30258.0,30284.0,30056.73,30155.23,2267.12413 +2023-06-28 18:00:00,30155.24,30256.0,30142.51,30198.15,987.55361 +2023-06-28 19:00:00,30198.15,30250.0,29858.8,30100.0,4638.80747 +2023-06-28 20:00:00,30099.99,30145.0,29948.82,30108.01,1517.73144 +2023-06-28 21:00:00,30108.0,30218.55,30030.0,30134.38,919.34826 +2023-06-28 22:00:00,30134.39,30183.5,30086.99,30105.94,815.46244 +2023-06-28 23:00:00,30105.94,30183.48,30057.89,30077.41,700.35523 +2023-06-29 00:00:00,30077.4,30177.7,30049.98,30079.99,1078.66655 +2023-06-29 01:00:00,30079.99,30245.9,30058.6,30168.77,978.18258 +2023-06-29 02:00:00,30168.78,30209.22,30100.0,30121.15,429.49445 +2023-06-29 03:00:00,30121.16,30193.1,30100.0,30176.0,464.39193 +2023-06-29 04:00:00,30176.0,30222.93,30141.05,30221.3,733.38814 +2023-06-29 05:00:00,30221.31,30260.0,30181.26,30183.0,707.0505 +2023-06-29 06:00:00,30183.0,30242.0,30179.6,30235.56,603.47587 +2023-06-29 07:00:00,30235.57,30421.48,30218.01,30340.29,1606.36984 +2023-06-29 08:00:00,30340.29,30449.0,30337.23,30383.98,1211.7886 +2023-06-29 09:00:00,30383.99,30473.14,30354.33,30433.33,1397.95015 +2023-06-29 10:00:00,30433.34,30750.0,30401.21,30697.11,4364.9678 +2023-06-29 11:00:00,30697.12,30725.62,30566.0,30670.94,2538.11434 +2023-06-29 12:00:00,30670.95,30709.21,30602.3,30623.93,1689.87928 +2023-06-29 13:00:00,30623.93,30843.98,30454.12,30564.0,4052.00497 +2023-06-29 14:00:00,30564.0,30654.2,30400.0,30450.01,2801.25863 +2023-06-29 15:00:00,30450.01,30544.85,30418.98,30478.8,1513.82721 +2023-06-29 16:00:00,30478.79,30579.34,30476.0,30502.01,1249.0565 +2023-06-29 17:00:00,30502.02,30663.37,30416.63,30543.33,2199.49822 +2023-06-29 18:00:00,30543.33,30618.08,30500.29,30566.8,959.57942 +2023-06-29 19:00:00,30566.8,30606.97,30495.89,30584.99,1159.55116 +2023-06-29 20:00:00,30584.99,30639.9,30250.0,30398.98,2839.51325 +2023-06-29 21:00:00,30398.97,30454.76,30366.84,30417.34,644.84504 +2023-06-29 22:00:00,30417.33,30460.0,30395.03,30409.34,505.97621 +2023-06-29 23:00:00,30409.35,30526.42,30392.78,30447.31,601.79839 +2023-06-30 00:00:00,30447.31,30511.38,30400.0,30441.34,861.90389 +2023-06-30 01:00:00,30441.35,30441.35,30347.17,30384.53,1011.73252 +2023-06-30 02:00:00,30384.54,30750.0,30375.57,30661.82,2861.97866 +2023-06-30 03:00:00,30661.83,30883.68,30625.77,30745.05,3178.24729 +2023-06-30 04:00:00,30745.06,31282.0,30690.3,30877.99,7181.39157 +2023-06-30 05:00:00,30877.99,30997.41,30650.02,30736.63,4059.26673 +2023-06-30 06:00:00,30736.64,30762.14,30610.01,30665.99,1686.01987 +2023-06-30 07:00:00,30666.0,30848.66,30658.0,30765.09,2381.78578 +2023-06-30 08:00:00,30765.1,30906.8,30717.5,30854.0,2125.95842 +2023-06-30 09:00:00,30854.0,30854.0,30745.65,30768.83,1575.8355 +2023-06-30 10:00:00,30768.82,30868.19,30748.85,30811.52,1347.60722 +2023-06-30 11:00:00,30811.52,30963.2,30765.01,30910.01,1792.83315 +2023-06-30 12:00:00,30910.01,31137.36,30892.0,31010.11,4381.60466 +2023-06-30 13:00:00,31010.11,31095.15,29500.0,30135.62,18824.0601 +2023-06-30 14:00:00,30135.63,30312.98,29944.0,30092.5,9391.13573 +2023-06-30 15:00:00,30092.49,30213.0,30000.0,30067.72,3739.87751 +2023-06-30 16:00:00,30067.72,30529.39,29925.5,30400.53,6623.42035 +2023-06-30 17:00:00,30400.54,30748.08,30376.59,30455.8,7105.03666 +2023-06-30 18:00:00,30455.79,30536.01,30288.01,30359.99,3610.6343 +2023-06-30 19:00:00,30359.99,30474.52,30329.24,30372.36,1503.93831 +2023-06-30 20:00:00,30372.37,30520.0,30366.95,30397.54,1602.03567 +2023-06-30 21:00:00,30397.54,30480.0,30340.46,30479.56,1011.13651 +2023-06-30 22:00:00,30479.57,30529.99,30461.39,30476.68,801.0476 +2023-06-30 23:00:00,30476.68,30544.44,30461.14,30472.0,760.58818 +2023-07-01 00:00:00,30471.99,30534.74,30420.0,30469.83,1244.96393 +2023-07-01 01:00:00,30469.82,30484.31,30380.51,30447.78,1182.24313 +2023-07-01 02:00:00,30447.77,30530.64,30390.33,30420.85,871.56148 +2023-07-01 03:00:00,30420.84,30444.0,30375.85,30398.01,709.27222 +2023-07-01 04:00:00,30398.02,30417.62,30320.57,30389.15,1296.90923 +2023-07-01 05:00:00,30389.16,30430.0,30389.15,30429.36,552.16204 +2023-07-01 06:00:00,30429.36,30472.69,30402.08,30450.26,793.49398 +2023-07-01 07:00:00,30450.27,30460.0,30408.04,30459.88,642.95309 +2023-07-01 08:00:00,30459.87,30472.22,30420.77,30441.7,635.03827 +2023-07-01 09:00:00,30441.71,30465.87,30434.21,30441.23,532.45943 +2023-07-01 10:00:00,30441.23,30491.88,30429.84,30469.98,705.69164 +2023-07-01 11:00:00,30469.98,30600.0,30469.97,30523.02,902.55496 +2023-07-01 12:00:00,30523.02,30635.51,30503.94,30564.01,1072.75591 +2023-07-01 13:00:00,30564.0,30639.01,30539.59,30565.26,972.95195 +2023-07-01 14:00:00,30565.26,30617.45,30531.22,30608.52,828.04518 +2023-07-01 15:00:00,30608.52,30661.6,30541.17,30572.58,927.53367 +2023-07-01 16:00:00,30572.59,30600.0,30543.99,30572.0,707.56992 +2023-07-01 17:00:00,30572.0,30593.38,30550.0,30573.86,543.45309 +2023-07-01 18:00:00,30573.85,30611.88,30568.32,30608.87,355.70229 +2023-07-01 19:00:00,30608.86,30633.92,30596.97,30609.51,633.6956 +2023-07-01 20:00:00,30609.51,30612.68,30579.96,30582.58,359.54499 +2023-07-01 21:00:00,30582.59,30603.81,30570.01,30584.65,299.67901 +2023-07-01 22:00:00,30584.66,30606.88,30548.88,30577.64,392.93086 +2023-07-01 23:00:00,30577.65,30598.0,30561.14,30585.9,338.58488 +2023-07-02 00:00:00,30585.9,30649.99,30548.0,30575.77,816.85629 +2023-07-02 01:00:00,30575.77,30600.0,30551.71,30567.56,554.7189 +2023-07-02 02:00:00,30567.57,30613.7,30463.16,30542.0,1062.94112 +2023-07-02 03:00:00,30542.0,30552.0,30476.11,30509.31,776.88502 +2023-07-02 04:00:00,30509.3,30539.27,30476.0,30527.67,702.28926 +2023-07-02 05:00:00,30527.67,30553.17,30481.27,30481.27,605.65939 +2023-07-02 06:00:00,30481.27,30515.22,30470.01,30480.0,571.6616 +2023-07-02 07:00:00,30479.99,30517.86,30479.99,30513.01,420.81649 +2023-07-02 08:00:00,30513.01,30552.0,30484.0,30484.01,541.41677 +2023-07-02 09:00:00,30484.01,30547.44,30484.0,30516.81,449.57026 +2023-07-02 10:00:00,30516.81,30537.05,30505.18,30509.99,520.60631 +2023-07-02 11:00:00,30509.99,30544.74,30505.18,30544.74,404.128 +2023-07-02 12:00:00,30544.74,30574.75,30504.0,30525.99,494.33008 +2023-07-02 13:00:00,30525.99,30531.2,30493.61,30517.96,647.14726 +2023-07-02 14:00:00,30517.95,30628.0,30488.28,30590.23,1134.65576 +2023-07-02 15:00:00,30590.22,30613.21,30155.0,30498.01,3465.51491 +2023-07-02 16:00:00,30498.0,30693.14,30478.32,30561.58,1703.07108 +2023-07-02 17:00:00,30561.57,30580.85,30424.92,30441.2,912.06707 +2023-07-02 18:00:00,30441.2,30525.69,30366.65,30523.07,1004.28492 +2023-07-02 19:00:00,30523.07,30559.9,30518.69,30557.74,385.60898 +2023-07-02 20:00:00,30557.74,30621.11,30497.3,30588.47,563.15915 +2023-07-02 21:00:00,30588.46,30614.0,30500.0,30557.44,868.80118 +2023-07-02 22:00:00,30557.44,30791.0,30425.47,30651.29,3585.26104 +2023-07-02 23:00:00,30651.28,30658.21,30554.22,30617.03,1094.95935 +2023-07-03 00:00:00,30617.02,30688.75,30587.77,30637.99,858.91789 +2023-07-03 01:00:00,30637.98,30756.5,30634.98,30660.86,780.9349 +2023-07-03 02:00:00,30660.86,30783.44,30660.86,30755.0,1124.29728 +2023-07-03 03:00:00,30754.99,30800.01,30750.46,30756.65,853.50208 +2023-07-03 04:00:00,30756.65,30795.8,30668.0,30679.99,1151.41686 +2023-07-03 05:00:00,30679.99,30704.3,30666.52,30673.62,582.41142 +2023-07-03 06:00:00,30673.61,30678.41,30606.0,30651.25,1036.52235 +2023-07-03 07:00:00,30651.25,30759.8,30636.65,30667.19,1758.79639 +2023-07-03 08:00:00,30667.19,30700.92,30599.07,30640.12,1390.90901 +2023-07-03 09:00:00,30640.11,30670.0,30602.29,30610.61,833.62001 +2023-07-03 10:00:00,30610.6,30670.05,30583.01,30640.09,1260.59208 +2023-07-03 11:00:00,30640.09,30676.74,30600.01,30625.22,2166.2016 +2023-07-03 12:00:00,30625.22,30662.44,30570.27,30653.06,1516.36407 +2023-07-03 13:00:00,30653.06,30696.83,30614.07,30653.84,1223.11869 +2023-07-03 14:00:00,30653.83,30755.0,30653.29,30736.27,1500.49084 +2023-07-03 15:00:00,30736.28,31170.0,30736.27,31068.64,7266.78953 +2023-07-03 16:00:00,31068.64,31127.76,30800.8,31042.22,3787.09282 +2023-07-03 17:00:00,31042.21,31057.86,30915.29,31000.98,1942.13434 +2023-07-03 18:00:00,31000.98,31250.29,30995.77,31199.14,2685.64661 +2023-07-03 19:00:00,31199.13,31380.0,31126.0,31255.84,4081.81621 +2023-07-03 20:00:00,31255.83,31299.16,31107.2,31121.18,2019.53291 +2023-07-03 21:00:00,31121.18,31132.0,30900.0,31050.23,2151.49223 +2023-07-03 22:00:00,31050.22,31146.43,31040.9,31120.69,832.04705 +2023-07-03 23:00:00,31120.7,31157.89,31083.91,31156.2,956.99594 +2023-07-04 00:00:00,31156.2,31187.74,31096.48,31112.86,908.49357 +2023-07-04 01:00:00,31112.86,31350.69,31108.56,31288.8,2764.37214 +2023-07-04 02:00:00,31288.8,31325.76,31200.0,31259.77,1273.7022 +2023-07-04 03:00:00,31259.77,31263.54,31179.09,31195.69,969.0324 +2023-07-04 04:00:00,31195.68,31212.26,31000.0,31058.0,1474.18787 +2023-07-04 05:00:00,31058.01,31090.9,30972.69,30972.7,1164.20649 +2023-07-04 06:00:00,30972.7,31052.91,30879.29,30999.55,2643.33718 +2023-07-04 07:00:00,30999.55,31032.35,30900.48,30911.41,942.33346 +2023-07-04 08:00:00,30911.4,30976.42,30902.01,30930.76,1073.07854 +2023-07-04 09:00:00,30930.75,31045.0,30867.68,31016.91,1326.00863 +2023-07-04 10:00:00,31016.92,31051.92,30946.0,31025.64,1016.22824 +2023-07-04 11:00:00,31025.63,31080.0,31000.73,31067.99,864.58983 +2023-07-04 12:00:00,31067.99,31080.0,31014.9,31044.9,850.06645 +2023-07-04 13:00:00,31044.9,31055.43,30979.0,30999.55,1111.08203 +2023-07-04 14:00:00,30999.54,31046.0,30951.54,30972.4,1154.36938 +2023-07-04 15:00:00,30972.4,31011.98,30886.0,30964.37,2002.0315 +2023-07-04 16:00:00,30964.38,31130.0,30807.0,30960.29,2546.46728 +2023-07-04 17:00:00,30960.3,30987.66,30867.5,30900.01,1653.76045 +2023-07-04 18:00:00,30900.01,30934.92,30839.0,30902.0,1032.09168 +2023-07-04 19:00:00,30902.0,30913.31,30620.0,30696.84,3462.69284 +2023-07-04 20:00:00,30696.84,30808.49,30668.5,30797.13,1205.9084 +2023-07-04 21:00:00,30797.13,30822.85,30754.79,30803.72,724.61867 +2023-07-04 22:00:00,30803.72,30822.58,30766.26,30820.01,579.48355 +2023-07-04 23:00:00,30820.01,30843.73,30760.35,30766.51,463.97665 +2023-07-05 00:00:00,30766.52,30843.31,30752.0,30762.27,850.91505 +2023-07-05 01:00:00,30762.27,30842.64,30753.99,30795.93,518.71143 +2023-07-05 02:00:00,30795.92,30866.0,30794.05,30837.99,799.08777 +2023-07-05 03:00:00,30838.0,30878.07,30823.83,30868.71,669.47781 +2023-07-05 04:00:00,30868.71,30869.41,30817.91,30834.86,601.58084 +2023-07-05 05:00:00,30834.87,30869.57,30794.18,30814.08,769.30642 +2023-07-05 06:00:00,30814.08,30832.96,30762.0,30810.72,785.96495 +2023-07-05 07:00:00,30810.72,30815.0,30764.12,30774.25,621.56546 +2023-07-05 08:00:00,30774.24,30810.34,30650.47,30764.29,1615.45622 +2023-07-05 09:00:00,30764.29,30775.59,30678.0,30680.0,967.25713 +2023-07-05 10:00:00,30680.0,30715.0,30392.06,30430.21,4235.03952 +2023-07-05 11:00:00,30430.21,30489.99,30350.0,30404.3,2318.39279 +2023-07-05 12:00:00,30404.31,30436.0,30268.97,30321.22,2624.98956 +2023-07-05 13:00:00,30321.21,30380.0,30200.0,30357.31,3027.03931 +2023-07-05 14:00:00,30357.31,30452.0,30334.01,30417.65,2095.47385 +2023-07-05 15:00:00,30417.65,30422.45,30237.35,30356.11,2677.17694 +2023-07-05 16:00:00,30356.11,30474.17,30333.7,30462.6,1202.84366 +2023-07-05 17:00:00,30462.6,30581.32,30448.91,30523.21,1429.45379 +2023-07-05 18:00:00,30523.22,30591.57,30436.22,30505.52,1328.38706 +2023-07-05 19:00:00,30505.51,30531.95,30425.09,30431.95,675.04033 +2023-07-05 20:00:00,30431.95,30497.72,30383.83,30460.29,827.90729 +2023-07-05 21:00:00,30460.28,30493.45,30417.63,30469.99,707.65135 +2023-07-05 22:00:00,30469.99,30505.01,30396.04,30436.92,899.97231 +2023-07-05 23:00:00,30436.92,30539.13,30389.96,30504.81,966.98038 +2023-07-06 00:00:00,30504.8,30531.25,30390.0,30413.1,810.40827 +2023-07-06 01:00:00,30413.1,30479.71,30327.0,30476.71,698.56646 +2023-07-06 02:00:00,30476.71,30560.51,30458.08,30471.65,857.28839 +2023-07-06 03:00:00,30471.66,30525.01,30465.1,30490.85,498.91792 +2023-07-06 04:00:00,30490.85,30539.65,30450.0,30465.4,736.27772 +2023-07-06 05:00:00,30465.4,30630.0,30438.26,30582.51,1075.87431 +2023-07-06 06:00:00,30582.5,30730.0,30560.0,30692.56,1813.79996 +2023-07-06 07:00:00,30692.57,30857.89,30688.21,30803.19,2450.81148 +2023-07-06 08:00:00,30803.2,31359.78,30783.58,31329.97,5956.58268 +2023-07-06 09:00:00,31329.98,31500.0,31029.01,31069.6,7976.27859 +2023-07-06 10:00:00,31069.6,31273.6,31064.67,31231.64,2405.1258 +2023-07-06 11:00:00,31231.64,31266.5,30701.0,30846.55,4145.85706 +2023-07-06 12:00:00,30846.55,30887.1,30500.0,30600.31,6131.34546 +2023-07-06 13:00:00,30600.3,30661.35,30310.0,30373.47,4716.80774 +2023-07-06 14:00:00,30373.48,30438.2,29888.0,30214.35,11391.21086 +2023-07-06 15:00:00,30214.34,30494.0,30077.06,30407.01,4872.94982 +2023-07-06 16:00:00,30407.0,30464.13,30157.41,30313.99,3622.50304 +2023-07-06 17:00:00,30313.98,30350.37,30205.17,30294.86,1370.85523 +2023-07-06 18:00:00,30294.85,30392.24,30210.0,30378.01,1458.84879 +2023-07-06 19:00:00,30378.02,30378.02,30254.52,30309.88,1181.27247 +2023-07-06 20:00:00,30309.88,30343.24,30250.0,30315.16,795.06741 +2023-07-06 21:00:00,30315.16,30345.18,30177.77,30224.72,1151.52887 +2023-07-06 22:00:00,30224.73,30267.77,30104.58,30167.3,1252.87602 +2023-07-06 23:00:00,30167.31,30167.31,29850.45,29895.43,3948.57175 +2023-07-07 00:00:00,29895.42,30104.22,29701.02,30052.6,4705.09225 +2023-07-07 01:00:00,30052.59,30119.06,29962.45,30086.0,1568.72833 +2023-07-07 02:00:00,30085.99,30143.4,30054.74,30102.98,1406.51953 +2023-07-07 03:00:00,30102.98,30165.64,30062.17,30135.4,1209.27662 +2023-07-07 04:00:00,30135.41,30173.37,30076.61,30087.81,949.09003 +2023-07-07 05:00:00,30087.8,30300.0,30057.2,30208.4,1658.54406 +2023-07-07 06:00:00,30208.4,30240.01,30100.0,30117.0,1228.13008 +2023-07-07 07:00:00,30117.0,30138.89,29930.53,30007.4,1769.52389 +2023-07-07 08:00:00,30007.41,30109.0,29970.0,30055.41,1108.462 +2023-07-07 09:00:00,30055.41,30187.27,30055.4,30138.79,930.64995 +2023-07-07 10:00:00,30138.79,30168.75,30088.99,30165.88,1276.33238 +2023-07-07 11:00:00,30165.88,30199.0,30100.0,30118.7,952.53115 +2023-07-07 12:00:00,30118.7,30350.0,30041.05,30203.98,3509.52916 +2023-07-07 13:00:00,30203.99,30388.0,30127.83,30385.39,1938.30248 +2023-07-07 14:00:00,30385.4,30443.75,30263.97,30411.49,2317.85096 +2023-07-07 15:00:00,30411.49,30425.69,30312.45,30390.83,1212.53695 +2023-07-07 16:00:00,30390.83,30449.0,30316.32,30354.85,1187.85085 +2023-07-07 17:00:00,30354.85,30365.1,30186.39,30238.46,1114.38977 +2023-07-07 18:00:00,30238.47,30249.99,30116.0,30166.32,945.79343 +2023-07-07 19:00:00,30166.32,30250.01,30135.38,30246.2,781.25677 +2023-07-07 20:00:00,30246.21,30300.0,30214.16,30264.12,664.85374 +2023-07-07 21:00:00,30264.12,30344.02,30264.12,30289.64,608.50192 +2023-07-07 22:00:00,30289.63,30344.85,30283.8,30304.08,582.90433 +2023-07-07 23:00:00,30304.08,30346.06,30285.0,30344.7,443.88832 +2023-07-08 00:00:00,30344.7,30344.71,30275.0,30286.29,526.47425 +2023-07-08 01:00:00,30286.3,30304.6,30257.07,30304.58,435.02353 +2023-07-08 02:00:00,30304.59,30386.81,30281.3,30355.42,685.7275 +2023-07-08 03:00:00,30355.42,30358.72,30272.35,30274.83,385.90795 +2023-07-08 04:00:00,30274.82,30279.19,30224.3,30235.89,591.35515 +2023-07-08 05:00:00,30235.89,30241.16,30183.39,30239.49,665.06514 +2023-07-08 06:00:00,30239.5,30254.73,30145.21,30176.71,583.08358 +2023-07-08 07:00:00,30176.71,30220.05,30170.0,30193.36,489.82024 +2023-07-08 08:00:00,30193.36,30313.98,30190.19,30276.01,832.82733 +2023-07-08 09:00:00,30276.02,30280.0,30225.17,30248.72,416.64168 +2023-07-08 10:00:00,30248.71,30253.52,30222.79,30222.8,288.42632 +2023-07-08 11:00:00,30222.79,30226.59,30156.23,30201.71,552.78312 +2023-07-08 12:00:00,30201.72,30210.0,30152.19,30171.85,548.13862 +2023-07-08 13:00:00,30171.85,30239.37,30171.63,30209.32,359.20579 +2023-07-08 14:00:00,30209.33,30231.17,30193.49,30204.99,367.91363 +2023-07-08 15:00:00,30204.99,30222.85,30180.94,30208.0,352.88442 +2023-07-08 16:00:00,30208.01,30318.25,30208.0,30254.57,1041.20913 +2023-07-08 17:00:00,30254.58,30280.0,30242.35,30254.69,494.66131 +2023-07-08 18:00:00,30254.69,30254.7,30187.5,30201.74,374.45137 +2023-07-08 19:00:00,30201.73,30201.89,30044.47,30112.0,1050.77123 +2023-07-08 20:00:00,30112.0,30164.15,30054.06,30158.21,688.45209 +2023-07-08 21:00:00,30158.22,30196.0,30148.0,30180.8,378.18538 +2023-07-08 22:00:00,30180.81,30225.3,30166.0,30224.5,337.77789 +2023-07-08 23:00:00,30224.5,30289.99,30214.81,30284.63,647.80377 +2023-07-09 00:00:00,30284.63,30349.18,30246.47,30336.01,668.1137 +2023-07-09 01:00:00,30336.0,30402.98,30292.84,30332.26,893.64631 +2023-07-09 02:00:00,30332.25,30364.52,30266.6,30301.04,736.43727 +2023-07-09 03:00:00,30301.05,30317.55,30262.22,30287.99,395.64457 +2023-07-09 04:00:00,30287.99,30297.72,30270.59,30275.35,413.57632 +2023-07-09 05:00:00,30275.34,30299.89,30249.65,30260.67,543.43573 +2023-07-09 06:00:00,30260.67,30267.87,30233.79,30254.79,461.98973 +2023-07-09 07:00:00,30254.8,30283.5,30233.33,30265.0,446.4519 +2023-07-09 08:00:00,30265.0,30310.0,30265.0,30305.51,429.37229 +2023-07-09 09:00:00,30305.51,30305.52,30240.0,30276.0,350.12767 +2023-07-09 10:00:00,30276.0,30295.47,30257.89,30262.89,452.60634 +2023-07-09 11:00:00,30262.89,30290.0,30243.67,30266.69,325.45034 +2023-07-09 12:00:00,30266.7,30348.63,30250.89,30329.99,610.24297 +2023-07-09 13:00:00,30329.99,30350.0,30255.89,30265.14,533.60257 +2023-07-09 14:00:00,30265.14,30445.52,30190.0,30341.02,2139.42099 +2023-07-09 15:00:00,30341.02,30391.12,30274.94,30349.47,921.36391 +2023-07-09 16:00:00,30349.47,30349.74,30278.0,30287.99,557.68263 +2023-07-09 17:00:00,30287.99,30297.71,30255.05,30288.29,513.49509 +2023-07-09 18:00:00,30288.3,30302.7,30256.71,30258.01,295.10914 +2023-07-09 19:00:00,30258.0,30264.85,30204.0,30242.42,447.86529 +2023-07-09 20:00:00,30242.43,30249.99,30115.0,30193.99,914.98795 +2023-07-09 21:00:00,30193.99,30212.0,30138.07,30153.9,498.35243 +2023-07-09 22:00:00,30153.9,30199.48,30061.12,30174.0,1124.72713 +2023-07-09 23:00:00,30174.0,30186.35,30127.03,30160.71,714.79969 +2023-07-10 00:00:00,30160.71,30227.03,29950.0,30090.27,2988.80152 +2023-07-10 01:00:00,30090.26,30137.77,30037.38,30048.8,754.09898 +2023-07-10 02:00:00,30048.79,30230.0,30044.17,30200.0,960.36724 +2023-07-10 03:00:00,30199.99,30240.0,30154.37,30156.17,727.92819 +2023-07-10 04:00:00,30156.17,30160.0,30109.99,30118.07,925.77184 +2023-07-10 05:00:00,30118.06,30144.06,30082.25,30082.25,546.91699 +2023-07-10 06:00:00,30082.25,30119.99,30050.29,30089.64,743.11068 +2023-07-10 07:00:00,30089.65,30137.81,30081.93,30112.1,637.51081 +2023-07-10 08:00:00,30112.11,30114.0,30000.02,30099.21,1221.28246 +2023-07-10 09:00:00,30099.22,30200.0,30038.0,30140.0,1469.34524 +2023-07-10 10:00:00,30140.01,30229.99,30140.0,30183.45,1014.76189 +2023-07-10 11:00:00,30183.45,30245.9,30176.34,30240.0,996.98849 +2023-07-10 12:00:00,30240.0,30285.74,30143.21,30161.47,1262.64924 +2023-07-10 13:00:00,30161.46,30333.0,30158.83,30209.7,1566.85186 +2023-07-10 14:00:00,30209.71,30362.0,30200.0,30310.03,1863.92462 +2023-07-10 15:00:00,30310.02,30323.18,30241.16,30312.81,1214.6904 +2023-07-10 16:00:00,30312.82,30379.29,30241.0,30351.18,1148.53456 +2023-07-10 17:00:00,30351.18,30366.0,30260.33,30278.2,889.39474 +2023-07-10 18:00:00,30278.19,30548.12,30264.01,30529.0,1967.83612 +2023-07-10 19:00:00,30528.99,30840.0,30490.45,30837.4,3609.65111 +2023-07-10 20:00:00,30837.4,31045.78,30765.43,30779.01,6608.87729 +2023-07-10 21:00:00,30779.01,30799.09,30200.0,30302.21,3391.2152 +2023-07-10 22:00:00,30302.22,30397.04,30190.0,30347.37,3602.13211 +2023-07-10 23:00:00,30347.38,30419.26,30337.5,30411.57,1150.23494 +2023-07-11 00:00:00,30411.57,30508.05,30363.29,30419.99,1541.27796 +2023-07-11 01:00:00,30419.99,30600.0,30400.68,30586.26,1192.20152 +2023-07-11 02:00:00,30586.25,30600.0,30456.0,30483.69,926.77528 +2023-07-11 03:00:00,30483.7,30495.0,30399.18,30476.0,873.74007 +2023-07-11 04:00:00,30475.99,30500.0,30433.06,30441.19,792.5326 +2023-07-11 05:00:00,30441.19,30469.42,30430.88,30456.0,649.02181 +2023-07-11 06:00:00,30456.01,30658.0,30451.38,30634.59,1786.98691 +2023-07-11 07:00:00,30634.59,30651.78,30532.66,30535.38,1335.17223 +2023-07-11 08:00:00,30535.38,30567.32,30492.68,30495.91,918.89825 +2023-07-11 09:00:00,30495.92,30508.54,30344.28,30449.83,1630.64837 +2023-07-11 10:00:00,30449.83,30449.83,30370.0,30394.94,761.61426 +2023-07-11 11:00:00,30394.94,30455.01,30377.4,30404.31,1086.52448 +2023-07-11 12:00:00,30404.31,30437.17,30376.01,30433.05,874.12671 +2023-07-11 13:00:00,30433.06,30494.0,30300.0,30450.0,1571.32412 +2023-07-11 14:00:00,30450.01,30595.0,30380.0,30527.43,1772.91008 +2023-07-11 15:00:00,30527.43,30813.63,30480.83,30596.45,3531.927 +2023-07-11 16:00:00,30596.44,30693.87,30506.57,30649.3,1428.91846 +2023-07-11 17:00:00,30649.31,30667.15,30545.27,30575.6,992.51736 +2023-07-11 18:00:00,30575.59,30575.6,30405.0,30480.0,1281.66842 +2023-07-11 19:00:00,30480.01,30582.0,30460.72,30581.99,833.73481 +2023-07-11 20:00:00,30582.0,30630.74,30550.39,30571.52,817.57606 +2023-07-11 21:00:00,30571.52,30584.89,30510.01,30570.18,527.68492 +2023-07-11 22:00:00,30570.18,30603.37,30501.56,30584.57,696.62054 +2023-07-11 23:00:00,30584.57,30650.0,30584.56,30622.1,652.43089 +2023-07-12 00:00:00,30622.1,30630.0,30500.76,30509.98,1389.62467 +2023-07-12 01:00:00,30509.98,30578.11,30497.95,30535.92,968.21291 +2023-07-12 02:00:00,30535.91,30671.38,30535.91,30607.23,719.58067 +2023-07-12 03:00:00,30607.24,30634.28,30578.31,30588.32,498.86775 +2023-07-12 04:00:00,30588.32,30635.37,30565.53,30635.36,688.20609 +2023-07-12 05:00:00,30635.36,30697.21,30612.45,30654.0,640.32142 +2023-07-12 06:00:00,30654.01,30788.87,30621.86,30720.01,1326.12531 +2023-07-12 07:00:00,30720.0,30849.01,30713.0,30740.0,1611.5416 +2023-07-12 08:00:00,30740.0,30764.04,30665.01,30735.48,938.97836 +2023-07-12 09:00:00,30735.48,30758.0,30685.13,30724.01,691.25042 +2023-07-12 10:00:00,30724.0,30724.01,30656.0,30679.99,781.10902 +2023-07-12 11:00:00,30679.99,30809.13,30658.74,30776.25,1078.89021 +2023-07-12 12:00:00,30776.25,30983.25,30639.0,30721.17,5762.42021 +2023-07-12 13:00:00,30721.17,30857.29,30461.59,30666.33,4478.05685 +2023-07-12 14:00:00,30666.33,30850.33,30652.0,30736.57,2380.14177 +2023-07-12 15:00:00,30736.57,30808.16,30472.0,30524.63,3263.51973 +2023-07-12 16:00:00,30524.63,30538.44,30422.62,30487.03,2061.58672 +2023-07-12 17:00:00,30487.04,30523.09,30424.74,30447.95,1373.63384 +2023-07-12 18:00:00,30447.94,30537.01,30430.0,30521.67,888.12902 +2023-07-12 19:00:00,30521.68,30521.68,30210.0,30287.47,3345.16293 +2023-07-12 20:00:00,30287.48,30348.0,30238.28,30348.0,1456.48396 +2023-07-12 21:00:00,30347.99,30372.98,30317.85,30356.01,622.74553 +2023-07-12 22:00:00,30356.0,30372.53,30337.06,30368.68,515.63935 +2023-07-12 23:00:00,30368.67,30419.99,30358.0,30380.0,628.76835 +2023-07-13 00:00:00,30380.0,30433.25,30339.62,30353.51,919.62389 +2023-07-13 01:00:00,30353.51,30397.43,30294.78,30383.78,775.15565 +2023-07-13 02:00:00,30383.79,30383.79,30320.91,30337.55,736.19301 +2023-07-13 03:00:00,30337.55,30350.55,30274.0,30298.01,779.26191 +2023-07-13 04:00:00,30298.01,30320.62,30251.5,30297.33,823.99933 +2023-07-13 05:00:00,30297.33,30323.37,30251.0,30323.0,767.91383 +2023-07-13 06:00:00,30323.01,30400.0,30302.57,30383.98,1025.81421 +2023-07-13 07:00:00,30383.99,30426.91,30354.26,30366.02,1093.32458 +2023-07-13 08:00:00,30366.01,30425.0,30345.05,30411.99,745.89625 +2023-07-13 09:00:00,30411.99,30605.1,30411.99,30576.68,1980.74647 +2023-07-13 10:00:00,30576.68,30637.06,30529.84,30578.84,1321.4407 +2023-07-13 11:00:00,30578.84,30599.09,30541.22,30543.99,676.4412 +2023-07-13 12:00:00,30543.99,30599.05,30459.91,30520.02,1413.30389 +2023-07-13 13:00:00,30520.01,30689.77,30506.88,30663.43,1459.49737 +2023-07-13 14:00:00,30663.44,30695.0,30471.66,30571.99,1894.68435 +2023-07-13 15:00:00,30572.0,31170.0,30555.41,30917.48,10974.86431 +2023-07-13 16:00:00,30917.48,30975.0,30718.27,30826.46,7212.0747 +2023-07-13 17:00:00,30826.47,31200.0,30790.0,31070.08,7794.27106 +2023-07-13 18:00:00,31070.08,31479.99,31056.08,31255.0,9114.48905 +2023-07-13 19:00:00,31255.01,31804.2,31245.72,31606.01,9293.14098 +2023-07-13 20:00:00,31606.0,31691.46,31282.48,31372.91,3686.05551 +2023-07-13 21:00:00,31372.92,31390.0,31000.0,31254.01,2987.92765 +2023-07-13 22:00:00,31254.0,31364.67,31207.51,31309.17,1726.60907 +2023-07-13 23:00:00,31309.17,31499.99,31305.27,31454.23,1569.78939 +2023-07-14 00:00:00,31454.23,31518.94,31361.68,31444.01,3328.55991 +2023-07-14 01:00:00,31444.02,31499.46,31333.0,31418.88,2176.0997 +2023-07-14 02:00:00,31418.88,31475.75,31384.05,31459.24,1498.23052 +2023-07-14 03:00:00,31459.25,31630.0,31401.64,31460.0,1664.20133 +2023-07-14 04:00:00,31459.99,31469.0,31370.0,31390.53,1218.81333 +2023-07-14 05:00:00,31390.53,31401.0,31350.12,31360.48,892.01861 +2023-07-14 06:00:00,31360.48,31385.2,31282.62,31291.22,1111.12465 +2023-07-14 07:00:00,31291.22,31339.35,31075.25,31098.74,2464.44225 +2023-07-14 08:00:00,31098.75,31287.85,31083.95,31243.71,1322.56022 +2023-07-14 09:00:00,31243.7,31243.71,31138.95,31187.04,1013.17808 +2023-07-14 10:00:00,31187.03,31203.42,31090.0,31175.0,1259.90678 +2023-07-14 11:00:00,31175.0,31234.79,31139.0,31209.59,949.73443 +2023-07-14 12:00:00,31209.58,31219.99,31111.0,31126.75,955.04889 +2023-07-14 13:00:00,31126.76,31280.0,31050.0,31253.43,1669.76262 +2023-07-14 14:00:00,31253.44,31334.0,31174.55,31300.56,1591.97384 +2023-07-14 15:00:00,31300.57,31360.11,31206.64,31240.48,1351.97951 +2023-07-14 16:00:00,31240.49,31275.5,31065.82,31214.0,2265.65604 +2023-07-14 17:00:00,31213.99,31214.0,30648.0,30688.64,6225.48626 +2023-07-14 18:00:00,30688.63,30770.95,30050.0,30091.83,13453.45116 +2023-07-14 19:00:00,30091.82,30250.0,29900.0,30115.17,7235.02476 +2023-07-14 20:00:00,30115.18,30237.6,29985.31,30189.18,2872.56687 +2023-07-14 21:00:00,30189.19,30276.21,30147.48,30241.99,1829.84947 +2023-07-14 22:00:00,30242.0,30256.28,30201.0,30227.6,1116.85241 +2023-07-14 23:00:00,30227.6,30319.03,30201.0,30312.01,1282.9626 +2023-07-15 00:00:00,30312.0,30328.77,30200.0,30328.76,1320.89567 +2023-07-15 01:00:00,30328.77,30390.9,30286.0,30336.45,852.99141 +2023-07-15 02:00:00,30336.45,30348.0,30288.7,30288.7,831.44144 +2023-07-15 03:00:00,30288.71,30333.7,30262.93,30292.91,759.69196 +2023-07-15 04:00:00,30292.9,30324.0,30290.0,30295.99,453.18005 +2023-07-15 05:00:00,30295.99,30311.72,30257.45,30295.43,522.31017 +2023-07-15 06:00:00,30295.44,30317.56,30266.33,30311.49,588.84138 +2023-07-15 07:00:00,30311.5,30366.83,30303.55,30338.0,945.08425 +2023-07-15 08:00:00,30338.0,30348.01,30263.25,30316.19,1022.83094 +2023-07-15 09:00:00,30316.2,30350.06,30315.92,30350.06,502.49172 +2023-07-15 10:00:00,30350.06,30371.67,30305.6,30325.43,628.01397 +2023-07-15 11:00:00,30325.43,30340.0,30290.07,30311.99,546.58682 +2023-07-15 12:00:00,30311.99,30365.04,30311.99,30351.1,495.97479 +2023-07-15 13:00:00,30351.1,30352.83,30268.66,30324.99,588.10464 +2023-07-15 14:00:00,30324.99,30330.9,30280.0,30284.48,418.76248 +2023-07-15 15:00:00,30284.48,30317.05,30250.99,30303.41,611.5398 +2023-07-15 16:00:00,30303.4,30308.0,30256.89,30280.01,698.93874 +2023-07-15 17:00:00,30280.01,30311.21,30261.13,30283.13,321.96808 +2023-07-15 18:00:00,30283.12,30353.92,30283.12,30321.99,427.79066 +2023-07-15 19:00:00,30321.99,30358.18,30321.99,30326.47,415.38232 +2023-07-15 20:00:00,30326.47,30326.47,30290.49,30302.01,328.46571 +2023-07-15 21:00:00,30302.01,30304.05,30276.0,30302.98,282.60653 +2023-07-15 22:00:00,30302.99,30318.68,30275.0,30285.42,320.70571 +2023-07-15 23:00:00,30285.43,30293.74,30269.96,30289.52,233.95405 +2023-07-16 00:00:00,30289.52,30307.99,30273.99,30299.99,306.9358 +2023-07-16 01:00:00,30299.99,30332.01,30260.0,30265.0,726.93877 +2023-07-16 02:00:00,30264.99,30335.0,30064.29,30252.0,2493.46612 +2023-07-16 03:00:00,30252.0,30261.99,30178.01,30188.0,579.45225 +2023-07-16 04:00:00,30188.0,30211.56,30134.59,30152.25,668.09204 +2023-07-16 05:00:00,30152.26,30241.34,30152.25,30238.01,348.24355 +2023-07-16 06:00:00,30238.01,30311.99,30225.13,30258.77,520.17496 +2023-07-16 07:00:00,30258.76,30298.75,30250.0,30265.22,404.92872 +2023-07-16 08:00:00,30265.23,30306.94,30265.22,30298.49,424.54707 +2023-07-16 09:00:00,30298.5,30319.59,30279.99,30303.13,691.56215 +2023-07-16 10:00:00,30303.13,30350.0,30273.37,30290.0,588.75873 +2023-07-16 11:00:00,30290.0,30319.14,30283.23,30306.01,356.67363 +2023-07-16 12:00:00,30306.01,30340.0,30288.0,30293.97,585.04737 +2023-07-16 13:00:00,30293.96,30313.09,30273.08,30303.93,431.74559 +2023-07-16 14:00:00,30303.93,30441.46,30303.93,30401.99,1428.76635 +2023-07-16 15:00:00,30402.0,30432.0,30370.0,30379.95,615.70315 +2023-07-16 16:00:00,30379.96,30401.87,30320.0,30364.17,472.89041 +2023-07-16 17:00:00,30364.18,30403.13,30362.57,30381.92,338.73708 +2023-07-16 18:00:00,30381.93,30394.87,30232.0,30276.87,762.60319 +2023-07-16 19:00:00,30276.87,30298.71,30200.43,30252.93,632.9283 +2023-07-16 20:00:00,30252.94,30296.84,30236.0,30271.64,390.3725 +2023-07-16 21:00:00,30271.64,30314.48,30271.64,30292.65,302.90652 +2023-07-16 22:00:00,30292.66,30361.0,30263.33,30321.03,570.79147 +2023-07-16 23:00:00,30321.02,30332.0,30122.95,30231.99,1117.86238 +2023-07-17 00:00:00,30232.0,30312.0,30176.03,30213.99,684.31951 +2023-07-17 01:00:00,30213.99,30336.96,30190.0,30291.05,614.42093 +2023-07-17 02:00:00,30291.04,30300.0,30256.02,30262.0,323.64455 +2023-07-17 03:00:00,30261.99,30319.13,30255.7,30312.66,424.46915 +2023-07-17 04:00:00,30312.66,30314.0,30272.01,30296.44,488.58381 +2023-07-17 05:00:00,30296.45,30323.05,30264.27,30264.27,587.36556 +2023-07-17 06:00:00,30264.28,30278.97,30232.06,30275.11,498.88542 +2023-07-17 07:00:00,30275.11,30287.23,30243.1,30281.0,725.24724 +2023-07-17 08:00:00,30281.01,30328.0,30258.24,30261.9,1060.64404 +2023-07-17 09:00:00,30261.9,30276.52,30150.0,30182.0,1375.66 +2023-07-17 10:00:00,30182.0,30209.99,29965.39,30163.93,3280.10931 +2023-07-17 11:00:00,30163.93,30261.9,30144.39,30161.7,1255.91075 +2023-07-17 12:00:00,30161.7,30211.11,30032.0,30206.0,1788.39116 +2023-07-17 13:00:00,30206.01,30307.84,30160.01,30286.64,1421.61674 +2023-07-17 14:00:00,30286.65,30308.0,30230.38,30274.8,1020.42617 +2023-07-17 15:00:00,30274.81,30291.74,30112.99,30174.83,968.95706 +2023-07-17 16:00:00,30174.84,30241.03,30078.0,30144.01,1466.07769 +2023-07-17 17:00:00,30144.0,30159.99,29920.0,30030.67,2742.68881 +2023-07-17 18:00:00,30030.67,30060.0,29659.2,29802.39,4222.31153 +2023-07-17 19:00:00,29802.38,29934.0,29754.31,29884.39,1833.8101 +2023-07-17 20:00:00,29884.4,29991.91,29881.41,29926.19,956.21448 +2023-07-17 21:00:00,29926.19,30285.71,29926.18,30242.59,1575.46766 +2023-07-17 22:00:00,30242.6,30267.82,30101.7,30106.74,988.85434 +2023-07-17 23:00:00,30106.74,30169.23,30074.54,30138.0,578.69238 +2023-07-18 00:00:00,30138.01,30194.0,30105.55,30168.01,677.7782 +2023-07-18 01:00:00,30168.01,30239.78,30145.55,30215.84,784.17207 +2023-07-18 02:00:00,30215.85,30227.99,30100.85,30120.0,774.95494 +2023-07-18 03:00:00,30120.0,30148.76,30073.96,30073.96,709.93814 +2023-07-18 04:00:00,30073.97,30118.19,30040.78,30118.19,1003.20525 +2023-07-18 05:00:00,30118.19,30118.19,30040.0,30052.22,530.88448 +2023-07-18 06:00:00,30052.23,30097.09,29921.54,29988.62,1388.9038 +2023-07-18 07:00:00,29988.61,30040.39,29926.7,29968.13,1151.28365 +2023-07-18 08:00:00,29968.13,30111.68,29881.0,30021.99,1610.96253 +2023-07-18 09:00:00,30022.0,30039.47,29950.01,29956.94,784.77762 +2023-07-18 10:00:00,29956.95,30029.84,29908.0,29990.65,1128.41237 +2023-07-18 11:00:00,29990.65,30073.41,29810.0,29884.01,1843.38729 +2023-07-18 12:00:00,29884.0,29918.2,29725.24,29784.0,2618.78592 +2023-07-18 13:00:00,29783.99,29869.0,29675.0,29831.99,2150.871 +2023-07-18 14:00:00,29831.99,30034.15,29817.31,29924.78,2253.91802 +2023-07-18 15:00:00,29924.77,29930.0,29837.83,29912.0,974.4072 +2023-07-18 16:00:00,29912.01,29964.99,29512.0,29701.2,3165.09583 +2023-07-18 17:00:00,29701.2,29829.42,29670.87,29821.77,1642.29002 +2023-07-18 18:00:00,29821.76,29924.76,29791.43,29904.98,1240.42307 +2023-07-18 19:00:00,29904.98,29943.79,29680.76,29715.99,1173.23737 +2023-07-18 20:00:00,29715.98,29812.0,29690.65,29778.0,845.66485 +2023-07-18 21:00:00,29777.99,29834.28,29754.46,29800.86,477.66118 +2023-07-18 22:00:00,29800.86,29825.87,29758.85,29819.68,492.33684 +2023-07-18 23:00:00,29819.68,29865.0,29788.0,29859.13,580.50846 +2023-07-19 00:00:00,29859.14,30071.12,29839.5,30055.32,1511.54543 +2023-07-19 01:00:00,30055.31,30071.01,29950.7,30006.01,828.93009 +2023-07-19 02:00:00,30006.0,30029.0,29971.41,30024.0,594.08494 +2023-07-19 03:00:00,30023.99,30076.71,30008.0,30059.11,942.39611 +2023-07-19 04:00:00,30059.1,30189.09,30056.0,30099.08,1450.927 +2023-07-19 05:00:00,30099.08,30119.98,30055.05,30098.39,891.77645 +2023-07-19 06:00:00,30098.39,30114.0,30000.0,30044.59,1137.21719 +2023-07-19 07:00:00,30044.58,30073.52,29966.48,30000.68,801.73838 +2023-07-19 08:00:00,30000.68,30014.86,29876.5,29923.28,1141.83394 +2023-07-19 09:00:00,29923.28,30046.0,29867.17,30006.3,1022.9593 +2023-07-19 10:00:00,30006.29,30034.0,29976.46,29988.0,558.6381 +2023-07-19 11:00:00,29987.99,30029.65,29958.86,30012.63,816.46142 +2023-07-19 12:00:00,30012.62,30021.02,29885.38,29950.01,805.44713 +2023-07-19 13:00:00,29950.0,30128.0,29827.39,29994.3,1963.64187 +2023-07-19 14:00:00,29994.31,30056.69,29787.9,29824.01,2000.5607 +2023-07-19 15:00:00,29824.0,29995.16,29761.96,29956.46,1626.0029 +2023-07-19 16:00:00,29956.46,29979.0,29870.0,29903.9,888.79232 +2023-07-19 17:00:00,29903.9,30085.8,29881.26,29993.18,1285.76377 +2023-07-19 18:00:00,29993.19,30092.42,29944.0,30078.0,1210.92812 +2023-07-19 19:00:00,30078.0,30100.0,30019.84,30044.31,984.43216 +2023-07-19 20:00:00,30044.31,30054.0,29949.89,29964.95,790.27203 +2023-07-19 21:00:00,29964.94,29964.95,29851.1,29933.96,1008.0941 +2023-07-19 22:00:00,29933.96,29957.47,29850.07,29872.8,648.30695 +2023-07-19 23:00:00,29872.81,29940.0,29830.36,29909.21,746.61097 +2023-07-20 00:00:00,29909.21,30012.0,29881.29,30000.0,651.88484 +2023-07-20 01:00:00,29999.99,30027.99,29970.05,29987.33,562.25731 +2023-07-20 02:00:00,29987.34,30047.95,29974.67,29985.53,661.6582 +2023-07-20 03:00:00,29985.54,29993.71,29914.45,29948.01,569.05266 +2023-07-20 04:00:00,29948.0,29984.39,29926.88,29962.01,581.23549 +2023-07-20 05:00:00,29962.01,30176.96,29954.06,30125.99,1612.77334 +2023-07-20 06:00:00,30125.98,30197.36,30086.22,30120.0,1232.13677 +2023-07-20 07:00:00,30119.99,30246.98,30102.01,30202.77,1697.05739 +2023-07-20 08:00:00,30202.78,30320.0,30166.67,30264.55,1708.17742 +2023-07-20 09:00:00,30264.56,30389.92,30215.05,30327.99,2289.82917 +2023-07-20 10:00:00,30327.99,30417.46,30272.9,30295.0,2151.25276 +2023-07-20 11:00:00,30295.0,30311.79,30251.09,30284.9,1459.52763 +2023-07-20 12:00:00,30284.9,30316.0,30208.04,30221.53,1129.51077 +2023-07-20 13:00:00,30221.52,30283.22,30171.71,30229.58,1587.03137 +2023-07-20 14:00:00,30229.57,30243.93,29627.04,29782.19,6803.86374 +2023-07-20 15:00:00,29782.2,29853.16,29711.11,29810.18,2472.94476 +2023-07-20 16:00:00,29810.17,29872.71,29658.02,29716.69,1970.22685 +2023-07-20 17:00:00,29716.69,29820.0,29694.38,29756.73,1137.21598 +2023-07-20 18:00:00,29756.72,29795.52,29570.96,29687.84,2644.23439 +2023-07-20 19:00:00,29687.84,29762.31,29675.01,29756.0,987.17978 +2023-07-20 20:00:00,29756.0,29769.75,29669.56,29739.72,791.2408 +2023-07-20 21:00:00,29739.73,29888.0,29736.0,29870.28,926.78751 +2023-07-20 22:00:00,29870.27,29878.48,29798.39,29814.0,648.81625 +2023-07-20 23:00:00,29814.0,29822.0,29789.65,29800.0,1264.78675 +2023-07-21 00:00:00,29800.0,29835.0,29726.34,29786.01,1322.60947 +2023-07-21 01:00:00,29786.01,29899.0,29760.0,29877.48,1084.58834 +2023-07-21 02:00:00,29877.49,29953.01,29846.0,29903.19,1286.3719 +2023-07-21 03:00:00,29903.2,29942.0,29877.02,29897.62,528.37781 +2023-07-21 04:00:00,29897.62,29904.0,29859.15,29864.0,791.82233 +2023-07-21 05:00:00,29864.0,29865.82,29790.0,29817.99,764.67534 +2023-07-21 06:00:00,29817.99,29856.48,29793.89,29856.48,499.43667 +2023-07-21 07:00:00,29856.47,29859.53,29751.9,29766.81,1287.97532 +2023-07-21 08:00:00,29766.81,29816.78,29756.17,29786.29,795.64478 +2023-07-21 09:00:00,29786.3,29851.37,29750.0,29755.99,799.28188 +2023-07-21 10:00:00,29755.99,29818.96,29755.99,29793.36,687.19109 +2023-07-21 11:00:00,29793.37,29815.0,29729.76,29778.51,955.00122 +2023-07-21 12:00:00,29778.51,29898.5,29778.5,29869.91,1260.66302 +2023-07-21 13:00:00,29869.9,29913.94,29784.39,29813.99,1393.00242 +2023-07-21 14:00:00,29814.0,29882.23,29780.09,29881.07,1163.77751 +2023-07-21 15:00:00,29881.07,29909.08,29854.74,29866.0,851.50445 +2023-07-21 16:00:00,29866.0,29870.0,29812.2,29828.0,702.69989 +2023-07-21 17:00:00,29828.0,29938.0,29823.99,29921.99,1134.69256 +2023-07-21 18:00:00,29922.0,30061.7,29921.99,29981.69,2119.60608 +2023-07-21 19:00:00,29981.7,29981.7,29770.0,29875.99,1640.68923 +2023-07-21 20:00:00,29875.99,29892.9,29833.93,29880.0,644.78479 +2023-07-21 21:00:00,29880.01,29941.06,29878.69,29899.57,543.7152 +2023-07-21 22:00:00,29899.57,29955.0,29887.16,29925.06,499.50565 +2023-07-21 23:00:00,29925.07,29933.0,29891.86,29901.72,1123.7917 +2023-07-22 00:00:00,29901.72,29999.0,29901.71,29983.79,464.18017 +2023-07-22 01:00:00,29983.8,29987.45,29916.41,29924.01,479.21604 +2023-07-22 02:00:00,29924.0,29967.24,29918.2,29935.48,550.9023 +2023-07-22 03:00:00,29935.47,29937.98,29896.0,29903.41,1236.61433 +2023-07-22 04:00:00,29903.4,29932.69,29868.82,29884.0,366.49246 +2023-07-22 05:00:00,29884.0,29900.0,29858.0,29870.01,801.29041 +2023-07-22 06:00:00,29870.01,29894.0,29848.0,29890.01,291.23675 +2023-07-22 07:00:00,29890.0,29990.0,29862.73,29944.77,798.8056 +2023-07-22 08:00:00,29944.78,29979.92,29927.85,29937.29,697.1655 +2023-07-22 09:00:00,29937.28,29948.31,29909.32,29929.48,802.85326 +2023-07-22 10:00:00,29929.49,29929.49,29870.0,29902.08,730.14878 +2023-07-22 11:00:00,29902.09,29902.09,29864.48,29886.94,297.16156 +2023-07-22 12:00:00,29886.93,29886.94,29828.77,29840.84,510.1949 +2023-07-22 13:00:00,29840.85,29867.64,29835.2,29848.3,269.10948 +2023-07-22 14:00:00,29848.3,29893.67,29847.47,29883.87,675.25551 +2023-07-22 15:00:00,29883.87,29907.35,29859.14,29900.24,509.61506 +2023-07-22 16:00:00,29900.23,29908.71,29862.61,29899.99,514.39557 +2023-07-22 17:00:00,29900.0,29900.0,29810.0,29837.35,509.16404 +2023-07-22 18:00:00,29837.35,29837.35,29801.66,29814.23,406.55091 +2023-07-22 19:00:00,29814.23,29857.36,29805.0,29836.0,371.29829 +2023-07-22 20:00:00,29836.0,29839.75,29819.42,29827.24,259.36213 +2023-07-22 21:00:00,29827.25,29833.81,29815.48,29827.04,230.71103 +2023-07-22 22:00:00,29827.04,29832.58,29785.72,29808.0,479.25098 +2023-07-22 23:00:00,29807.99,29814.56,29625.1,29794.0,2409.42961 +2023-07-23 00:00:00,29793.99,29819.93,29730.0,29778.38,830.67302 +2023-07-23 01:00:00,29778.37,29875.0,29778.37,29826.16,576.14595 +2023-07-23 02:00:00,29826.17,29893.77,29811.0,29885.12,554.68646 +2023-07-23 03:00:00,29885.12,29885.13,29840.0,29845.72,248.6242 +2023-07-23 04:00:00,29845.71,29920.0,29845.71,29905.22,791.98712 +2023-07-23 05:00:00,29905.23,29980.88,29898.01,29921.99,1190.06326 +2023-07-23 06:00:00,29921.99,29938.98,29894.73,29919.41,474.91491 +2023-07-23 07:00:00,29919.41,29930.26,29885.01,29916.0,467.94798 +2023-07-23 08:00:00,29916.0,29959.0,29887.6,29948.01,712.21419 +2023-07-23 09:00:00,29948.01,29955.66,29896.85,29900.18,431.84953 +2023-07-23 10:00:00,29900.17,29914.85,29884.77,29887.59,582.19022 +2023-07-23 11:00:00,29887.6,29923.1,29884.0,29888.58,280.28732 +2023-07-23 12:00:00,29888.59,29931.51,29886.0,29919.7,339.52998 +2023-07-23 13:00:00,29919.69,29921.66,29852.29,29888.36,491.75526 +2023-07-23 14:00:00,29888.35,29907.26,29886.0,29894.82,337.0919 +2023-07-23 15:00:00,29894.82,29914.21,29888.38,29897.64,248.82451 +2023-07-23 16:00:00,29897.64,29972.0,29897.63,29954.12,602.32245 +2023-07-23 17:00:00,29954.12,30130.0,29936.53,30118.49,1315.68808 +2023-07-23 18:00:00,30118.5,30292.02,30077.55,30248.01,2354.81988 +2023-07-23 19:00:00,30248.01,30350.0,30015.38,30093.12,2706.1848 +2023-07-23 20:00:00,30093.12,30143.5,30093.12,30143.49,686.23938 +2023-07-23 21:00:00,30143.49,30143.5,29920.37,29955.24,1001.86288 +2023-07-23 22:00:00,29955.24,30042.58,29944.6,30013.59,539.56121 +2023-07-23 23:00:00,30013.6,30097.49,30013.59,30083.75,527.32188 +2023-07-24 00:00:00,30083.75,30099.58,30008.0,30010.01,608.51474 +2023-07-24 01:00:00,30010.01,30021.18,29859.0,29915.99,1411.21909 +2023-07-24 02:00:00,29916.0,29916.0,29760.0,29799.63,1603.58581 +2023-07-24 03:00:00,29799.63,29799.64,29669.83,29716.01,1332.40688 +2023-07-24 04:00:00,29716.0,29801.23,29660.0,29794.0,1055.53788 +2023-07-24 05:00:00,29794.0,29819.0,29746.41,29799.92,868.66301 +2023-07-24 06:00:00,29799.91,29799.92,29765.0,29778.46,837.30633 +2023-07-24 07:00:00,29778.46,29870.0,29731.0,29828.0,1078.22981 +2023-07-24 08:00:00,29828.0,29832.54,29754.85,29756.01,695.39559 +2023-07-24 09:00:00,29756.0,29767.27,29000.0,29178.01,5813.34452 +2023-07-24 10:00:00,29178.0,29383.11,29116.16,29324.01,4638.01236 +2023-07-24 11:00:00,29324.0,29330.69,29222.34,29269.99,1486.61624 +2023-07-24 12:00:00,29269.99,29270.0,29164.0,29232.0,2119.43781 +2023-07-24 13:00:00,29231.99,29255.0,29112.0,29180.0,1654.90462 +2023-07-24 14:00:00,29179.99,29191.04,29025.01,29043.38,3441.67471 +2023-07-24 15:00:00,29043.38,29140.0,28861.9,29093.78,4625.65213 +2023-07-24 16:00:00,29093.78,29151.46,29026.0,29107.54,1627.75371 +2023-07-24 17:00:00,29107.55,29124.13,29014.59,29039.74,963.49991 +2023-07-24 18:00:00,29039.75,29137.65,29000.0,29124.26,920.02684 +2023-07-24 19:00:00,29124.25,29157.15,29102.0,29117.99,852.34591 +2023-07-24 20:00:00,29117.99,29151.05,29090.36,29149.15,571.13263 +2023-07-24 21:00:00,29149.16,29195.73,29130.0,29167.05,503.66619 +2023-07-24 22:00:00,29167.04,29194.7,29143.26,29161.25,519.44801 +2023-07-24 23:00:00,29161.24,29210.0,29161.24,29176.5,400.62218 +2023-07-25 00:00:00,29176.5,29183.34,29095.95,29112.86,778.58975 +2023-07-25 01:00:00,29112.87,29114.0,29047.65,29081.99,817.62345 +2023-07-25 02:00:00,29082.0,29170.71,29068.0,29130.0,886.10312 +2023-07-25 03:00:00,29130.0,29149.47,29082.85,29111.0,703.35714 +2023-07-25 04:00:00,29111.0,29122.81,29074.55,29089.46,506.96373 +2023-07-25 05:00:00,29089.46,29147.35,29089.46,29128.34,674.23077 +2023-07-25 06:00:00,29128.35,29147.66,29116.0,29144.67,830.56939 +2023-07-25 07:00:00,29144.67,29165.3,29123.63,29142.46,742.40846 +2023-07-25 08:00:00,29142.46,29198.0,29126.0,29191.43,756.80542 +2023-07-25 09:00:00,29191.43,29282.0,29162.5,29167.31,1182.68318 +2023-07-25 10:00:00,29167.32,29198.97,29147.83,29164.99,710.88093 +2023-07-25 11:00:00,29165.0,29168.9,29120.0,29128.29,770.21881 +2023-07-25 12:00:00,29128.29,29143.95,29098.04,29118.0,840.42298 +2023-07-25 13:00:00,29118.01,29339.16,29082.84,29277.67,2441.87335 +2023-07-25 14:00:00,29277.67,29340.57,29156.19,29177.5,2148.91291 +2023-07-25 15:00:00,29177.5,29233.44,29168.0,29181.51,1387.37128 +2023-07-25 16:00:00,29181.5,29295.76,29181.5,29228.79,915.24594 +2023-07-25 17:00:00,29228.78,29286.77,29188.0,29275.99,785.57585 +2023-07-25 18:00:00,29276.0,29376.0,29256.6,29264.01,1076.94165 +2023-07-25 19:00:00,29264.01,29277.95,29196.84,29198.83,697.39984 +2023-07-25 20:00:00,29198.82,29241.35,29183.93,29229.85,736.73356 +2023-07-25 21:00:00,29229.84,29245.37,29214.35,29228.93,325.94295 +2023-07-25 22:00:00,29228.92,29255.99,29206.45,29206.46,441.62038 +2023-07-25 23:00:00,29206.45,29247.3,29199.62,29228.91,407.27296 +2023-07-26 00:00:00,29228.91,29233.71,29140.0,29166.76,674.29306 +2023-07-26 01:00:00,29166.77,29174.0,29096.94,29131.01,779.44927 +2023-07-26 02:00:00,29131.01,29299.0,29131.0,29288.57,975.70454 +2023-07-26 03:00:00,29288.57,29412.88,29210.0,29242.81,1872.00282 +2023-07-26 04:00:00,29242.8,29242.81,29200.0,29201.19,660.96837 +2023-07-26 05:00:00,29201.2,29277.1,29198.17,29268.12,761.32326 +2023-07-26 06:00:00,29268.12,29320.84,29180.0,29209.99,1251.35934 +2023-07-26 07:00:00,29209.99,29245.0,29195.0,29216.61,630.05725 +2023-07-26 08:00:00,29216.61,29240.54,29210.0,29222.66,667.58339 +2023-07-26 09:00:00,29222.66,29231.56,29165.0,29192.45,782.77182 +2023-07-26 10:00:00,29192.45,29202.0,29165.0,29192.55,575.70336 +2023-07-26 11:00:00,29192.54,29218.0,29160.33,29175.39,792.4282 +2023-07-26 12:00:00,29175.39,29243.43,29166.36,29229.13,711.11796 +2023-07-26 13:00:00,29229.13,29321.69,29229.12,29306.54,1502.97312 +2023-07-26 14:00:00,29306.54,29354.0,29206.89,29267.54,1814.07053 +2023-07-26 15:00:00,29267.54,29337.33,29267.12,29324.0,1152.09303 +2023-07-26 16:00:00,29324.01,29369.55,29271.23,29302.43,1480.3429 +2023-07-26 17:00:00,29302.43,29325.0,29243.24,29268.9,959.9041 +2023-07-26 18:00:00,29268.91,29499.0,29230.01,29377.5,4709.75871 +2023-07-26 19:00:00,29377.5,29401.94,29195.0,29401.93,2214.61506 +2023-07-26 20:00:00,29401.93,29690.0,29390.0,29578.09,4595.91189 +2023-07-26 21:00:00,29578.09,29658.36,29428.27,29466.0,1788.22721 +2023-07-26 22:00:00,29465.99,29507.39,29430.44,29476.01,971.04212 +2023-07-26 23:00:00,29476.01,29530.08,29280.01,29351.96,1607.93235 +2023-07-27 00:00:00,29351.95,29360.87,29302.01,29356.09,599.30474 +2023-07-27 01:00:00,29356.1,29418.17,29339.94,29399.99,770.62376 +2023-07-27 02:00:00,29400.0,29440.0,29346.14,29437.81,515.29314 +2023-07-27 03:00:00,29437.8,29450.44,29405.77,29405.78,547.84427 +2023-07-27 04:00:00,29405.78,29490.0,29405.77,29488.36,767.80041 +2023-07-27 05:00:00,29488.36,29499.41,29454.37,29460.0,891.64512 +2023-07-27 06:00:00,29460.01,29477.5,29378.6,29384.01,909.41591 +2023-07-27 07:00:00,29384.02,29467.5,29380.88,29412.17,918.96216 +2023-07-27 08:00:00,29412.18,29470.83,29396.0,29470.82,794.4046 +2023-07-27 09:00:00,29470.83,29567.49,29466.94,29544.02,1003.05547 +2023-07-27 10:00:00,29544.01,29554.9,29472.51,29479.5,987.3613 +2023-07-27 11:00:00,29479.49,29524.56,29468.0,29507.03,495.15861 +2023-07-27 12:00:00,29507.02,29507.03,29460.0,29496.41,810.80814 +2023-07-27 13:00:00,29496.42,29502.5,29431.19,29446.02,1066.31824 +2023-07-27 14:00:00,29446.01,29446.02,29322.49,29350.0,1714.18262 +2023-07-27 15:00:00,29350.0,29361.68,29236.78,29292.01,1816.4261 +2023-07-27 16:00:00,29292.0,29333.22,29261.25,29274.93,1012.68895 +2023-07-27 17:00:00,29274.93,29292.06,29180.0,29220.0,1363.48368 +2023-07-27 18:00:00,29219.99,29249.99,29083.85,29141.37,2161.19763 +2023-07-27 19:00:00,29141.38,29178.94,29104.11,29163.83,1000.72525 +2023-07-27 20:00:00,29163.83,29191.87,29133.5,29144.56,719.92422 +2023-07-27 21:00:00,29144.56,29235.0,29142.01,29187.15,520.58728 +2023-07-27 22:00:00,29187.16,29238.0,29187.15,29202.29,540.33274 +2023-07-27 23:00:00,29202.29,29225.88,29179.95,29222.78,548.93192 +2023-07-28 00:00:00,29222.78,29305.3,29209.7,29273.0,708.6792 +2023-07-28 01:00:00,29273.0,29295.22,29256.64,29260.75,737.20751 +2023-07-28 02:00:00,29260.75,29263.37,29188.15,29229.99,763.38834 +2023-07-28 03:00:00,29230.0,29290.0,29202.84,29253.85,800.03773 +2023-07-28 04:00:00,29253.84,29266.0,29224.0,29260.0,789.54439 +2023-07-28 05:00:00,29259.99,29262.73,29156.85,29185.99,797.61871 +2023-07-28 06:00:00,29186.0,29206.11,29162.76,29190.01,901.79774 +2023-07-28 07:00:00,29190.01,29196.75,29135.15,29140.8,1294.49639 +2023-07-28 08:00:00,29140.79,29186.22,29123.12,29152.0,1066.68028 diff --git a/datas/yfinance/BNB-USD.csv b/datas/yfinance/BNB-USD.csv new file mode 100644 index 0000000..007e015 --- /dev/null +++ b/datas/yfinance/BNB-USD.csv @@ -0,0 +1,368 @@ +Date,Open,High,Low,Close,Adj Close,Volume +2023-06-20,242.881851,247.822693,239.018738,247.674438,247.674438,477391843 +2023-06-21,247.682938,253.541931,245.548248,249.286346,249.286346,717670519 +2023-06-22,249.276474,256.220032,240.052200,240.792435,240.792435,709030407 +2023-06-23,240.792053,248.809784,240.094818,244.564941,244.564941,493157882 +2023-06-24,244.553513,248.428619,231.994751,236.659653,236.659653,558809140 +2023-06-25,236.636765,241.872757,235.636139,238.892990,238.892990,414941211 +2023-06-26,238.879120,241.173843,234.296341,236.134262,236.134262,427457532 +2023-06-27,236.131073,240.822845,234.990067,237.492676,237.492676,348181738 +2023-06-28,237.502640,237.580154,226.977097,230.650360,230.650360,480872336 +2023-06-29,230.632401,236.421005,230.587692,233.232452,233.232452,332343168 +2023-06-30,233.194443,241.312943,232.200516,240.369781,240.369781,626872820 +2023-07-01,240.386902,248.470261,240.386902,247.759430,247.759430,603755323 +2023-07-02,247.786026,248.056396,243.241272,246.257919,246.257919,519491311 +2023-07-03,246.254639,251.379852,245.884827,246.382217,246.382217,669962148 +2023-07-04,246.345291,246.838791,241.228531,242.492920,242.492920,439591635 +2023-07-05,242.499481,243.861115,237.120117,239.081085,239.081085,455501209 +2023-07-06,239.068527,244.102676,232.171814,232.319427,232.319427,536134671 +2023-07-07,232.333420,236.079117,231.645737,235.621155,235.621155,418416864 +2023-07-08,235.610260,237.411911,234.637146,236.287384,236.287384,319300746 +2023-07-09,236.294556,237.019516,233.476044,234.228363,234.228363,289327973 +2023-07-10,234.232956,246.299698,232.007568,245.874268,245.874268,834091613 +2023-07-11,245.896271,249.205399,244.939011,248.538330,248.538330,536228377 +2023-07-12,248.538086,250.340652,242.803360,244.019882,244.019882,505389150 +2023-07-13,244.002228,257.265625,243.049728,256.489685,256.489685,761150982 +2023-07-14,256.464203,261.102600,244.275665,248.191620,248.191620,799468588 +2023-07-15,248.175522,252.537262,247.508072,251.099701,251.099701,422767368 +2023-07-16,251.098236,251.882416,242.580139,242.656830,242.656830,441487283 +2023-07-17,242.658096,244.682037,240.597595,244.352997,244.352997,671028354 +2023-07-18,244.334579,246.530853,238.704224,240.264938,240.264938,751858394 +2023-07-19,240.274185,243.927704,239.993591,241.160812,241.160812,499664149 +2023-07-20,241.138885,243.142593,240.387741,242.733139,242.733139,485038743 +2023-07-21,242.754288,245.163345,242.367477,243.788986,243.788986,413015398 +2023-07-22,243.809082,244.858734,240.512619,241.030746,241.030746,310128851 +2023-07-23,241.054657,243.976486,240.761215,242.455963,242.455963,279600847 +2023-07-24,242.449432,242.891876,236.292389,238.946213,238.946213,451906472 +2023-07-25,238.964096,239.637207,236.999405,237.808563,237.808563,366519529 +2023-07-26,237.819077,240.237717,236.641129,238.962357,238.962357,417581395 +2023-07-27,238.960114,243.163513,238.638443,240.498795,240.498795,433186880 +2023-07-28,240.505127,242.796997,239.987869,241.977036,241.977036,388148322 +2023-07-29,241.971344,242.726273,241.323135,242.576370,242.576370,317500344 +2023-07-30,242.582214,243.785721,240.925186,242.525986,242.525986,425584373 +2023-07-31,242.519592,244.202576,240.764450,241.120651,241.120651,1092564922 +2023-08-01,241.128052,247.505020,238.530243,247.505020,247.505020,830645013 +2023-08-02,247.490311,248.511551,236.891769,240.494644,240.494644,650256385 +2023-08-03,240.509979,241.583252,238.509644,241.061523,241.061523,400525696 +2023-08-04,241.042862,243.155472,240.452286,241.476013,241.476013,370373499 +2023-08-05,241.489670,243.027725,240.090393,242.959351,242.959351,300760369 +2023-08-06,242.960297,245.179016,242.614731,242.798599,242.798599,417704185 +2023-08-07,242.791687,244.324249,239.935364,241.797501,241.797501,425652309 +2023-08-08,241.791870,247.647369,241.330200,245.149902,245.149902,504987528 +2023-08-09,245.136307,245.340271,242.766495,243.893646,243.893646,399576464 +2023-08-10,243.885544,243.926102,240.394592,241.262466,241.262466,365863690 +2023-08-11,241.260727,241.913910,238.359802,239.706894,239.706894,386856576 +2023-08-12,239.703568,241.002609,239.403778,240.273621,240.273621,284512149 +2023-08-13,240.269684,241.629593,239.902588,240.033340,240.033340,296580783 +2023-08-14,240.041275,241.024933,239.747360,240.339249,240.339249,381157536 +2023-08-15,240.350464,240.410309,235.360535,236.679581,236.679581,482870297 +2023-08-16,236.689697,237.014221,231.205170,231.868744,231.868744,461572144 +2023-08-17,231.872574,232.105057,214.547440,218.535843,218.535843,786294218 +2023-08-18,218.565735,220.137009,214.022247,216.112549,216.112549,567051050 +2023-08-19,216.144485,218.997589,214.328842,216.999451,216.999451,477267428 +2023-08-20,217.015854,217.882431,215.680862,216.635803,216.635803,297744717 +2023-08-21,216.630798,216.741180,207.568771,210.638947,210.638947,582113967 +2023-08-22,210.579956,211.874252,204.399139,210.834351,210.834351,637832641 +2023-08-23,210.818695,218.316711,210.818695,216.399292,216.399292,566160608 +2023-08-24,216.444839,220.385513,215.899734,218.646393,218.646393,394620698 +2023-08-25,218.681091,219.254990,214.265167,218.331055,218.331055,423891092 +2023-08-26,218.331802,218.786438,216.214035,216.364243,216.364243,273738258 +2023-08-27,216.369949,219.539185,216.080399,218.358002,218.358002,325410553 +2023-08-28,218.358246,218.970016,215.850189,218.718567,218.718567,332786869 +2023-08-29,218.721512,233.060013,217.047867,226.862885,226.862885,593296661 +2023-08-30,226.870148,227.049011,221.978149,223.799438,223.799438,359750612 +2023-08-31,223.818573,225.588882,215.448425,216.597794,216.597794,428616639 +2023-09-01,216.598480,217.965744,211.591721,213.630554,213.630554,438229562 +2023-09-02,213.626923,215.599503,213.290543,214.448547,214.448547,291979876 +2023-09-03,214.454819,215.114899,213.411957,214.399948,214.399948,264565518 +2023-09-04,214.393112,216.267517,213.282379,215.197510,215.197510,364530693 +2023-09-05,215.211014,215.722000,213.672440,214.478134,214.478134,298056096 +2023-09-06,214.489044,217.180832,212.316711,215.134659,215.134659,367874698 +2023-09-07,215.139465,217.603958,213.573120,216.887177,216.887177,414939879 +2023-09-08,216.883743,218.222824,213.619476,214.562027,214.562027,350437594 +2023-09-09,214.567032,215.330139,214.222946,214.222946,214.222946,218159197 +2023-09-10,214.220566,214.227844,211.538620,212.318024,212.318024,334977578 +2023-09-11,212.322617,212.610092,204.356735,206.034210,206.034210,466832593 +2023-09-12,206.043152,213.487442,205.262482,210.994370,210.994370,435525863 +2023-09-13,211.023865,213.157852,209.497437,212.642593,212.642593,329580406 +2023-09-14,212.640579,214.883560,211.382935,212.282837,212.282837,370840987 +2023-09-15,212.304352,214.944748,211.194672,214.175522,214.175522,477731080 +2023-09-16,214.168381,215.703552,213.562897,214.960541,214.960541,483436741 +2023-09-17,214.948975,216.635025,213.709747,216.465775,216.465775,432102186 +2023-09-18,216.470917,221.009857,215.317307,216.003922,216.003922,572231452 +2023-09-19,216.001770,219.749023,215.641769,217.210953,217.210953,385547582 +2023-09-20,217.210602,217.756699,213.760468,214.363327,214.363327,372917826 +2023-09-21,214.353745,215.109375,209.586884,210.793945,210.793945,384479845 +2023-09-22,210.789383,212.026581,209.941681,211.150864,211.150864,274805031 +2023-09-23,211.138062,211.583221,210.142014,210.560608,210.560608,215040995 +2023-09-24,210.574783,211.237274,207.932938,208.282898,208.282898,287192497 +2023-09-25,208.260132,210.518387,207.478088,210.073807,210.073807,294180845 +2023-09-26,210.050171,213.187820,209.866913,212.378448,212.378448,615780140 +2023-09-27,212.371399,215.728745,210.886002,211.985413,211.985413,753741988 +2023-09-28,211.990952,216.775330,211.651321,215.075989,215.075989,358321830 +2023-09-29,215.093979,217.257706,214.506378,215.279419,215.279419,335321479 +2023-09-30,215.277786,216.312164,214.483688,214.821304,214.821304,243788424 +2023-10-01,214.800323,219.133835,213.506516,218.047134,218.047134,387408083 +2023-10-02,218.049347,221.188293,213.546326,214.757935,214.757935,466879383 +2023-10-03,214.734909,215.721191,212.770569,213.435944,213.435944,305437646 +2023-10-04,213.441467,213.762405,210.936401,213.413086,213.413086,357560724 +2023-10-05,213.422745,213.783600,210.471237,210.679672,210.679672,351872670 +2023-10-06,210.665268,214.392960,210.557251,213.555527,213.555527,271152975 +2023-10-07,213.543961,213.859863,211.760803,212.364471,212.364471,211771782 +2023-10-08,212.381012,212.846771,209.701782,211.519989,211.519989,267193041 +2023-10-09,211.522614,212.102859,203.655441,205.750961,205.750961,416312027 +2023-10-10,205.750092,210.454285,205.750092,208.576874,208.576874,441959353 +2023-10-11,208.582291,208.730545,204.809250,206.533417,206.533417,323117665 +2023-10-12,206.535873,206.659103,203.658447,205.229416,205.229416,302337006 +2023-10-13,205.225800,207.942535,204.617615,206.036118,206.036118,296977151 +2023-10-14,206.040283,207.025543,205.827286,206.601898,206.601898,203846460 +2023-10-15,206.600281,210.231613,206.478577,209.742508,209.742508,352524312 +2023-10-16,209.748810,217.121231,209.748810,214.823959,214.823959,521099239 +2023-10-17,214.812119,215.012222,210.382355,211.643234,211.643234,352621995 +2023-10-18,211.636200,213.576279,210.096695,210.501038,210.501038,275336939 +2023-10-19,210.491623,211.412018,208.537125,211.144165,211.144165,281310969 +2023-10-20,211.145050,216.102417,210.746552,212.300842,212.300842,335590168 +2023-10-21,212.298523,215.612778,211.622513,214.305664,214.305664,267943731 +2023-10-22,214.321732,218.004852,213.834290,217.747375,217.747375,286771903 +2023-10-23,218.455917,229.981461,218.304977,228.352768,228.352768,611625206 +2023-10-24,228.338303,236.750076,223.117142,225.142960,225.142960,658304834 +2023-10-25,225.168640,228.814819,222.034180,222.179932,222.179932,414309192 +2023-10-26,222.185516,227.857880,219.926727,223.236038,223.236038,438534864 +2023-10-27,223.219086,229.851791,220.203506,224.475906,224.475906,554008090 +2023-10-28,224.471512,227.970612,224.357620,225.774078,225.774078,244363054 +2023-10-29,225.787994,228.146133,224.258316,227.148453,227.148453,207847188 +2023-10-30,227.134918,229.191498,225.021210,228.287430,228.287430,282899321 +2023-10-31,228.282364,229.241302,224.331314,226.439941,226.439941,319329197 +2023-11-01,226.418167,229.141083,222.860397,228.000107,228.000107,384772000 +2023-11-02,228.016647,233.336075,227.907486,231.723022,231.723022,487639810 +2023-11-03,231.703262,232.211319,226.346741,230.605972,230.605972,332547803 +2023-11-04,230.597488,238.509964,229.655334,237.454605,237.454605,267965564 +2023-11-05,237.442230,245.594025,236.786179,244.322479,244.322479,419858434 +2023-11-06,244.320450,255.342300,242.180099,254.634796,254.634796,524115628 +2023-11-07,254.653290,255.546097,242.694977,246.395294,246.395294,549207441 +2023-11-08,246.390121,247.809067,244.580383,247.123291,247.123291,369346518 +2023-11-09,247.052170,255.454651,243.329544,251.510849,251.510849,1116630429 +2023-11-10,251.526825,257.788025,248.943314,251.082367,251.082367,873515280 +2023-11-11,251.098480,255.078400,246.721130,251.421616,251.421616,872206327 +2023-11-12,251.434418,251.646927,245.832458,247.640015,247.640015,758715918 +2023-11-13,247.640472,250.124313,241.127136,241.335068,241.335068,888039233 +2023-11-14,241.369843,248.665222,236.285736,242.263672,242.263672,917236070 +2023-11-15,242.281006,254.181778,242.261169,253.755341,253.755341,921052035 +2023-11-16,253.744781,255.585037,240.675674,242.758881,242.758881,950453378 +2023-11-17,242.839951,245.987595,238.999649,244.745361,244.745361,788884171 +2023-11-18,244.746262,245.353058,239.280823,244.950760,244.950760,679630905 +2023-11-19,244.967682,246.936264,242.423508,246.587784,246.587784,618053586 +2023-11-20,246.584549,263.870026,243.141754,253.635086,253.635086,1289010990 +2023-11-21,253.643860,269.917572,224.981705,226.486404,226.486404,2480554399 +2023-11-22,226.461319,238.176697,225.658249,236.136597,236.136597,1338117919 +2023-11-23,236.096024,238.791336,230.752243,233.765808,233.765808,766695224 +2023-11-24,233.752701,236.379303,232.192856,232.900955,232.900955,709881299 +2023-11-25,232.917435,235.781296,232.683350,234.439941,234.439941,553022191 +2023-11-26,234.428207,234.494659,229.385056,232.047195,232.047195,606332049 +2023-11-27,231.983887,232.809387,223.486832,227.421478,227.421478,795547656 +2023-11-28,227.427994,231.755524,224.678635,229.692963,229.692963,674267936 +2023-11-29,229.693237,231.197449,226.519440,227.342758,227.342758,602240832 +2023-11-30,227.343033,229.143967,226.226547,227.683807,227.683807,572448874 +2023-12-01,227.688812,229.891068,227.232666,228.545639,228.545639,611750028 +2023-12-02,228.538559,230.034302,226.689606,229.300842,229.300842,628871423 +2023-12-03,229.289536,231.639038,226.496017,228.098206,228.098206,719496781 +2023-12-04,228.075470,236.834946,227.155319,233.295303,233.295303,2139028703 +2023-12-05,233.308655,234.484680,228.407532,231.261353,231.261353,851959167 +2023-12-06,231.263443,234.586105,229.424408,229.424408,229.424408,850327297 +2023-12-07,229.532211,234.538437,229.200974,232.977432,232.977432,813730268 +2023-12-08,232.960495,239.838699,232.648605,238.915985,238.915985,828993280 +2023-12-09,238.913254,245.005280,237.079895,237.768600,237.768600,856746249 +2023-12-10,237.793716,241.250580,237.557755,239.733154,239.733154,640133489 +2023-12-11,239.768906,246.755859,230.531036,246.420868,246.420868,1442275453 +2023-12-12,246.365784,256.709198,245.991943,254.494980,254.494980,1394681963 +2023-12-13,254.403961,255.562973,244.813980,252.423325,252.423325,1052163656 +2023-12-14,252.405609,254.087921,248.725708,253.541214,253.541214,876150236 +2023-12-15,253.517441,253.549713,243.867371,244.898438,244.898438,769388533 +2023-12-16,244.896423,248.086380,243.450653,244.350967,244.350967,651447427 +2023-12-17,244.350708,244.432175,239.230637,239.308289,239.308289,650163942 +2023-12-18,239.247147,241.348434,232.752808,241.348434,241.348434,871708609 +2023-12-19,241.347687,254.574585,241.347687,252.637192,252.637192,1254351945 +2023-12-20,252.629761,261.557404,250.765045,260.107361,260.107361,1053279744 +2023-12-21,260.148621,274.440613,256.598480,271.246582,271.246582,1183480386 +2023-12-22,271.276520,276.159790,265.419495,271.376495,271.376495,1014769310 +2023-12-23,271.381287,272.167084,266.168457,271.390961,271.390961,695725248 +2023-12-24,271.377533,272.590149,262.775635,264.717102,264.717102,803502105 +2023-12-25,264.735291,267.934204,262.487122,267.073364,267.073364,738674209 +2023-12-26,267.072174,302.707581,265.090057,297.693237,297.693237,1941843757 +2023-12-27,297.748322,323.769409,286.403381,323.677338,323.677338,1893987416 +2023-12-28,323.803711,337.425812,321.327301,323.598999,323.598999,1987714005 +2023-12-29,323.513031,325.501434,309.191437,313.878754,313.878754,1415732360 +2023-12-30,313.841949,320.111572,313.560059,317.166199,317.166199,901159404 +2023-12-31,317.068146,325.006531,310.697845,312.435699,312.435699,953254184 +2024-01-01,312.385925,315.745667,308.096741,314.408295,314.408295,910568057 +2024-01-02,314.267548,320.933228,308.350647,312.103821,312.103821,1133024158 +2024-01-03,312.151611,332.749207,301.419189,316.661285,316.661285,1927148986 +2024-01-04,316.624451,323.822479,312.145447,323.600006,323.600006,1285291962 +2024-01-05,323.620239,327.042328,310.650665,317.450287,317.450287,1257230413 +2024-01-06,317.495178,317.827271,301.395966,307.794495,307.794495,1051283820 +2024-01-07,307.794067,309.882385,301.086212,302.890533,302.890533,817795075 +2024-01-08,302.903503,308.283478,290.880402,304.500397,304.500397,1141697708 +2024-01-09,304.475250,306.670807,296.519989,300.976105,300.976105,1374376391 +2024-01-10,300.982605,309.602875,290.122040,305.096832,305.096832,1199728038 +2024-01-11,305.223785,316.720062,302.647522,308.701508,308.701508,1326827289 +2024-01-12,308.628326,312.686584,290.737274,296.630463,296.630463,1198386629 +2024-01-13,296.625427,302.924042,291.519745,302.227295,302.227295,816347256 +2024-01-14,302.227112,306.502319,299.014252,299.051331,299.051331,787643004 +2024-01-15,299.025818,319.590057,299.025818,317.567261,317.567261,1667214322 +2024-01-16,317.546783,318.745941,313.542847,315.226257,315.226257,1143877764 +2024-01-17,315.161224,315.927551,307.358765,309.085388,309.085388,1206464161 +2024-01-18,309.093109,315.143188,305.717163,313.292877,313.292877,1105813150 +2024-01-19,313.292877,315.640076,306.377838,314.300446,314.300446,1036123822 +2024-01-20,314.300232,316.960388,312.303619,316.960388,316.960388,694855739 +2024-01-21,316.961761,321.283813,316.222595,318.318695,318.318695,723174009 +2024-01-22,318.379089,319.740082,304.578217,305.437012,305.437012,948987847 +2024-01-23,305.437500,311.173859,291.057281,298.403900,298.403900,1065495592 +2024-01-24,298.407227,300.340973,290.854340,293.091431,293.091431,960725208 +2024-01-25,293.092987,296.052490,287.728149,291.919281,291.919281,1086918042 +2024-01-26,291.939056,303.791840,290.877380,302.317993,302.317993,964268733 +2024-01-27,302.317169,307.411438,302.061432,305.824829,305.824829,691653061 +2024-01-28,305.774384,308.768646,303.292358,304.975616,304.975616,782354766 +2024-01-29,305.021454,310.713013,304.603577,310.708008,310.708008,824640185 +2024-01-30,310.708008,312.962219,306.917938,307.462738,307.462738,777667889 +2024-01-31,307.472382,307.864990,298.960632,300.351074,300.351074,814318731 +2024-02-01,300.351074,301.883179,296.562134,300.175903,300.175903,754502530 +2024-02-02,300.163910,304.285065,299.942780,301.154968,301.154968,699579739 +2024-02-03,301.181396,303.509155,299.625061,299.736725,299.736725,606345017 +2024-02-04,299.715668,307.409332,298.212616,304.734161,304.734161,818836774 +2024-02-05,304.718445,306.523132,299.549133,300.854034,300.854034,826414727 +2024-02-06,300.858368,303.572357,300.639465,302.710144,302.710144,680038428 +2024-02-07,302.711609,308.478088,300.849548,307.634583,307.634583,776516914 +2024-02-08,307.573547,320.407349,307.506226,318.871887,318.871887,1206142745 +2024-02-09,318.923370,325.644592,318.202393,323.842285,323.842285,1094700959 +2024-02-10,323.871613,325.426697,319.579956,323.133881,323.133881,737748174 +2024-02-11,323.103516,324.768311,320.309387,320.787537,320.787537,706320478 +2024-02-12,320.804016,331.439850,315.932434,327.944611,327.944611,982444950 +2024-02-13,327.932404,329.205780,319.484406,324.868225,324.868225,886487720 +2024-02-14,324.865570,334.369141,323.876587,334.245972,334.245972,887463520 +2024-02-15,334.210876,365.133118,333.852997,354.710815,354.710815,1744161787 +2024-02-16,354.687561,365.562073,351.701599,360.890381,360.890381,1461675119 +2024-02-17,360.872955,363.281799,349.043213,352.908112,352.908112,1101515839 +2024-02-18,352.912994,358.008850,349.679962,349.679962,349.679962,959954204 +2024-02-19,349.678284,355.698120,349.623779,351.807098,351.807098,1290009052 +2024-02-20,351.807953,360.373627,346.074005,354.863922,354.863922,1489888631 +2024-02-21,354.863861,379.065521,351.401245,378.537323,378.537323,2264483250 +2024-02-22,378.713959,386.594086,374.302704,382.009766,382.009766,2002118598 +2024-02-23,381.983124,385.457947,369.400085,375.319092,375.319092,1755398357 +2024-02-24,375.323822,383.073700,371.999146,381.742798,381.742798,1088410661 +2024-02-25,381.742615,390.450104,378.128571,388.551727,388.551727,1324081579 +2024-02-26,388.535004,404.440094,382.256866,401.643890,401.643890,2011146388 +2024-02-27,401.643890,403.740051,390.917877,394.995636,394.995636,1750697179 +2024-02-28,394.951721,427.046814,394.661072,415.771606,415.771606,2323818531 +2024-02-29,415.583618,419.779022,392.379883,399.778717,399.778717,2058367303 +2024-03-01,399.672424,408.552795,399.478302,407.810760,407.810760,1527194519 +2024-03-02,407.804840,414.845154,406.541656,410.985870,410.985870,1520439801 +2024-03-03,410.977814,416.625702,405.085327,414.381073,414.381073,1810575392 +2024-03-04,414.414032,423.800568,411.476532,419.035431,419.035431,2111212949 +2024-03-05,419.016449,427.082886,363.220642,394.661743,394.661743,3319029162 +2024-03-06,394.664948,433.425507,386.229523,429.011963,429.011963,3281109608 +2024-03-07,429.011963,477.207184,423.787018,475.290649,475.290649,3328990543 +2024-03-08,475.277710,489.578552,464.833862,488.094177,488.094177,3644157779 +2024-03-09,488.092712,494.075958,482.640625,489.561829,489.561829,2314944823 +2024-03-10,489.540924,537.415283,486.835541,529.374756,529.374756,4507153439 +2024-03-11,529.447449,532.789673,509.983917,522.718018,522.718018,3950105375 +2024-03-12,522.718994,547.018311,521.913940,537.865723,537.865723,4381078189 +2024-03-13,537.865723,631.168396,532.045898,630.561340,630.561340,5717769152 +2024-03-14,630.561340,630.956238,569.206909,602.988708,602.988708,4918366892 +2024-03-15,602.967590,634.200806,547.703979,632.802795,632.802795,5849156503 +2024-03-16,632.802795,641.481140,571.286865,576.775208,576.775208,3952760767 +2024-03-17,576.775208,589.635681,550.143250,571.085571,571.085571,3512190982 +2024-03-18,571.085571,586.514954,540.846313,554.557129,554.557129,3982384372 +2024-03-19,554.557129,559.860413,498.562347,507.076569,507.076569,4346763421 +2024-03-20,507.086456,558.946472,501.116852,556.700500,556.700500,3177352364 +2024-03-21,556.700500,570.053223,541.655090,553.248230,553.248230,2595135487 +2024-03-22,553.248230,587.731445,535.972656,551.778564,551.778564,2949959002 +2024-03-23,551.778564,567.544678,544.921265,551.879517,551.879517,1962524597 +2024-03-24,551.879517,572.488220,549.526306,567.994812,567.994812,1745465728 +2024-03-25,567.994812,597.662170,565.137878,587.427612,587.427612,2490221265 +2024-03-26,587.427612,597.013000,572.807800,580.150513,580.150513,2086911757 +2024-03-27,580.159302,584.986755,565.511658,574.511597,574.511597,1983797879 +2024-03-28,574.511597,591.314636,574.201782,583.270874,583.270874,1986567688 +2024-03-29,583.286743,619.972595,582.469360,612.657959,612.657959,2788931743 +2024-03-30,612.660156,612.994934,597.629822,601.016357,601.016357,1750650703 +2024-03-31,601.005127,608.664246,600.879272,606.908630,606.908630,1456592924 +2024-04-01,606.908691,607.645569,570.053162,576.396667,576.396667,2020241864 +2024-04-02,576.376587,578.132996,546.868164,550.681458,550.681458,2480273065 +2024-04-03,550.681458,567.997986,540.246826,562.019653,562.019653,2096610785 +2024-04-04,562.019653,597.835327,561.349121,585.441528,585.441528,2340488273 +2024-04-05,585.483215,591.332703,565.750977,578.966919,578.966919,1983792648 +2024-04-06,578.966919,590.602234,575.917542,585.966797,585.966797,1328988130 +2024-04-07,585.966797,590.885925,578.719116,584.102173,584.102173,1374676397 +2024-04-08,584.102173,600.892883,577.983337,586.900940,586.900940,1739232272 +2024-04-09,586.900940,589.666748,574.140320,580.830322,580.830322,1988165022 +2024-04-10,580.830322,610.482971,574.461426,610.083923,610.083923,1654268255 +2024-04-11,610.083923,617.468628,592.602173,604.893799,604.893799,1299527568 +2024-04-12,604.893799,626.984070,575.580872,596.380127,596.380127,2619549858 +2024-04-13,596.374939,599.891968,517.270081,554.299805,554.299805,2660310655 +2024-04-14,554.299805,570.257568,537.180542,567.218445,567.218445,1724305772 +2024-04-15,567.218445,585.485962,546.865356,552.874512,552.874512,1488692418 +2024-04-16,552.874695,554.104858,524.221863,537.829346,537.829346,1299731119 +2024-04-17,537.831360,548.042847,514.112854,534.416016,534.416016,1411927485 +2024-04-18,534.414978,555.040039,527.430054,552.172119,552.172119,1439312699 +2024-04-19,552.172119,564.544861,525.028625,554.889282,554.889282,1320094794 +2024-04-20,554.888123,574.098694,549.800049,570.960510,570.960510,697007137 +2024-04-21,570.960510,582.272034,567.171082,579.619934,579.619934,782061076 +2024-04-22,579.614685,608.517029,579.141663,605.575500,605.575500,1300340623 +2024-04-23,605.575500,613.543335,599.937561,606.840637,606.840637,1380221181 +2024-04-24,606.840637,617.305115,592.944092,608.086121,608.086121,1518718475 +2024-04-25,608.090637,617.806213,601.777466,614.005005,614.005005,1161642323 +2024-04-26,614.005005,614.834229,597.179626,597.705444,597.705444,817787521 +2024-04-27,597.705444,599.282776,586.152710,595.720520,595.720520,781864034 +2024-04-28,595.720520,607.824280,595.716553,600.071167,600.071167,681109845 +2024-04-29,600.071167,602.598938,583.338501,592.831238,592.831238,868114786 +2024-04-30,592.831787,603.322815,556.170898,578.488037,578.488037,1727881192 +2024-05-01,578.487488,579.332947,538.046448,561.408203,561.408203,1502825527 +2024-05-02,561.408203,565.457397,543.522339,560.526733,560.526733,877449354 +2024-05-03,560.526733,590.244812,559.446716,587.010437,587.010437,854728192 +2024-05-04,587.018433,593.193420,583.299377,585.846558,585.846558,582273374 +2024-05-05,585.846558,594.995300,580.246277,592.140381,592.140381,531182053 +2024-05-06,592.139893,601.886719,583.373413,588.475952,588.475952,1522319999 +2024-05-07,588.475952,599.935486,576.724548,577.486206,577.486206,1535678414 +2024-05-08,577.486206,589.572571,575.148010,588.197449,588.197449,1603241013 +2024-05-09,588.197449,602.589722,586.730347,596.031982,596.031982,1897318659 +2024-05-10,596.027649,596.583374,582.045776,585.622192,585.622192,1521708160 +2024-05-11,585.622192,594.206543,581.896667,592.027893,592.027893,1333662111 +2024-05-12,592.029175,599.184143,587.804321,594.424561,594.424561,1276671115 +2024-05-13,594.424561,597.768005,585.520752,591.606934,591.606934,1636169234 +2024-05-14,591.606934,592.836975,563.420227,566.707031,566.707031,1944063031 +2024-05-15,566.707031,587.421509,561.127258,582.074341,582.074341,1895100260 +2024-05-16,582.100159,586.436340,565.762329,569.190247,569.190247,1911862000 +2024-05-17,569.190247,584.666016,568.836731,581.178345,581.178345,1557134929 +2024-05-18,581.178345,581.987183,575.018555,580.481140,580.481140,1358737176 +2024-05-19,580.481567,581.876709,572.369629,574.631653,574.631653,1298887094 +2024-05-20,574.631653,601.563843,569.523560,600.616333,600.616333,2145457267 +2024-05-21,600.601074,629.861084,593.932739,618.420471,618.420471,3564986916 +2024-05-22,618.420471,625.566284,610.546021,614.671875,614.671875,2138536549 +2024-05-23,614.671875,616.524475,581.954102,598.670837,598.670837,2631566566 +2024-05-24,598.670837,604.314880,588.893982,600.225891,600.225891,1778282198 +2024-05-25,600.226624,606.367310,599.607239,602.194458,602.194458,1392399167 +2024-05-26,602.194458,604.830078,598.695862,599.825928,599.825928,1372657185 +2024-05-27,599.825928,613.388184,599.700745,603.526428,603.526428,1691663828 +2024-05-28,603.526428,604.985107,593.716187,601.213257,601.213257,1852329404 +2024-05-29,601.213257,602.931519,592.966614,594.972046,594.972046,1642696946 +2024-05-30,594.972534,601.665039,586.557678,595.026794,595.026794,1737524745 +2024-05-31,595.026794,598.423645,589.774841,593.522339,593.522339,1590349553 +2024-06-01,593.522339,607.582886,592.680603,601.304199,601.304199,1520074486 +2024-06-02,601.304138,604.978088,596.164795,603.026611,603.026611,1667233984 +2024-06-03,603.050964,637.247131,601.183167,626.432983,626.432983,2952110605 +2024-06-04,626.432983,687.403809,625.264954,686.201416,686.201416,3416994948 +2024-06-05,686.201416,712.588379,685.777100,698.889404,698.889404,3501231414 +2024-06-06,698.889404,720.672607,692.994751,710.464050,710.464050,2997888288 +2024-06-07,710.460388,710.838501,665.180176,683.360962,683.360962,2987033806 +2024-06-08,683.368591,694.312805,678.645813,682.665161,682.665161,1966216051 +2024-06-09,682.663879,684.759888,670.813538,673.315308,673.315308,1856183346 +2024-06-10,673.335449,674.313477,615.772949,624.386841,624.386841,3184376694 +2024-06-11,624.396790,628.263367,597.041870,602.558105,602.558105,2604834485 +2024-06-12,602.602600,634.675842,592.293274,619.194824,619.194824,2221546160 +2024-06-13,619.225159,619.298584,596.308777,599.515076,599.515076,1879189691 +2024-06-14,599.478699,611.628723,590.496338,603.180542,603.180542,1848914113 +2024-06-15,603.114197,609.050476,601.585938,607.802917,607.802917,1471028668 +2024-06-16,607.808472,611.197510,601.476929,610.054016,610.054016,1428836675 +2024-06-17,610.073669,611.944031,592.426147,604.467346,604.467346,1797626078 +2024-06-18,604.332886,604.652832,575.761719,588.702087,588.702087,2265505402 +2024-06-19,588.584717,605.731689,587.014160,598.771729,598.771729,1788904109 +2024-06-20,598.771729,606.963440,593.955811,596.702332,596.702332,1724393856 \ No newline at end of file diff --git a/datas/yfinance/BTC-USD.csv b/datas/yfinance/BTC-USD.csv new file mode 100644 index 0000000..ceec73e --- /dev/null +++ b/datas/yfinance/BTC-USD.csv @@ -0,0 +1,368 @@ +Date,Open,High,Low,Close,Adj Close,Volume +2023-06-20,26841.664063,28388.968750,26668.791016,28327.488281,28327.488281,22211859147 +2023-06-21,28311.310547,30737.330078,28283.410156,30027.296875,30027.296875,33346760979 +2023-06-22,29995.935547,30495.998047,29679.158203,29912.281250,29912.281250,20653160491 +2023-06-23,29896.382813,31389.539063,29845.214844,30695.468750,30695.468750,24115570085 +2023-06-24,30708.738281,30804.148438,30290.146484,30548.695313,30548.695313,12147822496 +2023-06-25,30545.150391,31041.271484,30327.943359,30480.261719,30480.261719,12703464114 +2023-06-26,30480.523438,30636.029297,29955.744141,30271.130859,30271.130859,16493186997 +2023-06-27,30274.320313,31006.787109,30236.650391,30688.164063,30688.164063,16428827944 +2023-06-28,30696.560547,30703.279297,29921.822266,30086.246094,30086.246094,14571500779 +2023-06-29,30086.187500,30796.250000,30057.203125,30445.351563,30445.351563,13180860821 +2023-06-30,30441.353516,31256.863281,29600.275391,30477.251953,30477.251953,26387306197 +2023-07-01,30471.847656,30641.289063,30328.865234,30590.078125,30590.078125,9086606733 +2023-07-02,30587.269531,30766.140625,30264.019531,30620.769531,30620.769531,10533418042 +2023-07-03,30624.515625,31375.613281,30586.513672,31156.439453,31156.439453,15271884873 +2023-07-04,31156.865234,31325.197266,30659.355469,30777.582031,30777.582031,12810828427 +2023-07-05,30778.724609,30877.330078,30225.613281,30514.166016,30514.166016,12481622280 +2023-07-06,30507.150391,31460.052734,29892.226563,29909.337891,29909.337891,21129219509 +2023-07-07,29907.998047,30434.644531,29777.285156,30342.265625,30342.265625,13384770155 +2023-07-08,30346.921875,30374.437500,30080.160156,30292.541016,30292.541016,7509378699 +2023-07-09,30291.611328,30427.589844,30085.591797,30171.234375,30171.234375,7903327692 +2023-07-10,30172.423828,31026.083984,29985.394531,30414.470703,30414.470703,14828209155 +2023-07-11,30417.632813,30788.314453,30358.097656,30620.951172,30620.951172,12151839152 +2023-07-12,30622.246094,30959.964844,30228.835938,30391.646484,30391.646484,14805659717 +2023-07-13,30387.488281,31814.515625,30268.351563,31476.048828,31476.048828,23686079548 +2023-07-14,31474.720703,31582.253906,29966.386719,30334.068359,30334.068359,20917902660 +2023-07-15,30331.783203,30407.781250,30263.462891,30295.806641,30295.806641,8011667756 +2023-07-16,30297.472656,30437.560547,30089.669922,30249.132813,30249.132813,8516564470 +2023-07-17,30249.626953,30336.400391,29685.783203,30145.888672,30145.888672,13240156074 +2023-07-18,30147.070313,30233.656250,29556.427734,29856.562500,29856.562500,13138897269 +2023-07-19,29862.046875,30184.181641,29794.269531,29913.923828,29913.923828,12128602812 +2023-07-20,29915.250000,30195.531250,29638.095703,29792.015625,29792.015625,14655207121 +2023-07-21,29805.111328,30045.998047,29733.851563,29908.744141,29908.744141,10972789818 +2023-07-22,29908.697266,29991.615234,29664.121094,29771.802734,29771.802734,7873300598 +2023-07-23,29790.111328,30330.640625,29741.527344,30084.539063,30084.539063,9220145050 +2023-07-24,30081.662109,30093.394531,28934.294922,29176.916016,29176.916016,15395817395 +2023-07-25,29178.970703,29353.160156,29062.433594,29227.390625,29227.390625,10266772793 +2023-07-26,29225.759766,29675.552734,29113.912109,29354.972656,29354.972656,13497554655 +2023-07-27,29353.798828,29560.966797,29099.351563,29210.689453,29210.689453,10770779217 +2023-07-28,29212.164063,29521.513672,29125.845703,29319.246094,29319.246094,11218474952 +2023-07-29,29319.445313,29396.843750,29264.166016,29356.917969,29356.917969,6481775959 +2023-07-30,29357.093750,29443.169922,29059.501953,29275.308594,29275.308594,8678454527 +2023-07-31,29278.314453,29489.873047,29131.578125,29230.111328,29230.111328,11656781982 +2023-08-01,29230.873047,29675.732422,28657.023438,29675.732422,29675.732422,18272392391 +2023-08-02,29704.146484,29987.998047,28946.509766,29151.958984,29151.958984,19212655598 +2023-08-03,29161.812500,29375.707031,28959.488281,29178.679688,29178.679688,12780357746 +2023-08-04,29174.382813,29302.078125,28885.335938,29074.091797,29074.091797,12036639988 +2023-08-05,29075.388672,29102.464844,28957.796875,29042.126953,29042.126953,6598366353 +2023-08-06,29043.701172,29160.822266,28963.833984,29041.855469,29041.855469,7269806994 +2023-08-07,29038.513672,29244.281250,28724.140625,29180.578125,29180.578125,13618163710 +2023-08-08,29180.019531,30176.796875,29113.814453,29765.492188,29765.492188,17570561357 +2023-08-09,29766.695313,30093.435547,29376.800781,29561.494141,29561.494141,18379521213 +2023-08-10,29563.972656,29688.564453,29354.447266,29429.591797,29429.591797,11865344789 +2023-08-11,29424.902344,29517.773438,29253.517578,29397.714844,29397.714844,10195168197 +2023-08-12,29399.787109,29465.113281,29357.587891,29415.964844,29415.964844,6194358008 +2023-08-13,29416.593750,29441.433594,29265.806641,29282.914063,29282.914063,7329897180 +2023-08-14,29283.263672,29660.253906,29124.105469,29408.443359,29408.443359,14013695304 +2023-08-15,29408.048828,29439.121094,29088.853516,29170.347656,29170.347656,12640195779 +2023-08-16,29169.074219,29221.976563,28701.779297,28701.779297,28701.779297,14949271904 +2023-08-17,28699.802734,28745.947266,25409.111328,26664.550781,26664.550781,31120851211 +2023-08-18,26636.078125,26808.195313,25668.921875,26049.556641,26049.556641,24026236529 +2023-08-19,26047.832031,26249.449219,25802.408203,26096.205078,26096.205078,10631443812 +2023-08-20,26096.861328,26260.681641,26004.314453,26189.583984,26189.583984,9036580420 +2023-08-21,26188.691406,26220.201172,25846.087891,26124.140625,26124.140625,13371557893 +2023-08-22,26130.748047,26135.507813,25520.728516,26031.656250,26031.656250,14503820706 +2023-08-23,26040.474609,26786.898438,25804.998047,26431.640625,26431.640625,16985265785 +2023-08-24,26431.519531,26554.910156,25914.925781,26162.373047,26162.373047,12871532023 +2023-08-25,26163.679688,26248.103516,25786.812500,26047.667969,26047.667969,12406045118 +2023-08-26,26047.234375,26107.384766,25983.878906,26008.462891,26008.462891,6034817316 +2023-08-27,26008.242188,26165.373047,25965.097656,26089.693359,26089.693359,6913768611 +2023-08-28,26089.615234,26198.578125,25880.599609,26106.150391,26106.150391,11002805166 +2023-08-29,26102.486328,28089.337891,25912.628906,27727.392578,27727.392578,29368391712 +2023-08-30,27726.083984,27760.160156,27069.207031,27297.265625,27297.265625,16343655235 +2023-08-31,27301.929688,27456.078125,25752.929688,25931.472656,25931.472656,20181001451 +2023-09-01,25934.021484,26125.869141,25362.609375,25800.724609,25800.724609,17202862221 +2023-09-02,25800.910156,25970.285156,25753.093750,25868.798828,25868.798828,10100387473 +2023-09-03,25869.472656,26087.148438,25817.031250,25969.566406,25969.566406,8962524523 +2023-09-04,25968.169922,26081.525391,25657.025391,25812.416016,25812.416016,10680635106 +2023-09-05,25814.957031,25858.375000,25589.988281,25779.982422,25779.982422,11094740040 +2023-09-06,25783.931641,25953.015625,25404.359375,25753.236328,25753.236328,12752705327 +2023-09-07,25748.312500,26409.302734,25608.201172,26240.195313,26240.195313,11088307100 +2023-09-08,26245.208984,26414.005859,25677.480469,25905.654297,25905.654297,10817356400 +2023-09-09,25905.425781,25921.976563,25810.494141,25895.677734,25895.677734,5481314132 +2023-09-10,25895.210938,25978.130859,25640.261719,25832.226563,25832.226563,7899553047 +2023-09-11,25831.714844,25883.947266,24930.296875,25162.654297,25162.654297,14600006467 +2023-09-12,25160.658203,26451.939453,25133.078125,25833.343750,25833.343750,18657279324 +2023-09-13,25837.554688,26376.113281,25781.123047,26228.324219,26228.324219,13072077070 +2023-09-14,26228.277344,26774.623047,26171.451172,26539.673828,26539.673828,13811359124 +2023-09-15,26533.818359,26840.498047,26240.701172,26608.693359,26608.693359,11479735788 +2023-09-16,26606.199219,26754.769531,26473.890625,26568.281250,26568.281250,7402031417 +2023-09-17,26567.927734,26617.998047,26445.074219,26534.187500,26534.187500,6774210670 +2023-09-18,26532.994141,27414.734375,26415.515625,26754.281250,26754.281250,15615339655 +2023-09-19,26760.851563,27488.763672,26681.605469,27211.117188,27211.117188,13807690550 +2023-09-20,27210.228516,27379.505859,26864.082031,27132.007813,27132.007813,13281116604 +2023-09-21,27129.839844,27152.939453,26389.300781,26567.632813,26567.632813,13371443708 +2023-09-22,26564.056641,26726.078125,26495.533203,26579.568359,26579.568359,10578746709 +2023-09-23,26578.556641,26634.185547,26520.519531,26579.390625,26579.390625,7404700301 +2023-09-24,26579.373047,26716.058594,26221.050781,26256.826172,26256.826172,8192867686 +2023-09-25,26253.775391,26421.507813,26011.468750,26298.480469,26298.480469,11997833257 +2023-09-26,26294.757813,26389.884766,26090.712891,26217.250000,26217.250000,9985498161 +2023-09-27,26209.498047,26817.841797,26111.464844,26352.716797,26352.716797,11718380997 +2023-09-28,26355.812500,27259.500000,26327.322266,27021.546875,27021.546875,14079002707 +2023-09-29,27024.841797,27225.937500,26721.763672,26911.720703,26911.720703,10396435377 +2023-09-30,26911.689453,27091.794922,26888.968750,26967.916016,26967.916016,5331172801 +2023-10-01,26967.396484,28047.238281,26965.093750,27983.750000,27983.750000,9503917434 +2023-10-02,27976.798828,28494.458984,27347.787109,27530.785156,27530.785156,19793041322 +2023-10-03,27508.251953,27667.191406,27216.001953,27429.978516,27429.978516,11407814187 +2023-10-04,27429.074219,27826.658203,27248.105469,27799.394531,27799.394531,11143355314 +2023-10-05,27798.646484,28091.861328,27375.601563,27415.912109,27415.912109,11877253670 +2023-10-06,27412.123047,28252.537109,27215.552734,27946.597656,27946.597656,13492391599 +2023-10-07,27946.781250,28028.091797,27870.423828,27968.839844,27968.839844,6553044316 +2023-10-08,27971.677734,28102.169922,27740.662109,27935.089844,27935.089844,7916875290 +2023-10-09,27934.472656,27989.470703,27302.562500,27583.677734,27583.677734,12007668568 +2023-10-10,27589.201172,27715.847656,27301.654297,27391.019531,27391.019531,9973350678 +2023-10-11,27392.076172,27474.115234,26561.099609,26873.320313,26873.320313,13648094333 +2023-10-12,26873.292969,26921.439453,26558.320313,26756.798828,26756.798828,9392909295 +2023-10-13,26752.878906,27092.697266,26686.322266,26862.375000,26862.375000,15165312851 +2023-10-14,26866.203125,26969.000000,26814.585938,26861.707031,26861.707031,5388116782 +2023-10-15,26858.011719,27289.169922,26817.894531,27159.652344,27159.652344,7098201980 +2023-10-16,27162.628906,29448.138672,27130.472656,28519.466797,28519.466797,27833876539 +2023-10-17,28522.097656,28618.751953,28110.185547,28415.748047,28415.748047,14872527508 +2023-10-18,28413.531250,28889.009766,28174.251953,28328.341797,28328.341797,12724128586 +2023-10-19,28332.416016,28892.474609,28177.988281,28719.806641,28719.806641,14448058195 +2023-10-20,28732.812500,30104.085938,28601.669922,29682.949219,29682.949219,21536125230 +2023-10-21,29683.380859,30287.482422,29481.751953,29918.412109,29918.412109,11541146996 +2023-10-22,29918.654297,30199.433594,29720.312500,29993.896484,29993.896484,10446520040 +2023-10-23,30140.685547,34370.437500,30097.828125,33086.234375,33086.234375,38363572311 +2023-10-24,33077.304688,35150.433594,32880.761719,33901.527344,33901.527344,44934999645 +2023-10-25,33916.042969,35133.757813,33709.109375,34502.820313,34502.820313,25254318008 +2023-10-26,34504.289063,34832.910156,33762.324219,34156.648438,34156.648438,19427195376 +2023-10-27,34156.500000,34238.210938,33416.886719,33909.800781,33909.800781,16418032871 +2023-10-28,33907.722656,34399.390625,33874.804688,34089.574219,34089.574219,10160330825 +2023-10-29,34089.371094,34743.261719,33947.566406,34538.480469,34538.480469,11160323986 +2023-10-30,34531.742188,34843.933594,34110.972656,34502.363281,34502.363281,17184860315 +2023-10-31,34500.078125,34719.253906,34083.308594,34667.781250,34667.781250,15758270810 +2023-11-01,34657.273438,35527.929688,34170.691406,35437.253906,35437.253906,22446272005 +2023-11-02,35441.578125,35919.843750,34401.574219,34938.242188,34938.242188,20998158544 +2023-11-03,34942.472656,34942.472656,34133.441406,34732.324219,34732.324219,17158456701 +2023-11-04,34736.324219,35256.031250,34616.691406,35082.195313,35082.195313,9561294264 +2023-11-05,35090.011719,35340.339844,34594.242188,35049.355469,35049.355469,12412743996 +2023-11-06,35044.789063,35286.027344,34765.363281,35037.371094,35037.371094,12693436420 +2023-11-07,35047.792969,35892.417969,34545.816406,35443.562500,35443.562500,18834737789 +2023-11-08,35419.476563,35994.417969,35147.800781,35655.277344,35655.277344,17295394918 +2023-11-09,35633.632813,37926.257813,35592.101563,36693.125000,36693.125000,37762672382 +2023-11-10,36702.250000,37493.800781,36362.753906,37313.968750,37313.968750,22711265155 +2023-11-11,37310.070313,37407.093750,36773.667969,37138.050781,37138.050781,13924272142 +2023-11-12,37133.992188,37227.691406,36779.117188,37054.519531,37054.519531,11545715999 +2023-11-13,37070.304688,37405.117188,36399.605469,36502.355469,36502.355469,19057712790 +2023-11-14,36491.789063,36753.351563,34948.500000,35537.640625,35537.640625,23857403554 +2023-11-15,35548.113281,37964.894531,35383.781250,37880.582031,37880.582031,27365821679 +2023-11-16,37879.980469,37934.625000,35545.472656,36154.769531,36154.769531,26007385366 +2023-11-17,36164.824219,36704.484375,35901.234375,36596.683594,36596.683594,22445028430 +2023-11-18,36625.371094,36839.281250,36233.312500,36585.703125,36585.703125,11886022717 +2023-11-19,36585.765625,37509.355469,36414.597656,37386.546875,37386.546875,12915986553 +2023-11-20,37374.074219,37756.820313,36882.531250,37476.957031,37476.957031,20888209068 +2023-11-21,37469.160156,37631.140625,35813.812500,35813.812500,35813.812500,25172163756 +2023-11-22,35756.554688,37856.980469,35670.972656,37432.339844,37432.339844,24397247860 +2023-11-23,37420.433594,37643.917969,36923.863281,37289.621094,37289.621094,14214948217 +2023-11-24,37296.316406,38415.339844,37261.605469,37720.281250,37720.281250,22922957823 +2023-11-25,37721.414063,37892.429688,37617.417969,37796.792969,37796.792969,9099571165 +2023-11-26,37796.828125,37820.300781,37162.750000,37479.121094,37479.121094,13744796068 +2023-11-27,37454.191406,37559.355469,36750.128906,37254.167969,37254.167969,19002925720 +2023-11-28,37247.992188,38368.480469,36891.089844,37831.085938,37831.085938,21696137014 +2023-11-29,37826.105469,38366.113281,37612.632813,37858.492188,37858.492188,20728546658 +2023-11-30,37861.117188,38141.753906,37531.140625,37712.746094,37712.746094,18115982627 +2023-12-01,37718.007813,38954.109375,37629.359375,38688.750000,38688.750000,23512784002 +2023-12-02,38689.277344,39678.937500,38652.593750,39476.332031,39476.332031,15534035612 +2023-12-03,39472.207031,40135.605469,39298.164063,39978.390625,39978.390625,15769696322 +2023-12-04,39978.628906,42371.750000,39978.628906,41980.097656,41980.097656,39856129827 +2023-12-05,41986.265625,44408.664063,41421.148438,44080.648438,44080.648438,36312154535 +2023-12-06,44080.023438,44265.769531,43478.082031,43746.445313,43746.445313,29909761586 +2023-12-07,43769.132813,44042.589844,42880.648438,43292.664063,43292.664063,27635760671 +2023-12-08,43293.136719,44705.515625,43125.296875,44166.601563,44166.601563,24421116687 +2023-12-09,44180.019531,44361.257813,43627.597656,43725.984375,43725.984375,17368210171 +2023-12-10,43728.382813,44034.625000,43593.285156,43779.699219,43779.699219,13000481418 +2023-12-11,43792.019531,43808.375000,40234.578125,41243.832031,41243.832031,40632672038 +2023-12-12,41238.734375,42048.304688,40667.562500,41450.222656,41450.222656,24779520132 +2023-12-13,41468.464844,43429.781250,40676.867188,42890.742188,42890.742188,26797884674 +2023-12-14,42884.261719,43390.859375,41767.089844,43023.972656,43023.972656,25578530178 +2023-12-15,43028.250000,43087.824219,41692.968750,41929.757813,41929.757813,19639442462 +2023-12-16,41937.742188,42664.945313,41723.113281,42240.117188,42240.117188,14386729590 +2023-12-17,42236.109375,42359.496094,41274.542969,41364.664063,41364.664063,16678702876 +2023-12-18,41348.203125,42720.296875,40530.257813,42623.539063,42623.539063,25224642008 +2023-12-19,42641.511719,43354.296875,41826.335938,42270.527344,42270.527344,23171001281 +2023-12-20,42261.300781,44275.585938,42223.816406,43652.250000,43652.250000,27868908174 +2023-12-21,43648.125000,44240.667969,43330.050781,43869.152344,43869.152344,22452766169 +2023-12-22,43868.988281,44367.957031,43441.968750,43997.902344,43997.902344,21028503216 +2023-12-23,44012.199219,44015.699219,43351.355469,43739.542969,43739.542969,13507796558 +2023-12-24,43728.367188,43945.523438,42786.917969,43016.117188,43016.117188,18830554085 +2023-12-25,43010.574219,43765.093750,42765.769531,43613.140625,43613.140625,21115795370 +2023-12-26,43599.847656,43603.175781,41676.488281,42520.402344,42520.402344,30026850982 +2023-12-27,42518.468750,43683.160156,42167.582031,43442.855469,43442.855469,25260941032 +2023-12-28,43468.199219,43804.781250,42318.550781,42627.855469,42627.855469,22992093014 +2023-12-29,42614.644531,43124.324219,41424.062500,42099.402344,42099.402344,26000021055 +2023-12-30,42091.753906,42584.125000,41556.226563,42156.902344,42156.902344,16013925945 +2023-12-31,42152.097656,42860.937500,41998.253906,42265.187500,42265.187500,16397498810 +2024-01-01,42280.234375,44175.437500,42214.976563,44167.332031,44167.332031,18426978443 +2024-01-02,44187.140625,45899.707031,44176.949219,44957.968750,44957.968750,39335274536 +2024-01-03,44961.601563,45503.242188,40813.535156,42848.175781,42848.175781,46342323118 +2024-01-04,42855.816406,44770.023438,42675.175781,44179.921875,44179.921875,30448091210 +2024-01-05,44192.980469,44353.285156,42784.718750,44162.691406,44162.691406,32336029347 +2024-01-06,44178.953125,44227.632813,43475.156250,43989.195313,43989.195313,16092503468 +2024-01-07,43998.464844,44495.570313,43662.230469,43943.097656,43943.097656,19330573863 +2024-01-08,43948.707031,47218.000000,43244.082031,46970.503906,46970.503906,42746192015 +2024-01-09,46987.640625,47893.699219,45244.714844,46139.730469,46139.730469,39821290992 +2024-01-10,46121.539063,47647.222656,44483.152344,46627.777344,46627.777344,50114613298 +2024-01-11,46656.074219,48969.371094,45678.644531,46368.585938,46368.585938,45833734549 +2024-01-12,46354.792969,46498.136719,41903.769531,42853.167969,42853.167969,43332698900 +2024-01-13,42799.445313,43234.660156,42464.144531,42842.382813,42842.382813,20601860469 +2024-01-14,42842.261719,43065.597656,41724.613281,41796.269531,41796.269531,17521429522 +2024-01-15,41715.066406,43319.722656,41705.417969,42511.968750,42511.968750,22320220558 +2024-01-16,42499.335938,43566.273438,42085.996094,43154.945313,43154.945313,24062872740 +2024-01-17,43132.101563,43189.890625,42189.308594,42742.652344,42742.652344,20851232595 +2024-01-18,42742.312500,42876.347656,40631.171875,41262.058594,41262.058594,25218357242 +2024-01-19,41278.460938,42134.160156,40297.457031,41618.406250,41618.406250,25752407154 +2024-01-20,41624.589844,41877.894531,41446.824219,41665.585938,41665.585938,11586690904 +2024-01-21,41671.488281,41855.367188,41497.007813,41545.785156,41545.785156,9344043642 +2024-01-22,41553.652344,41651.207031,39450.117188,39507.367188,39507.367188,31338708143 +2024-01-23,39518.714844,40127.351563,38521.894531,39845.550781,39845.550781,29244553045 +2024-01-24,39877.593750,40483.785156,39508.796875,40077.074219,40077.074219,22359526178 +2024-01-25,40075.550781,40254.480469,39545.664063,39933.808594,39933.808594,18491782013 +2024-01-26,39936.816406,42209.386719,39825.691406,41816.871094,41816.871094,25598119893 +2024-01-27,41815.625000,42195.632813,41431.281250,42120.054688,42120.054688,11422941934 +2024-01-28,42126.125000,42797.175781,41696.910156,42035.593750,42035.593750,16858971687 +2024-01-29,42030.914063,43305.867188,41818.332031,43288.246094,43288.246094,20668476578 +2024-01-30,43300.226563,43838.945313,42711.371094,42952.609375,42952.609375,23842814518 +2024-01-31,42946.250000,43717.406250,42298.945313,42582.605469,42582.605469,24673628793 +2024-02-01,42569.761719,43243.167969,41879.191406,43075.773438,43075.773438,21423953779 +2024-02-02,43077.640625,43422.488281,42584.335938,43185.859375,43185.859375,18603843039 +2024-02-03,43184.964844,43359.941406,42890.808594,42992.250000,42992.250000,11169245236 +2024-02-04,42994.941406,43097.644531,42374.832031,42583.582031,42583.582031,14802225490 +2024-02-05,42577.621094,43494.250000,42264.816406,42658.667969,42658.667969,18715487317 +2024-02-06,42657.390625,43344.148438,42529.019531,43084.671875,43084.671875,16798476726 +2024-02-07,43090.019531,44341.949219,42775.957031,44318.222656,44318.222656,21126587775 +2024-02-08,44332.125000,45575.839844,44332.125000,45301.566406,45301.566406,26154524080 +2024-02-09,45297.382813,48152.496094,45260.824219,47147.199219,47147.199219,39316770844 +2024-02-10,47153.527344,48146.171875,46905.320313,47771.277344,47771.277344,16398681570 +2024-02-11,47768.968750,48535.937500,47617.406250,48293.917969,48293.917969,19315867136 +2024-02-12,48296.386719,50280.476563,47745.761719,49958.222656,49958.222656,34511985805 +2024-02-13,49941.359375,50358.390625,48406.496094,49742.441406,49742.441406,35593051468 +2024-02-14,49733.445313,52021.371094,49296.832031,51826.695313,51826.695313,39105608050 +2024-02-15,51836.785156,52820.066406,51371.628906,51938.554688,51938.554688,38564360533 +2024-02-16,51937.726563,52537.968750,51641.367188,52160.203125,52160.203125,28180567298 +2024-02-17,52161.675781,52191.914063,50669.667969,51662.996094,51662.996094,20009091006 +2024-02-18,51661.968750,52356.964844,51233.707031,52122.546875,52122.546875,17595377311 +2024-02-19,52134.812500,52483.324219,51711.820313,51779.144531,51779.144531,21362184346 +2024-02-20,51777.726563,52945.050781,50792.312500,52284.875000,52284.875000,33353758256 +2024-02-21,52273.535156,52368.816406,50671.757813,51839.179688,51839.179688,28624907020 +2024-02-22,51854.644531,52009.613281,50926.292969,51304.972656,51304.972656,25413900611 +2024-02-23,51283.906250,51497.933594,50561.777344,50731.949219,50731.949219,21427078270 +2024-02-24,50736.371094,51684.195313,50585.445313,51571.101563,51571.101563,15174077879 +2024-02-25,51565.214844,51950.027344,51306.171875,51733.238281,51733.238281,15413239245 +2024-02-26,51730.539063,54938.175781,50931.031250,54522.402344,54522.402344,34074411896 +2024-02-27,54519.363281,57537.839844,54484.199219,57085.371094,57085.371094,49756832031 +2024-02-28,57071.097656,63913.132813,56738.425781,62504.789063,62504.789063,83239156760 +2024-02-29,62499.183594,63585.644531,60498.730469,61198.382813,61198.382813,65496611844 +2024-03-01,61168.062500,63155.101563,60802.527344,62440.632813,62440.632813,40186368423 +2024-03-02,62431.652344,62458.699219,61657.289063,62029.847656,62029.847656,23888473685 +2024-03-03,62031.578125,63230.210938,61435.023438,63167.371094,63167.371094,26253811450 +2024-03-04,63137.003906,68537.031250,62386.519531,68330.414063,68330.414063,70670471105 +2024-03-05,68341.054688,69170.625000,59323.910156,63801.199219,63801.199219,102802940877 +2024-03-06,63776.050781,67637.929688,62848.671875,66106.804688,66106.804688,68750229073 +2024-03-07,66099.742188,68029.921875,65655.531250,66925.484375,66925.484375,46989543159 +2024-03-08,66938.093750,70083.054688,66230.453125,68300.093750,68300.093750,59202881172 +2024-03-09,68299.257813,68673.054688,68053.125000,68498.882813,68498.882813,21609650379 +2024-03-10,68500.257813,70005.203125,68239.976563,69019.789063,69019.789063,35683977532 +2024-03-11,69020.546875,72850.710938,67194.882813,72123.906250,72123.906250,65716656765 +2024-03-12,72125.125000,72825.656250,68728.851563,71481.289063,71481.289063,62554434520 +2024-03-13,71482.117188,73637.476563,71334.093750,73083.500000,73083.500000,48212536929 +2024-03-14,73079.375000,73750.070313,68563.023438,71396.593750,71396.593750,59594605698 +2024-03-15,71387.875000,72357.132813,65630.695313,69403.773438,69403.773438,78320453976 +2024-03-16,69392.484375,70046.273438,64801.394531,65315.117188,65315.117188,46842198371 +2024-03-17,65316.343750,68845.718750,64545.316406,68390.625000,68390.625000,44716864318 +2024-03-18,68371.304688,68897.132813,66594.226563,67548.593750,67548.593750,49261579492 +2024-03-19,67556.132813,68106.929688,61536.179688,61912.773438,61912.773438,74215844794 +2024-03-20,61930.156250,68115.257813,60807.785156,67913.671875,67913.671875,66792634382 +2024-03-21,67911.585938,68199.992188,64580.917969,65491.390625,65491.390625,44480350565 +2024-03-22,65489.929688,66623.750000,62355.371094,63778.761719,63778.761719,41401116964 +2024-03-23,63802.722656,65976.398438,63038.492188,64062.203125,64062.203125,24738964812 +2024-03-24,64070.753906,67622.757813,63825.851563,67234.171875,67234.171875,27206630673 +2024-03-25,67234.093750,71162.593750,66414.835938,69958.812500,69958.812500,42700139523 +2024-03-26,69931.328125,71535.742188,69335.609375,69987.835938,69987.835938,36010437368 +2024-03-27,69991.898438,71727.687500,68381.929688,69455.343750,69455.343750,40827113309 +2024-03-28,69452.773438,71546.023438,68895.507813,70744.953125,70744.953125,34374900617 +2024-03-29,70744.796875,70913.093750,69076.656250,69892.828125,69892.828125,25230851763 +2024-03-30,69893.445313,70355.492188,69601.062500,69645.304688,69645.304688,17130241883 +2024-03-31,69647.781250,71377.781250,69624.867188,71333.648438,71333.648438,20050941373 +2024-04-01,71333.484375,71342.093750,68110.695313,69702.148438,69702.148438,34873527352 +2024-04-02,69705.023438,69708.382813,64586.593750,65446.972656,65446.972656,50705240709 +2024-04-03,65446.671875,66914.320313,64559.898438,65980.812500,65980.812500,34488018367 +2024-04-04,65975.695313,69291.257813,65113.796875,68508.843750,68508.843750,34439527442 +2024-04-05,68515.757813,68725.757813,66011.476563,67837.640625,67837.640625,33748230056 +2024-04-06,67840.570313,69629.601563,67491.718750,68896.109375,68896.109375,19967785809 +2024-04-07,68897.109375,70284.429688,68851.632813,69362.554688,69362.554688,21204930369 +2024-04-08,69362.554688,72715.359375,69064.242188,71631.359375,71631.359375,37261432669 +2024-04-09,71632.500000,71742.507813,68212.921875,69139.015625,69139.015625,36426900409 +2024-04-10,69140.242188,71093.429688,67503.562500,70587.882813,70587.882813,38318601774 +2024-04-11,70575.734375,71256.234375,69571.812500,70060.609375,70060.609375,30153382941 +2024-04-12,70061.382813,71222.742188,65254.835938,67195.867188,67195.867188,44129299406 +2024-04-13,67188.375000,67931.429688,60919.105469,63821.472656,63821.472656,52869738185 +2024-04-14,63836.230469,65824.429688,62205.851563,65738.726563,65738.726563,49084320047 +2024-04-15,65739.648438,66878.648438,62332.070313,63426.210938,63426.210938,43595917654 +2024-04-16,63419.296875,64355.667969,61716.402344,63811.863281,63811.863281,42847528078 +2024-04-17,63831.847656,64486.363281,59768.585938,61276.691406,61276.691406,41915247049 +2024-04-18,61275.316406,64125.687500,60833.480469,63512.753906,63512.753906,36006307335 +2024-04-19,63510.750000,65481.597656,59651.390625,63843.570313,63843.570313,49920425401 +2024-04-20,63851.101563,65442.457031,63172.402344,64994.441406,64994.441406,23097485495 +2024-04-21,64992.816406,65723.242188,64277.722656,64926.644531,64926.644531,20506644853 +2024-04-22,64935.632813,67233.960938,64548.179688,66837.679688,66837.679688,28282686673 +2024-04-23,66839.890625,67199.242188,65864.867188,66407.273438,66407.273438,24310975583 +2024-04-24,66408.718750,67075.367188,63589.871094,64276.898438,64276.898438,30276655120 +2024-04-25,64275.019531,65275.207031,62783.632813,64481.707031,64481.707031,32155786816 +2024-04-26,64485.371094,64789.656250,63322.398438,63755.320313,63755.320313,24139372950 +2024-04-27,63750.988281,63898.363281,62424.718750,63419.140625,63419.140625,19530783039 +2024-04-28,63423.515625,64321.484375,62793.597656,63113.230469,63113.230469,17334827993 +2024-04-29,63106.363281,64174.878906,61795.457031,63841.121094,63841.121094,26635912073 +2024-04-30,63839.417969,64703.332031,59120.066406,60636.855469,60636.855469,37840840057 +2024-05-01,60609.496094,60780.500000,56555.292969,58254.011719,58254.011719,48439780271 +2024-05-02,58253.703125,59602.296875,56937.203125,59123.433594,59123.433594,32711813559 +2024-05-03,59122.300781,63320.503906,58848.312500,62889.835938,62889.835938,33172023048 +2024-05-04,62891.031250,64494.957031,62599.351563,63891.472656,63891.472656,20620477992 +2024-05-05,63892.453125,64610.890625,62955.304688,64031.132813,64031.132813,18296164805 +2024-05-06,64038.312500,65494.902344,62746.238281,63161.949219,63161.949219,28697928697 +2024-05-07,63162.761719,64390.457031,62285.980469,62334.816406,62334.816406,25930730982 +2024-05-08,62332.640625,62986.085938,60877.128906,61187.941406,61187.941406,26088172222 +2024-05-09,61191.199219,63404.914063,60648.074219,63049.960938,63049.960938,25453338161 +2024-05-10,63055.191406,63446.742188,60208.781250,60792.777344,60792.777344,27804954694 +2024-05-11,60793.355469,61451.152344,60492.625000,60793.710938,60793.710938,13842272968 +2024-05-12,60793.503906,61818.156250,60632.601563,61448.394531,61448.394531,13800459405 +2024-05-13,61451.218750,63422.660156,60769.839844,62901.449219,62901.449219,27889181179 +2024-05-14,62900.773438,63092.125000,61123.765625,61552.789063,61552.789063,28186271527 +2024-05-15,61553.988281,66454.453125,61330.410156,66267.492188,66267.492188,39815167074 +2024-05-16,66256.109375,66712.429688,64613.054688,65231.582031,65231.582031,31573077994 +2024-05-17,65231.296875,67459.460938,65119.316406,67051.875000,67051.875000,28031279310 +2024-05-18,67066.210938,67387.328125,66663.500000,66940.804688,66940.804688,16712277406 +2024-05-19,66937.929688,67694.296875,65937.179688,66278.367188,66278.367188,19249094538 +2024-05-20,66278.742188,71483.562500,66086.171875,71448.195313,71448.195313,43850655717 +2024-05-21,71443.062500,71946.460938,69191.125000,70136.531250,70136.531250,46932005990 +2024-05-22,70135.320313,70623.695313,68977.695313,69122.335938,69122.335938,32802561717 +2024-05-23,69121.304688,70041.273438,66356.953125,67929.562500,67929.562500,41895680979 +2024-05-24,67928.132813,69220.296875,66622.671875,68526.101563,68526.101563,29197308153 +2024-05-25,68526.921875,69579.320313,68515.820313,69265.945313,69265.945313,15473071741 +2024-05-26,69264.289063,69506.226563,68183.890625,68518.093750,68518.093750,15628433737 +2024-05-27,68512.179688,70597.882813,68232.500000,69394.554688,69394.554688,25870990717 +2024-05-28,69392.195313,69514.640625,67227.156250,68296.218750,68296.218750,32722265965 +2024-05-29,68296.351563,68852.460938,67101.492188,67578.093750,67578.093750,26707072906 +2024-05-30,67576.085938,69500.539063,67118.078125,68364.992188,68364.992188,29509712534 +2024-05-31,68362.515625,68999.562500,66633.421875,67491.414063,67491.414063,27387283769 +2024-06-01,67489.609375,67839.765625,67386.195313,67706.937500,67706.937500,11641495604 +2024-06-02,67710.273438,68409.164063,67315.523438,67751.601563,67751.601563,17110588415 +2024-06-03,67753.898438,70230.820313,67589.835938,68804.781250,68804.781250,32401285324 +2024-06-04,68804.570313,71047.406250,68564.640625,70567.765625,70567.765625,33149696545 +2024-06-05,70568.351563,71735.414063,70390.710938,71082.820313,71082.820313,32810771409 +2024-06-06,71082.843750,71625.734375,70119.125000,70757.164063,70757.164063,25223152007 +2024-06-07,70759.187500,71907.851563,68507.257813,69342.585938,69342.585938,36188381096 +2024-06-08,69324.179688,69533.320313,69210.742188,69305.773438,69305.773438,14262185861 +2024-06-09,69297.492188,69817.523438,69160.843750,69647.992188,69647.992188,13534028500 +2024-06-10,69644.312500,70146.070313,69232.421875,69512.281250,69512.281250,20597699541 +2024-06-11,69508.078125,69549.414063,66123.601563,67332.031250,67332.031250,37116136345 +2024-06-12,67321.375000,69977.890625,66902.453125,68241.187500,68241.187500,34497940694 +2024-06-13,68243.101563,68365.781250,66304.562500,66756.398438,66756.398438,28955204146 +2024-06-14,66747.570313,67294.648438,65056.894531,66011.093750,66011.093750,27403884779 +2024-06-15,66006.742188,66402.187500,65871.773438,66191.000000,66191.000000,14121265576 +2024-06-16,66189.359375,66894.843750,66018.250000,66639.046875,66639.046875,13281140541 +2024-06-17,66636.515625,67188.320313,65094.964844,66490.296875,66490.296875,30006354476 +2024-06-18,66490.976563,66556.703125,64066.957031,65140.746094,65140.746094,39481285950 +2024-06-19,65146.660156,65695.351563,64693.300781,64960.296875,64960.296875,21103423504 +2024-06-20,64960.296875,66390.328125,64750.132813,64813.289063,64813.289063,23222546432 \ No newline at end of file diff --git a/datas/yfinance/ETH-USD.csv b/datas/yfinance/ETH-USD.csv new file mode 100644 index 0000000..3847b38 --- /dev/null +++ b/datas/yfinance/ETH-USD.csv @@ -0,0 +1,368 @@ +Date,Open,High,Low,Close,Adj Close,Volume +2023-06-20,1736.879761,1793.313965,1715.342529,1792.119995,1792.119995,7171072578 +2023-06-21,1791.994995,1898.668945,1788.489258,1891.007202,1891.007202,11731457711 +2023-06-22,1889.794434,1932.065552,1867.876587,1872.942993,1872.942993,8477657143 +2023-06-23,1872.540771,1932.531616,1865.192017,1892.862061,1892.862061,8290615074 +2023-06-24,1893.771973,1905.227417,1867.811523,1876.059692,1876.059692,5026191704 +2023-06-25,1875.849121,1929.079102,1870.850098,1900.506104,1900.506104,6937581709 +2023-06-26,1900.050293,1905.360474,1840.215088,1859.432861,1859.432861,8619702292 +2023-06-27,1859.346191,1911.311157,1856.838379,1889.703369,1889.703369,7686042202 +2023-06-28,1889.906494,1890.208984,1822.102783,1827.971191,1827.971191,7135265016 +2023-06-29,1828.059326,1876.530273,1828.059326,1852.227295,1852.227295,5677228612 +2023-06-30,1852.008423,1945.274292,1831.281006,1933.188965,1933.188965,12895131248 +2023-07-01,1933.323853,1942.701538,1910.848633,1924.565918,1924.565918,5136809625 +2023-07-02,1924.448120,1958.160767,1895.906982,1937.438354,1937.438354,6343966490 +2023-07-03,1937.883789,1974.775024,1934.688843,1955.389160,1955.389160,7858509087 +2023-07-04,1955.524170,1966.365356,1932.611328,1936.633545,1936.633545,5683423776 +2023-07-05,1936.796753,1942.432495,1897.124756,1910.588013,1910.588013,6034088075 +2023-07-06,1910.417114,1956.012329,1847.850708,1848.636475,1848.636475,8905008384 +2023-07-07,1847.512573,1876.963257,1832.025391,1870.602539,1870.602539,6468885150 +2023-07-08,1871.002075,1872.501587,1844.641724,1865.539551,1865.539551,4299007854 +2023-07-09,1865.594971,1878.668945,1857.748291,1863.009766,1863.009766,4392863807 +2023-07-10,1863.240234,1905.460815,1848.777222,1880.556396,1880.556396,6336468234 +2023-07-11,1880.654907,1889.381714,1863.218628,1878.336060,1878.336060,4905225892 +2023-07-12,1878.322021,1901.148438,1865.710083,1872.113770,1872.113770,6379007000 +2023-07-13,1872.040283,2011.885254,1864.496094,2006.511475,2006.511475,11114853969 +2023-07-14,2005.686157,2026.204956,1901.361206,1939.347046,1939.347046,10627449471 +2023-07-15,1939.129639,1946.019165,1928.187378,1931.466553,1931.466553,4380084234 +2023-07-16,1931.645020,1942.030884,1917.294067,1923.681885,1923.681885,4329306566 +2023-07-17,1923.694336,1936.177612,1875.120361,1911.646118,1911.646118,6678090758 +2023-07-18,1911.697021,1916.468384,1878.718506,1897.599243,1897.599243,5814708445 +2023-07-19,1897.797241,1919.264404,1883.067139,1889.007935,1889.007935,6018487800 +2023-07-20,1889.073730,1919.264404,1879.734375,1890.969116,1890.969116,7366830684 +2023-07-21,1891.581299,1905.386230,1885.296265,1892.080078,1892.080078,4668158260 +2023-07-22,1891.955078,1897.088013,1855.092773,1864.912354,1864.912354,4101305643 +2023-07-23,1866.094238,1904.483276,1859.568848,1889.191650,1889.191650,4480604100 +2023-07-24,1888.809570,1889.761963,1836.852417,1850.002075,1850.002075,6344373569 +2023-07-25,1850.027954,1867.323242,1845.981567,1857.741943,1857.741943,4163381707 +2023-07-26,1857.696533,1886.974121,1849.436890,1872.159912,1872.159912,5781548155 +2023-07-27,1872.086304,1885.591553,1855.321533,1860.357178,1860.357178,4291339248 +2023-07-28,1860.702515,1881.457275,1857.048950,1874.744873,1874.744873,3800973336 +2023-07-29,1874.560425,1885.529297,1870.333862,1881.068848,1881.068848,2497302218 +2023-07-30,1880.871582,1884.144165,1851.728027,1861.643799,1861.643799,4003005547 +2023-07-31,1861.755249,1875.629395,1851.915405,1856.162354,1856.162354,4391613314 +2023-08-01,1856.190186,1873.029907,1817.920776,1871.792114,1871.792114,7634860636 +2023-08-02,1873.468140,1877.511475,1822.348267,1839.089722,1839.089722,6448512422 +2023-08-03,1838.897949,1856.407593,1825.347778,1835.136475,1835.136475,4710581074 +2023-08-04,1834.890503,1847.912231,1817.413818,1827.712891,1827.712891,4861242484 +2023-08-05,1827.798584,1836.464844,1824.807983,1834.987915,1834.987915,2866049749 +2023-08-06,1834.845215,1836.248901,1824.986694,1827.462036,1827.462036,2963395076 +2023-08-07,1827.239502,1842.522583,1804.716675,1826.938843,1826.938843,5837881974 +2023-08-08,1826.931030,1873.847168,1824.430054,1855.807373,1855.807373,5812855406 +2023-08-09,1855.779419,1869.736572,1845.489746,1854.297607,1854.297607,5870081833 +2023-08-10,1854.348267,1863.310913,1845.442261,1850.753418,1850.753418,3760304518 +2023-08-11,1850.741699,1855.066040,1839.569214,1847.124390,1847.124390,3353025102 +2023-08-12,1847.171997,1852.281006,1845.719238,1848.889893,1848.889893,2291124840 +2023-08-13,1849.053833,1859.916382,1834.804321,1839.280151,1839.280151,3054625661 +2023-08-14,1839.323486,1853.836304,1834.800415,1844.185791,1844.185791,4083364724 +2023-08-15,1844.164185,1845.547607,1816.325073,1826.932739,1826.932739,4483923893 +2023-08-16,1827.036377,1829.361206,1798.966675,1805.659058,1805.659058,4976573383 +2023-08-17,1805.567383,1807.714844,1551.713257,1684.933472,1684.933472,14208462072 +2023-08-18,1682.038452,1698.124268,1644.930908,1660.945068,1660.945068,9645084584 +2023-08-19,1660.844360,1693.228149,1654.075806,1669.471924,1669.471924,4871231360 +2023-08-20,1669.587769,1692.328735,1662.901489,1684.852051,1684.852051,4105056995 +2023-08-21,1685.022339,1685.082642,1651.959839,1667.269043,1667.269043,5077248383 +2023-08-22,1667.279297,1668.638672,1596.384033,1633.892578,1633.892578,7244623133 +2023-08-23,1634.401733,1696.593994,1629.581055,1679.274414,1679.274414,7191868448 +2023-08-24,1679.248291,1682.489746,1641.627075,1659.944580,1659.944580,5104531920 +2023-08-25,1660.269897,1671.970703,1635.967407,1652.935059,1652.935059,5396997823 +2023-08-26,1652.927246,1654.777710,1643.712646,1646.306763,1646.306763,2423247747 +2023-08-27,1646.271973,1659.267090,1645.902832,1657.513062,1657.513062,2624065031 +2023-08-28,1657.439819,1659.328735,1627.446777,1652.457397,1652.457397,4855588534 +2023-08-29,1652.274170,1742.637329,1639.576172,1729.725708,1729.725708,11304916729 +2023-08-30,1729.676636,1730.564697,1697.147217,1705.112183,1705.112183,5023904190 +2023-08-31,1705.364502,1720.011963,1634.850952,1645.639160,1645.639160,6593153505 +2023-09-01,1645.581299,1653.531738,1603.034180,1628.491211,1628.491211,6104510092 +2023-09-02,1628.559692,1644.030640,1627.976074,1637.025391,1637.025391,2943590996 +2023-09-03,1637.043579,1645.645142,1626.089233,1636.117676,1636.117676,3151878318 +2023-09-04,1635.724731,1642.653198,1618.523682,1629.655273,1629.655273,3887968912 +2023-09-05,1629.911011,1645.948364,1610.141235,1633.629395,1633.629395,4417491902 +2023-09-06,1633.912109,1656.932739,1611.147705,1632.252319,1632.252319,4987397046 +2023-09-07,1632.262817,1657.303711,1623.220459,1647.598267,1647.598267,4907290296 +2023-09-08,1647.807617,1657.136353,1617.796509,1636.137817,1636.137817,4598495496 +2023-09-09,1636.050415,1636.870728,1629.660889,1635.162354,1635.162354,2081625742 +2023-09-10,1635.211670,1635.433105,1604.040527,1616.828857,1616.828857,4339499949 +2023-09-11,1616.769775,1618.305786,1533.426758,1551.637695,1551.637695,7693700923 +2023-09-12,1551.497803,1619.114014,1549.493774,1592.429443,1592.429443,6813819740 +2023-09-13,1592.892334,1615.050293,1582.217529,1607.988525,1607.988525,4979469106 +2023-09-14,1608.031616,1640.522705,1607.735352,1626.974365,1626.974365,5538958553 +2023-09-15,1626.870117,1652.113159,1613.248657,1641.640381,1641.640381,4348584771 +2023-09-16,1641.446411,1649.988647,1632.577881,1635.221680,1635.221680,2819575929 +2023-09-17,1635.201050,1635.512939,1616.779297,1622.896729,1622.896729,3032716258 +2023-09-18,1623.081909,1669.015381,1609.957397,1637.347046,1637.347046,5916674789 +2023-09-19,1637.312012,1659.531738,1628.413208,1643.544678,1643.544678,4405868861 +2023-09-20,1643.495361,1649.619141,1610.420776,1622.890625,1622.890625,5156431986 +2023-09-21,1622.591797,1625.204590,1573.305786,1584.307007,1584.307007,5191732312 +2023-09-22,1584.002563,1601.537720,1579.101318,1593.268311,1593.268311,3460791634 +2023-09-23,1593.213135,1598.001709,1588.328979,1593.857788,1593.857788,2101436678 +2023-09-24,1593.825684,1600.207275,1576.783325,1580.853394,1580.853394,3086456944 +2023-09-25,1580.747437,1595.844116,1565.025513,1588.322876,1588.322876,4394930984 +2023-09-26,1588.023193,1598.097778,1580.165527,1593.417236,1593.417236,3544861160 +2023-09-27,1593.108276,1631.910767,1585.368896,1597.491211,1597.491211,5533036096 +2023-09-28,1597.671997,1666.024170,1597.294678,1652.882690,1652.882690,6658092168 +2023-09-29,1652.999878,1687.281250,1648.656494,1667.943848,1667.943848,5529687537 +2023-09-30,1667.834473,1692.531128,1666.563843,1671.161865,1671.161865,3155292192 +2023-10-01,1671.161499,1750.595703,1670.082153,1733.810425,1733.810425,5054880180 +2023-10-02,1732.984009,1743.563599,1646.077637,1663.627563,1663.627563,8420552922 +2023-10-03,1662.887207,1670.356323,1644.496460,1656.685669,1656.685669,4742827302 +2023-10-04,1656.735962,1657.253540,1629.426636,1647.838135,1647.838135,5127524863 +2023-10-05,1647.788208,1654.379028,1609.849976,1611.476440,1611.476440,5403759057 +2023-10-06,1611.365723,1659.609863,1611.365723,1645.831543,1645.831543,4941208729 +2023-10-07,1645.810913,1648.183716,1631.158203,1634.511230,1634.511230,2578994988 +2023-10-08,1634.657349,1641.182373,1618.189209,1633.548584,1633.548584,3315554175 +2023-10-09,1633.454834,1635.447876,1553.006958,1579.806641,1579.806641,7020801716 +2023-10-10,1580.112061,1593.741333,1553.031738,1567.713013,1567.713013,5254966125 +2023-10-11,1567.680786,1578.223511,1548.980469,1566.254761,1566.254761,5416504273 +2023-10-12,1566.355957,1566.878174,1523.237549,1539.612427,1539.612427,5003930677 +2023-10-13,1539.432861,1571.750610,1537.921143,1552.089478,1552.089478,4575141511 +2023-10-14,1552.263794,1560.325073,1545.738770,1555.256836,1555.256836,2429214718 +2023-10-15,1555.076050,1565.760864,1550.554565,1558.069824,1558.069824,2923337883 +2023-10-16,1558.313477,1628.156250,1555.989624,1600.534302,1600.534302,8846928526 +2023-10-17,1600.635620,1601.294678,1554.402954,1565.439575,1565.439575,5032686973 +2023-10-18,1565.382813,1584.726929,1556.736328,1563.749878,1563.749878,4354138855 +2023-10-19,1563.958130,1573.737671,1543.585083,1567.457031,1567.457031,5035110867 +2023-10-20,1567.570923,1628.609009,1562.302856,1604.666870,1604.666870,6747486127 +2023-10-21,1604.822266,1641.241821,1593.447998,1629.304443,1629.304443,4212179634 +2023-10-22,1629.297729,1667.666626,1623.984741,1663.429932,1663.429932,5248406817 +2023-10-23,1674.849243,1794.070435,1663.447998,1765.382690,1765.382690,14362295879 +2023-10-24,1766.014648,1852.684448,1758.690063,1784.437500,1784.437500,15888690475 +2023-10-25,1784.905029,1814.484741,1762.147095,1787.397583,1787.397583,9439066475 +2023-10-26,1787.481934,1865.095215,1764.013062,1804.039307,1804.039307,11196672635 +2023-10-27,1803.794922,1804.135864,1751.440063,1780.045288,1780.045288,7493399771 +2023-10-28,1780.084229,1800.605347,1773.436646,1776.618164,1776.618164,4226112731 +2023-10-29,1776.563965,1810.488647,1766.052979,1795.546021,1795.546021,4358528382 +2023-10-30,1795.589111,1829.249512,1779.364502,1810.088623,1810.088623,7534051038 +2023-10-31,1810.131592,1819.972656,1784.567627,1816.458984,1816.458984,6477922747 +2023-11-01,1815.872070,1858.312866,1786.409546,1847.089722,1847.089722,10628825648 +2023-11-02,1847.259888,1873.885010,1790.114746,1800.620972,1800.620972,9004197724 +2023-11-03,1800.916504,1835.072510,1779.635498,1832.795166,1832.795166,7622864055 +2023-11-04,1833.368896,1867.261353,1825.736572,1857.698608,1857.698608,4845080427 +2023-11-05,1857.395630,1911.608643,1848.620117,1894.157715,1894.157715,8867152645 +2023-11-06,1894.027100,1914.582642,1871.973022,1899.837402,1899.837402,8104122602 +2023-11-07,1900.599731,1907.561401,1852.790894,1888.124268,1888.124268,9203228152 +2023-11-08,1887.119019,1904.546265,1874.545654,1889.322388,1889.322388,6751627017 +2023-11-09,1888.940308,2130.885254,1884.204346,2120.561035,2120.561035,24709695029 +2023-11-10,2121.067383,2134.691406,2068.134277,2078.289795,2078.289795,14740624457 +2023-11-11,2078.058350,2089.530518,2035.082153,2052.713867,2052.713867,10228351203 +2023-11-12,2053.118652,2066.003418,2019.028076,2045.187012,2045.187012,7951011698 +2023-11-13,2045.354492,2116.010742,2031.954224,2055.265381,2055.265381,14322027970 +2023-11-14,2054.765381,2065.066895,1939.280396,1979.052612,1979.052612,13087862495 +2023-11-15,1979.472656,2061.991699,1968.774658,2060.408447,2060.408447,12626326991 +2023-11-16,2059.965820,2088.662354,1940.574219,1960.881592,1960.881592,14651619483 +2023-11-17,1961.867554,1990.050537,1910.445435,1961.280762,1961.280762,11881648738 +2023-11-18,1961.671265,1971.462280,1921.062378,1963.285034,1963.285034,8064677046 +2023-11-19,1963.180054,2015.633911,1944.900879,2013.204468,2013.204468,7716048818 +2023-11-20,2011.853394,2066.409912,1996.044312,2022.239136,2022.239136,12866464824 +2023-11-21,2022.217285,2035.035889,1937.066772,1937.066772,1937.066772,13653500841 +2023-11-22,1933.583130,2089.514160,1933.162964,2064.425293,2064.425293,13372200584 +2023-11-23,2063.905518,2088.031982,2041.464233,2062.210693,2062.210693,7828437946 +2023-11-24,2062.411865,2132.481201,2060.999023,2081.152100,2081.152100,12141148820 +2023-11-25,2081.296143,2091.342773,2067.917236,2084.413086,2084.413086,5362623390 +2023-11-26,2084.177490,2094.095947,2038.600464,2063.286133,2063.286133,8054814154 +2023-11-27,2062.390869,2070.606201,1988.120361,2027.417358,2027.417358,10574810069 +2023-11-28,2027.517212,2074.954102,1996.814697,2049.338135,2049.338135,9910633038 +2023-11-29,2049.186768,2071.994385,2020.756592,2029.929199,2029.929199,8945151861 +2023-11-30,2029.358398,2054.444336,2022.461792,2052.556152,2052.556152,8107789163 +2023-12-01,2052.096680,2109.319092,2046.557007,2087.139893,2087.139893,10866891430 +2023-12-02,2087.663574,2182.817871,2087.407959,2165.704102,2165.704102,9130124831 +2023-12-03,2165.895752,2213.175781,2151.720947,2193.691650,2193.691650,8278465782 +2023-12-04,2193.663330,2273.069824,2193.007324,2243.215820,2243.215820,16149367134 +2023-12-05,2243.092529,2306.570313,2191.176270,2293.841797,2293.841797,15383072559 +2023-12-06,2293.628174,2310.713135,2225.081055,2231.661377,2231.661377,12790612571 +2023-12-07,2233.217773,2380.729736,2225.050537,2357.579590,2357.579590,14766891042 +2023-12-08,2357.169189,2387.514404,2340.920410,2358.731934,2358.731934,12543458699 +2023-12-09,2358.686035,2401.760498,2331.666016,2341.175293,2341.175293,10613312823 +2023-12-10,2341.440186,2376.749756,2323.405762,2352.462646,2352.462646,7369608905 +2023-12-11,2352.496582,2354.914063,2160.358154,2224.578857,2224.578857,17989249470 +2023-12-12,2224.391113,2242.551270,2166.770020,2202.038086,2202.038086,11391132228 +2023-12-13,2202.600342,2283.099121,2150.754395,2260.648682,2260.648682,12576395493 +2023-12-14,2260.736084,2331.601563,2239.366211,2316.579102,2316.579102,12608711052 +2023-12-15,2316.110352,2316.892822,2214.263184,2219.337402,2219.337402,10259157898 +2023-12-16,2220.415527,2260.809814,2213.550781,2226.926514,2226.926514,6866555430 +2023-12-17,2226.892578,2244.366455,2195.761719,2196.481201,2196.481201,7410453853 +2023-12-18,2195.341797,2222.019287,2120.127441,2217.273438,2217.273438,10366536490 +2023-12-19,2218.240967,2253.348877,2139.723389,2177.872559,2177.872559,10619179629 +2023-12-20,2177.239502,2263.329102,2161.218750,2201.911377,2201.911377,12652290807 +2023-12-21,2201.790039,2278.121582,2184.856689,2239.542480,2239.542480,12616530536 +2023-12-22,2239.598145,2341.947510,2233.532715,2326.524902,2326.524902,16137246310 +2023-12-23,2326.715820,2332.072021,2270.428955,2309.046387,2309.046387,7995772945 +2023-12-24,2309.626709,2325.705078,2249.984375,2265.692139,2265.692139,9450799236 +2023-12-25,2265.340576,2303.551025,2254.574463,2272.561768,2272.561768,8036302656 +2023-12-26,2272.218750,2274.557373,2180.225342,2231.465332,2231.465332,10668581464 +2023-12-27,2231.393066,2392.608643,2215.140381,2378.739990,2378.739990,14161342927 +2023-12-28,2380.200684,2445.017578,2338.703857,2347.566162,2347.566162,15660799060 +2023-12-29,2346.843750,2386.004639,2262.975830,2300.690674,2300.690674,12536968996 +2023-12-30,2300.399658,2322.021484,2270.011963,2292.065430,2292.065430,6888195427 +2023-12-31,2291.945313,2318.512939,2261.394287,2281.471191,2281.471191,6871481744 +2024-01-01,2282.870361,2352.327881,2267.018066,2352.327881,2352.327881,6906765990 +2024-01-02,2352.593506,2431.212402,2348.892334,2355.836426,2355.836426,12910543630 +2024-01-03,2355.981445,2385.117676,2113.925293,2210.761963,2210.761963,19332933581 +2024-01-04,2210.529053,2294.608154,2204.865723,2269.038086,2269.038086,11044564896 +2024-01-05,2269.409424,2276.764648,2209.537109,2268.647217,2268.647217,10860953290 +2024-01-06,2269.540039,2271.359375,2219.781982,2241.624756,2241.624756,5970741680 +2024-01-07,2242.012695,2257.127930,2211.562500,2222.865967,2222.865967,6490053615 +2024-01-08,2222.857666,2358.815674,2171.993652,2333.032715,2333.032715,13830287095 +2024-01-09,2332.868164,2369.641602,2243.219238,2344.827148,2344.827148,14891130716 +2024-01-10,2344.923584,2626.976807,2341.943115,2582.103516,2582.103516,29042100476 +2024-01-11,2584.171631,2687.779053,2567.993652,2619.619141,2619.619141,22575246883 +2024-01-12,2619.177002,2710.421875,2460.925537,2524.460205,2524.460205,23623839263 +2024-01-13,2522.933838,2589.079834,2498.594482,2576.597900,2576.597900,12250316867 +2024-01-14,2578.003662,2578.332275,2470.424316,2472.241211,2472.241211,9405587417 +2024-01-15,2471.666992,2550.769043,2470.820801,2511.363770,2511.363770,9700630000 +2024-01-16,2510.627197,2613.566895,2500.003906,2587.691162,2587.691162,11063317095 +2024-01-17,2587.044678,2592.737061,2508.432861,2528.369385,2528.369385,10441017520 +2024-01-18,2528.593262,2546.263916,2426.135498,2467.018799,2467.018799,11900028080 +2024-01-19,2468.688965,2501.305176,2414.710938,2489.498535,2489.498535,11405278376 +2024-01-20,2489.847656,2489.847656,2456.095703,2469.589111,2469.589111,5297826161 +2024-01-21,2469.798584,2479.760498,2452.377686,2453.913086,2453.913086,4578471955 +2024-01-22,2454.987305,2463.447266,2303.502686,2310.826416,2310.826416,13923771728 +2024-01-23,2310.951660,2348.031250,2167.282471,2240.686035,2240.686035,16182147521 +2024-01-24,2241.749756,2261.384521,2197.656738,2233.561768,2233.561768,10134722960 +2024-01-25,2233.969971,2240.380859,2173.686523,2217.710205,2217.710205,9302247037 +2024-01-26,2217.441895,2280.383789,2196.140137,2267.199707,2267.199707,9975117607 +2024-01-27,2267.319336,2282.544434,2252.385254,2267.885986,2267.885986,5144367230 +2024-01-28,2268.192871,2306.898682,2242.683838,2257.208740,2257.208740,7296214994 +2024-01-29,2256.995361,2320.027344,2237.711670,2317.064209,2317.064209,8948195551 +2024-01-30,2317.435791,2388.870605,2298.281982,2344.493652,2344.493652,10173440062 +2024-01-31,2343.558838,2349.611328,2264.443604,2282.544434,2282.544434,10807883277 +2024-02-01,2282.175293,2309.842529,2243.571777,2303.824707,2303.824707,8895583113 +2024-02-02,2303.706055,2323.053467,2282.230225,2308.038086,2308.038086,7186143091 +2024-02-03,2307.980225,2327.346924,2293.538086,2296.038330,2296.038330,4647754021 +2024-02-04,2296.116943,2309.011230,2272.304932,2289.546143,2289.546143,5438100035 +2024-02-05,2289.205566,2334.676758,2270.067871,2298.888916,2298.888916,7277068110 +2024-02-06,2298.955078,2389.826172,2296.788574,2372.201904,2372.201904,9520885493 +2024-02-07,2372.262695,2442.636230,2353.706055,2423.745117,2423.745117,9660628536 +2024-02-08,2424.080078,2459.556641,2414.749512,2419.906494,2419.906494,9941841732 +2024-02-09,2419.773682,2522.724609,2419.362793,2487.515625,2487.515625,13634203177 +2024-02-10,2487.650391,2516.719727,2475.857666,2501.228271,2501.228271,6474444159 +2024-02-11,2501.129883,2537.679199,2495.214355,2507.570557,2507.570557,7347245813 +2024-02-12,2507.578857,2663.842773,2473.812012,2658.115967,2658.115967,13022696866 +2024-02-13,2659.586182,2686.455078,2599.169434,2642.185303,2642.185303,18271237044 +2024-02-14,2641.685303,2786.893555,2621.025391,2777.902344,2777.902344,21448973822 +2024-02-15,2777.601318,2865.845459,2764.010498,2824.378906,2824.378906,23734481937 +2024-02-16,2825.480713,2858.450439,2760.331055,2803.691406,2803.691406,17057114638 +2024-02-17,2803.735840,2805.128662,2724.386963,2786.672607,2786.672607,17932379943 +2024-02-18,2786.709717,2892.843506,2767.913086,2878.998047,2878.998047,23355830478 +2024-02-19,2881.296875,2983.370605,2860.263672,2943.574707,2943.574707,15163110589 +2024-02-20,2944.106445,3031.524414,2879.903320,3013.503662,3013.503662,20341598470 +2024-02-21,3015.653320,3017.190430,2875.418457,2970.355469,2970.355469,18897136867 +2024-02-22,2969.599854,3030.666016,2907.109375,2971.007324,2971.007324,18058908246 +2024-02-23,2970.139648,2991.329590,2906.583740,2921.658203,2921.658203,12822717059 +2024-02-24,2921.962891,3003.195068,2907.700684,2992.385986,2992.385986,10701688842 +2024-02-25,2992.366699,3117.428955,2984.393066,3112.697266,3112.697266,14620450464 +2024-02-26,3112.529053,3197.375000,3037.954590,3178.993652,3178.993652,17504464351 +2024-02-27,3178.405029,3287.958008,3167.830566,3244.519287,3244.519287,21090315368 +2024-02-28,3243.893311,3485.450928,3201.575928,3385.703857,3385.703857,32885894265 +2024-02-29,3386.802734,3518.969238,3303.905273,3341.919678,3341.919678,28469171094 +2024-03-01,3341.965820,3452.626221,3341.851074,3435.053955,3435.053955,16880101987 +2024-03-02,3436.159180,3459.747314,3398.898926,3422.049805,3422.049805,12024340617 +2024-03-03,3422.875244,3491.168457,3372.214111,3490.993652,3490.993652,13643324467 +2024-03-04,3489.340088,3641.459229,3446.017578,3630.433838,3630.433838,26772963830 +2024-03-05,3631.928955,3828.159668,3224.119385,3554.964600,3554.964600,47706899137 +2024-03-06,3554.067871,3901.434326,3502.802490,3819.226318,3819.226318,34938642613 +2024-03-07,3818.311035,3939.593994,3738.685303,3874.347656,3874.347656,22457177587 +2024-03-08,3874.830811,3998.826416,3828.363281,3892.061035,3892.061035,26135487051 +2024-03-09,3892.119141,3950.396484,3880.658936,3915.418945,3915.418945,11926623780 +2024-03-10,3915.590576,3968.723633,3800.564453,3881.193115,3881.193115,15783924355 +2024-03-11,3881.237793,4087.050049,3745.125244,4066.445068,4066.445068,28806262507 +2024-03-12,4066.690430,4092.284180,3831.889893,3980.273193,3980.273193,26917010932 +2024-03-13,3980.265137,4083.007324,3936.627197,4006.457031,4006.457031,22028114691 +2024-03-14,4005.745117,4011.102783,3721.788574,3883.140381,3883.140381,25434810823 +2024-03-15,3882.856934,3928.775635,3571.774658,3735.220215,3735.220215,33505075433 +2024-03-16,3736.104980,3780.894531,3468.079346,3522.860107,3522.860107,20199855932 +2024-03-17,3523.029785,3676.263428,3414.172363,3642.413086,3642.413086,19938757095 +2024-03-18,3642.298828,3642.497070,3456.091309,3517.985107,3517.985107,21162220224 +2024-03-19,3518.347656,3546.582275,3149.286865,3157.618164,3157.618164,34166976701 +2024-03-20,3158.396729,3534.826416,3059.654785,3513.393066,3513.393066,36605316331 +2024-03-21,3514.017578,3586.905029,3412.222656,3492.991211,3492.991211,22213647922 +2024-03-22,3492.897949,3541.898193,3254.969238,3333.687988,3333.687988,20574952329 +2024-03-23,3335.592529,3433.758057,3273.115479,3336.593994,3336.593994,13242137554 +2024-03-24,3336.666016,3470.344482,3301.277344,3454.636475,3454.636475,12156660941 +2024-03-25,3454.885742,3657.118896,3421.790527,3590.883789,3590.883789,18603921705 +2024-03-26,3591.085205,3678.789795,3545.428711,3587.504883,3587.504883,18505553577 +2024-03-27,3587.313721,3664.383057,3460.393555,3500.115234,3500.115234,18753082145 +2024-03-28,3500.216064,3609.705322,3465.332275,3561.293945,3561.293945,16419674157 +2024-03-29,3561.011719,3583.701416,3475.725586,3511.806152,3511.806152,12712701619 +2024-03-30,3511.827637,3566.084473,3489.902100,3507.944336,3507.944336,9389066783 +2024-03-31,3507.951660,3655.218994,3507.242676,3647.856445,3647.856445,10499881424 +2024-04-01,3647.819580,3648.129150,3418.695313,3505.030029,3505.030029,16002098681 +2024-04-02,3504.818359,3506.962891,3215.985107,3277.234619,3277.234619,22076539151 +2024-04-03,3277.324219,3368.111572,3205.649170,3311.441895,3311.441895,16010734587 +2024-04-04,3311.495361,3443.207520,3253.319336,3330.040527,3330.040527,14476330517 +2024-04-05,3330.005859,3345.666504,3214.244141,3318.885254,3318.885254,15214447092 +2024-04-06,3318.864746,3397.592529,3308.983398,3354.183838,3354.183838,8956926798 +2024-04-07,3354.213867,3458.508301,3346.114746,3453.494629,3453.494629,9931108526 +2024-04-08,3453.498779,3727.616455,3409.511719,3695.292725,3695.292725,19055143129 +2024-04-09,3695.341797,3724.922363,3455.107666,3505.163330,3505.163330,18279773833 +2024-04-10,3505.156006,3561.516357,3415.180420,3543.737061,3543.737061,16872482726 +2024-04-11,3543.452148,3616.194336,3477.171143,3505.247803,3505.247803,14076734489 +2024-04-12,3505.329834,3552.589111,3103.430176,3243.034912,3243.034912,22104869556 +2024-04-13,3242.940918,3299.663818,2862.393555,3004.900391,3004.900391,29930408174 +2024-04-14,3005.547607,3174.666504,2914.422852,3156.941895,3156.941895,25486284994 +2024-04-15,3156.830078,3277.561523,3026.538818,3101.600342,3101.600342,21925843181 +2024-04-16,3101.140625,3127.160889,2997.754639,3084.920166,3084.920166,19441391169 +2024-04-17,3084.923584,3123.669678,2918.553711,2984.727539,2984.727539,17711869375 +2024-04-18,2984.705322,3094.842041,2956.127441,3066.027588,3066.027588,15183777035 +2024-04-19,3065.953125,3127.114990,2868.795898,3059.278564,3059.278564,20399982867 +2024-04-20,3059.478027,3170.672852,3021.784912,3157.627197,3157.627197,9918642130 +2024-04-21,3157.571045,3197.506348,3119.552002,3147.288574,3147.288574,9394387894 +2024-04-22,3147.663574,3236.659180,3131.367432,3201.652100,3201.652100,12063858733 +2024-04-23,3201.588623,3264.419434,3154.589844,3219.911621,3219.911621,11054442653 +2024-04-24,3219.957031,3292.921631,3105.982178,3139.805176,3139.805176,14000234760 +2024-04-25,3139.624268,3190.976318,3074.804688,3156.509521,3156.509521,13989030260 +2024-04-26,3156.384033,3166.188721,3103.104004,3130.164795,3130.164795,10622333862 +2024-04-27,3129.727051,3279.451172,3071.340088,3252.168213,3252.168213,11820785577 +2024-04-28,3252.245605,3351.176514,3249.149170,3262.774658,3262.774658,11379192678 +2024-04-29,3262.340820,3285.468750,3116.199951,3215.428955,3215.428955,15032246816 +2024-04-30,3215.381104,3249.378418,2918.228760,3012.286865,3012.286865,18266894653 +2024-05-01,3011.015625,3020.173340,2815.923340,2969.784668,2969.784668,20005057445 +2024-05-02,2969.794434,3015.050293,2894.329834,2988.168457,2988.168457,13163903903 +2024-05-03,2988.134521,3127.155273,2960.182129,3103.541992,3103.541992,12862183229 +2024-05-04,3103.619629,3167.541260,3096.267578,3117.576416,3117.576416,8283229638 +2024-05-05,3117.636963,3170.055176,3075.586182,3137.249023,3137.249023,8783447639 +2024-05-06,3137.510254,3220.152344,3048.238525,3062.728760,3062.728760,13008587255 +2024-05-07,3062.750977,3129.081299,3003.013672,3006.577148,3006.577148,11743187337 +2024-05-08,3006.315674,3037.196045,2938.472656,2973.657227,2973.657227,11791662158 +2024-05-09,2973.971680,3057.958252,2951.223877,3036.020508,3036.020508,10861947179 +2024-05-10,3036.231201,3052.729492,2881.000732,2909.791260,2909.791260,12278653601 +2024-05-11,2909.845459,2942.178711,2888.083252,2911.602051,2911.602051,6795916454 +2024-05-12,2911.658203,2953.047363,2902.201904,2928.701904,2928.701904,5908941395 +2024-05-13,2928.813965,2994.869141,2865.134521,2949.359619,2949.359619,13352264795 +2024-05-14,2949.213135,2959.546631,2863.545898,2881.157959,2881.157959,12444516140 +2024-05-15,2881.224609,3041.602295,2864.735352,3037.056641,3037.056641,14666902956 +2024-05-16,3036.014160,3041.807129,2925.087402,2945.131104,2945.131104,13035465176 +2024-05-17,2945.136963,3120.301758,2934.112549,3094.118652,3094.118652,14449438097 +2024-05-18,3094.553467,3146.790527,3087.704346,3122.948975,3122.948975,9407051320 +2024-05-19,3122.824707,3137.148438,3056.754395,3071.843018,3071.843018,8747800800 +2024-05-20,3071.858887,3690.805908,3050.297852,3663.855469,3663.855469,31228143948 +2024-05-21,3663.011230,3837.372803,3628.096436,3789.312744,3789.312744,37643853967 +2024-05-22,3789.372803,3810.948486,3655.075195,3737.217773,3737.217773,25155809461 +2024-05-23,3737.178467,3943.553955,3552.642578,3776.927246,3776.927246,45623656317 +2024-05-24,3776.992432,3825.122559,3631.990234,3726.934570,3726.934570,22257061429 +2024-05-25,3726.975586,3776.006592,3710.528320,3749.236572,3749.236572,10000027764 +2024-05-26,3749.179932,3879.470703,3732.022949,3825.897461,3825.897461,14650794791 +2024-05-27,3826.127197,3973.556396,3821.930420,3892.006836,3892.006836,18949181813 +2024-05-28,3892.096924,3924.895752,3771.213867,3840.256348,3840.256348,19846044324 +2024-05-29,3840.235107,3880.648438,3742.041260,3763.196533,3763.196533,17411416736 +2024-05-30,3763.357666,3823.643311,3702.263672,3746.849609,3746.849609,15065849797 +2024-05-31,3746.861572,3843.857666,3723.835205,3760.026611,3760.026611,15290700646 +2024-06-01,3759.884277,3829.294678,3749.840088,3813.198975,3813.198975,8661024535 +2024-06-02,3813.275635,3834.911865,3752.414551,3780.895996,3780.895996,11126903059 +2024-06-03,3780.854248,3848.603027,3758.919922,3766.389160,3766.389160,14082454300 +2024-06-04,3766.476318,3831.364990,3738.134277,3812.515869,3812.515869,13331489271 +2024-06-05,3812.560791,3887.485840,3778.655762,3864.260986,3864.260986,15480034434 +2024-06-06,3864.263428,3878.052246,3761.775391,3811.605957,3811.605957,13606583873 +2024-06-07,3811.666016,3838.452148,3615.280273,3678.629150,3678.629150,18220286186 +2024-06-08,3677.400391,3707.497314,3669.637939,3680.949951,3680.949951,9096091805 +2024-06-09,3680.936035,3719.367676,3668.123535,3705.903809,3705.903809,7910768788 +2024-06-10,3705.877197,3711.428711,3648.164551,3666.717529,3666.717529,10377300126 +2024-06-11,3666.358887,3669.890869,3434.749023,3498.330566,3498.330566,19184721538 +2024-06-12,3497.896973,3652.492188,3463.784912,3559.617676,3559.617676,17142905351 +2024-06-13,3559.725342,3559.725342,3431.333496,3469.281250,3469.281250,14472382154 +2024-06-14,3467.969971,3528.602295,3366.223877,3480.271973,3480.271973,15793876596 +2024-06-15,3479.785645,3589.887451,3473.452637,3565.549561,3565.549561,12733651076 +2024-06-16,3566.761963,3648.093018,3541.534424,3620.563477,3620.563477,9878388158 +2024-06-17,3622.383545,3634.285400,3468.148926,3511.378906,3511.378906,17838856988 +2024-06-18,3510.565186,3514.177246,3371.590332,3483.681396,3483.681396,21022514455 +2024-06-19,3482.350830,3583.320068,3466.480957,3559.347412,3559.347412,15275373778 +2024-06-20,3559.347412,3621.249023,3502.528320,3523.394531,3523.394531,16096463872 \ No newline at end of file diff --git a/mlflow.db b/mlflow.db new file mode 100644 index 0000000..a37a477 Binary files /dev/null and b/mlflow.db differ diff --git a/notebooks/backtesting.ipynb b/notebooks/backtesting.ipynb index cea2dbc..ef5c81e 100644 --- a/notebooks/backtesting.ipynb +++ b/notebooks/backtesting.ipynb @@ -2,8442 +2,1146 @@ "cells": [ { "cell_type": "code", - "execution_count": 13, + "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['/home/air/crypto-trading-backtesting/notebooks', '/home/air/.pyenv/versions/3.10.2/lib/python310.zip', '/home/air/.pyenv/versions/3.10.2/lib/python3.10', '/home/air/.pyenv/versions/3.10.2/lib/python3.10/lib-dynload', '', '/home/air/crypto-trading-backtesting/.crypto/lib/python3.10/site-packages', '/home/air/crypto-trading-backtesting', '/home/air/crypto-trading-backtesting']\n" + ] + } + ], "source": [ - "from __future__ import (absolute_import, division, print_function, unicode_literals)\n", - "import datetime\n", "import os\n", "import sys\n", - "import backtrader as bt\n", - "import ccxt\n", "import pandas as pd\n", - "import matplotlib.pyplot as plt\n", + "from sqlalchemy import create_engine\n", + "import backtrader as bt\n", + "root_path = os.path.abspath(os.path.join(os.getcwd(), '..'))\n", + "sys.path.append(root_path)\n", + "print(sys.path)\n", + "\n", + "\n", + "from scripts.backtest_runner import fetch_data, RsiBollingerBandsStrategy, SimpleMovingAverageStrategy,RefinedSMAStrategy,run_backtest\n", + "\n", + "rds_host = os.getenv('PG_HOST')\n", + "rds_port = os.getenv('PG_PORT')\n", + "rds_db = os.getenv('PG_DATABASE')\n", + "rds_user = os.getenv('PG_USER')\n", + "rds_password = os.getenv('PG_PASSWORD')\n", "\n", - "# Initialize Binance API\n", - "binance = ccxt.binance()" + "engine = create_engine(f'postgresql+psycopg2://{rds_user}:{rds_password}@{rds_host}:{rds_port}/{rds_db}')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## Fetching Data from Binance" + "## Parameters" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ - "def fetch_ohlcv(symbol, timeframe, since=None, limit=1000):\n", - " ohlcv = binance.fetch_ohlcv(symbol, timeframe, since=since, limit=limit)\n", - " return ohlcv\n", - "\n", - "def ohlcv_to_dataframe(ohlcv):\n", - " df = pd.DataFrame(ohlcv, columns=['timestamp', 'open', 'high', 'low', 'close', 'volume'])\n", - " df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms')\n", - " return df\n", - "\n", - "def fetch_data_for_period(symbol, timeframe, start_date, end_date, limit=1000):\n", - " all_data = []\n", - " since = binance.parse8601(start_date)\n", - " end_time = binance.parse8601(end_date)\n", - " while since < end_time:\n", - " ohlcv = fetch_ohlcv(symbol, timeframe, since, limit)\n", - " if not ohlcv:\n", - " break\n", - " all_data.extend(ohlcv)\n", - " since = ohlcv[-1][0] # Set since to the last timestamp fetched\n", - " since += 1 # Move to the next millisecond to avoid duplication\n", - " return all_data\n" + "symbol = 'BTC/USDT'\n", + "start_date = '2023-06-20'\n", + "end_date = '2024-06-20'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## Converting Data to DataFrame and Saving as CSV" + "## Fetch data and display first few rows" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 3, "metadata": {}, "outputs": [ { - "ename": "OSError", - "evalue": "Cannot save file into a non-existent directory: '..\\data'", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mOSError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[15], line 11\u001b[0m\n\u001b[0;32m 9\u001b[0m \u001b[38;5;66;03m# Save data to CSV\u001b[39;00m\n\u001b[0;32m 10\u001b[0m csv_path \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m../data/binance_btc_usdt_6months.csv\u001b[39m\u001b[38;5;124m'\u001b[39m\n\u001b[1;32m---> 11\u001b[0m \u001b[43mdf\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mto_csv\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcsv_path\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mindex\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\n", - "File \u001b[1;32mc:\\Users\\dell\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\pandas\\util\\_decorators.py:333\u001b[0m, in \u001b[0;36mdeprecate_nonkeyword_arguments..decorate..wrapper\u001b[1;34m(*args, **kwargs)\u001b[0m\n\u001b[0;32m 327\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(args) \u001b[38;5;241m>\u001b[39m num_allow_args:\n\u001b[0;32m 328\u001b[0m warnings\u001b[38;5;241m.\u001b[39mwarn(\n\u001b[0;32m 329\u001b[0m msg\u001b[38;5;241m.\u001b[39mformat(arguments\u001b[38;5;241m=\u001b[39m_format_argument_list(allow_args)),\n\u001b[0;32m 330\u001b[0m \u001b[38;5;167;01mFutureWarning\u001b[39;00m,\n\u001b[0;32m 331\u001b[0m stacklevel\u001b[38;5;241m=\u001b[39mfind_stack_level(),\n\u001b[0;32m 332\u001b[0m )\n\u001b[1;32m--> 333\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[1;32mc:\\Users\\dell\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\pandas\\core\\generic.py:3967\u001b[0m, in \u001b[0;36mNDFrame.to_csv\u001b[1;34m(self, path_or_buf, sep, na_rep, float_format, columns, header, index, index_label, mode, encoding, compression, quoting, quotechar, lineterminator, chunksize, date_format, doublequote, escapechar, decimal, errors, storage_options)\u001b[0m\n\u001b[0;32m 3956\u001b[0m df \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(\u001b[38;5;28mself\u001b[39m, ABCDataFrame) \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mto_frame()\n\u001b[0;32m 3958\u001b[0m formatter \u001b[38;5;241m=\u001b[39m DataFrameFormatter(\n\u001b[0;32m 3959\u001b[0m frame\u001b[38;5;241m=\u001b[39mdf,\n\u001b[0;32m 3960\u001b[0m header\u001b[38;5;241m=\u001b[39mheader,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 3964\u001b[0m decimal\u001b[38;5;241m=\u001b[39mdecimal,\n\u001b[0;32m 3965\u001b[0m )\n\u001b[1;32m-> 3967\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mDataFrameRenderer\u001b[49m\u001b[43m(\u001b[49m\u001b[43mformatter\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mto_csv\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 3968\u001b[0m \u001b[43m \u001b[49m\u001b[43mpath_or_buf\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 3969\u001b[0m \u001b[43m \u001b[49m\u001b[43mlineterminator\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlineterminator\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 3970\u001b[0m \u001b[43m \u001b[49m\u001b[43msep\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msep\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 3971\u001b[0m \u001b[43m \u001b[49m\u001b[43mencoding\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mencoding\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 3972\u001b[0m \u001b[43m \u001b[49m\u001b[43merrors\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43merrors\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 3973\u001b[0m \u001b[43m \u001b[49m\u001b[43mcompression\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcompression\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 3974\u001b[0m \u001b[43m \u001b[49m\u001b[43mquoting\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mquoting\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 3975\u001b[0m \u001b[43m \u001b[49m\u001b[43mcolumns\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcolumns\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 3976\u001b[0m \u001b[43m \u001b[49m\u001b[43mindex_label\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mindex_label\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 3977\u001b[0m \u001b[43m \u001b[49m\u001b[43mmode\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmode\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 3978\u001b[0m \u001b[43m \u001b[49m\u001b[43mchunksize\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mchunksize\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 3979\u001b[0m \u001b[43m \u001b[49m\u001b[43mquotechar\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mquotechar\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 3980\u001b[0m \u001b[43m \u001b[49m\u001b[43mdate_format\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdate_format\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 3981\u001b[0m \u001b[43m \u001b[49m\u001b[43mdoublequote\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdoublequote\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 3982\u001b[0m \u001b[43m \u001b[49m\u001b[43mescapechar\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mescapechar\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 3983\u001b[0m \u001b[43m \u001b[49m\u001b[43mstorage_options\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstorage_options\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 3984\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[1;32mc:\\Users\\dell\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\pandas\\io\\formats\\format.py:1014\u001b[0m, in \u001b[0;36mDataFrameRenderer.to_csv\u001b[1;34m(self, path_or_buf, encoding, sep, columns, index_label, mode, compression, quoting, quotechar, lineterminator, chunksize, date_format, doublequote, escapechar, errors, storage_options)\u001b[0m\n\u001b[0;32m 993\u001b[0m created_buffer \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[0;32m 995\u001b[0m csv_formatter \u001b[38;5;241m=\u001b[39m CSVFormatter(\n\u001b[0;32m 996\u001b[0m path_or_buf\u001b[38;5;241m=\u001b[39mpath_or_buf,\n\u001b[0;32m 997\u001b[0m lineterminator\u001b[38;5;241m=\u001b[39mlineterminator,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 1012\u001b[0m formatter\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfmt,\n\u001b[0;32m 1013\u001b[0m )\n\u001b[1;32m-> 1014\u001b[0m \u001b[43mcsv_formatter\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msave\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 1016\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m created_buffer:\n\u001b[0;32m 1017\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(path_or_buf, StringIO)\n", - "File \u001b[1;32mc:\\Users\\dell\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\pandas\\io\\formats\\csvs.py:251\u001b[0m, in \u001b[0;36mCSVFormatter.save\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 247\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m 248\u001b[0m \u001b[38;5;124;03mCreate the writer & save.\u001b[39;00m\n\u001b[0;32m 249\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m 250\u001b[0m \u001b[38;5;66;03m# apply compression and byte/text conversion\u001b[39;00m\n\u001b[1;32m--> 251\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[43mget_handle\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 252\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfilepath_or_buffer\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 253\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmode\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 254\u001b[0m \u001b[43m \u001b[49m\u001b[43mencoding\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mencoding\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 255\u001b[0m \u001b[43m \u001b[49m\u001b[43merrors\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43merrors\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 256\u001b[0m \u001b[43m \u001b[49m\u001b[43mcompression\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcompression\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 257\u001b[0m \u001b[43m \u001b[49m\u001b[43mstorage_options\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstorage_options\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 258\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mas\u001b[39;00m handles:\n\u001b[0;32m 259\u001b[0m \u001b[38;5;66;03m# Note: self.encoding is irrelevant here\u001b[39;00m\n\u001b[0;32m 260\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mwriter \u001b[38;5;241m=\u001b[39m csvlib\u001b[38;5;241m.\u001b[39mwriter(\n\u001b[0;32m 261\u001b[0m handles\u001b[38;5;241m.\u001b[39mhandle,\n\u001b[0;32m 262\u001b[0m lineterminator\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mlineterminator,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 267\u001b[0m quotechar\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mquotechar,\n\u001b[0;32m 268\u001b[0m )\n\u001b[0;32m 270\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_save()\n", - "File \u001b[1;32mc:\\Users\\dell\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\pandas\\io\\common.py:749\u001b[0m, in \u001b[0;36mget_handle\u001b[1;34m(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options)\u001b[0m\n\u001b[0;32m 747\u001b[0m \u001b[38;5;66;03m# Only for write methods\u001b[39;00m\n\u001b[0;32m 748\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mr\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m mode \u001b[38;5;129;01mand\u001b[39;00m is_path:\n\u001b[1;32m--> 749\u001b[0m \u001b[43mcheck_parent_directory\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mstr\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mhandle\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 751\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m compression:\n\u001b[0;32m 752\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m compression \u001b[38;5;241m!=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mzstd\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[0;32m 753\u001b[0m \u001b[38;5;66;03m# compression libraries do not like an explicit text-mode\u001b[39;00m\n", - "File \u001b[1;32mc:\\Users\\dell\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\pandas\\io\\common.py:616\u001b[0m, in \u001b[0;36mcheck_parent_directory\u001b[1;34m(path)\u001b[0m\n\u001b[0;32m 614\u001b[0m parent \u001b[38;5;241m=\u001b[39m Path(path)\u001b[38;5;241m.\u001b[39mparent\n\u001b[0;32m 615\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m parent\u001b[38;5;241m.\u001b[39mis_dir():\n\u001b[1;32m--> 616\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mOSError\u001b[39;00m(\u001b[38;5;124mrf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCannot save file into a non-existent directory: \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mparent\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", - "\u001b[1;31mOSError\u001b[0m: Cannot save file into a non-existent directory: '..\\data'" + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing query:\n", + "\n", + " SELECT timestamp AS date, open AS open, high AS high, low AS low, close AS close, volume AS volume \n", + " FROM public.\"ohlcv_BTC_USDT\"\n", + " WHERE timestamp >= '2023-06-20' AND timestamp <= '2024-06-20';\n", + " \n", + "\n", + "Fetched data:\n", + " date open high low close volume\n", + "0 2023-06-20 26844.35 28402.74 26652.00 28307.99 69666.95525\n", + "1 2023-06-21 28308.00 30800.00 28257.99 29993.89 108926.40412\n", + "2 2023-06-22 29993.89 30500.00 29525.61 29884.92 59054.56460\n", + "3 2023-06-23 29884.92 31431.94 29800.00 30688.50 73931.89635\n", + "4 2023-06-24 30688.51 30800.00 30250.00 30527.43 30513.30135\n", + "\n" ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
OpenHighLowCloseVolume
date
2023-06-2026844.3528402.7426652.0028307.9969666.95525
2023-06-2128308.0030800.0028257.9929993.89108926.40412
2023-06-2229993.8930500.0029525.6129884.9259054.56460
2023-06-2329884.9231431.9429800.0030688.5073931.89635
2023-06-2430688.5130800.0030250.0030527.4330513.30135
\n", + "
" + ], + "text/plain": [ + " Open High Low Close Volume\n", + "date \n", + "2023-06-20 26844.35 28402.74 26652.00 28307.99 69666.95525\n", + "2023-06-21 28308.00 30800.00 28257.99 29993.89 108926.40412\n", + "2023-06-22 29993.89 30500.00 29525.61 29884.92 59054.56460\n", + "2023-06-23 29884.92 31431.94 29800.00 30688.50 73931.89635\n", + "2023-06-24 30688.51 30800.00 30250.00 30527.43 30513.30135" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "\n", - "# Fetch the data\n", - "symbol = 'BTC/USDT'\n", - "timeframe = '1h'\n", - "start_date = '2023-01-01T00:00:00Z'\n", - "end_date = '2023-07-01T00:00:00Z' # 6 months period\n", - "ohlcv = fetch_data_for_period(symbol, timeframe, start_date, end_date)\n", - "df = ohlcv_to_dataframe(ohlcv)\n", - "\n", - "# Save data to CSV\n", - "csv_path = '../data/binance_btc_usdt_6months.csv'\n", - "df.to_csv(csv_path, index=False)\n" + "data = fetch_data(symbol, start_date, end_date)\n", + "data.head()" ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ - "class TestStrategy(bt.Strategy):\n", - " params = (('maperiod', 15),)\n", - "\n", - " def log(self, txt, dt=None):\n", - " dt = dt or self.datas[0].datetime.date(0)\n", - " print('%s, %s' % (dt.isoformat(), txt))\n", - "\n", - " def __init__(self):\n", - " self.dataclose = self.datas[0].close\n", - " self.order = None\n", - " self.buyprice = None\n", - " self.buycomm = None\n", - " self.sma = bt.indicators.SimpleMovingAverage(self.datas[0], period=self.params.maperiod)\n", - " # Additional indicators for plotting\n", - " bt.indicators.ExponentialMovingAverage(self.datas[0], period=25)\n", - " bt.indicators.WeightedMovingAverage(self.datas[0], period=25, subplot=True)\n", - " bt.indicators.StochasticSlow(self.datas[0])\n", - " bt.indicators.MACDHisto(self.datas[0])\n", - " rsi = bt.indicators.RSI(self.datas[0])\n", - " bt.indicators.SmoothedMovingAverage(rsi, period=10)\n", - " bt.indicators.ATR(self.datas[0], plot=False)\n", - "\n", - " def notify_order(self, order):\n", - " if order.status in [order.Submitted, order.Accepted]:\n", - " return\n", - " if order.status in [order.Completed]:\n", - " if order.isbuy():\n", - " self.log('BUY EXECUTED, Price: %.2f, Cost: %.2f, Comm %.2f' %\n", - " (order.executed.price, order.executed.value, order.executed.comm))\n", - " self.buyprice = order.executed.price\n", - " self.buycomm = order.executed.comm\n", - " else:\n", - " self.log('SELL EXECUTED, Price: %.2f, Cost: %.2f, Comm %.2f' %\n", - " (order.executed.price, order.executed.value, order.executed.comm))\n", - " self.bar_executed = len(self)\n", - " elif order.status in [order.Canceled, order.Margin, order.Rejected]:\n", - " self.log('Order Canceled/Margin/Rejected')\n", - " self.order = None\n", - "\n", - " def notify_trade(self, trade):\n", - " if not trade.isclosed:\n", - " return\n", - " self.log('OPERATION PROFIT, GROSS %.2f, NET %.2f' % (trade.pnl, trade.pnlcomm))\n", - "\n", - " def next(self):\n", - " self.log('Close, %.2f' % self.dataclose[0])\n", - " if self.order:\n", - " return\n", - " if not self.position:\n", - " if self.dataclose[0] > self.sma[0]:\n", - " self.log('BUY CREATE, %.2f' % self.dataclose[0])\n", - " self.order = self.buy()\n", - " else:\n", - " if self.dataclose[0] < self.sma[0]:\n", - " self.log('SELL CREATE, %.2f' % self.dataclose[0])\n", - " self.order = self.sell()\n" + "## Run backtest for SimpleMovingAverageStrategy" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ + "Executing query:\n", + "\n", + " SELECT timestamp AS date, open AS open, high AS high, low AS low, close AS close, volume AS volume \n", + " FROM public.\"ohlcv_BTC_USDT\"\n", + " WHERE timestamp >= '2023-06-20' AND timestamp <= '2024-06-20';\n", + " \n", + "\n", + "Fetched data:\n", + " date open high low close volume\n", + "0 2023-06-20 26844.35 28402.74 26652.00 28307.99 69666.95525\n", + "1 2023-06-21 28308.00 30800.00 28257.99 29993.89 108926.40412\n", + "2 2023-06-22 29993.89 30500.00 29525.61 29884.92 59054.56460\n", + "3 2023-06-23 29884.92 31431.94 29800.00 30688.50 73931.89635\n", + "4 2023-06-24 30688.51 30800.00 30250.00 30527.43 30513.30135\n", + "\n", "Starting Portfolio Value: 100000.00\n", - "2023-01-02, Close, 16717.50\n", - "2023-01-02, BUY CREATE, 16717.50\n", - "2023-01-02, BUY EXECUTED, Price: 16717.50, Cost: 83587.50, Comm 0.00\n", - "2023-01-02, Close, 16727.95\n", - "2023-01-02, Close, 16735.11\n", - "2023-01-02, Close, 16721.54\n", - "2023-01-02, Close, 16694.78\n", - "2023-01-02, Close, 16698.69\n", - "2023-01-02, Close, 16734.66\n", - "2023-01-02, Close, 16710.88\n", - "2023-01-02, Close, 16715.42\n", - "2023-01-02, Close, 16723.81\n", - "2023-01-02, Close, 16737.56\n", - "2023-01-02, Close, 16728.52\n", - "2023-01-02, Close, 16757.76\n", - "2023-01-02, Close, 16698.40\n", - "2023-01-02, SELL CREATE, 16698.40\n", - "2023-01-02, SELL EXECUTED, Price: 16698.40, Cost: 83587.50, Comm 0.00\n", - "2023-01-02, OPERATION PROFIT, GROSS -95.50, NET -95.50\n", - "2023-01-02, Close, 16672.87\n", - "2023-01-03, Close, 16695.59\n", - "2023-01-03, Close, 16677.60\n", - "2023-01-03, Close, 16674.03\n", - "2023-01-03, Close, 16691.81\n", - "2023-01-03, Close, 16685.64\n", - "2023-01-03, Close, 16725.50\n", - "2023-01-03, BUY CREATE, 16725.50\n", - "2023-01-03, BUY EXECUTED, Price: 16725.50, Cost: 83627.50, Comm 0.00\n", - "2023-01-03, Close, 16727.58\n", - "2023-01-03, Close, 16729.74\n", - "2023-01-03, Close, 16715.22\n", - "2023-01-03, Close, 16741.31\n", - "2023-01-03, Close, 16724.32\n", - "2023-01-03, Close, 16721.03\n", - "2023-01-03, Close, 16710.85\n", - "2023-01-03, Close, 16725.53\n", - "2023-01-03, Close, 16661.23\n", - "2023-01-03, SELL CREATE, 16661.23\n", - "2023-01-03, SELL EXECUTED, Price: 16662.08, Cost: 83627.50, Comm 0.00\n", - "2023-01-03, OPERATION PROFIT, GROSS -317.10, NET -317.10\n", - "2023-01-03, Close, 16676.94\n", - "2023-01-03, Close, 16622.58\n", - "2023-01-03, Close, 16633.65\n", - "2023-01-03, Close, 16645.08\n", - "2023-01-03, Close, 16643.37\n", - "2023-01-03, Close, 16661.37\n", - "2023-01-03, Close, 16664.63\n", - "2023-01-03, Close, 16677.11\n", - "2023-01-03, Close, 16675.18\n", - "2023-01-04, Close, 16660.53\n", - "2023-01-04, Close, 16701.97\n", - "2023-01-04, BUY CREATE, 16701.97\n", - "2023-01-04, BUY EXECUTED, Price: 16701.63, Cost: 83508.15, Comm 0.00\n", - "2023-01-04, Close, 16736.52\n", - "2023-01-04, Close, 16862.02\n", - "2023-01-04, Close, 16860.50\n", - "2023-01-04, Close, 16857.57\n", - "2023-01-04, Close, 16878.18\n", - "2023-01-04, Close, 16869.44\n", - "2023-01-04, Close, 16864.95\n", - "2023-01-04, Close, 16844.91\n", - "2023-01-04, Close, 16844.92\n", - "2023-01-04, Close, 16835.35\n", - "2023-01-04, Close, 16812.19\n", - "2023-01-04, Close, 16828.20\n", - "2023-01-04, Close, 16830.12\n", - "2023-01-04, Close, 16854.05\n", - "2023-01-04, Close, 16858.85\n", - "2023-01-04, Close, 16893.24\n", - "2023-01-04, Close, 16948.04\n", - "2023-01-04, Close, 16842.36\n", - "2023-01-04, SELL CREATE, 16842.36\n", - "2023-01-04, SELL EXECUTED, Price: 16842.32, Cost: 83508.15, Comm 0.00\n", - "2023-01-04, OPERATION PROFIT, GROSS 703.45, NET 703.45\n", - "2023-01-04, Close, 16806.49\n", - "2023-01-04, Close, 16826.81\n", - "2023-01-04, Close, 16826.68\n", - "2023-01-04, Close, 16850.36\n", - "2023-01-04, BUY CREATE, 16850.36\n", - "2023-01-05, BUY EXECUTED, Price: 16850.36, Cost: 84251.80, Comm 0.00\n", - "2023-01-05, Close, 16828.45\n", - "2023-01-05, SELL CREATE, 16828.45\n", - "2023-01-05, SELL EXECUTED, Price: 16828.09, Cost: 84251.80, Comm 0.00\n", - "2023-01-05, OPERATION PROFIT, GROSS -111.35, NET -111.35\n", - "2023-01-05, Close, 16832.90\n", - "2023-01-05, Close, 16836.80\n", - "2023-01-05, Close, 16827.71\n", - "2023-01-05, Close, 16836.41\n", - "2023-01-05, Close, 16844.12\n", - "2023-01-05, Close, 16817.13\n", - "2023-01-05, Close, 16823.64\n", - "2023-01-05, Close, 16807.53\n", - "2023-01-05, Close, 16807.12\n", - "2023-01-05, Close, 16825.08\n", - "2023-01-05, Close, 16833.60\n", - "2023-01-05, BUY CREATE, 16833.60\n", - "2023-01-05, BUY EXECUTED, Price: 16833.60, Cost: 84168.00, Comm 0.00\n", - "2023-01-05, Close, 16822.13\n", - "2023-01-05, SELL CREATE, 16822.13\n", - "2023-01-05, SELL EXECUTED, Price: 16822.13, Cost: 84168.00, Comm 0.00\n", - "2023-01-05, OPERATION PROFIT, GROSS -57.35, NET -57.35\n", - "2023-01-05, Close, 16780.25\n", - "2023-01-05, Close, 16829.59\n", - "2023-01-05, BUY CREATE, 16829.59\n", - "2023-01-05, BUY EXECUTED, Price: 16830.28, Cost: 84151.40, Comm 0.00\n", - "2023-01-05, Close, 16842.94\n", - "2023-01-05, Close, 16838.28\n", - "2023-01-05, Close, 16814.48\n", - "2023-01-05, SELL CREATE, 16814.48\n", - "2023-01-05, SELL EXECUTED, Price: 16814.18, Cost: 84151.40, Comm 0.00\n", - "2023-01-05, OPERATION PROFIT, GROSS -80.50, NET -80.50\n", - "2023-01-05, Close, 16841.93\n", - "2023-01-05, BUY CREATE, 16841.93\n", - "2023-01-05, BUY EXECUTED, Price: 16841.94, Cost: 84209.70, Comm 0.00\n", - "2023-01-05, Close, 16863.85\n", - "2023-01-05, Close, 16859.02\n", - "2023-01-05, Close, 16848.51\n", - "2023-01-05, Close, 16837.85\n", - "2023-01-05, Close, 16831.85\n", - "2023-01-06, Close, 16859.78\n", - "2023-01-06, Close, 16827.80\n", - "2023-01-06, SELL CREATE, 16827.80\n", - "2023-01-06, SELL EXECUTED, Price: 16827.45, Cost: 84209.70, Comm 0.00\n", - "2023-01-06, OPERATION PROFIT, GROSS -72.45, NET -72.45\n", - "2023-01-06, Close, 16837.06\n", - "2023-01-06, BUY CREATE, 16837.06\n", - "2023-01-06, BUY EXECUTED, Price: 16836.65, Cost: 84183.25, Comm 0.00\n", - "2023-01-06, Close, 16833.56\n", - "2023-01-06, SELL CREATE, 16833.56\n", - "2023-01-06, SELL EXECUTED, Price: 16833.56, Cost: 84183.25, Comm 0.00\n", - "2023-01-06, OPERATION PROFIT, GROSS -15.45, NET -15.45\n", - "2023-01-06, Close, 16822.99\n", - "2023-01-06, Close, 16810.18\n", - "2023-01-06, Close, 16786.86\n", - "2023-01-06, Close, 16794.06\n", - "2023-01-06, Close, 16802.11\n", - "2023-01-06, Close, 16787.10\n", - "2023-01-06, Close, 16767.06\n", - "2023-01-06, Close, 16738.22\n", - "2023-01-06, Close, 16731.02\n", - "2023-01-06, Close, 16774.19\n", - "2023-01-06, Close, 16748.82\n", - "2023-01-06, Close, 16840.82\n", - "2023-01-06, BUY CREATE, 16840.82\n", - "2023-01-06, BUY EXECUTED, Price: 16840.10, Cost: 84200.50, Comm 0.00\n", - "2023-01-06, Close, 16827.21\n", - "2023-01-06, Close, 16821.27\n", - "2023-01-06, Close, 16850.45\n", - "2023-01-06, Close, 16939.91\n", - "2023-01-06, Close, 16897.48\n", - "2023-01-06, Close, 16931.27\n", - "2023-01-06, Close, 16958.35\n", - "2023-01-06, Close, 16950.65\n", - "2023-01-07, Close, 16978.18\n", - "2023-01-07, Close, 16950.02\n", - "2023-01-07, Close, 16944.24\n", - "2023-01-07, Close, 16952.46\n", - "2023-01-07, Close, 16938.27\n", - "2023-01-07, Close, 16934.28\n", - "2023-01-07, Close, 16933.29\n", - "2023-01-07, Close, 16948.09\n", - "2023-01-07, Close, 16929.76\n", - "2023-01-07, SELL CREATE, 16929.76\n", - "2023-01-07, SELL EXECUTED, Price: 16929.58, Cost: 84200.50, Comm 0.00\n", - "2023-01-07, OPERATION PROFIT, GROSS 447.40, NET 447.40\n", - "2023-01-07, Close, 16928.51\n", - "2023-01-07, Close, 16922.51\n", - "2023-01-07, Close, 16918.30\n", - "2023-01-07, Close, 16916.14\n", - "2023-01-07, Close, 16919.34\n", - "2023-01-07, Close, 16937.92\n", - "2023-01-07, BUY CREATE, 16937.92\n", - "2023-01-07, BUY EXECUTED, Price: 16937.63, Cost: 84688.15, Comm 0.00\n", - "2023-01-07, Close, 16940.42\n", - "2023-01-07, Close, 16922.79\n", - "2023-01-07, SELL CREATE, 16922.79\n", - "2023-01-07, SELL EXECUTED, Price: 16922.79, Cost: 84688.15, Comm 0.00\n", - "2023-01-07, OPERATION PROFIT, GROSS -74.20, NET -74.20\n", - "2023-01-07, Close, 16928.85\n", - "2023-01-07, Close, 16938.12\n", - "2023-01-07, BUY CREATE, 16938.12\n", - "2023-01-07, BUY EXECUTED, Price: 16938.12, Cost: 84690.60, Comm 0.00\n", - "2023-01-07, Close, 16944.05\n", - "2023-01-07, Close, 16945.77\n", - "2023-01-07, Close, 16939.31\n", - "2023-01-07, Close, 16936.31\n", - "2023-01-07, Close, 16943.57\n", - "2023-01-08, Close, 16926.66\n", - "2023-01-08, SELL CREATE, 16926.66\n", - "2023-01-08, SELL EXECUTED, Price: 16926.66, Cost: 84690.60, Comm 0.00\n", - "2023-01-08, OPERATION PROFIT, GROSS -57.30, NET -57.30\n", - "2023-01-08, Close, 16929.82\n", - "2023-01-08, Close, 16931.18\n", - "2023-01-08, Close, 16944.02\n", - "2023-01-08, BUY CREATE, 16944.02\n", - "2023-01-08, BUY EXECUTED, Price: 16944.02, Cost: 84720.10, Comm 0.00\n", - "2023-01-08, Close, 16934.75\n", - "2023-01-08, SELL CREATE, 16934.75\n", - "2023-01-08, SELL EXECUTED, Price: 16934.95, Cost: 84720.10, Comm 0.00\n", - "2023-01-08, OPERATION PROFIT, GROSS -45.35, NET -45.35\n", - "2023-01-08, Close, 16943.73\n", - "2023-01-08, BUY CREATE, 16943.73\n", - "2023-01-08, BUY EXECUTED, Price: 16943.73, Cost: 84718.65, Comm 0.00\n", - "2023-01-08, Close, 16950.92\n", - "2023-01-08, Close, 16953.77\n", - "2023-01-08, Close, 16946.07\n", - "2023-01-08, Close, 16935.60\n", - "2023-01-08, SELL CREATE, 16935.60\n", - "2023-01-08, SELL EXECUTED, Price: 16935.60, Cost: 84718.65, Comm 0.00\n", - "2023-01-08, OPERATION PROFIT, GROSS -40.65, NET -40.65\n", - "2023-01-08, Close, 16936.41\n", - "2023-01-08, Close, 16927.42\n", - "2023-01-08, Close, 16923.75\n", - "2023-01-08, Close, 16933.03\n", - "2023-01-08, Close, 16952.44\n", - "2023-01-08, BUY CREATE, 16952.44\n", - "2023-01-08, BUY EXECUTED, Price: 16952.44, Cost: 84762.20, Comm 0.00\n", - "2023-01-08, Close, 17000.43\n", - "2023-01-08, Close, 16936.87\n", - "2023-01-08, SELL CREATE, 16936.87\n", - "2023-01-08, SELL EXECUTED, Price: 16936.87, Cost: 84762.20, Comm 0.00\n", - "2023-01-08, OPERATION PROFIT, GROSS -77.85, NET -77.85\n", - "2023-01-08, Close, 16928.50\n", - "2023-01-08, Close, 16929.84\n", - "2023-01-08, Close, 16927.25\n", - "2023-01-08, Close, 16966.67\n", - "2023-01-08, BUY CREATE, 16966.67\n", - "2023-01-08, BUY EXECUTED, Price: 16966.95, Cost: 84834.75, Comm 0.00\n", - "2023-01-08, Close, 16957.46\n", - "2023-01-08, Close, 16963.14\n", - "2023-01-08, Close, 17127.83\n", - "2023-01-09, Close, 17184.51\n", - "2023-01-09, Close, 17175.02\n", - "2023-01-09, Close, 17191.47\n", - "2023-01-09, Close, 17197.00\n", - "2023-01-09, Close, 17226.49\n", - "2023-01-09, Close, 17205.95\n", - "2023-01-09, Close, 17189.24\n", - "2023-01-09, Close, 17198.48\n", - "2023-01-09, Close, 17191.68\n", - "2023-01-09, Close, 17238.38\n", - "2023-01-09, Close, 17264.50\n", - "2023-01-09, Close, 17238.93\n", - "2023-01-09, Close, 17249.06\n", - "2023-01-09, Close, 17226.90\n", - "2023-01-09, Close, 17264.25\n", - "2023-01-09, Close, 17268.49\n", - "2023-01-09, Close, 17327.84\n", - "2023-01-09, Close, 17356.96\n", - "2023-01-09, Close, 17350.71\n", - "2023-01-09, Close, 17293.69\n", - "2023-01-09, Close, 17221.29\n", - "2023-01-09, SELL CREATE, 17221.29\n", - "2023-01-09, SELL EXECUTED, Price: 17221.29, Cost: 84834.75, Comm 0.00\n", - "2023-01-09, OPERATION PROFIT, GROSS 1271.70, NET 1271.70\n", - "2023-01-09, Close, 17182.48\n", - "2023-01-09, Close, 17204.83\n", - "2023-01-09, Close, 17178.26\n", - "2023-01-10, Close, 17219.19\n", - "2023-01-10, Close, 17194.39\n", - "2023-01-10, Close, 17185.94\n", - "2023-01-10, Close, 17205.72\n", - "2023-01-10, Close, 17221.68\n", - "2023-01-10, Close, 17228.77\n", - "2023-01-10, Close, 17203.95\n", - "2023-01-10, Close, 17203.20\n", - "2023-01-10, Close, 17256.34\n", - "2023-01-10, BUY CREATE, 17256.34\n", - "2023-01-10, BUY EXECUTED, Price: 17256.34, Cost: 86281.70, Comm 0.00\n", - "2023-01-10, Close, 17247.71\n", - "2023-01-10, Close, 17271.02\n", - "2023-01-10, Close, 17252.89\n", - "2023-01-10, Close, 17224.15\n", - "2023-01-10, Close, 17246.05\n", - "2023-01-10, Close, 17286.59\n", - "2023-01-10, Close, 17327.70\n", - "2023-01-10, Close, 17302.15\n", - "2023-01-10, Close, 17325.97\n", - "2023-01-10, Close, 17433.95\n", - "2023-01-10, Close, 17432.85\n", - "2023-01-10, Close, 17477.15\n", - "2023-01-10, Close, 17463.56\n", - "2023-01-10, Close, 17428.08\n", - "2023-01-10, Close, 17440.66\n", - "2023-01-11, Close, 17466.02\n", - "2023-01-11, Close, 17458.05\n", - "2023-01-11, Close, 17388.20\n", - "2023-01-11, Close, 17416.14\n", - "2023-01-11, Close, 17408.39\n", - "2023-01-11, Close, 17406.30\n", - "2023-01-11, SELL CREATE, 17406.30\n", - "2023-01-11, SELL EXECUTED, Price: 17406.16, Cost: 86281.70, Comm 0.00\n", - "2023-01-11, OPERATION PROFIT, GROSS 749.10, NET 749.10\n", - "2023-01-11, Close, 17437.29\n", - "2023-01-11, BUY CREATE, 17437.29\n", - "2023-01-11, BUY EXECUTED, Price: 17436.89, Cost: 87184.45, Comm 0.00\n", - "2023-01-11, Close, 17446.65\n", - "2023-01-11, Close, 17447.60\n", - "2023-01-11, Close, 17446.71\n", - "2023-01-11, Close, 17441.24\n", - "2023-01-11, Close, 17437.75\n", - "2023-01-11, Close, 17418.56\n", - "2023-01-11, SELL CREATE, 17418.56\n", - "2023-01-11, SELL EXECUTED, Price: 17418.56, Cost: 87184.45, Comm 0.00\n", - "2023-01-11, OPERATION PROFIT, GROSS -91.65, NET -91.65\n", - "2023-01-11, Close, 17413.43\n", - "2023-01-11, Close, 17413.97\n", - "2023-01-11, Close, 17332.43\n", - "2023-01-11, Close, 17347.62\n", - "2023-01-11, Close, 17382.08\n", - "2023-01-11, Close, 17487.09\n", - "2023-01-11, BUY CREATE, 17487.09\n", - "2023-01-11, BUY EXECUTED, Price: 17486.44, Cost: 87432.20, Comm 0.00\n", - "2023-01-11, Close, 17550.29\n", - "2023-01-11, Close, 17550.57\n", - "2023-01-11, Close, 17558.60\n", - "2023-01-11, Close, 17556.41\n", - "2023-01-11, Close, 17943.26\n", - "2023-01-12, Close, 18264.10\n", - "2023-01-12, Close, 18221.51\n", - "2023-01-12, Close, 18207.54\n", - "2023-01-12, Close, 18224.68\n", - "2023-01-12, Close, 18215.66\n", - "2023-01-12, Close, 18087.54\n", - "2023-01-12, Close, 18147.77\n", - "2023-01-12, Close, 18138.22\n", - "2023-01-12, Close, 18151.52\n", - "2023-01-12, Close, 18164.67\n", - "2023-01-12, Close, 18185.60\n", - "2023-01-12, Close, 18200.80\n", - "2023-01-12, Close, 18268.94\n", - "2023-01-12, Close, 18284.91\n", - "2023-01-12, Close, 17998.56\n", - "2023-01-12, SELL CREATE, 17998.56\n", - "2023-01-12, SELL EXECUTED, Price: 17997.63, Cost: 87432.20, Comm 0.00\n", - "2023-01-12, OPERATION PROFIT, GROSS 2555.95, NET 2555.95\n", - "2023-01-12, Close, 18086.62\n", - "2023-01-12, Close, 18134.55\n", - "2023-01-12, Close, 18837.06\n", - "2023-01-12, BUY CREATE, 18837.06\n", - "2023-01-12, BUY EXECUTED, Price: 18837.06, Cost: 94185.30, Comm 0.00\n", - "2023-01-12, Close, 18796.93\n", - "2023-01-12, Close, 18885.35\n", - "2023-01-12, Close, 19048.95\n", - "2023-01-12, Close, 18830.07\n", - "2023-01-12, Close, 18913.92\n", - "2023-01-12, Close, 18846.62\n", - "2023-01-13, Close, 18771.61\n", - "2023-01-13, Close, 18811.48\n", - "2023-01-13, Close, 18835.48\n", - "2023-01-13, Close, 18876.37\n", - "2023-01-13, Close, 18821.27\n", - "2023-01-13, Close, 18787.71\n", - "2023-01-13, Close, 18852.68\n", - "2023-01-13, Close, 18824.25\n", - "2023-01-13, SELL CREATE, 18824.25\n", - "2023-01-13, SELL EXECUTED, Price: 18825.00, Cost: 94185.30, Comm 0.00\n", - "2023-01-13, OPERATION PROFIT, GROSS -60.30, NET -60.30\n", - "2023-01-13, Close, 18842.15\n", - "2023-01-13, Close, 18910.23\n", - "2023-01-13, BUY CREATE, 18910.23\n", - "2023-01-13, BUY EXECUTED, Price: 18910.80, Cost: 94554.00, Comm 0.00\n", - "2023-01-13, Close, 19042.01\n", - "2023-01-13, Close, 18920.95\n", - "2023-01-13, Close, 18864.59\n", - "2023-01-13, Close, 18854.84\n", - "2023-01-13, SELL CREATE, 18854.84\n", - "2023-01-13, SELL EXECUTED, Price: 18854.84, Cost: 94554.00, Comm 0.00\n", - "2023-01-13, OPERATION PROFIT, GROSS -279.80, NET -279.80\n", - "2023-01-13, Close, 18996.27\n", - "2023-01-13, BUY CREATE, 18996.27\n", - "2023-01-13, BUY EXECUTED, Price: 18996.27, Cost: 94981.35, Comm 0.00\n", - "2023-01-13, Close, 19261.19\n", - "2023-01-13, Close, 19133.39\n", - "2023-01-13, Close, 19256.06\n", - "2023-01-13, Close, 19292.44\n", - "2023-01-13, Close, 19362.01\n", - "2023-01-13, Close, 19473.67\n", - "2023-01-13, Close, 19816.81\n", - "2023-01-13, Close, 19849.41\n", - "2023-01-13, Close, 19930.01\n", - "2023-01-14, Close, 20891.67\n", - "2023-01-14, Close, 20927.44\n", - "2023-01-14, Close, 20938.93\n", - "2023-01-14, Close, 20967.23\n", - "2023-01-14, Close, 20894.86\n", - "2023-01-14, Close, 20841.62\n", - "2023-01-14, Close, 20955.57\n", - "2023-01-14, Close, 20897.36\n", - "2023-01-14, Close, 21003.35\n", - "2023-01-14, Close, 20523.75\n", - "2023-01-14, Close, 20496.77\n", - "2023-01-14, SELL CREATE, 20496.77\n", - "2023-01-14, SELL EXECUTED, Price: 20496.77, Cost: 94981.35, Comm 0.00\n", - "2023-01-14, OPERATION PROFIT, GROSS 7502.50, NET 7502.50\n", - "2023-01-14, Close, 20721.73\n", - "2023-01-14, BUY CREATE, 20721.73\n", - "2023-01-14, BUY EXECUTED, Price: 20721.03, Cost: 103605.15, Comm 0.00\n", - "2023-01-14, Close, 20911.19\n", - "2023-01-14, Close, 20940.71\n", - "2023-01-14, Close, 20834.40\n", - "2023-01-14, SELL CREATE, 20834.40\n", - "2023-01-14, SELL EXECUTED, Price: 20832.60, Cost: 103605.15, Comm 0.00\n", - "2023-01-14, OPERATION PROFIT, GROSS 557.85, NET 557.85\n", - "2023-01-14, Close, 20786.74\n", - "2023-01-14, Close, 20810.66\n", - "2023-01-14, Close, 20755.78\n", - "2023-01-14, Close, 20757.99\n", - "2023-01-14, Close, 20783.68\n", - "2023-01-14, Close, 20877.47\n", - "2023-01-14, BUY CREATE, 20877.47\n", - "2023-01-14, BUY EXECUTED, Price: 20876.31, Cost: 104381.55, Comm 0.00\n", - "2023-01-14, Close, 20900.66\n", - "2023-01-14, Close, 20989.97\n", - "2023-01-14, Close, 20954.92\n", - "2023-01-15, Close, 20767.05\n", - "2023-01-15, SELL CREATE, 20767.05\n", - "2023-01-15, SELL EXECUTED, Price: 20766.57, Cost: 104381.55, Comm 0.00\n", - "2023-01-15, OPERATION PROFIT, GROSS -548.70, NET -548.70\n", - "2023-01-15, Close, 20770.29\n", - "2023-01-15, Close, 20672.91\n", - "2023-01-15, Close, 20719.09\n", - "2023-01-15, Close, 20698.14\n", - "2023-01-15, Close, 20749.76\n", - "2023-01-15, Close, 20717.00\n", - "2023-01-15, Close, 20735.69\n", - "2023-01-15, Close, 20617.71\n", - "2023-01-15, Close, 20750.59\n", - "2023-01-15, Close, 20732.83\n", - "2023-01-15, Close, 20722.23\n", - "2023-01-15, Close, 20694.03\n", - "2023-01-15, Close, 20705.79\n", - "2023-01-15, Close, 20787.58\n", - "2023-01-15, BUY CREATE, 20787.58\n", - "2023-01-15, BUY EXECUTED, Price: 20787.87, Cost: 103939.35, Comm 0.00\n", - "2023-01-15, Close, 20908.28\n", - "2023-01-15, Close, 20869.20\n", - "2023-01-15, Close, 20920.23\n", - "2023-01-15, Close, 20817.94\n", - "2023-01-15, Close, 20870.15\n", - "2023-01-15, Close, 20905.69\n", - "2023-01-15, Close, 20900.62\n", - "2023-01-15, Close, 20911.27\n", - "2023-01-15, Close, 20871.50\n", - "2023-01-16, Close, 20966.58\n", - "2023-01-16, Close, 21182.87\n", - "2023-01-16, Close, 21209.31\n", - "2023-01-16, Close, 21075.68\n", - "2023-01-16, Close, 21148.99\n", - "2023-01-16, Close, 21187.16\n", - "2023-01-16, Close, 21149.80\n", - "2023-01-16, Close, 21109.23\n", - "2023-01-16, Close, 20747.70\n", - "2023-01-16, SELL CREATE, 20747.70\n", - "2023-01-16, SELL EXECUTED, Price: 20746.75, Cost: 103939.35, Comm 0.00\n", - "2023-01-16, OPERATION PROFIT, GROSS -205.60, NET -205.60\n", - "2023-01-16, Close, 20824.08\n", - "2023-01-16, Close, 20850.68\n", - "2023-01-16, Close, 20817.56\n", - "2023-01-16, Close, 20787.54\n", - "2023-01-16, Close, 20827.47\n", - "2023-01-16, Close, 20860.68\n", - "2023-01-16, Close, 20994.17\n", - "2023-01-16, BUY CREATE, 20994.17\n", - "2023-01-16, BUY EXECUTED, Price: 20995.37, Cost: 104976.85, Comm 0.00\n", - "2023-01-16, Close, 20998.50\n", - "2023-01-16, Close, 21103.99\n", - "2023-01-16, Close, 21281.97\n", - "2023-01-16, Close, 21308.57\n", - "2023-01-16, Close, 21292.00\n", - "2023-01-16, Close, 21132.36\n", - "2023-01-16, Close, 21185.89\n", - "2023-01-16, Close, 21185.65\n", - "2023-01-17, Close, 21109.52\n", - "2023-01-17, Close, 21041.30\n", - "2023-01-17, SELL CREATE, 21041.30\n", - "2023-01-17, SELL EXECUTED, Price: 21039.96, Cost: 104976.85, Comm 0.00\n", - "2023-01-17, OPERATION PROFIT, GROSS 222.95, NET 222.95\n", - "2023-01-17, Close, 21102.13\n", - "2023-01-17, BUY CREATE, 21102.13\n", - "2023-01-17, BUY EXECUTED, Price: 21102.13, Cost: 105510.65, Comm 0.00\n", - "2023-01-17, Close, 21124.57\n", - "2023-01-17, Close, 21159.29\n", - "2023-01-17, Close, 21151.21\n", - "2023-01-17, Close, 21075.27\n", - "2023-01-17, SELL CREATE, 21075.27\n", - "2023-01-17, SELL EXECUTED, Price: 21076.50, Cost: 105510.65, Comm 0.00\n", - "2023-01-17, OPERATION PROFIT, GROSS -128.15, NET -128.15\n", - "2023-01-17, Close, 21133.65\n", - "2023-01-17, Close, 21200.95\n", - "2023-01-17, BUY CREATE, 21200.95\n", - "2023-01-17, BUY EXECUTED, Price: 21199.51, Cost: 105997.55, Comm 0.00\n", - "2023-01-17, Close, 21174.92\n", - "2023-01-17, Close, 21129.69\n", - "2023-01-17, SELL CREATE, 21129.69\n", - "2023-01-17, SELL EXECUTED, Price: 21130.43, Cost: 105997.55, Comm 0.00\n", - "2023-01-17, OPERATION PROFIT, GROSS -345.40, NET -345.40\n", - "2023-01-17, Close, 21219.75\n", - "2023-01-17, BUY CREATE, 21219.75\n", - "2023-01-17, BUY EXECUTED, Price: 21219.21, Cost: 106096.05, Comm 0.00\n", - "2023-01-17, Close, 21252.23\n", - "2023-01-17, Close, 21235.07\n", - "2023-01-17, Close, 21281.66\n", - "2023-01-17, Close, 21176.06\n", - "2023-01-17, Close, 21162.92\n", - "2023-01-17, SELL CREATE, 21162.92\n", - "2023-01-17, SELL EXECUTED, Price: 21161.92, Cost: 106096.05, Comm 0.00\n", - "2023-01-17, OPERATION PROFIT, GROSS -286.45, NET -286.45\n", - "2023-01-17, Close, 21220.78\n", - "2023-01-17, BUY CREATE, 21220.78\n", - "2023-01-17, BUY EXECUTED, Price: 21222.39, Cost: 106111.95, Comm 0.00\n", - "2023-01-17, Close, 21362.89\n", - "2023-01-17, Close, 21336.46\n", - "2023-01-17, Close, 21390.44\n", - "2023-01-17, Close, 21312.63\n", - "2023-01-17, Close, 21232.38\n", - "2023-01-17, SELL CREATE, 21232.38\n", - "2023-01-17, SELL EXECUTED, Price: 21232.38, Cost: 106111.95, Comm 0.00\n", - "2023-01-17, OPERATION PROFIT, GROSS 49.95, NET 49.95\n", - "2023-01-17, Close, 21134.81\n", - "2023-01-18, Close, 21202.97\n", - "2023-01-18, Close, 21243.96\n", - "2023-01-18, Close, 21292.56\n", - "2023-01-18, BUY CREATE, 21292.56\n", - "2023-01-18, BUY EXECUTED, Price: 21293.76, Cost: 106468.80, Comm 0.00\n", - "2023-01-18, Close, 21258.54\n", - "2023-01-18, Close, 21279.61\n", - "2023-01-18, Close, 21311.33\n", - "2023-01-18, Close, 21261.76\n", - "2023-01-18, SELL CREATE, 21261.76\n", - "2023-01-18, SELL EXECUTED, Price: 21261.03, Cost: 106468.80, Comm 0.00\n", - "2023-01-18, OPERATION PROFIT, GROSS -163.65, NET -163.65\n", - "2023-01-18, Close, 21307.94\n", - "2023-01-18, BUY CREATE, 21307.94\n", - "2023-01-18, BUY EXECUTED, Price: 21307.94, Cost: 106539.70, Comm 0.00\n", - "2023-01-18, Close, 21249.31\n", - "2023-01-18, SELL CREATE, 21249.31\n", - "2023-01-18, SELL EXECUTED, Price: 21249.31, Cost: 106539.70, Comm 0.00\n", - "2023-01-18, OPERATION PROFIT, GROSS -293.15, NET -293.15\n", - "2023-01-18, Close, 21230.09\n", - "2023-01-18, Close, 21183.83\n", - "2023-01-18, Close, 21204.67\n", - "2023-01-18, Close, 21259.18\n", - "2023-01-18, BUY CREATE, 21259.18\n", - "2023-01-18, BUY EXECUTED, Price: 21260.13, Cost: 106300.65, Comm 0.00\n", - "2023-01-18, Close, 21403.31\n", - "2023-01-18, Close, 21424.30\n", - "2023-01-18, Close, 21042.73\n", - "2023-01-18, SELL CREATE, 21042.73\n", - "2023-01-18, SELL EXECUTED, Price: 21042.73, Cost: 106300.65, Comm 0.00\n", - "2023-01-18, OPERATION PROFIT, GROSS -1087.00, NET -1087.00\n", - "2023-01-18, Close, 20845.47\n", - "2023-01-18, Close, 20887.85\n", - "2023-01-18, Close, 20936.83\n", - "2023-01-18, Close, 20906.54\n", - "2023-01-18, Close, 20732.60\n", - "2023-01-18, Close, 20780.36\n", - "2023-01-18, Close, 20805.80\n", - "2023-01-18, Close, 20677.47\n", - "2023-01-19, Close, 20694.01\n", - "2023-01-19, Close, 20716.95\n", - "2023-01-19, Close, 20763.66\n", - "2023-01-19, Close, 20748.04\n", - "2023-01-19, Close, 20810.18\n", - "2023-01-19, Close, 20814.82\n", - "2023-01-19, BUY CREATE, 20814.82\n", - "2023-01-19, BUY EXECUTED, Price: 20814.82, Cost: 104074.10, Comm 0.00\n", - "2023-01-19, Close, 20828.59\n", - "2023-01-19, Close, 20818.95\n", - "2023-01-19, Close, 20769.06\n", - "2023-01-19, SELL CREATE, 20769.06\n", - "2023-01-19, SELL EXECUTED, Price: 20769.06, Cost: 104074.10, Comm 0.00\n", - "2023-01-19, OPERATION PROFIT, GROSS -228.80, NET -228.80\n", - "2023-01-19, Close, 20795.39\n", - "2023-01-19, BUY CREATE, 20795.39\n", - "2023-01-19, BUY EXECUTED, Price: 20794.73, Cost: 103973.65, Comm 0.00\n", - "2023-01-19, Close, 20796.47\n", - "2023-01-19, Close, 20743.72\n", - "2023-01-19, SELL CREATE, 20743.72\n", - "2023-01-19, SELL EXECUTED, Price: 20744.17, Cost: 103973.65, Comm 0.00\n", - "2023-01-19, OPERATION PROFIT, GROSS -252.80, NET -252.80\n", - "2023-01-19, Close, 20727.03\n", - "2023-01-19, Close, 20776.95\n", - "2023-01-19, BUY CREATE, 20776.95\n", - "2023-01-19, BUY EXECUTED, Price: 20776.06, Cost: 103880.30, Comm 0.00\n", - "2023-01-19, Close, 20799.40\n", - "2023-01-19, Close, 20876.44\n", - "2023-01-19, Close, 20875.41\n", - "2023-01-19, Close, 20841.16\n", - "2023-01-19, Close, 20977.73\n", - "2023-01-19, Close, 21090.95\n", - "2023-01-19, Close, 21102.44\n", - "2023-01-19, Close, 20932.98\n", - "2023-01-19, Close, 21065.23\n", - "2023-01-19, Close, 21071.59\n", - "2023-01-20, Close, 21054.74\n", - "2023-01-20, Close, 21117.28\n", - "2023-01-20, Close, 21079.66\n", - "2023-01-20, Close, 21087.74\n", - "2023-01-20, Close, 20991.01\n", - "2023-01-20, SELL CREATE, 20991.01\n", - "2023-01-20, SELL EXECUTED, Price: 20991.01, Cost: 103880.30, Comm 0.00\n", - "2023-01-20, OPERATION PROFIT, GROSS 1074.75, NET 1074.75\n", - "2023-01-20, Close, 20982.27\n", - "2023-01-20, Close, 20943.73\n", - "2023-01-20, Close, 20959.44\n", - "2023-01-20, Close, 20946.15\n", - "2023-01-20, Close, 20959.17\n", - "2023-01-20, Close, 20962.16\n", - "2023-01-20, Close, 20963.51\n", - "2023-01-20, Close, 21089.54\n", - "2023-01-20, BUY CREATE, 21089.54\n", - "2023-01-20, BUY EXECUTED, Price: 21088.82, Cost: 105444.10, Comm 0.00\n", - "2023-01-20, Close, 21058.68\n", - "2023-01-20, Close, 21153.97\n", - "2023-01-20, Close, 21144.77\n", - "2023-01-20, Close, 21313.29\n", - "2023-01-20, Close, 21353.61\n", - "2023-01-20, Close, 21384.49\n", - "2023-01-20, Close, 21496.67\n", - "2023-01-20, Close, 22288.37\n", - "2023-01-20, Close, 22315.41\n", - "2023-01-20, Close, 22595.08\n", - "2023-01-20, Close, 22667.21\n", - "2023-01-21, Close, 22576.17\n", - "2023-01-21, Close, 22563.99\n", - "2023-01-21, Close, 22551.05\n", - "2023-01-21, Close, 22547.35\n", - "2023-01-21, Close, 22597.96\n", - "2023-01-21, Close, 22573.98\n", - "2023-01-21, Close, 22620.93\n", - "2023-01-21, Close, 22638.36\n", - "2023-01-21, Close, 22700.63\n", - "2023-01-21, Close, 23037.49\n", - "2023-01-21, Close, 22777.52\n", - "2023-01-21, Close, 22905.65\n", - "2023-01-21, Close, 23039.50\n", - "2023-01-21, Close, 22930.04\n", - "2023-01-21, Close, 22955.26\n", - "2023-01-21, Close, 22998.90\n", - "2023-01-21, Close, 23197.45\n", - "2023-01-21, Close, 23226.65\n", - "2023-01-21, Close, 23248.52\n", - "2023-01-21, Close, 23270.50\n", - "2023-01-21, Close, 23093.38\n", - "2023-01-21, Close, 23204.64\n", - "2023-01-21, Close, 22759.71\n", - "2023-01-21, SELL CREATE, 22759.71\n", - "2023-01-21, SELL EXECUTED, Price: 22757.14, Cost: 105444.10, Comm 0.00\n", - "2023-01-21, OPERATION PROFIT, GROSS 8341.60, NET 8341.60\n", - "2023-01-21, Close, 22783.55\n", - "2023-01-22, Close, 22877.48\n", - "2023-01-22, Close, 22792.13\n", - "2023-01-22, Close, 22707.64\n", - "2023-01-22, Close, 22758.30\n", - "2023-01-22, Close, 22847.79\n", - "2023-01-22, Close, 22878.37\n", - "2023-01-22, Close, 22919.67\n", - "2023-01-22, Close, 22895.20\n", - "2023-01-22, Close, 22909.76\n", - "2023-01-22, Close, 22856.68\n", - "2023-01-22, Close, 22872.97\n", - "2023-01-22, Close, 22783.61\n", - "2023-01-22, Close, 22869.56\n", - "2023-01-22, BUY CREATE, 22869.56\n", - "2023-01-22, BUY EXECUTED, Price: 22869.56, Cost: 114347.80, Comm 0.00\n", - "2023-01-22, Close, 22897.79\n", - "2023-01-22, Close, 22990.41\n", - "2023-01-22, Close, 22794.51\n", - "2023-01-22, SELL CREATE, 22794.51\n", - "2023-01-22, SELL EXECUTED, Price: 22794.63, Cost: 114347.80, Comm 0.00\n", - "2023-01-22, OPERATION PROFIT, GROSS -374.65, NET -374.65\n", - "2023-01-22, Close, 22819.28\n", - "2023-01-22, Close, 22922.34\n", - "2023-01-22, BUY CREATE, 22922.34\n", - "2023-01-22, BUY EXECUTED, Price: 22922.34, Cost: 114611.70, Comm 0.00\n", - "2023-01-22, Close, 22838.00\n", - "2023-01-22, SELL CREATE, 22838.00\n", - "2023-01-22, SELL EXECUTED, Price: 22838.00, Cost: 114611.70, Comm 0.00\n", - "2023-01-22, OPERATION PROFIT, GROSS -421.70, NET -421.70\n", - "2023-01-22, Close, 22722.15\n", - "2023-01-22, Close, 22459.46\n", - "2023-01-22, Close, 22585.37\n", - "2023-01-22, Close, 22676.48\n", - "2023-01-22, Close, 22707.88\n", - "2023-01-23, Close, 22745.28\n", - "2023-01-23, Close, 22699.37\n", - "2023-01-23, Close, 22752.05\n", - "2023-01-23, Close, 22661.02\n", - "2023-01-23, Close, 22758.32\n", - "2023-01-23, BUY CREATE, 22758.32\n", - "2023-01-23, BUY EXECUTED, Price: 22758.32, Cost: 113791.60, Comm 0.00\n", - "2023-01-23, Close, 22723.63\n", - "2023-01-23, SELL CREATE, 22723.63\n", - "2023-01-23, SELL EXECUTED, Price: 22724.48, Cost: 113791.60, Comm 0.00\n", - "2023-01-23, OPERATION PROFIT, GROSS -169.20, NET -169.20\n", - "2023-01-23, Close, 22773.33\n", - "2023-01-23, BUY CREATE, 22773.33\n", - "2023-01-23, BUY EXECUTED, Price: 22773.92, Cost: 113869.60, Comm 0.00\n", - "2023-01-23, Close, 22695.90\n", - "2023-01-23, SELL CREATE, 22695.90\n", - "2023-01-23, SELL EXECUTED, Price: 22696.61, Cost: 113869.60, Comm 0.00\n", - "2023-01-23, OPERATION PROFIT, GROSS -386.55, NET -386.55\n", - "2023-01-23, Close, 22719.28\n", - "2023-01-23, BUY CREATE, 22719.28\n", - "2023-01-23, BUY EXECUTED, Price: 22719.28, Cost: 113596.40, Comm 0.00\n", - "2023-01-23, Close, 22784.18\n", - "2023-01-23, Close, 22909.95\n", - "2023-01-23, Close, 22904.58\n", - "2023-01-23, Close, 22910.74\n", - "2023-01-23, Close, 22798.41\n", - "2023-01-23, Close, 22622.05\n", - "2023-01-23, SELL CREATE, 22622.05\n", - "2023-01-23, SELL EXECUTED, Price: 22627.71, Cost: 113596.40, Comm 0.00\n", - "2023-01-23, OPERATION PROFIT, GROSS -457.85, NET -457.85\n", - "2023-01-23, Close, 22853.14\n", - "2023-01-23, BUY CREATE, 22853.14\n", - "2023-01-23, BUY EXECUTED, Price: 22855.44, Cost: 114277.20, Comm 0.00\n", - "2023-01-23, Close, 22911.17\n", - "2023-01-23, Close, 23065.22\n", - "2023-01-23, Close, 22936.20\n", - "2023-01-23, Close, 22792.47\n", - "2023-01-23, SELL CREATE, 22792.47\n", - "2023-01-23, SELL EXECUTED, Price: 22792.47, Cost: 114277.20, Comm 0.00\n", - "2023-01-23, OPERATION PROFIT, GROSS -314.85, NET -314.85\n", - "2023-01-23, Close, 23022.64\n", - "2023-01-23, BUY CREATE, 23022.64\n", - "2023-01-23, BUY EXECUTED, Price: 23020.53, Cost: 115102.65, Comm 0.00\n", - "2023-01-23, Close, 22996.00\n", - "2023-01-23, Close, 22925.32\n", - "2023-01-23, Close, 22916.45\n", - "2023-01-24, Close, 22986.44\n", - "2023-01-24, Close, 23089.46\n", - "2023-01-24, Close, 23036.68\n", - "2023-01-24, Close, 23079.27\n", - "2023-01-24, Close, 23072.15\n", - "2023-01-24, Close, 23118.17\n", - "2023-01-24, Close, 23095.63\n", - "2023-01-24, Close, 23054.08\n", - "2023-01-24, Close, 23053.12\n", - "2023-01-24, Close, 22852.79\n", - "2023-01-24, SELL CREATE, 22852.79\n", - "2023-01-24, SELL EXECUTED, Price: 22852.21, Cost: 115102.65, Comm 0.00\n", - "2023-01-24, OPERATION PROFIT, GROSS -841.60, NET -841.60\n", - "2023-01-24, Close, 22902.51\n", - "2023-01-24, Close, 22917.66\n", - "2023-01-24, Close, 22964.13\n", - "2023-01-24, Close, 22859.93\n", - "2023-01-24, Close, 22859.10\n", - "2023-01-24, Close, 22931.36\n", - "2023-01-24, Close, 22875.18\n", - "2023-01-24, Close, 22913.49\n", - "2023-01-24, Close, 22999.85\n", - "2023-01-24, BUY CREATE, 22999.85\n", - "2023-01-24, BUY EXECUTED, Price: 23000.00, Cost: 115000.00, Comm 0.00\n", - "2023-01-24, Close, 23018.53\n", - "2023-01-24, Close, 23010.34\n", - "2023-01-24, Close, 22902.84\n", - "2023-01-24, SELL CREATE, 22902.84\n", - "2023-01-24, SELL EXECUTED, Price: 22902.84, Cost: 115000.00, Comm 0.00\n", - "2023-01-24, OPERATION PROFIT, GROSS -485.80, NET -485.80\n", - "2023-01-24, Close, 22755.52\n", - "2023-01-24, Close, 22632.89\n", - "2023-01-25, Close, 22652.23\n", - "2023-01-25, Close, 22490.64\n", - "2023-01-25, Close, 22549.89\n", - "2023-01-25, Close, 22643.61\n", - "2023-01-25, Close, 22624.83\n", - "2023-01-25, Close, 22670.72\n", - "2023-01-25, Close, 22713.76\n", - "2023-01-25, Close, 22712.45\n", - "2023-01-25, Close, 22659.72\n", - "2023-01-25, Close, 22607.26\n", - "2023-01-25, Close, 22611.90\n", - "2023-01-25, Close, 22598.47\n", - "2023-01-25, Close, 22694.23\n", - "2023-01-25, BUY CREATE, 22694.23\n", - "2023-01-25, BUY EXECUTED, Price: 22694.22, Cost: 113471.10, Comm 0.00\n", - "2023-01-25, Close, 22595.72\n", - "2023-01-25, SELL CREATE, 22595.72\n", - "2023-01-25, SELL EXECUTED, Price: 22595.08, Cost: 113471.10, Comm 0.00\n", - "2023-01-25, OPERATION PROFIT, GROSS -495.70, NET -495.70\n", - "2023-01-25, Close, 22435.47\n", - "2023-01-25, Close, 22577.86\n", - "2023-01-25, Close, 22629.75\n", - "2023-01-25, BUY CREATE, 22629.75\n", - "2023-01-25, BUY EXECUTED, Price: 22629.75, Cost: 113148.75, Comm 0.00\n", - "2023-01-25, Close, 22568.94\n", - "2023-01-25, SELL CREATE, 22568.94\n", - "2023-01-25, SELL EXECUTED, Price: 22569.11, Cost: 113148.75, Comm 0.00\n", - "2023-01-25, OPERATION PROFIT, GROSS -303.20, NET -303.20\n", - "2023-01-25, Close, 22724.90\n", - "2023-01-25, BUY CREATE, 22724.90\n", - "2023-01-25, BUY EXECUTED, Price: 22724.90, Cost: 113624.50, Comm 0.00\n", - "2023-01-25, Close, 22748.86\n", - "2023-01-25, Close, 22938.09\n", - "2023-01-25, Close, 23592.55\n", - "2023-01-25, Close, 22932.20\n", - "2023-01-25, Close, 23060.94\n", - "2023-01-26, Close, 23240.42\n", - "2023-01-26, Close, 23163.24\n", - "2023-01-26, Close, 23178.98\n", - "2023-01-26, Close, 23136.16\n", - "2023-01-26, Close, 23179.35\n", - "2023-01-26, Close, 23147.48\n", - "2023-01-26, Close, 23087.87\n", - "2023-01-26, Close, 22966.73\n", - "2023-01-26, SELL CREATE, 22966.73\n", - "2023-01-26, SELL EXECUTED, Price: 22965.81, Cost: 113624.50, Comm 0.00\n", - "2023-01-26, OPERATION PROFIT, GROSS 1204.55, NET 1204.55\n", - "2023-01-26, Close, 23003.87\n", - "2023-01-26, Close, 22970.70\n", - "2023-01-26, Close, 22939.26\n", - "2023-01-26, Close, 22992.94\n", - "2023-01-26, Close, 23120.96\n", - "2023-01-26, BUY CREATE, 23120.96\n", - "2023-01-26, Order Canceled/Margin/Rejected\n", - "2023-01-26, Close, 23128.35\n", - "2023-01-26, BUY CREATE, 23128.35\n", - "2023-01-26, Order Canceled/Margin/Rejected\n", - "2023-01-26, Close, 23039.35\n", - "2023-01-26, Close, 22958.02\n", - "2023-01-26, Close, 23003.98\n", - "2023-01-26, Close, 22982.85\n", - "2023-01-26, Close, 23037.16\n", - "2023-01-26, Close, 23070.00\n", - "2023-01-26, BUY CREATE, 23070.00\n", - "2023-01-26, BUY EXECUTED, Price: 23068.57, Cost: 115342.85, Comm 0.00\n", - "2023-01-26, Close, 23112.57\n", - "2023-01-26, Close, 23081.77\n", - "2023-01-26, Close, 23003.79\n", - "2023-01-26, SELL CREATE, 23003.79\n", - "2023-01-26, SELL EXECUTED, Price: 23004.81, Cost: 115342.85, Comm 0.00\n", - "2023-01-26, OPERATION PROFIT, GROSS -318.80, NET -318.80\n", - "2023-01-26, Close, 23009.65\n", - "2023-01-27, Close, 22925.50\n", - "2023-01-27, Close, 22647.48\n", - "2023-01-27, Close, 22781.67\n", - "2023-01-27, Close, 22772.62\n", - "2023-01-27, Close, 22802.81\n", - "2023-01-27, Close, 23034.92\n", - "2023-01-27, BUY CREATE, 23034.92\n", - "2023-01-27, Order Canceled/Margin/Rejected\n", - "2023-01-27, Close, 23002.92\n", - "2023-01-27, BUY CREATE, 23002.92\n", - "2023-01-27, BUY EXECUTED, Price: 23002.48, Cost: 115012.40, Comm 0.00\n", - "2023-01-27, Close, 23072.77\n", - "2023-01-27, Close, 22964.51\n", - "2023-01-27, Close, 22947.87\n", - "2023-01-27, SELL CREATE, 22947.87\n", - "2023-01-27, SELL EXECUTED, Price: 22947.87, Cost: 115012.40, Comm 0.00\n", - "2023-01-27, OPERATION PROFIT, GROSS -273.05, NET -273.05\n", - "2023-01-27, Close, 22948.04\n", - "2023-01-27, BUY CREATE, 22948.04\n", - "2023-01-27, BUY EXECUTED, Price: 22948.98, Cost: 114744.90, Comm 0.00\n", - "2023-01-27, Close, 22967.47\n", - "2023-01-27, Close, 22932.41\n", - "2023-01-27, Close, 22899.82\n", - "2023-01-27, SELL CREATE, 22899.82\n", - "2023-01-27, SELL EXECUTED, Price: 22900.53, Cost: 114744.90, Comm 0.00\n", - "2023-01-27, OPERATION PROFIT, GROSS -242.25, NET -242.25\n", - "2023-01-27, Close, 22967.66\n", - "2023-01-27, BUY CREATE, 22967.66\n", - "2023-01-27, Order Canceled/Margin/Rejected\n", - "2023-01-27, Close, 22933.96\n", - "2023-01-27, BUY CREATE, 22933.96\n", - "2023-01-27, Order Canceled/Margin/Rejected\n", - "2023-01-27, Close, 23129.72\n", - "2023-01-27, BUY CREATE, 23129.72\n", - "2023-01-27, Order Canceled/Margin/Rejected\n", - "2023-01-27, Close, 23204.74\n", - "2023-01-27, BUY CREATE, 23204.74\n", - "2023-01-27, Order Canceled/Margin/Rejected\n", - "2023-01-27, Close, 23183.91\n", - "2023-01-27, BUY CREATE, 23183.91\n", - "2023-01-27, Order Canceled/Margin/Rejected\n", - "2023-01-27, Close, 23253.06\n", - "2023-01-27, BUY CREATE, 23253.06\n", - "2023-01-27, Order Canceled/Margin/Rejected\n", - "2023-01-27, Close, 23108.82\n", - "2023-01-27, BUY CREATE, 23108.82\n", - "2023-01-27, Order Canceled/Margin/Rejected\n", - "2023-01-27, Close, 23080.88\n", - "2023-01-27, BUY CREATE, 23080.88\n", - "2023-01-27, Order Canceled/Margin/Rejected\n", - "2023-01-27, Close, 23008.22\n", - "2023-01-27, Close, 23074.16\n", - "2023-01-27, BUY CREATE, 23074.16\n", - "2023-01-28, Order Canceled/Margin/Rejected\n", - "2023-01-28, Close, 23151.84\n", - "2023-01-28, BUY CREATE, 23151.84\n", - "2023-01-28, Order Canceled/Margin/Rejected\n", - "2023-01-28, Close, 23090.53\n", - "2023-01-28, BUY CREATE, 23090.53\n", - "2023-01-28, Order Canceled/Margin/Rejected\n", - "2023-01-28, Close, 23086.84\n", - "2023-01-28, BUY CREATE, 23086.84\n", - "2023-01-28, Order Canceled/Margin/Rejected\n", - "2023-01-28, Close, 23117.44\n", - "2023-01-28, BUY CREATE, 23117.44\n", - "2023-01-28, Order Canceled/Margin/Rejected\n", - "2023-01-28, Close, 23092.24\n", - "2023-01-28, Close, 23066.38\n", - "2023-01-28, Close, 23038.21\n", - "2023-01-28, Close, 22991.51\n", - "2023-01-28, Close, 22978.64\n", - "2023-01-28, Close, 22998.60\n", - "2023-01-28, Close, 22974.47\n", - "2023-01-28, Close, 22981.51\n", - "2023-01-28, Close, 22955.25\n", - "2023-01-28, Close, 22970.10\n", - "2023-01-28, Close, 22949.43\n", - "2023-01-28, Close, 23012.54\n", - "2023-01-28, Close, 23018.14\n", - "2023-01-28, BUY CREATE, 23018.14\n", - "2023-01-28, Order Canceled/Margin/Rejected\n", - "2023-01-28, Close, 23018.96\n", - "2023-01-28, BUY CREATE, 23018.96\n", - "2023-01-28, Order Canceled/Margin/Rejected\n", - "2023-01-28, Close, 22998.31\n", - "2023-01-28, Close, 23039.35\n", - "2023-01-28, BUY CREATE, 23039.35\n", - "2023-01-28, Order Canceled/Margin/Rejected\n", - "2023-01-28, Close, 22966.91\n", - "2023-01-28, Close, 23001.41\n", - "2023-01-28, BUY CREATE, 23001.41\n", - "2023-01-28, Order Canceled/Margin/Rejected\n", - "2023-01-28, Close, 22977.63\n", - "2023-01-28, Close, 23022.60\n", - "2023-01-28, BUY CREATE, 23022.60\n", - "2023-01-29, Order Canceled/Margin/Rejected\n", - "2023-01-29, Close, 23112.95\n", - "2023-01-29, BUY CREATE, 23112.95\n", - "2023-01-29, Order Canceled/Margin/Rejected\n", - "2023-01-29, Close, 23232.32\n", - "2023-01-29, BUY CREATE, 23232.32\n", - "2023-01-29, Order Canceled/Margin/Rejected\n", - "2023-01-29, Close, 23143.08\n", - "2023-01-29, BUY CREATE, 23143.08\n", - "2023-01-29, Order Canceled/Margin/Rejected\n", - "2023-01-29, Close, 23193.43\n", - "2023-01-29, BUY CREATE, 23193.43\n", - "2023-01-29, Order Canceled/Margin/Rejected\n", - "2023-01-29, Close, 23228.89\n", - "2023-01-29, BUY CREATE, 23228.89\n", - "2023-01-29, Order Canceled/Margin/Rejected\n", - "2023-01-29, Close, 23249.50\n", - "2023-01-29, BUY CREATE, 23249.50\n", - "2023-01-29, Order Canceled/Margin/Rejected\n", - "2023-01-29, Close, 23198.58\n", - "2023-01-29, BUY CREATE, 23198.58\n", - "2023-01-29, Order Canceled/Margin/Rejected\n", - "2023-01-29, Close, 23203.86\n", - "2023-01-29, BUY CREATE, 23203.86\n", - "2023-01-29, Order Canceled/Margin/Rejected\n", - "2023-01-29, Close, 23172.28\n", - "2023-01-29, BUY CREATE, 23172.28\n", - "2023-01-29, Order Canceled/Margin/Rejected\n", - "2023-01-29, Close, 23296.80\n", - "2023-01-29, BUY CREATE, 23296.80\n", - "2023-01-29, Order Canceled/Margin/Rejected\n", - "2023-01-29, Close, 23448.03\n", - "2023-01-29, BUY CREATE, 23448.03\n", - "2023-01-29, Order Canceled/Margin/Rejected\n", - "2023-01-29, Close, 23432.17\n", - "2023-01-29, BUY CREATE, 23432.17\n", - "2023-01-29, Order Canceled/Margin/Rejected\n", - "2023-01-29, Close, 23478.21\n", - "2023-01-29, BUY CREATE, 23478.21\n", - "2023-01-29, Order Canceled/Margin/Rejected\n", - "2023-01-29, Close, 23538.94\n", - "2023-01-29, BUY CREATE, 23538.94\n", - "2023-01-29, Order Canceled/Margin/Rejected\n", - "2023-01-29, Close, 23538.58\n", - "2023-01-29, BUY CREATE, 23538.58\n", - "2023-01-29, Order Canceled/Margin/Rejected\n", - "2023-01-29, Close, 23525.09\n", - "2023-01-29, BUY CREATE, 23525.09\n", - "2023-01-29, Order Canceled/Margin/Rejected\n", - "2023-01-29, Close, 23586.44\n", - "2023-01-29, BUY CREATE, 23586.44\n", - "2023-01-29, Order Canceled/Margin/Rejected\n", - "2023-01-29, Close, 23591.38\n", - "2023-01-29, BUY CREATE, 23591.38\n", - "2023-01-29, Order Canceled/Margin/Rejected\n", - "2023-01-29, Close, 23678.99\n", - "2023-01-29, BUY CREATE, 23678.99\n", - "2023-01-29, Order Canceled/Margin/Rejected\n", - "2023-01-29, Close, 23897.84\n", - "2023-01-29, BUY CREATE, 23897.84\n", - "2023-01-29, Order Canceled/Margin/Rejected\n", - "2023-01-29, Close, 23698.65\n", - "2023-01-29, BUY CREATE, 23698.65\n", - "2023-01-29, Order Canceled/Margin/Rejected\n", - "2023-01-29, Close, 23794.20\n", - "2023-01-29, BUY CREATE, 23794.20\n", - "2023-01-29, Order Canceled/Margin/Rejected\n", - "2023-01-29, Close, 23765.93\n", - "2023-01-29, BUY CREATE, 23765.93\n", - "2023-01-29, Order Canceled/Margin/Rejected\n", - "2023-01-29, Close, 23742.30\n", - "2023-01-29, BUY CREATE, 23742.30\n", - "2023-01-30, Order Canceled/Margin/Rejected\n", - "2023-01-30, Close, 23751.43\n", - "2023-01-30, BUY CREATE, 23751.43\n", - "2023-01-30, Order Canceled/Margin/Rejected\n", - "2023-01-30, Close, 23670.08\n", - "2023-01-30, BUY CREATE, 23670.08\n", - "2023-01-30, Order Canceled/Margin/Rejected\n", - "2023-01-30, Close, 23645.76\n", - "2023-01-30, Close, 23701.44\n", - "2023-01-30, BUY CREATE, 23701.44\n", - "2023-01-30, Order Canceled/Margin/Rejected\n", - "2023-01-30, Close, 23717.76\n", - "2023-01-30, BUY CREATE, 23717.76\n", - "2023-01-30, Order Canceled/Margin/Rejected\n", - "2023-01-30, Close, 23728.71\n", - "2023-01-30, BUY CREATE, 23728.71\n", - "2023-01-30, Order Canceled/Margin/Rejected\n", - "2023-01-30, Close, 23692.38\n", - "2023-01-30, Close, 23642.81\n", - "2023-01-30, Close, 23548.76\n", - "2023-01-30, Close, 23191.20\n", - "2023-01-30, Close, 23243.54\n", - "2023-01-30, Close, 23077.47\n", - "2023-01-30, Close, 23076.27\n", - "2023-01-30, Close, 23057.19\n", - "2023-01-30, Close, 23287.70\n", - "2023-01-30, Close, 23178.51\n", - "2023-01-30, Close, 23170.38\n", - "2023-01-30, Close, 23108.94\n", - "2023-01-30, Close, 23138.83\n", - "2023-01-30, Close, 22784.86\n", - "2023-01-30, Close, 22697.83\n", - "2023-01-30, Close, 22743.70\n", - "2023-01-30, Close, 22729.81\n", - "2023-01-30, Close, 22826.15\n", - "2023-01-31, Close, 22828.32\n", - "2023-01-31, Close, 22830.23\n", - "2023-01-31, Close, 22857.93\n", - "2023-01-31, Close, 22835.01\n", - "2023-01-31, Close, 22861.59\n", - "2023-01-31, Close, 22759.14\n", - "2023-01-31, Close, 22812.12\n", - "2023-01-31, Close, 22978.24\n", - "2023-01-31, BUY CREATE, 22978.24\n", - "2023-01-31, Order Canceled/Margin/Rejected\n", - "2023-01-31, Close, 22912.62\n", - "2023-01-31, BUY CREATE, 22912.62\n", - "2023-01-31, BUY EXECUTED, Price: 22912.60, Cost: 114563.00, Comm 0.00\n", - "2023-01-31, Close, 22891.34\n", - "2023-01-31, Close, 22828.87\n", - "2023-01-31, Close, 22865.43\n", - "2023-01-31, Close, 22895.15\n", - "2023-01-31, Close, 23127.11\n", - "2023-01-31, Close, 23119.64\n", - "2023-01-31, Close, 23121.80\n", - "2023-01-31, Close, 23109.17\n", - "2023-01-31, Close, 23152.42\n", - "2023-01-31, Close, 23165.96\n", - "2023-01-31, Close, 23163.88\n", - "2023-01-31, Close, 23095.41\n", - "2023-01-31, Close, 22948.69\n", - "2023-01-31, SELL CREATE, 22948.69\n", - "2023-01-31, SELL EXECUTED, Price: 22947.66, Cost: 114563.00, Comm 0.00\n", - "2023-01-31, OPERATION PROFIT, GROSS 175.30, NET 175.30\n", - "2023-01-31, Close, 23181.81\n", - "2023-01-31, BUY CREATE, 23181.81\n", - "2023-01-31, Order Canceled/Margin/Rejected\n", - "2023-01-31, Close, 23125.13\n", - "2023-01-31, BUY CREATE, 23125.13\n", - "2023-02-01, Order Canceled/Margin/Rejected\n", - "2023-02-01, Close, 23085.73\n", - "2023-02-01, BUY CREATE, 23085.73\n", - "2023-02-01, Order Canceled/Margin/Rejected\n", - "2023-02-01, Close, 23123.09\n", - "2023-02-01, BUY CREATE, 23123.09\n", - "2023-02-01, Order Canceled/Margin/Rejected\n", - "2023-02-01, Close, 23108.43\n", - "2023-02-01, BUY CREATE, 23108.43\n", - "2023-02-01, Order Canceled/Margin/Rejected\n", - "2023-02-01, Close, 23130.19\n", - "2023-02-01, BUY CREATE, 23130.19\n", - "2023-02-01, Order Canceled/Margin/Rejected\n", - "2023-02-01, Close, 23135.98\n", - "2023-02-01, BUY CREATE, 23135.98\n", - "2023-02-01, Order Canceled/Margin/Rejected\n", - "2023-02-01, Close, 23118.67\n", - "2023-02-01, BUY CREATE, 23118.67\n", - "2023-02-01, Order Canceled/Margin/Rejected\n", - "2023-02-01, Close, 23065.77\n", - "2023-02-01, Close, 23076.68\n", - "2023-02-01, Close, 22982.03\n", - "2023-02-01, Close, 22991.86\n", - "2023-02-01, Close, 22996.30\n", - "2023-02-01, Close, 23077.52\n", - "2023-02-01, BUY CREATE, 23077.52\n", - "2023-02-01, Order Canceled/Margin/Rejected\n", - "2023-02-01, Close, 23060.63\n", - "2023-02-01, Close, 23086.10\n", - "2023-02-01, BUY CREATE, 23086.10\n", - "2023-02-01, Order Canceled/Margin/Rejected\n", - "2023-02-01, Close, 23101.00\n", - "2023-02-01, BUY CREATE, 23101.00\n", - "2023-02-01, Order Canceled/Margin/Rejected\n", - "2023-02-01, Close, 22979.73\n", - "2023-02-01, Close, 22999.85\n", - "2023-02-01, Close, 22994.27\n", - "2023-02-01, Close, 23077.26\n", - "2023-02-01, BUY CREATE, 23077.26\n", - "2023-02-01, Order Canceled/Margin/Rejected\n", - "2023-02-01, Close, 23385.99\n", - "2023-02-01, BUY CREATE, 23385.99\n", - "2023-02-01, Order Canceled/Margin/Rejected\n", - "2023-02-01, Close, 23573.11\n", - "2023-02-01, BUY CREATE, 23573.11\n", - "2023-02-01, Order Canceled/Margin/Rejected\n", - "2023-02-01, Close, 23681.05\n", - "2023-02-01, BUY CREATE, 23681.05\n", - "2023-02-01, Order Canceled/Margin/Rejected\n", - "2023-02-01, Close, 23714.50\n", - "2023-02-01, BUY CREATE, 23714.50\n", - "2023-02-01, Order Canceled/Margin/Rejected\n", - "2023-02-01, Close, 23732.66\n", - "2023-02-01, BUY CREATE, 23732.66\n", - "2023-02-02, Order Canceled/Margin/Rejected\n", - "2023-02-02, Close, 24189.85\n", - "2023-02-02, BUY CREATE, 24189.85\n", - "2023-02-02, Order Canceled/Margin/Rejected\n", - "2023-02-02, Close, 23950.55\n", - "2023-02-02, BUY CREATE, 23950.55\n", - "2023-02-02, Order Canceled/Margin/Rejected\n", - "2023-02-02, Close, 23885.19\n", - "2023-02-02, BUY CREATE, 23885.19\n", - "2023-02-02, Order Canceled/Margin/Rejected\n", - "2023-02-02, Close, 23848.60\n", - "2023-02-02, BUY CREATE, 23848.60\n", - "2023-02-02, Order Canceled/Margin/Rejected\n", - "2023-02-02, Close, 23882.87\n", - "2023-02-02, BUY CREATE, 23882.87\n", - "2023-02-02, Order Canceled/Margin/Rejected\n", - "2023-02-02, Close, 23804.61\n", - "2023-02-02, BUY CREATE, 23804.61\n", - "2023-02-02, Order Canceled/Margin/Rejected\n", - "2023-02-02, Close, 23786.46\n", - "2023-02-02, BUY CREATE, 23786.46\n", - "2023-02-02, Order Canceled/Margin/Rejected\n", - "2023-02-02, Close, 23781.12\n", - "2023-02-02, BUY CREATE, 23781.12\n", - "2023-02-02, Order Canceled/Margin/Rejected\n", - "2023-02-02, Close, 23799.59\n", - "2023-02-02, BUY CREATE, 23799.59\n", - "2023-02-02, Order Canceled/Margin/Rejected\n", - "2023-02-02, Close, 23830.91\n", - "2023-02-02, BUY CREATE, 23830.91\n", - "2023-02-02, Order Canceled/Margin/Rejected\n", - "2023-02-02, Close, 23780.17\n", - "2023-02-02, Close, 23820.49\n", - "2023-02-02, Close, 23800.76\n", - "2023-02-02, Close, 23766.53\n", - "2023-02-02, Close, 23609.11\n", - "2023-02-02, Close, 23839.50\n", - "2023-02-02, BUY CREATE, 23839.50\n", - "2023-02-02, Order Canceled/Margin/Rejected\n", - "2023-02-02, Close, 23790.35\n", - "2023-02-02, Close, 23893.33\n", - "2023-02-02, BUY CREATE, 23893.33\n", - "2023-02-02, Order Canceled/Margin/Rejected\n", - "2023-02-02, Close, 24054.54\n", - "2023-02-02, BUY CREATE, 24054.54\n", - "2023-02-02, Order Canceled/Margin/Rejected\n", - "2023-02-02, Close, 23802.57\n", - "2023-02-02, Close, 23872.75\n", - "2023-02-02, BUY CREATE, 23872.75\n", - "2023-02-02, Order Canceled/Margin/Rejected\n", - "2023-02-02, Close, 23455.65\n", - "2023-02-02, Close, 23556.13\n", - "2023-02-02, Close, 23488.94\n", - "2023-02-03, Close, 23552.89\n", - "2023-02-03, Close, 23555.12\n", - "2023-02-03, Close, 23475.45\n", - "2023-02-03, Close, 23534.18\n", - "2023-02-03, Close, 23516.73\n", - "2023-02-03, Close, 23523.58\n", - "2023-02-03, Close, 23513.55\n", - "2023-02-03, Close, 23456.23\n", - "2023-02-03, Close, 23423.52\n", - "2023-02-03, Close, 23423.17\n", - "2023-02-03, Close, 23431.91\n", - "2023-02-03, Close, 23534.13\n", - "2023-02-03, BUY CREATE, 23534.13\n", - "2023-02-03, Order Canceled/Margin/Rejected\n", - "2023-02-03, Close, 23524.75\n", - "2023-02-03, BUY CREATE, 23524.75\n", - "2023-02-03, Order Canceled/Margin/Rejected\n", - "2023-02-03, Close, 23346.63\n", - "2023-02-03, Close, 23518.32\n", - "2023-02-03, BUY CREATE, 23518.32\n", - "2023-02-03, Order Canceled/Margin/Rejected\n", - "2023-02-03, Close, 23603.36\n", - "2023-02-03, BUY CREATE, 23603.36\n", - "2023-02-03, Order Canceled/Margin/Rejected\n", - "2023-02-03, Close, 23519.21\n", - "2023-02-03, BUY CREATE, 23519.21\n", - "2023-02-03, Order Canceled/Margin/Rejected\n", - "2023-02-03, Close, 23506.58\n", - "2023-02-03, BUY CREATE, 23506.58\n", - "2023-02-03, Order Canceled/Margin/Rejected\n", - "2023-02-03, Close, 23418.30\n", - "2023-02-03, Close, 23307.99\n", - "2023-02-03, Close, 23338.35\n", - "2023-02-03, Close, 23379.01\n", - "2023-02-03, Close, 23421.02\n", - "2023-02-03, Close, 23431.90\n", - "2023-02-04, Close, 23411.30\n", - "2023-02-04, Close, 23373.87\n", - "2023-02-04, Close, 23386.89\n", - "2023-02-04, Close, 23343.43\n", - "2023-02-04, Close, 23337.71\n", - "2023-02-04, Close, 23312.38\n", - "2023-02-04, Close, 23338.23\n", - "2023-02-04, Close, 23329.18\n", - "2023-02-04, Close, 23297.59\n", - "2023-02-04, Close, 23340.02\n", - "2023-02-04, Close, 23335.83\n", - "2023-02-04, Close, 23363.76\n", - "2023-02-04, BUY CREATE, 23363.76\n", - "2023-02-04, Order Canceled/Margin/Rejected\n", - "2023-02-04, Close, 23412.84\n", - "2023-02-04, BUY CREATE, 23412.84\n", - "2023-02-04, Order Canceled/Margin/Rejected\n", - "2023-02-04, Close, 23503.73\n", - "2023-02-04, BUY CREATE, 23503.73\n", - "2023-02-04, Order Canceled/Margin/Rejected\n", - "2023-02-04, Close, 23464.36\n", - "2023-02-04, BUY CREATE, 23464.36\n", - "2023-02-04, Order Canceled/Margin/Rejected\n", - "2023-02-04, Close, 23421.45\n", - "2023-02-04, BUY CREATE, 23421.45\n", - "2023-02-04, Order Canceled/Margin/Rejected\n", - "2023-02-04, Close, 23407.83\n", - "2023-02-04, BUY CREATE, 23407.83\n", - "2023-02-04, Order Canceled/Margin/Rejected\n", - "2023-02-04, Close, 23439.63\n", - "2023-02-04, BUY CREATE, 23439.63\n", - "2023-02-04, Order Canceled/Margin/Rejected\n", - "2023-02-04, Close, 23445.66\n", - "2023-02-04, BUY CREATE, 23445.66\n", - "2023-02-04, Order Canceled/Margin/Rejected\n", - "2023-02-04, Close, 23425.89\n", - "2023-02-04, BUY CREATE, 23425.89\n", - "2023-02-04, Order Canceled/Margin/Rejected\n", - "2023-02-04, Close, 23412.48\n", - "2023-02-04, BUY CREATE, 23412.48\n", - "2023-02-04, Order Canceled/Margin/Rejected\n", - "2023-02-04, Close, 23413.98\n", - "2023-02-04, BUY CREATE, 23413.98\n", - "2023-02-04, Order Canceled/Margin/Rejected\n", - "2023-02-04, Close, 23402.89\n", - "2023-02-04, Close, 23326.84\n", - "2023-02-05, Close, 23291.00\n", - "2023-02-05, Close, 23319.48\n", - "2023-02-05, Close, 23292.21\n", - "2023-02-05, Close, 23344.53\n", - "2023-02-05, Close, 23364.00\n", - "2023-02-05, Close, 23375.60\n", - "2023-02-05, Close, 23392.80\n", - "2023-02-05, BUY CREATE, 23392.80\n", - "2023-02-05, Order Canceled/Margin/Rejected\n", - "2023-02-05, Close, 23377.40\n", - "2023-02-05, BUY CREATE, 23377.40\n", - "2023-02-05, Order Canceled/Margin/Rejected\n", - "2023-02-05, Close, 23393.26\n", - "2023-02-05, BUY CREATE, 23393.26\n", - "2023-02-05, Order Canceled/Margin/Rejected\n", - "2023-02-05, Close, 23365.02\n", - "2023-02-05, Close, 23395.57\n", - "2023-02-05, BUY CREATE, 23395.57\n", - "2023-02-05, Order Canceled/Margin/Rejected\n", - "2023-02-05, Close, 23356.33\n", - "2023-02-05, Close, 23170.56\n", - "2023-02-05, Close, 23167.62\n", - "2023-02-05, Close, 23163.45\n", - "2023-02-05, Close, 23096.16\n", - "2023-02-05, Close, 23075.54\n", - "2023-02-05, Close, 22851.48\n", - "2023-02-05, Close, 22843.92\n", - "2023-02-05, Close, 22891.80\n", - "2023-02-05, Close, 22886.30\n", - "2023-02-05, Close, 22896.41\n", - "2023-02-05, Close, 22979.51\n", - "2023-02-05, Close, 22932.91\n", - "2023-02-06, Close, 23054.44\n", - "2023-02-06, BUY CREATE, 23054.44\n", - "2023-02-06, Order Canceled/Margin/Rejected\n", - "2023-02-06, Close, 22978.08\n", - "2023-02-06, Close, 22877.82\n", - "2023-02-06, Close, 22895.48\n", - "2023-02-06, Close, 22873.12\n", - "2023-02-06, Close, 22774.76\n", - "2023-02-06, Close, 22783.44\n", - "2023-02-06, Close, 22879.69\n", - "2023-02-06, Close, 22862.99\n", - "2023-02-06, Close, 22837.98\n", - "2023-02-06, Close, 22842.41\n", - "2023-02-06, Close, 22878.23\n", - "2023-02-06, Close, 22885.94\n", - "2023-02-06, Close, 22828.79\n", - "2023-02-06, Close, 22842.47\n", - "2023-02-06, Close, 23041.39\n", - "2023-02-06, BUY CREATE, 23041.39\n", - "2023-02-06, Order Canceled/Margin/Rejected\n", - "2023-02-06, Close, 22999.62\n", - "2023-02-06, BUY CREATE, 22999.62\n", - "2023-02-06, Order Canceled/Margin/Rejected\n", - "2023-02-06, Close, 23035.78\n", - "2023-02-06, BUY CREATE, 23035.78\n", - "2023-02-06, Order Canceled/Margin/Rejected\n", - "2023-02-06, Close, 23018.13\n", - "2023-02-06, BUY CREATE, 23018.13\n", - "2023-02-06, Order Canceled/Margin/Rejected\n", - "2023-02-06, Close, 23031.03\n", - "2023-02-06, BUY CREATE, 23031.03\n", - "2023-02-06, Order Canceled/Margin/Rejected\n", - "2023-02-06, Close, 23005.84\n", - "2023-02-06, BUY CREATE, 23005.84\n", - "2023-02-06, Order Canceled/Margin/Rejected\n", - "2023-02-06, Close, 22915.05\n", - "2023-02-06, Close, 22879.37\n", - "2023-02-06, Close, 22762.52\n", - "2023-02-07, Close, 22795.13\n", - "2023-02-07, Close, 22849.16\n", - "2023-02-07, Close, 22883.71\n", - "2023-02-07, Close, 22877.99\n", - "2023-02-07, Close, 22870.35\n", - "2023-02-07, Close, 22936.72\n", - "2023-02-07, BUY CREATE, 22936.72\n", - "2023-02-07, BUY EXECUTED, Price: 22935.92, Cost: 114679.60, Comm 0.00\n", - "2023-02-07, Close, 22927.38\n", - "2023-02-07, Close, 22910.91\n", - "2023-02-07, SELL CREATE, 22910.91\n", - "2023-02-07, SELL EXECUTED, Price: 22910.91, Cost: 114679.60, Comm 0.00\n", - "2023-02-07, OPERATION PROFIT, GROSS -125.05, NET -125.05\n", - "2023-02-07, Close, 22872.67\n", - "2023-02-07, Close, 23011.79\n", - "2023-02-07, BUY CREATE, 23011.79\n", - "2023-02-07, Order Canceled/Margin/Rejected\n", - "2023-02-07, Close, 22983.51\n", - "2023-02-07, BUY CREATE, 22983.51\n", - "2023-02-07, Order Canceled/Margin/Rejected\n", - "2023-02-07, Close, 22977.24\n", - "2023-02-07, BUY CREATE, 22977.24\n", - "2023-02-07, Order Canceled/Margin/Rejected\n", - "2023-02-07, Close, 23023.67\n", - "2023-02-07, BUY CREATE, 23023.67\n", - "2023-02-07, Order Canceled/Margin/Rejected\n", - "2023-02-07, Close, 22982.54\n", - "2023-02-07, BUY CREATE, 22982.54\n", - "2023-02-07, Order Canceled/Margin/Rejected\n", - "2023-02-07, Close, 22976.86\n", - "2023-02-07, BUY CREATE, 22976.86\n", - "2023-02-07, Order Canceled/Margin/Rejected\n", - "2023-02-07, Close, 22904.89\n", - "2023-02-07, Close, 22977.98\n", - "2023-02-07, BUY CREATE, 22977.98\n", - "2023-02-07, Order Canceled/Margin/Rejected\n", - "2023-02-07, Close, 23282.92\n", - "2023-02-07, BUY CREATE, 23282.92\n", - "2023-02-07, Order Canceled/Margin/Rejected\n", - "2023-02-07, Close, 22932.28\n", - "2023-02-07, Close, 23091.90\n", - "2023-02-07, BUY CREATE, 23091.90\n", - "2023-02-07, Order Canceled/Margin/Rejected\n", - "2023-02-07, Close, 23194.36\n", - "2023-02-07, BUY CREATE, 23194.36\n", - "2023-02-07, Order Canceled/Margin/Rejected\n", - "2023-02-07, Close, 23196.25\n", - "2023-02-07, BUY CREATE, 23196.25\n", - "2023-02-07, Order Canceled/Margin/Rejected\n", - "2023-02-07, Close, 23228.69\n", - "2023-02-07, BUY CREATE, 23228.69\n", - "2023-02-07, Order Canceled/Margin/Rejected\n", - "2023-02-07, Close, 23240.46\n", - "2023-02-07, BUY CREATE, 23240.46\n", - "2023-02-08, Order Canceled/Margin/Rejected\n", - "2023-02-08, Close, 23326.40\n", - "2023-02-08, BUY CREATE, 23326.40\n", - "2023-02-08, Order Canceled/Margin/Rejected\n", - "2023-02-08, Close, 23287.66\n", - "2023-02-08, BUY CREATE, 23287.66\n", - "2023-02-08, Order Canceled/Margin/Rejected\n", - "2023-02-08, Close, 23244.60\n", - "2023-02-08, BUY CREATE, 23244.60\n", - "2023-02-08, Order Canceled/Margin/Rejected\n", - "2023-02-08, Close, 23255.34\n", - "2023-02-08, BUY CREATE, 23255.34\n", - "2023-02-08, Order Canceled/Margin/Rejected\n", - "2023-02-08, Close, 23246.71\n", - "2023-02-08, BUY CREATE, 23246.71\n", - "2023-02-08, Order Canceled/Margin/Rejected\n", - "2023-02-08, Close, 23224.39\n", - "2023-02-08, BUY CREATE, 23224.39\n", - "2023-02-08, Order Canceled/Margin/Rejected\n", - "2023-02-08, Close, 23198.27\n", - "2023-02-08, BUY CREATE, 23198.27\n", - "2023-02-08, Order Canceled/Margin/Rejected\n", - "2023-02-08, Close, 23232.68\n", - "2023-02-08, BUY CREATE, 23232.68\n", - "2023-02-08, Order Canceled/Margin/Rejected\n", - "2023-02-08, Close, 23205.96\n", - "2023-02-08, Close, 23202.90\n", - "2023-02-08, Close, 23159.81\n", - "2023-02-08, Close, 23159.07\n", - "2023-02-08, Close, 23123.44\n", - "2023-02-08, Close, 23114.88\n", - "2023-02-08, Close, 23051.91\n", - "2023-02-08, Close, 22872.28\n", - "2023-02-08, Close, 22966.30\n", - "2023-02-08, Close, 23004.04\n", - "2023-02-08, Close, 22893.03\n", - "2023-02-08, Close, 22874.89\n", - "2023-02-08, Close, 22829.87\n", - "2023-02-08, Close, 22955.37\n", - "2023-02-08, Close, 22928.75\n", - "2023-02-08, Close, 22963.00\n", - "2023-02-09, Close, 22980.64\n", - "2023-02-09, Close, 22948.13\n", - "2023-02-09, Close, 22806.76\n", - "2023-02-09, Close, 22518.44\n", - "2023-02-09, Close, 22568.57\n", - "2023-02-09, Close, 22603.08\n", - "2023-02-09, Close, 22719.25\n", - "2023-02-09, Close, 22676.41\n", - "2023-02-09, Close, 22720.65\n", - "2023-02-09, Close, 22738.69\n", - "2023-02-09, Close, 22698.53\n", - "2023-02-09, Close, 22685.79\n", - "2023-02-09, Close, 22705.50\n", - "2023-02-09, Close, 22747.58\n", - "2023-02-09, BUY CREATE, 22747.58\n", - "2023-02-09, BUY EXECUTED, Price: 22747.58, Cost: 113737.90, Comm 0.00\n", - "2023-02-09, Close, 22694.29\n", - "2023-02-09, SELL CREATE, 22694.29\n", - "2023-02-09, SELL EXECUTED, Price: 22693.22, Cost: 113737.90, Comm 0.00\n", - "2023-02-09, OPERATION PROFIT, GROSS -271.80, NET -271.80\n", - "2023-02-09, Close, 22610.94\n", - "2023-02-09, Close, 22511.80\n", - "2023-02-09, Close, 22537.33\n", - "2023-02-09, Close, 22514.75\n", - "2023-02-09, Close, 22032.71\n", - "2023-02-09, Close, 21994.21\n", - "2023-02-09, Close, 21856.30\n", - "2023-02-09, Close, 21767.53\n", - "2023-02-09, Close, 21796.35\n", - "2023-02-10, Close, 21824.09\n", - "2023-02-10, Close, 21894.16\n", - "2023-02-10, Close, 21917.77\n", - "2023-02-10, Close, 21825.59\n", - "2023-02-10, Close, 21786.08\n", - "2023-02-10, Close, 21796.78\n", - "2023-02-10, Close, 21874.73\n", - "2023-02-10, Close, 21911.71\n", - "2023-02-10, Close, 21889.38\n", - "2023-02-10, Close, 21820.23\n", - "2023-02-10, Close, 21849.38\n", - "2023-02-10, Close, 21733.52\n", - "2023-02-10, Close, 21718.48\n", - "2023-02-10, Close, 21767.87\n", - "2023-02-10, Close, 21841.55\n", - "2023-02-10, BUY CREATE, 21841.55\n", - "2023-02-10, BUY EXECUTED, Price: 21841.31, Cost: 109206.55, Comm 0.00\n", - "2023-02-10, Close, 21654.09\n", - "2023-02-10, SELL CREATE, 21654.09\n", - "2023-02-10, SELL EXECUTED, Price: 21652.75, Cost: 109206.55, Comm 0.00\n", - "2023-02-10, OPERATION PROFIT, GROSS -942.80, NET -942.80\n", - "2023-02-10, Close, 21607.11\n", - "2023-02-10, Close, 21692.07\n", - "2023-02-10, Close, 21703.90\n", - "2023-02-10, Close, 21771.09\n", - "2023-02-10, Close, 21724.40\n", - "2023-02-10, Close, 21536.31\n", - "2023-02-10, Close, 21571.19\n", - "2023-02-10, Close, 21625.19\n", - "2023-02-11, Close, 21657.62\n", - "2023-02-11, Close, 21635.49\n", - "2023-02-11, Close, 21652.20\n", - "2023-02-11, Close, 21678.56\n", - "2023-02-11, BUY CREATE, 21678.56\n", - "2023-02-11, BUY EXECUTED, Price: 21678.56, Cost: 108392.80, Comm 0.00\n", - "2023-02-11, Close, 21686.79\n", - "2023-02-11, Close, 21675.26\n", - "2023-02-11, Close, 21669.73\n", - "2023-02-11, Close, 21692.63\n", - "2023-02-11, Close, 21687.29\n", - "2023-02-11, Close, 21698.37\n", - "2023-02-11, Close, 21670.32\n", - "2023-02-11, Close, 21697.44\n", - "2023-02-11, Close, 21713.77\n", - "2023-02-11, Close, 21747.49\n", - "2023-02-11, Close, 21751.04\n", - "2023-02-11, Close, 21735.78\n", - "2023-02-11, Close, 21693.14\n", - "2023-02-11, SELL CREATE, 21693.14\n", - "2023-02-11, SELL EXECUTED, Price: 21693.48, Cost: 108392.80, Comm 0.00\n", - "2023-02-11, OPERATION PROFIT, GROSS 74.60, NET 74.60\n", - "2023-02-11, Close, 21698.86\n", - "2023-02-11, Close, 21654.03\n", - "2023-02-11, Close, 21662.63\n", - "2023-02-11, Close, 21671.38\n", - "2023-02-11, Close, 21823.56\n", - "2023-02-11, BUY CREATE, 21823.56\n", - "2023-02-11, BUY EXECUTED, Price: 21823.56, Cost: 109117.80, Comm 0.00\n", - "2023-02-11, Close, 21824.52\n", - "2023-02-11, Close, 21862.55\n", - "2023-02-12, Close, 21816.37\n", - "2023-02-12, Close, 21808.28\n", - "2023-02-12, Close, 21816.22\n", - "2023-02-12, Close, 21781.38\n", - "2023-02-12, Close, 21782.97\n", - "2023-02-12, Close, 21799.98\n", - "2023-02-12, Close, 21809.62\n", - "2023-02-12, Close, 21798.42\n", - "2023-02-12, Close, 21804.89\n", - "2023-02-12, Close, 21907.00\n", - "2023-02-12, Close, 21880.47\n", - "2023-02-12, Close, 21888.31\n", - "2023-02-12, Close, 21821.60\n", - "2023-02-12, SELL CREATE, 21821.60\n", - "2023-02-12, SELL EXECUTED, Price: 21820.70, Cost: 109117.80, Comm 0.00\n", - "2023-02-12, OPERATION PROFIT, GROSS -14.30, NET -14.30\n", - "2023-02-12, Close, 21817.51\n", - "2023-02-12, Close, 21923.78\n", - "2023-02-12, BUY CREATE, 21923.78\n", - "2023-02-12, BUY EXECUTED, Price: 21923.78, Cost: 109618.90, Comm 0.00\n", - "2023-02-12, Close, 21945.30\n", - "2023-02-12, Close, 22004.65\n", - "2023-02-12, Close, 21988.25\n", - "2023-02-12, Close, 21971.86\n", - "2023-02-12, Close, 21997.18\n", - "2023-02-12, Close, 21968.06\n", - "2023-02-12, Close, 21738.38\n", - "2023-02-12, SELL CREATE, 21738.38\n", - "2023-02-12, SELL EXECUTED, Price: 21738.38, Cost: 109618.90, Comm 0.00\n", - "2023-02-12, OPERATION PROFIT, GROSS -927.00, NET -927.00\n", - "2023-02-12, Close, 21794.52\n", - "2023-02-12, Close, 21783.54\n", - "2023-02-13, Close, 21811.28\n", - "2023-02-13, Close, 21708.40\n", - "2023-02-13, Close, 21758.01\n", - "2023-02-13, Close, 21808.60\n", - "2023-02-13, Close, 21838.38\n", - "2023-02-13, Close, 21832.95\n", - "2023-02-13, Close, 21823.04\n", - "2023-02-13, Close, 21867.69\n", - "2023-02-13, BUY CREATE, 21867.69\n", - "2023-02-13, BUY EXECUTED, Price: 21867.74, Cost: 109338.70, Comm 0.00\n", - "2023-02-13, Close, 21720.67\n", - "2023-02-13, SELL CREATE, 21720.67\n", - "2023-02-13, SELL EXECUTED, Price: 21722.00, Cost: 109338.70, Comm 0.00\n", - "2023-02-13, OPERATION PROFIT, GROSS -728.70, NET -728.70\n", - "2023-02-13, Close, 21584.74\n", - "2023-02-13, Close, 21594.16\n", - "2023-02-13, Close, 21603.11\n", - "2023-02-13, Close, 21657.47\n", - "2023-02-13, Close, 21572.88\n", - "2023-02-13, Close, 21669.64\n", - "2023-02-13, Close, 21563.02\n", - "2023-02-13, Close, 21503.76\n", - "2023-02-13, Close, 21458.38\n", - "2023-02-13, Close, 21634.60\n", - "2023-02-13, Close, 21607.81\n", - "2023-02-13, Close, 21662.68\n", - "2023-02-13, BUY CREATE, 21662.68\n", - "2023-02-13, BUY EXECUTED, Price: 21663.57, Cost: 108317.85, Comm 0.00\n", - "2023-02-13, Close, 21614.52\n", - "2023-02-13, SELL CREATE, 21614.52\n", - "2023-02-13, SELL EXECUTED, Price: 21614.52, Cost: 108317.85, Comm 0.00\n", - "2023-02-13, OPERATION PROFIT, GROSS -245.25, NET -245.25\n", - "2023-02-13, Close, 21640.37\n", - "2023-02-13, BUY CREATE, 21640.37\n", - "2023-02-13, BUY EXECUTED, Price: 21641.27, Cost: 108206.35, Comm 0.00\n", - "2023-02-13, Close, 21773.97\n", - "2023-02-14, Close, 21737.95\n", - "2023-02-14, Close, 21707.11\n", - "2023-02-14, Close, 21716.23\n", - "2023-02-14, Close, 21700.42\n", - "2023-02-14, Close, 21704.95\n", - "2023-02-14, Close, 21725.23\n", - "2023-02-14, Close, 21744.02\n", - "2023-02-14, Close, 21768.48\n", - "2023-02-14, Close, 21694.92\n", - "2023-02-14, SELL CREATE, 21694.92\n", - "2023-02-14, SELL EXECUTED, Price: 21694.92, Cost: 108206.35, Comm 0.00\n", - "2023-02-14, OPERATION PROFIT, GROSS 268.25, NET 268.25\n", - "2023-02-14, Close, 21817.09\n", - "2023-02-14, BUY CREATE, 21817.09\n", - "2023-02-14, BUY EXECUTED, Price: 21817.73, Cost: 109088.65, Comm 0.00\n", - "2023-02-14, Close, 21809.49\n", - "2023-02-14, Close, 21809.81\n", - "2023-02-14, Close, 21859.32\n", - "2023-02-14, Close, 21720.09\n", - "2023-02-14, SELL CREATE, 21720.09\n", - "2023-02-14, SELL EXECUTED, Price: 21719.05, Cost: 109088.65, Comm 0.00\n", - "2023-02-14, OPERATION PROFIT, GROSS -493.40, NET -493.40\n", - "2023-02-14, Close, 22247.39\n", - "2023-02-14, BUY CREATE, 22247.39\n", - "2023-02-14, BUY EXECUTED, Price: 22247.39, Cost: 111236.95, Comm 0.00\n", - "2023-02-14, Close, 22041.45\n", - "2023-02-14, Close, 22008.36\n", - "2023-02-14, Close, 22050.16\n", - "2023-02-14, Close, 22114.15\n", - "2023-02-14, Close, 22208.65\n", - "2023-02-14, Close, 22252.94\n", - "2023-02-14, Close, 22241.14\n", - "2023-02-14, Close, 22187.69\n", - "2023-02-14, Close, 22199.84\n", - "2023-02-15, Close, 22149.74\n", - "2023-02-15, Close, 22109.62\n", - "2023-02-15, Close, 22072.85\n", - "2023-02-15, SELL CREATE, 22072.85\n", - "2023-02-15, SELL EXECUTED, Price: 22072.24, Cost: 111236.95, Comm 0.00\n", - "2023-02-15, OPERATION PROFIT, GROSS -875.75, NET -875.75\n", - "2023-02-15, Close, 22099.49\n", - "2023-02-15, Close, 22084.90\n", - "2023-02-15, Close, 22134.08\n", - "2023-02-15, BUY CREATE, 22134.08\n", - "2023-02-15, Order Canceled/Margin/Rejected\n", - "2023-02-15, Close, 22117.68\n", - "2023-02-15, Close, 22109.89\n", - "2023-02-15, Close, 22094.02\n", - "2023-02-15, Close, 22170.51\n", - "2023-02-15, BUY CREATE, 22170.51\n", - "2023-02-15, Order Canceled/Margin/Rejected\n", - "2023-02-15, Close, 22234.96\n", - "2023-02-15, BUY CREATE, 22234.96\n", - "2023-02-15, Order Canceled/Margin/Rejected\n", - "2023-02-15, Close, 22445.13\n", - "2023-02-15, BUY CREATE, 22445.13\n", - "2023-02-15, Order Canceled/Margin/Rejected\n", - "2023-02-15, Close, 22772.21\n", - "2023-02-15, BUY CREATE, 22772.21\n", - "2023-02-15, Order Canceled/Margin/Rejected\n", - "2023-02-15, Close, 22698.86\n", - "2023-02-15, BUY CREATE, 22698.86\n", - "2023-02-15, Order Canceled/Margin/Rejected\n", - "2023-02-15, Close, 22684.47\n", - "2023-02-15, BUY CREATE, 22684.47\n", - "2023-02-15, Order Canceled/Margin/Rejected\n", - "2023-02-15, Close, 22809.46\n", - "2023-02-15, BUY CREATE, 22809.46\n", - "2023-02-15, Order Canceled/Margin/Rejected\n", - "2023-02-15, Close, 22763.10\n", - "2023-02-15, BUY CREATE, 22763.10\n", - "2023-02-15, Order Canceled/Margin/Rejected\n", - "2023-02-15, Close, 22805.48\n", - "2023-02-15, BUY CREATE, 22805.48\n", - "2023-02-15, Order Canceled/Margin/Rejected\n", - "2023-02-15, Close, 22973.86\n", - "2023-02-15, BUY CREATE, 22973.86\n", - "2023-02-15, Order Canceled/Margin/Rejected\n", - "2023-02-15, Close, 23318.90\n", - "2023-02-15, BUY CREATE, 23318.90\n", - "2023-02-15, Order Canceled/Margin/Rejected\n", - "2023-02-15, Close, 24145.04\n", - "2023-02-15, BUY CREATE, 24145.04\n", - "2023-02-15, Order Canceled/Margin/Rejected\n", - "2023-02-15, Close, 24175.86\n", - "2023-02-15, BUY CREATE, 24175.86\n", - "2023-02-15, Order Canceled/Margin/Rejected\n", - "2023-02-15, Close, 24151.60\n", - "2023-02-15, BUY CREATE, 24151.60\n", - "2023-02-15, Order Canceled/Margin/Rejected\n", - "2023-02-15, Close, 24324.05\n", - "2023-02-15, BUY CREATE, 24324.05\n", - "2023-02-16, Order Canceled/Margin/Rejected\n", - "2023-02-16, Close, 24583.17\n", - "2023-02-16, BUY CREATE, 24583.17\n", - "2023-02-16, Order Canceled/Margin/Rejected\n", - "2023-02-16, Close, 24627.17\n", - "2023-02-16, BUY CREATE, 24627.17\n", - "2023-02-16, Order Canceled/Margin/Rejected\n", - "2023-02-16, Close, 24687.88\n", - "2023-02-16, BUY CREATE, 24687.88\n", - "2023-02-16, Order Canceled/Margin/Rejected\n", - "2023-02-16, Close, 24732.42\n", - "2023-02-16, BUY CREATE, 24732.42\n", - "2023-02-16, Order Canceled/Margin/Rejected\n", - "2023-02-16, Close, 24634.15\n", - "2023-02-16, BUY CREATE, 24634.15\n", - "2023-02-16, Order Canceled/Margin/Rejected\n", - "2023-02-16, Close, 24681.94\n", - "2023-02-16, BUY CREATE, 24681.94\n", - "2023-02-16, Order Canceled/Margin/Rejected\n", - "2023-02-16, Close, 24586.08\n", - "2023-02-16, BUY CREATE, 24586.08\n", - "2023-02-16, Order Canceled/Margin/Rejected\n", - "2023-02-16, Close, 24612.95\n", - "2023-02-16, BUY CREATE, 24612.95\n", - "2023-02-16, Order Canceled/Margin/Rejected\n", - "2023-02-16, Close, 24580.34\n", - "2023-02-16, BUY CREATE, 24580.34\n", - "2023-02-16, Order Canceled/Margin/Rejected\n", - "2023-02-16, Close, 24643.64\n", - "2023-02-16, BUY CREATE, 24643.64\n", - "2023-02-16, Order Canceled/Margin/Rejected\n", - "2023-02-16, Close, 24617.72\n", - "2023-02-16, BUY CREATE, 24617.72\n", - "2023-02-16, Order Canceled/Margin/Rejected\n", - "2023-02-16, Close, 24568.55\n", - "2023-02-16, BUY CREATE, 24568.55\n", - "2023-02-16, Order Canceled/Margin/Rejected\n", - "2023-02-16, Close, 24585.55\n", - "2023-02-16, BUY CREATE, 24585.55\n", - "2023-02-16, Order Canceled/Margin/Rejected\n", - "2023-02-16, Close, 24445.81\n", - "2023-02-16, Close, 24423.80\n", - "2023-02-16, Close, 25072.67\n", - "2023-02-16, BUY CREATE, 25072.67\n", - "2023-02-16, Order Canceled/Margin/Rejected\n", - "2023-02-16, Close, 24898.43\n", - "2023-02-16, BUY CREATE, 24898.43\n", - "2023-02-16, Order Canceled/Margin/Rejected\n", - "2023-02-16, Close, 24891.88\n", - "2023-02-16, BUY CREATE, 24891.88\n", - "2023-02-16, Order Canceled/Margin/Rejected\n", - "2023-02-16, Close, 24971.47\n", - "2023-02-16, BUY CREATE, 24971.47\n", - "2023-02-16, Order Canceled/Margin/Rejected\n", - "2023-02-16, Close, 24872.58\n", - "2023-02-16, BUY CREATE, 24872.58\n", - "2023-02-16, Order Canceled/Margin/Rejected\n", - "2023-02-16, Close, 24565.36\n", - "2023-02-16, Close, 24537.04\n", - "2023-02-16, Close, 23994.76\n", - "2023-02-16, Close, 23517.72\n", - "2023-02-17, Close, 23713.37\n", - "2023-02-17, Close, 23849.87\n", - "2023-02-17, Close, 23772.31\n", - "2023-02-17, Close, 23838.64\n", - "2023-02-17, Close, 23805.15\n", - "2023-02-17, Close, 23707.55\n", - "2023-02-17, Close, 23668.10\n", - "2023-02-17, Close, 23637.04\n", - "2023-02-17, Close, 23797.21\n", - "2023-02-17, Close, 23743.22\n", - "2023-02-17, Close, 23753.42\n", - "2023-02-17, Close, 23789.82\n", - "2023-02-17, Close, 23869.46\n", - "2023-02-17, BUY CREATE, 23869.46\n", - "2023-02-17, Order Canceled/Margin/Rejected\n", - "2023-02-17, Close, 23782.23\n", - "2023-02-17, BUY CREATE, 23782.23\n", - "2023-02-17, Order Canceled/Margin/Rejected\n", - "2023-02-17, Close, 23865.86\n", - "2023-02-17, BUY CREATE, 23865.86\n", - "2023-02-17, Order Canceled/Margin/Rejected\n", - "2023-02-17, Close, 24130.50\n", - "2023-02-17, BUY CREATE, 24130.50\n", - "2023-02-17, Order Canceled/Margin/Rejected\n", - "2023-02-17, Close, 24091.21\n", - "2023-02-17, BUY CREATE, 24091.21\n", - "2023-02-17, Order Canceled/Margin/Rejected\n", - "2023-02-17, Close, 24298.35\n", - "2023-02-17, BUY CREATE, 24298.35\n", - "2023-02-17, Order Canceled/Margin/Rejected\n", - "2023-02-17, Close, 24360.66\n", - "2023-02-17, BUY CREATE, 24360.66\n", - "2023-02-17, Order Canceled/Margin/Rejected\n", - "2023-02-17, Close, 24524.49\n", - "2023-02-17, BUY CREATE, 24524.49\n", - "2023-02-17, Order Canceled/Margin/Rejected\n", - "2023-02-17, Close, 24820.92\n", - "2023-02-17, BUY CREATE, 24820.92\n", - "2023-02-17, Order Canceled/Margin/Rejected\n", - "2023-02-17, Close, 24476.42\n", - "2023-02-17, BUY CREATE, 24476.42\n", - "2023-02-17, Order Canceled/Margin/Rejected\n", - "2023-02-17, Close, 24679.14\n", - "2023-02-17, BUY CREATE, 24679.14\n", - "2023-02-17, Order Canceled/Margin/Rejected\n", - "2023-02-17, Close, 24569.97\n", - "2023-02-17, BUY CREATE, 24569.97\n", - "2023-02-18, Order Canceled/Margin/Rejected\n", - "2023-02-18, Close, 24632.74\n", - "2023-02-18, BUY CREATE, 24632.74\n", - "2023-02-18, Order Canceled/Margin/Rejected\n", - "2023-02-18, Close, 24660.14\n", - "2023-02-18, BUY CREATE, 24660.14\n", - "2023-02-18, Order Canceled/Margin/Rejected\n", - "2023-02-18, Close, 24555.86\n", - "2023-02-18, BUY CREATE, 24555.86\n", - "2023-02-18, Order Canceled/Margin/Rejected\n", - "2023-02-18, Close, 24609.68\n", - "2023-02-18, BUY CREATE, 24609.68\n", - "2023-02-18, Order Canceled/Margin/Rejected\n", - "2023-02-18, Close, 24624.01\n", - "2023-02-18, BUY CREATE, 24624.01\n", - "2023-02-18, Order Canceled/Margin/Rejected\n", - "2023-02-18, Close, 24641.42\n", - "2023-02-18, BUY CREATE, 24641.42\n", - "2023-02-18, Order Canceled/Margin/Rejected\n", - "2023-02-18, Close, 24626.66\n", - "2023-02-18, BUY CREATE, 24626.66\n", - "2023-02-18, Order Canceled/Margin/Rejected\n", - "2023-02-18, Close, 24519.01\n", - "2023-02-18, Close, 24588.51\n", - "2023-02-18, Close, 24553.04\n", - "2023-02-18, Close, 24456.81\n", - "2023-02-18, Close, 24519.42\n", - "2023-02-18, Close, 24620.33\n", - "2023-02-18, BUY CREATE, 24620.33\n", - "2023-02-18, Order Canceled/Margin/Rejected\n", - "2023-02-18, Close, 24581.77\n", - "2023-02-18, Close, 24691.13\n", - "2023-02-18, BUY CREATE, 24691.13\n", - "2023-02-18, Order Canceled/Margin/Rejected\n", - "2023-02-18, Close, 24668.26\n", - "2023-02-18, BUY CREATE, 24668.26\n", - "2023-02-18, Order Canceled/Margin/Rejected\n", - "2023-02-18, Close, 24642.84\n", - "2023-02-18, BUY CREATE, 24642.84\n", - "2023-02-18, Order Canceled/Margin/Rejected\n", - "2023-02-18, Close, 24686.00\n", - "2023-02-18, BUY CREATE, 24686.00\n", - "2023-02-18, Order Canceled/Margin/Rejected\n", - "2023-02-18, Close, 24710.54\n", - "2023-02-18, BUY CREATE, 24710.54\n", - "2023-02-18, Order Canceled/Margin/Rejected\n", - "2023-02-18, Close, 24608.34\n", - "2023-02-18, BUY CREATE, 24608.34\n", - "2023-02-18, Order Canceled/Margin/Rejected\n", - "2023-02-18, Close, 24594.70\n", - "2023-02-18, Close, 24615.83\n", - "2023-02-18, BUY CREATE, 24615.83\n", - "2023-02-18, Order Canceled/Margin/Rejected\n", - "2023-02-18, Close, 24627.32\n", - "2023-02-18, BUY CREATE, 24627.32\n", - "2023-02-18, Order Canceled/Margin/Rejected\n", - "2023-02-18, Close, 24631.95\n", - "2023-02-18, BUY CREATE, 24631.95\n", - "2023-02-19, Order Canceled/Margin/Rejected\n", - "2023-02-19, Close, 24739.25\n", - "2023-02-19, BUY CREATE, 24739.25\n", - "2023-02-19, Order Canceled/Margin/Rejected\n", - "2023-02-19, Close, 24707.49\n", - "2023-02-19, BUY CREATE, 24707.49\n", - "2023-02-19, Order Canceled/Margin/Rejected\n", - "2023-02-19, Close, 24683.57\n", - "2023-02-19, BUY CREATE, 24683.57\n", - "2023-02-19, Order Canceled/Margin/Rejected\n", - "2023-02-19, Close, 24681.69\n", - "2023-02-19, BUY CREATE, 24681.69\n", - "2023-02-19, Order Canceled/Margin/Rejected\n", - "2023-02-19, Close, 24712.85\n", - "2023-02-19, BUY CREATE, 24712.85\n", - "2023-02-19, Order Canceled/Margin/Rejected\n", - "2023-02-19, Close, 24757.63\n", - "2023-02-19, BUY CREATE, 24757.63\n", - "2023-02-19, Order Canceled/Margin/Rejected\n", - "2023-02-19, Close, 24628.59\n", - "2023-02-19, Close, 24582.62\n", - "2023-02-19, Close, 24569.06\n", - "2023-02-19, Close, 24599.42\n", - "2023-02-19, Close, 24654.81\n", - "2023-02-19, BUY CREATE, 24654.81\n", - "2023-02-19, Order Canceled/Margin/Rejected\n", - "2023-02-19, Close, 24669.43\n", - "2023-02-19, BUY CREATE, 24669.43\n", - "2023-02-19, Order Canceled/Margin/Rejected\n", - "2023-02-19, Close, 24696.68\n", - "2023-02-19, BUY CREATE, 24696.68\n", - "2023-02-19, Order Canceled/Margin/Rejected\n", - "2023-02-19, Close, 24669.99\n", - "2023-02-19, BUY CREATE, 24669.99\n", - "2023-02-19, Order Canceled/Margin/Rejected\n", - "2023-02-19, Close, 24758.60\n", - "2023-02-19, BUY CREATE, 24758.60\n", - "2023-02-19, Order Canceled/Margin/Rejected\n", - "2023-02-19, Close, 24922.21\n", - "2023-02-19, BUY CREATE, 24922.21\n", - "2023-02-19, Order Canceled/Margin/Rejected\n", - "2023-02-19, Close, 24777.62\n", - "2023-02-19, BUY CREATE, 24777.62\n", - "2023-02-19, Order Canceled/Margin/Rejected\n", - "2023-02-19, Close, 24361.74\n", - "2023-02-19, Close, 24464.45\n", - "2023-02-19, Close, 24523.79\n", - "2023-02-19, Close, 24518.52\n", - "2023-02-19, Close, 24541.08\n", - "2023-02-19, Close, 24491.15\n", - "2023-02-19, Close, 24271.76\n", - "2023-02-20, Close, 24211.07\n", - "2023-02-20, Close, 24236.97\n", - "2023-02-20, Close, 24344.03\n", - "2023-02-20, Close, 24418.95\n", - "2023-02-20, Close, 24484.26\n", - "2023-02-20, Close, 24492.32\n", - "2023-02-20, BUY CREATE, 24492.32\n", - "2023-02-20, Order Canceled/Margin/Rejected\n", - "2023-02-20, Close, 24501.55\n", - "2023-02-20, BUY CREATE, 24501.55\n", - "2023-02-20, Order Canceled/Margin/Rejected\n", - "2023-02-20, Close, 24503.65\n", - "2023-02-20, BUY CREATE, 24503.65\n", - "2023-02-20, Order Canceled/Margin/Rejected\n", - "2023-02-20, Close, 24459.14\n", - "2023-02-20, BUY CREATE, 24459.14\n", - "2023-02-20, Order Canceled/Margin/Rejected\n", - "2023-02-20, Close, 24884.30\n", - "2023-02-20, BUY CREATE, 24884.30\n", - "2023-02-20, Order Canceled/Margin/Rejected\n", - "2023-02-20, Close, 24907.56\n", - "2023-02-20, BUY CREATE, 24907.56\n", - "2023-02-20, Order Canceled/Margin/Rejected\n", - "2023-02-20, Close, 24890.00\n", - "2023-02-20, BUY CREATE, 24890.00\n", - "2023-02-20, Order Canceled/Margin/Rejected\n", - "2023-02-20, Close, 24815.98\n", - "2023-02-20, BUY CREATE, 24815.98\n", - "2023-02-20, Order Canceled/Margin/Rejected\n", - "2023-02-20, Close, 24855.25\n", - "2023-02-20, BUY CREATE, 24855.25\n", - "2023-02-20, Order Canceled/Margin/Rejected\n", - "2023-02-20, Close, 24971.00\n", - "2023-02-20, BUY CREATE, 24971.00\n", - "2023-02-20, Order Canceled/Margin/Rejected\n", - "2023-02-20, Close, 24942.87\n", - "2023-02-20, BUY CREATE, 24942.87\n", - "2023-02-20, Order Canceled/Margin/Rejected\n", - "2023-02-20, Close, 24884.20\n", - "2023-02-20, BUY CREATE, 24884.20\n", - "2023-02-20, Order Canceled/Margin/Rejected\n", - "2023-02-20, Close, 24810.05\n", - "2023-02-20, BUY CREATE, 24810.05\n", - "2023-02-20, Order Canceled/Margin/Rejected\n", - "2023-02-20, Close, 24819.67\n", - "2023-02-20, BUY CREATE, 24819.67\n", - "2023-02-20, Order Canceled/Margin/Rejected\n", - "2023-02-20, Close, 24872.19\n", - "2023-02-20, BUY CREATE, 24872.19\n", - "2023-02-20, Order Canceled/Margin/Rejected\n", - "2023-02-20, Close, 24800.92\n", - "2023-02-20, BUY CREATE, 24800.92\n", - "2023-02-20, Order Canceled/Margin/Rejected\n", - "2023-02-20, Close, 24769.57\n", - "2023-02-20, Close, 24704.52\n", - "2023-02-20, Close, 24842.20\n", - "2023-02-21, Close, 24858.60\n", - "2023-02-21, BUY CREATE, 24858.60\n", - "2023-02-21, Order Canceled/Margin/Rejected\n", - "2023-02-21, Close, 24863.71\n", - "2023-02-21, BUY CREATE, 24863.71\n", - "2023-02-21, Order Canceled/Margin/Rejected\n", - "2023-02-21, Close, 24911.51\n", - "2023-02-21, BUY CREATE, 24911.51\n", - "2023-02-21, Order Canceled/Margin/Rejected\n", - "2023-02-21, Close, 24926.56\n", - "2023-02-21, BUY CREATE, 24926.56\n", - "2023-02-21, Order Canceled/Margin/Rejected\n", - "2023-02-21, Close, 24904.14\n", - "2023-02-21, BUY CREATE, 24904.14\n", - "2023-02-21, Order Canceled/Margin/Rejected\n", - "2023-02-21, Close, 24945.37\n", - "2023-02-21, BUY CREATE, 24945.37\n", - "2023-02-21, Order Canceled/Margin/Rejected\n", - "2023-02-21, Close, 25032.42\n", - "2023-02-21, BUY CREATE, 25032.42\n", - "2023-02-21, Order Canceled/Margin/Rejected\n", - "2023-02-21, Close, 24999.95\n", - "2023-02-21, BUY CREATE, 24999.95\n", - "2023-02-21, Order Canceled/Margin/Rejected\n", - "2023-02-21, Close, 24689.23\n", - "2023-02-21, Close, 24799.99\n", - "2023-02-21, Close, 24702.72\n", - "2023-02-21, Close, 24572.83\n", - "2023-02-21, Close, 24634.00\n", - "2023-02-21, Close, 24569.80\n", - "2023-02-21, Close, 24684.93\n", - "2023-02-21, Close, 24558.09\n", - "2023-02-21, Close, 24403.27\n", - "2023-02-21, Close, 24655.45\n", - "2023-02-21, Close, 24685.06\n", - "2023-02-21, Close, 24602.88\n", - "2023-02-21, Close, 24465.63\n", - "2023-02-21, Close, 24201.20\n", - "2023-02-21, Close, 24384.11\n", - "2023-02-21, Close, 24452.16\n", - "2023-02-22, Close, 24412.47\n", - "2023-02-22, Close, 24175.50\n", - "2023-02-22, Close, 24170.47\n", - "2023-02-22, Close, 24201.85\n", - "2023-02-22, Close, 24155.23\n", - "2023-02-22, Close, 24107.02\n", - "2023-02-22, Close, 23950.15\n", - "2023-02-22, Close, 24060.95\n", - "2023-02-22, Close, 23965.78\n", - "2023-02-22, Close, 24105.60\n", - "2023-02-22, Close, 24181.69\n", - "2023-02-22, Close, 24160.87\n", - "2023-02-22, Close, 24129.68\n", - "2023-02-22, Close, 24109.71\n", - "2023-02-22, Close, 23939.75\n", - "2023-02-22, Close, 23713.61\n", - "2023-02-22, Close, 23634.98\n", - "2023-02-22, Close, 23745.83\n", - "2023-02-22, Close, 23740.08\n", - "2023-02-22, Close, 23791.67\n", - "2023-02-22, Close, 23799.49\n", - "2023-02-22, Close, 23801.77\n", - "2023-02-22, Close, 24100.68\n", - "2023-02-22, BUY CREATE, 24100.68\n", - "2023-02-22, Order Canceled/Margin/Rejected\n", - "2023-02-22, Close, 24182.21\n", - "2023-02-22, BUY CREATE, 24182.21\n", - "2023-02-23, Order Canceled/Margin/Rejected\n", - "2023-02-23, Close, 24129.22\n", - "2023-02-23, BUY CREATE, 24129.22\n", - "2023-02-23, Order Canceled/Margin/Rejected\n", - "2023-02-23, Close, 24189.43\n", - "2023-02-23, BUY CREATE, 24189.43\n", - "2023-02-23, Order Canceled/Margin/Rejected\n", - "2023-02-23, Close, 24531.61\n", - "2023-02-23, BUY CREATE, 24531.61\n", - "2023-02-23, Order Canceled/Margin/Rejected\n", - "2023-02-23, Close, 24454.85\n", - "2023-02-23, BUY CREATE, 24454.85\n", - "2023-02-23, Order Canceled/Margin/Rejected\n", - "2023-02-23, Close, 24521.24\n", - "2023-02-23, BUY CREATE, 24521.24\n", - "2023-02-23, Order Canceled/Margin/Rejected\n", - "2023-02-23, Close, 24391.34\n", - "2023-02-23, BUY CREATE, 24391.34\n", - "2023-02-23, Order Canceled/Margin/Rejected\n", - "2023-02-23, Close, 24390.36\n", - "2023-02-23, BUY CREATE, 24390.36\n", - "2023-02-23, Order Canceled/Margin/Rejected\n", - "2023-02-23, Close, 24376.27\n", - "2023-02-23, BUY CREATE, 24376.27\n", - "2023-02-23, Order Canceled/Margin/Rejected\n", - "2023-02-23, Close, 24406.78\n", - "2023-02-23, BUY CREATE, 24406.78\n", - "2023-02-23, Order Canceled/Margin/Rejected\n", - "2023-02-23, Close, 24282.42\n", - "2023-02-23, BUY CREATE, 24282.42\n", - "2023-02-23, Order Canceled/Margin/Rejected\n", - "2023-02-23, Close, 24255.92\n", - "2023-02-23, BUY CREATE, 24255.92\n", - "2023-02-23, Order Canceled/Margin/Rejected\n", - "2023-02-23, Close, 23780.20\n", - "2023-02-23, Close, 23912.09\n", - "2023-02-23, Close, 24010.23\n", - "2023-02-23, Close, 24011.30\n", - "2023-02-23, Close, 23950.92\n", - "2023-02-23, Close, 23762.61\n", - "2023-02-23, Close, 23840.97\n", - "2023-02-23, Close, 23861.72\n", - "2023-02-23, Close, 23971.50\n", - "2023-02-23, Close, 23943.80\n", - "2023-02-23, Close, 23873.57\n", - "2023-02-23, Close, 23866.11\n", - "2023-02-23, Close, 23940.20\n", - "2023-02-24, Close, 23958.71\n", - "2023-02-24, BUY CREATE, 23958.71\n", - "2023-02-24, Order Canceled/Margin/Rejected\n", - "2023-02-24, Close, 24002.85\n", - "2023-02-24, BUY CREATE, 24002.85\n", - "2023-02-24, Order Canceled/Margin/Rejected\n", - "2023-02-24, Close, 23940.42\n", - "2023-02-24, BUY CREATE, 23940.42\n", - "2023-02-24, Order Canceled/Margin/Rejected\n", - "2023-02-24, Close, 23954.05\n", - "2023-02-24, BUY CREATE, 23954.05\n", - "2023-02-24, Order Canceled/Margin/Rejected\n", - "2023-02-24, Close, 23942.21\n", - "2023-02-24, BUY CREATE, 23942.21\n", - "2023-02-24, Order Canceled/Margin/Rejected\n", - "2023-02-24, Close, 23896.60\n", - "2023-02-24, Close, 23892.06\n", - "2023-02-24, Close, 23830.32\n", - "2023-02-24, Close, 23900.34\n", - "2023-02-24, Close, 23829.03\n", - "2023-02-24, Close, 23861.86\n", - "2023-02-24, Close, 23883.72\n", - "2023-02-24, Close, 23886.70\n", - "2023-02-24, Close, 23781.76\n", - "2023-02-24, Close, 23810.20\n", - "2023-02-24, Close, 23351.31\n", - "2023-02-24, Close, 23191.67\n", - "2023-02-24, Close, 23066.45\n", - "2023-02-24, Close, 23087.59\n", - "2023-02-24, Close, 23182.27\n", - "2023-02-24, Close, 23213.62\n", - "2023-02-24, Close, 23102.59\n", - "2023-02-24, Close, 23119.86\n", - "2023-02-24, Close, 23185.29\n", - "2023-02-25, Close, 23165.61\n", - "2023-02-25, Close, 23182.56\n", - "2023-02-25, Close, 23085.01\n", - "2023-02-25, Close, 23077.64\n", - "2023-02-25, Close, 23127.22\n", - "2023-02-25, Close, 23040.57\n", - "2023-02-25, Close, 23088.60\n", - "2023-02-25, Close, 23117.16\n", - "2023-02-25, Close, 23100.98\n", - "2023-02-25, Close, 23059.24\n", - "2023-02-25, Close, 22931.05\n", - "2023-02-25, Close, 22983.85\n", - "2023-02-25, Close, 23018.34\n", - "2023-02-25, Close, 23004.12\n", - "2023-02-25, Close, 23001.87\n", - "2023-02-25, Close, 23006.18\n", - "2023-02-25, Close, 23012.55\n", - "2023-02-25, Close, 23042.52\n", - "2023-02-25, BUY CREATE, 23042.52\n", - "2023-02-25, Order Canceled/Margin/Rejected\n", - "2023-02-25, Close, 22979.30\n", - "2023-02-25, Close, 22983.05\n", - "2023-02-25, Close, 22922.58\n", - "2023-02-25, Close, 22934.42\n", - "2023-02-25, Close, 23118.73\n", - "2023-02-25, BUY CREATE, 23118.73\n", - "2023-02-25, Order Canceled/Margin/Rejected\n", - "2023-02-25, Close, 23157.07\n", - "2023-02-25, BUY CREATE, 23157.07\n", - "2023-02-26, Order Canceled/Margin/Rejected\n", - "2023-02-26, Close, 23097.97\n", - "2023-02-26, BUY CREATE, 23097.97\n", - "2023-02-26, Order Canceled/Margin/Rejected\n", - "2023-02-26, Close, 23112.70\n", - "2023-02-26, BUY CREATE, 23112.70\n", - "2023-02-26, Order Canceled/Margin/Rejected\n", - "2023-02-26, Close, 23236.01\n", - "2023-02-26, BUY CREATE, 23236.01\n", - "2023-02-26, Order Canceled/Margin/Rejected\n", - "2023-02-26, Close, 23214.53\n", - "2023-02-26, BUY CREATE, 23214.53\n", - "2023-02-26, Order Canceled/Margin/Rejected\n", - "2023-02-26, Close, 23189.27\n", - "2023-02-26, BUY CREATE, 23189.27\n", - "2023-02-26, Order Canceled/Margin/Rejected\n", - "2023-02-26, Close, 23127.06\n", - "2023-02-26, BUY CREATE, 23127.06\n", - "2023-02-26, Order Canceled/Margin/Rejected\n", - "2023-02-26, Close, 23167.40\n", - "2023-02-26, BUY CREATE, 23167.40\n", - "2023-02-26, Order Canceled/Margin/Rejected\n", - "2023-02-26, Close, 23154.57\n", - "2023-02-26, BUY CREATE, 23154.57\n", - "2023-02-26, Order Canceled/Margin/Rejected\n", - "2023-02-26, Close, 23151.95\n", - "2023-02-26, BUY CREATE, 23151.95\n", - "2023-02-26, Order Canceled/Margin/Rejected\n", - "2023-02-26, Close, 23279.50\n", - "2023-02-26, BUY CREATE, 23279.50\n", - "2023-02-26, Order Canceled/Margin/Rejected\n", - "2023-02-26, Close, 23236.81\n", - "2023-02-26, BUY CREATE, 23236.81\n", - "2023-02-26, Order Canceled/Margin/Rejected\n", - "2023-02-26, Close, 23253.44\n", - "2023-02-26, BUY CREATE, 23253.44\n", - "2023-02-26, Order Canceled/Margin/Rejected\n", - "2023-02-26, Close, 23161.99\n", - "2023-02-26, Close, 23214.15\n", - "2023-02-26, BUY CREATE, 23214.15\n", - "2023-02-26, Order Canceled/Margin/Rejected\n", - "2023-02-26, Close, 23193.65\n", - "2023-02-26, BUY CREATE, 23193.65\n", - "2023-02-26, Order Canceled/Margin/Rejected\n", - "2023-02-26, Close, 23247.23\n", - "2023-02-26, BUY CREATE, 23247.23\n", - "2023-02-26, Order Canceled/Margin/Rejected\n", - "2023-02-26, Close, 23184.92\n", - "2023-02-26, Close, 23239.54\n", - "2023-02-26, BUY CREATE, 23239.54\n", - "2023-02-26, Order Canceled/Margin/Rejected\n", - "2023-02-26, Close, 23486.43\n", - "2023-02-26, BUY CREATE, 23486.43\n", - "2023-02-26, Order Canceled/Margin/Rejected\n", - "2023-02-26, Close, 23499.33\n", - "2023-02-26, BUY CREATE, 23499.33\n", - "2023-02-26, Order Canceled/Margin/Rejected\n", - "2023-02-26, Close, 23639.68\n", - "2023-02-26, BUY CREATE, 23639.68\n", - "2023-02-26, Order Canceled/Margin/Rejected\n", - "2023-02-26, Close, 23560.60\n", - "2023-02-26, BUY CREATE, 23560.60\n", - "2023-02-26, Order Canceled/Margin/Rejected\n", - "2023-02-26, Close, 23476.41\n", - "2023-02-26, BUY CREATE, 23476.41\n", - "2023-02-26, Order Canceled/Margin/Rejected\n", - "2023-02-26, Close, 23554.85\n", - "2023-02-26, BUY CREATE, 23554.85\n", - "2023-02-27, Order Canceled/Margin/Rejected\n", - "2023-02-27, Close, 23492.64\n", - "2023-02-27, BUY CREATE, 23492.64\n", - "2023-02-27, Order Canceled/Margin/Rejected\n", - "2023-02-27, Close, 23552.76\n", - "2023-02-27, BUY CREATE, 23552.76\n", - "2023-02-27, Order Canceled/Margin/Rejected\n", - "2023-02-27, Close, 23558.64\n", - "2023-02-27, BUY CREATE, 23558.64\n", - "2023-02-27, Order Canceled/Margin/Rejected\n", - "2023-02-27, Close, 23551.62\n", - "2023-02-27, BUY CREATE, 23551.62\n", - "2023-02-27, Order Canceled/Margin/Rejected\n", - "2023-02-27, Close, 23491.46\n", - "2023-02-27, BUY CREATE, 23491.46\n", - "2023-02-27, Order Canceled/Margin/Rejected\n", - "2023-02-27, Close, 23391.52\n", - "2023-02-27, Close, 23405.39\n", - "2023-02-27, Close, 23423.31\n", - "2023-02-27, Close, 23358.91\n", - "2023-02-27, Close, 23389.37\n", - "2023-02-27, Close, 23378.79\n", - "2023-02-27, Close, 23428.87\n", - "2023-02-27, Close, 23403.18\n", - "2023-02-27, Close, 23703.01\n", - "2023-02-27, BUY CREATE, 23703.01\n", - "2023-02-27, Order Canceled/Margin/Rejected\n", - "2023-02-27, Close, 23803.46\n", - "2023-02-27, BUY CREATE, 23803.46\n", - "2023-02-27, Order Canceled/Margin/Rejected\n", - "2023-02-27, Close, 23559.40\n", - "2023-02-27, BUY CREATE, 23559.40\n", - "2023-02-27, Order Canceled/Margin/Rejected\n", - "2023-02-27, Close, 23391.49\n", - "2023-02-27, Close, 23334.40\n", - "2023-02-27, Close, 23288.77\n", - "2023-02-27, Close, 23276.35\n", - "2023-02-27, Close, 23321.37\n", - "2023-02-27, Close, 23381.38\n", - "2023-02-27, Close, 23482.13\n", - "2023-02-27, BUY CREATE, 23482.13\n", - "2023-02-27, Order Canceled/Margin/Rejected\n", - "2023-02-27, Close, 23492.09\n", - "2023-02-27, BUY CREATE, 23492.09\n", - "2023-02-28, Order Canceled/Margin/Rejected\n", - "2023-02-28, Close, 23420.55\n", - "2023-02-28, Close, 23433.16\n", - "2023-02-28, Close, 23441.76\n", - "2023-02-28, Close, 23467.52\n", - "2023-02-28, BUY CREATE, 23467.52\n", - "2023-02-28, Order Canceled/Margin/Rejected\n", - "2023-02-28, Close, 23415.00\n", - "2023-02-28, Close, 23378.45\n", - "2023-02-28, Close, 23392.30\n", - "2023-02-28, Close, 23236.68\n", - "2023-02-28, Close, 23264.21\n", - "2023-02-28, Close, 23267.79\n", - "2023-02-28, Close, 23363.90\n", - "2023-02-28, Close, 23392.69\n", - "2023-02-28, BUY CREATE, 23392.69\n", - "2023-02-28, Order Canceled/Margin/Rejected\n", - "2023-02-28, Close, 23454.54\n", - "2023-02-28, BUY CREATE, 23454.54\n", - "2023-02-28, Order Canceled/Margin/Rejected\n", - "2023-02-28, Close, 23403.17\n", - "2023-02-28, BUY CREATE, 23403.17\n", - "2023-02-28, Order Canceled/Margin/Rejected\n", - "2023-02-28, Close, 23425.94\n", - "2023-02-28, BUY CREATE, 23425.94\n", - "2023-02-28, Order Canceled/Margin/Rejected\n", - "2023-02-28, Close, 23518.30\n", - "2023-02-28, BUY CREATE, 23518.30\n", - "2023-02-28, Order Canceled/Margin/Rejected\n", - "2023-02-28, Close, 23456.05\n", - "2023-02-28, BUY CREATE, 23456.05\n", - "2023-02-28, Order Canceled/Margin/Rejected\n", - "2023-02-28, Close, 23526.54\n", - "2023-02-28, BUY CREATE, 23526.54\n", - "2023-02-28, Order Canceled/Margin/Rejected\n", - "2023-02-28, Close, 23481.63\n", - "2023-02-28, BUY CREATE, 23481.63\n", - "2023-02-28, Order Canceled/Margin/Rejected\n", - "2023-02-28, Close, 23264.36\n", - "2023-02-28, Close, 23272.05\n", - "2023-02-28, Close, 23139.89\n", - "2023-02-28, Close, 23161.38\n", - "2023-02-28, Close, 23141.57\n", - "2023-03-01, Close, 23101.00\n", - "2023-03-01, Close, 23245.96\n", - "2023-03-01, Close, 23331.21\n", - "2023-03-01, BUY CREATE, 23331.21\n", - "2023-03-01, Order Canceled/Margin/Rejected\n", - "2023-03-01, Close, 23441.14\n", - "2023-03-01, BUY CREATE, 23441.14\n", - "2023-03-01, Order Canceled/Margin/Rejected\n", - "2023-03-01, Close, 23794.48\n", - "2023-03-01, BUY CREATE, 23794.48\n", - "2023-03-01, Order Canceled/Margin/Rejected\n", - "2023-03-01, Close, 23694.17\n", - "2023-03-01, BUY CREATE, 23694.17\n", - "2023-03-01, Order Canceled/Margin/Rejected\n", - "2023-03-01, Close, 23752.75\n", - "2023-03-01, BUY CREATE, 23752.75\n", - "2023-03-01, Order Canceled/Margin/Rejected\n", - "2023-03-01, Close, 23716.06\n", - "2023-03-01, BUY CREATE, 23716.06\n", - "2023-03-01, Order Canceled/Margin/Rejected\n", - "2023-03-01, Close, 23867.78\n", - "2023-03-01, BUY CREATE, 23867.78\n", - "2023-03-01, Order Canceled/Margin/Rejected\n", - "2023-03-01, Close, 23756.14\n", - "2023-03-01, BUY CREATE, 23756.14\n", - "2023-03-01, Order Canceled/Margin/Rejected\n", - "2023-03-01, Close, 23777.62\n", - "2023-03-01, BUY CREATE, 23777.62\n", - "2023-03-01, Order Canceled/Margin/Rejected\n", - "2023-03-01, Close, 23739.17\n", - "2023-03-01, BUY CREATE, 23739.17\n", - "2023-03-01, Order Canceled/Margin/Rejected\n", - "2023-03-01, Close, 23722.60\n", - "2023-03-01, BUY CREATE, 23722.60\n", - "2023-03-01, Order Canceled/Margin/Rejected\n", - "2023-03-01, Close, 23689.45\n", - "2023-03-01, BUY CREATE, 23689.45\n", - "2023-03-01, Order Canceled/Margin/Rejected\n", - "2023-03-01, Close, 23679.86\n", - "2023-03-01, BUY CREATE, 23679.86\n", - "2023-03-01, Order Canceled/Margin/Rejected\n", - "2023-03-01, Close, 23711.09\n", - "2023-03-01, BUY CREATE, 23711.09\n", - "2023-03-01, Order Canceled/Margin/Rejected\n", - "2023-03-01, Close, 23691.90\n", - "2023-03-01, BUY CREATE, 23691.90\n", - "2023-03-01, Order Canceled/Margin/Rejected\n", - "2023-03-01, Close, 23704.68\n", - "2023-03-01, Close, 23690.88\n", - "2023-03-01, Close, 23355.14\n", - "2023-03-01, Close, 23421.23\n", - "2023-03-01, Close, 23553.73\n", - "2023-03-01, Close, 23531.94\n", - "2023-03-01, Close, 23628.97\n", - "2023-03-02, Close, 23606.95\n", - "2023-03-02, Close, 23513.50\n", - "2023-03-02, Close, 23494.47\n", - "2023-03-02, Close, 23494.29\n", - "2023-03-02, Close, 23536.33\n", - "2023-03-02, Close, 23445.71\n", - "2023-03-02, Close, 23437.86\n", - "2023-03-02, Close, 23391.87\n", - "2023-03-02, Close, 23443.67\n", - "2023-03-02, Close, 23400.39\n", - "2023-03-02, Close, 23375.64\n", - "2023-03-02, Close, 23414.73\n", - "2023-03-02, Close, 23355.54\n", - "2023-03-02, Close, 23308.95\n", - "2023-03-02, Close, 23305.46\n", - "2023-03-02, Close, 23361.11\n", - "2023-03-02, Close, 23279.98\n", - "2023-03-02, Close, 23268.91\n", - "2023-03-02, Close, 23441.14\n", - "2023-03-02, BUY CREATE, 23441.14\n", - "2023-03-02, Order Canceled/Margin/Rejected\n", - "2023-03-02, Close, 23463.99\n", - "2023-03-02, BUY CREATE, 23463.99\n", - "2023-03-02, Order Canceled/Margin/Rejected\n", - "2023-03-02, Close, 23467.06\n", - "2023-03-02, BUY CREATE, 23467.06\n", - "2023-03-02, Order Canceled/Margin/Rejected\n", - "2023-03-02, Close, 23408.65\n", - "2023-03-02, BUY CREATE, 23408.65\n", - "2023-03-02, Order Canceled/Margin/Rejected\n", - "2023-03-02, Close, 23460.97\n", - "2023-03-02, BUY CREATE, 23460.97\n", - "2023-03-02, Order Canceled/Margin/Rejected\n", - "2023-03-02, Close, 23465.32\n", - "2023-03-02, BUY CREATE, 23465.32\n", - "2023-03-03, Order Canceled/Margin/Rejected\n", - "2023-03-03, Close, 23418.50\n", - "2023-03-03, BUY CREATE, 23418.50\n", - "2023-03-03, Order Canceled/Margin/Rejected\n", - "2023-03-03, Close, 22150.31\n", - "2023-03-03, Close, 22348.57\n", - "2023-03-03, Close, 22319.69\n", - "2023-03-03, Close, 22376.50\n", - "2023-03-03, Close, 22341.80\n", - "2023-03-03, Close, 22378.73\n", - "2023-03-03, Close, 22360.78\n", - "2023-03-03, Close, 22430.33\n", - "2023-03-03, Close, 22368.54\n", - "2023-03-03, Close, 22351.43\n", - "2023-03-03, Close, 22342.92\n", - "2023-03-03, Close, 22354.00\n", - "2023-03-03, Close, 22402.80\n", - "2023-03-03, Close, 22376.00\n", - "2023-03-03, Close, 22336.33\n", - "2023-03-03, Close, 22374.15\n", - "2023-03-03, BUY CREATE, 22374.15\n", - "2023-03-03, Order Canceled/Margin/Rejected\n", - "2023-03-03, Close, 22413.17\n", - "2023-03-03, BUY CREATE, 22413.17\n", - "2023-03-03, Order Canceled/Margin/Rejected\n", - "2023-03-03, Close, 22313.20\n", - "2023-03-03, Close, 22358.48\n", - "2023-03-03, Close, 22308.16\n", - "2023-03-03, Close, 22239.92\n", - "2023-03-03, Close, 22320.99\n", - "2023-03-03, Close, 22354.34\n", - "2023-03-03, BUY CREATE, 22354.34\n", - "2023-03-04, Order Canceled/Margin/Rejected\n", - "2023-03-04, Close, 22368.49\n", - "2023-03-04, BUY CREATE, 22368.49\n", - "2023-03-04, Order Canceled/Margin/Rejected\n", - "2023-03-04, Close, 22342.01\n", - "2023-03-04, Close, 22339.87\n", - "2023-03-04, Close, 22346.66\n", - "2023-03-04, BUY CREATE, 22346.66\n", - "2023-03-04, Order Canceled/Margin/Rejected\n", - "2023-03-04, Close, 22343.94\n", - "2023-03-04, BUY CREATE, 22343.94\n", - "2023-03-04, Order Canceled/Margin/Rejected\n", - "2023-03-04, Close, 22328.18\n", - "2023-03-04, Close, 22364.69\n", - "2023-03-04, BUY CREATE, 22364.69\n", - "2023-03-04, Order Canceled/Margin/Rejected\n", - "2023-03-04, Close, 22359.09\n", - "2023-03-04, BUY CREATE, 22359.09\n", - "2023-03-04, Order Canceled/Margin/Rejected\n", - "2023-03-04, Close, 22341.21\n", - "2023-03-04, BUY CREATE, 22341.21\n", - "2023-03-04, Order Canceled/Margin/Rejected\n", - "2023-03-04, Close, 22350.97\n", - "2023-03-04, BUY CREATE, 22350.97\n", - "2023-03-04, Order Canceled/Margin/Rejected\n", - "2023-03-04, Close, 22332.76\n", - "2023-03-04, Close, 22349.46\n", - "2023-03-04, BUY CREATE, 22349.46\n", - "2023-03-04, Order Canceled/Margin/Rejected\n", - "2023-03-04, Close, 22385.31\n", - "2023-03-04, BUY CREATE, 22385.31\n", - "2023-03-04, Order Canceled/Margin/Rejected\n", - "2023-03-04, Close, 22355.80\n", - "2023-03-04, BUY CREATE, 22355.80\n", - "2023-03-04, Order Canceled/Margin/Rejected\n", - "2023-03-04, Close, 22342.79\n", - "2023-03-04, Close, 22317.87\n", - "2023-03-04, Close, 22324.86\n", - "2023-03-04, Close, 22307.12\n", - "2023-03-04, Close, 22320.97\n", - "2023-03-04, Close, 22250.78\n", - "2023-03-04, Close, 22250.34\n", - "2023-03-04, Close, 22213.65\n", - "2023-03-04, Close, 22305.98\n", - "2023-03-04, Close, 22346.57\n", - "2023-03-04, BUY CREATE, 22346.57\n", - "2023-03-05, Order Canceled/Margin/Rejected\n", - "2023-03-05, Close, 22379.25\n", - "2023-03-05, BUY CREATE, 22379.25\n", - "2023-03-05, Order Canceled/Margin/Rejected\n", - "2023-03-05, Close, 22591.68\n", - "2023-03-05, BUY CREATE, 22591.68\n", - "2023-03-05, Order Canceled/Margin/Rejected\n", - "2023-03-05, Close, 22360.82\n", - "2023-03-05, BUY CREATE, 22360.82\n", - "2023-03-05, Order Canceled/Margin/Rejected\n", - "2023-03-05, Close, 22387.02\n", - "2023-03-05, BUY CREATE, 22387.02\n", - "2023-03-05, Order Canceled/Margin/Rejected\n", - "2023-03-05, Close, 22440.73\n", - "2023-03-05, BUY CREATE, 22440.73\n", - "2023-03-05, Order Canceled/Margin/Rejected\n", - "2023-03-05, Close, 22418.99\n", - "2023-03-05, BUY CREATE, 22418.99\n", - "2023-03-05, Order Canceled/Margin/Rejected\n", - "2023-03-05, Close, 22415.73\n", - "2023-03-05, BUY CREATE, 22415.73\n", - "2023-03-05, Order Canceled/Margin/Rejected\n", - "2023-03-05, Close, 22375.70\n", - "2023-03-05, BUY CREATE, 22375.70\n", - "2023-03-05, Order Canceled/Margin/Rejected\n", - "2023-03-05, Close, 22342.71\n", - "2023-03-05, Close, 22368.47\n", - "2023-03-05, BUY CREATE, 22368.47\n", - "2023-03-05, Order Canceled/Margin/Rejected\n", - "2023-03-05, Close, 22410.83\n", - "2023-03-05, BUY CREATE, 22410.83\n", - "2023-03-05, Order Canceled/Margin/Rejected\n", - "2023-03-05, Close, 22389.77\n", - "2023-03-05, BUY CREATE, 22389.77\n", - "2023-03-05, Order Canceled/Margin/Rejected\n", - "2023-03-05, Close, 22420.34\n", - "2023-03-05, BUY CREATE, 22420.34\n", - "2023-03-05, Order Canceled/Margin/Rejected\n", - "2023-03-05, Close, 22465.77\n", - "2023-03-05, BUY CREATE, 22465.77\n", - "2023-03-05, Order Canceled/Margin/Rejected\n", - "2023-03-05, Close, 22432.46\n", - "2023-03-05, BUY CREATE, 22432.46\n", - "2023-03-05, Order Canceled/Margin/Rejected\n", - "2023-03-05, Close, 22436.18\n", - "2023-03-05, BUY CREATE, 22436.18\n", - "2023-03-05, Order Canceled/Margin/Rejected\n", - "2023-03-05, Close, 22442.92\n", - "2023-03-05, BUY CREATE, 22442.92\n", - "2023-03-05, Order Canceled/Margin/Rejected\n", - "2023-03-05, Close, 22427.47\n", - "2023-03-05, BUY CREATE, 22427.47\n", - "2023-03-05, Order Canceled/Margin/Rejected\n", - "2023-03-05, Close, 22429.26\n", - "2023-03-05, BUY CREATE, 22429.26\n", - "2023-03-05, Order Canceled/Margin/Rejected\n", - "2023-03-05, Close, 22403.45\n", - "2023-03-05, Close, 22409.05\n", - "2023-03-05, Close, 22483.46\n", - "2023-03-05, BUY CREATE, 22483.46\n", - "2023-03-05, Order Canceled/Margin/Rejected\n", - "2023-03-05, Close, 22433.00\n", - "2023-03-05, BUY CREATE, 22433.00\n", - "2023-03-05, Order Canceled/Margin/Rejected\n", - "2023-03-05, Close, 22430.24\n", - "2023-03-05, BUY CREATE, 22430.24\n", - "2023-03-06, Order Canceled/Margin/Rejected\n", - "2023-03-06, Close, 22446.48\n", - "2023-03-06, BUY CREATE, 22446.48\n", - "2023-03-06, Order Canceled/Margin/Rejected\n", - "2023-03-06, Close, 22379.24\n", - "2023-03-06, Close, 22391.58\n", - "2023-03-06, Close, 22387.19\n", - "2023-03-06, Close, 22342.63\n", - "2023-03-06, Close, 22370.18\n", - "2023-03-06, Close, 22405.93\n", - "2023-03-06, Close, 22392.74\n", - "2023-03-06, Close, 22413.23\n", - "2023-03-06, BUY CREATE, 22413.23\n", - "2023-03-06, Order Canceled/Margin/Rejected\n", - "2023-03-06, Close, 22403.68\n", - "2023-03-06, Close, 22399.78\n", - "2023-03-06, Close, 22379.57\n", - "2023-03-06, Close, 22397.42\n", - "2023-03-06, Close, 22439.77\n", - "2023-03-06, BUY CREATE, 22439.77\n", - "2023-03-06, Order Canceled/Margin/Rejected\n", - "2023-03-06, Close, 22450.00\n", - "2023-03-06, BUY CREATE, 22450.00\n", - "2023-03-06, Order Canceled/Margin/Rejected\n", - "2023-03-06, Close, 22553.42\n", - "2023-03-06, BUY CREATE, 22553.42\n", - "2023-03-06, Order Canceled/Margin/Rejected\n", - "2023-03-06, Close, 22524.46\n", - "2023-03-06, BUY CREATE, 22524.46\n", - "2023-03-06, Order Canceled/Margin/Rejected\n", - "2023-03-06, Close, 22481.63\n", - "2023-03-06, BUY CREATE, 22481.63\n", - "2023-03-06, Order Canceled/Margin/Rejected\n", - "2023-03-06, Close, 22504.09\n", - "2023-03-06, BUY CREATE, 22504.09\n", - "2023-03-06, Order Canceled/Margin/Rejected\n", - "2023-03-06, Close, 22393.35\n", - "2023-03-06, Close, 22352.17\n", - "2023-03-06, Close, 22408.53\n", - "2023-03-06, Close, 22433.65\n", - "2023-03-06, Close, 22410.00\n", - "2023-03-07, Close, 22415.92\n", - "2023-03-07, Close, 22484.80\n", - "2023-03-07, BUY CREATE, 22484.80\n", - "2023-03-07, Order Canceled/Margin/Rejected\n", - "2023-03-07, Close, 22497.86\n", - "2023-03-07, BUY CREATE, 22497.86\n", - "2023-03-07, Order Canceled/Margin/Rejected\n", - "2023-03-07, Close, 22460.54\n", - "2023-03-07, BUY CREATE, 22460.54\n", - "2023-03-07, Order Canceled/Margin/Rejected\n", - "2023-03-07, Close, 22474.36\n", - "2023-03-07, BUY CREATE, 22474.36\n", - "2023-03-07, Order Canceled/Margin/Rejected\n", - "2023-03-07, Close, 22460.67\n", - "2023-03-07, BUY CREATE, 22460.67\n", - "2023-03-07, Order Canceled/Margin/Rejected\n", - "2023-03-07, Close, 22438.52\n", - "2023-03-07, Close, 22419.71\n", - "2023-03-07, Close, 22420.18\n", - "2023-03-07, Close, 22381.17\n", - "2023-03-07, Close, 22372.85\n", - "2023-03-07, Close, 22351.02\n", - "2023-03-07, Close, 22399.07\n", - "2023-03-07, Close, 22363.89\n", - "2023-03-07, Close, 22309.18\n", - "2023-03-07, Close, 22320.90\n", - "2023-03-07, Close, 22238.77\n", - "2023-03-07, Close, 22309.28\n", - "2023-03-07, Close, 22199.96\n", - "2023-03-07, Close, 22124.77\n", - "2023-03-07, Close, 22054.51\n", - "2023-03-07, Close, 22056.26\n", - "2023-03-07, Close, 22105.65\n", - "2023-03-07, Close, 22197.96\n", - "2023-03-08, Close, 22245.86\n", - "2023-03-08, BUY CREATE, 22245.86\n", - "2023-03-08, Order Canceled/Margin/Rejected\n", - "2023-03-08, Close, 22173.70\n", - "2023-03-08, Close, 22177.00\n", - "2023-03-08, Close, 22152.52\n", - "2023-03-08, Close, 22141.79\n", - "2023-03-08, Close, 21954.98\n", - "2023-03-08, Close, 22025.63\n", - "2023-03-08, Close, 21971.03\n", - "2023-03-08, Close, 21989.14\n", - "2023-03-08, Close, 22012.75\n", - "2023-03-08, Close, 22111.25\n", - "2023-03-08, BUY CREATE, 22111.25\n", - "2023-03-08, Order Canceled/Margin/Rejected\n", - "2023-03-08, Close, 22072.45\n", - "2023-03-08, Close, 22014.17\n", - "2023-03-08, Close, 21989.16\n", - "2023-03-08, Close, 21974.73\n", - "2023-03-08, Close, 22140.80\n", - "2023-03-08, BUY CREATE, 22140.80\n", - "2023-03-08, Order Canceled/Margin/Rejected\n", - "2023-03-08, Close, 22140.61\n", - "2023-03-08, BUY CREATE, 22140.61\n", - "2023-03-08, Order Canceled/Margin/Rejected\n", - "2023-03-08, Close, 22034.48\n", - "2023-03-08, Close, 22022.75\n", - "2023-03-08, Close, 21997.25\n", - "2023-03-08, Close, 22101.26\n", - "2023-03-08, BUY CREATE, 22101.26\n", - "2023-03-08, Order Canceled/Margin/Rejected\n", - "2023-03-08, Close, 22009.75\n", - "2023-03-08, Close, 21802.16\n", - "2023-03-08, Close, 21705.44\n", - "2023-03-09, Close, 21719.42\n", - "2023-03-09, Close, 21702.94\n", - "2023-03-09, Close, 21769.65\n", - "2023-03-09, Close, 21769.66\n", - "2023-03-09, Close, 21740.43\n", - "2023-03-09, Close, 21738.93\n", - "2023-03-09, Close, 21741.80\n", - "2023-03-09, Close, 21688.54\n", - "2023-03-09, Close, 21681.52\n", - "2023-03-09, Close, 21641.58\n", - "2023-03-09, Close, 21648.43\n", - "2023-03-09, Close, 21669.38\n", - "2023-03-09, Close, 21611.34\n", - "2023-03-09, Close, 21703.76\n", - "2023-03-09, BUY CREATE, 21703.76\n", - "2023-03-09, BUY EXECUTED, Price: 21703.76, Cost: 108518.80, Comm 0.00\n", - "2023-03-09, Close, 21722.89\n", - "2023-03-09, Close, 21648.57\n", - "2023-03-09, SELL CREATE, 21648.57\n", - "2023-03-09, SELL EXECUTED, Price: 21647.42, Cost: 108518.80, Comm 0.00\n", - "2023-03-09, OPERATION PROFIT, GROSS -281.70, NET -281.70\n", - "2023-03-09, Close, 21478.85\n", - "2023-03-09, Close, 21469.46\n", - "2023-03-09, Close, 21012.89\n", - "2023-03-09, Close, 20854.93\n", - "2023-03-09, Close, 20116.66\n", - "2023-03-09, Close, 20213.61\n", - "2023-03-09, Close, 20343.58\n", - "2023-03-09, Close, 20362.22\n", - "2023-03-10, Close, 20120.27\n", - "2023-03-10, Close, 20111.01\n", - "2023-03-10, Close, 20040.44\n", - "2023-03-10, Close, 20052.07\n", - "2023-03-10, Close, 19876.69\n", - "2023-03-10, Close, 19990.10\n", - "2023-03-10, Close, 19873.46\n", - "2023-03-10, Close, 19953.58\n", - "2023-03-10, Close, 19959.12\n", - "2023-03-10, Close, 19853.12\n", - "2023-03-10, Close, 19621.66\n", - "2023-03-10, Close, 19760.78\n", - "2023-03-10, Close, 19934.75\n", - "2023-03-10, Close, 20184.92\n", - "2023-03-10, BUY CREATE, 20184.92\n", - "2023-03-10, BUY EXECUTED, Price: 20184.90, Cost: 100924.50, Comm 0.00\n", - "2023-03-10, Close, 19819.80\n", - "2023-03-10, SELL CREATE, 19819.80\n", - "2023-03-10, SELL EXECUTED, Price: 19819.80, Cost: 100924.50, Comm 0.00\n", - "2023-03-10, OPERATION PROFIT, GROSS -1825.50, NET -1825.50\n", - "2023-03-10, Close, 20004.96\n", - "2023-03-10, BUY CREATE, 20004.96\n", - "2023-03-10, BUY EXECUTED, Price: 20004.96, Cost: 100024.80, Comm 0.00\n", - "2023-03-10, Close, 20016.36\n", - "2023-03-10, Close, 19930.48\n", - "2023-03-10, Close, 19848.52\n", - "2023-03-10, SELL CREATE, 19848.52\n", - "2023-03-10, SELL EXECUTED, Price: 19848.50, Cost: 100024.80, Comm 0.00\n", - "2023-03-10, OPERATION PROFIT, GROSS -782.30, NET -782.30\n", - "2023-03-10, Close, 20024.32\n", - "2023-03-10, BUY CREATE, 20024.32\n", - "2023-03-10, BUY EXECUTED, Price: 20022.72, Cost: 100113.60, Comm 0.00\n", - "2023-03-10, Close, 19969.31\n", - "2023-03-10, Close, 20076.64\n", - "2023-03-10, Close, 20097.23\n", - "2023-03-10, Close, 20150.69\n", - "2023-03-11, Close, 20216.03\n", - "2023-03-11, Close, 20586.75\n", - "2023-03-11, Close, 20492.43\n", - "2023-03-11, Close, 20393.88\n", - "2023-03-11, Close, 20339.70\n", - "2023-03-11, Close, 20391.39\n", - "2023-03-11, Close, 20284.61\n", - "2023-03-11, Close, 19850.81\n", - "2023-03-11, SELL CREATE, 19850.81\n", - "2023-03-11, SELL EXECUTED, Price: 19850.81, Cost: 100113.60, Comm 0.00\n", - "2023-03-11, OPERATION PROFIT, GROSS -859.55, NET -859.55\n", - "2023-03-11, Close, 20071.82\n", - "2023-03-11, Close, 20092.78\n", - "2023-03-11, Close, 20036.75\n", - "2023-03-11, Close, 20086.07\n", - "2023-03-11, Close, 20031.65\n", - "2023-03-11, Close, 20078.23\n", - "2023-03-11, Close, 20112.33\n", - "2023-03-11, Close, 20061.98\n", - "2023-03-11, Close, 20091.11\n", - "2023-03-11, Close, 20246.92\n", - "2023-03-11, BUY CREATE, 20246.92\n", - "2023-03-11, BUY EXECUTED, Price: 20245.48, Cost: 101227.40, Comm 0.00\n", - "2023-03-11, Close, 20226.72\n", - "2023-03-11, Close, 20220.96\n", - "2023-03-11, Close, 20349.40\n", - "2023-03-11, Close, 20353.91\n", - "2023-03-11, Close, 20333.55\n", - "2023-03-11, Close, 20455.73\n", - "2023-03-12, Close, 20453.41\n", - "2023-03-12, Close, 20419.33\n", - "2023-03-12, Close, 20377.20\n", - "2023-03-12, Close, 20376.46\n", - "2023-03-12, Close, 20386.99\n", - "2023-03-12, Close, 20354.68\n", - "2023-03-12, Close, 20331.80\n", - "2023-03-12, SELL CREATE, 20331.80\n", - "2023-03-12, SELL EXECUTED, Price: 20331.20, Cost: 101227.40, Comm 0.00\n", - "2023-03-12, OPERATION PROFIT, GROSS 428.60, NET 428.60\n", - "2023-03-12, Close, 20346.71\n", - "2023-03-12, Close, 20376.88\n", - "2023-03-12, BUY CREATE, 20376.88\n", - "2023-03-12, BUY EXECUTED, Price: 20376.83, Cost: 101884.15, Comm 0.00\n", - "2023-03-12, Close, 20382.18\n", - "2023-03-12, Close, 20425.93\n", - "2023-03-12, Close, 20445.43\n", - "2023-03-12, Close, 20381.25\n", - "2023-03-12, SELL CREATE, 20381.25\n", - "2023-03-12, SELL EXECUTED, Price: 20380.62, Cost: 101884.15, Comm 0.00\n", - "2023-03-12, OPERATION PROFIT, GROSS 18.95, NET 18.95\n", - "2023-03-12, Close, 20383.95\n", - "2023-03-12, Close, 20339.55\n", - "2023-03-12, Close, 20358.96\n", - "2023-03-12, Close, 20389.55\n", - "2023-03-12, BUY CREATE, 20389.55\n", - "2023-03-12, BUY EXECUTED, Price: 20390.15, Cost: 101950.75, Comm 0.00\n", - "2023-03-12, Close, 20785.52\n", - "2023-03-12, Close, 21076.45\n", - "2023-03-12, Close, 20779.54\n", - "2023-03-12, Close, 21259.02\n", - "2023-03-12, Close, 21272.40\n", - "2023-03-12, Close, 21702.38\n", - "2023-03-12, Close, 21997.11\n", - "2023-03-13, Close, 22446.02\n", - "2023-03-13, Close, 22294.10\n", - "2023-03-13, Close, 22182.01\n", - "2023-03-13, Close, 22231.62\n", - "2023-03-13, Close, 22320.07\n", - "2023-03-13, Close, 22397.11\n", - "2023-03-13, Close, 22381.90\n", - "2023-03-13, Close, 22458.72\n", - "2023-03-13, Close, 22191.10\n", - "2023-03-13, Close, 21963.37\n", - "2023-03-13, SELL CREATE, 21963.37\n", - "2023-03-13, SELL EXECUTED, Price: 21961.74, Cost: 101950.75, Comm 0.00\n", - "2023-03-13, OPERATION PROFIT, GROSS 7857.95, NET 7857.95\n", - "2023-03-13, Close, 22124.51\n", - "2023-03-13, BUY CREATE, 22124.51\n", - "2023-03-13, BUY EXECUTED, Price: 22125.45, Cost: 110627.25, Comm 0.00\n", - "2023-03-13, Close, 22106.64\n", - "2023-03-13, SELL CREATE, 22106.64\n", - "2023-03-13, SELL EXECUTED, Price: 22106.63, Cost: 110627.25, Comm 0.00\n", - "2023-03-13, OPERATION PROFIT, GROSS -94.10, NET -94.10\n", - "2023-03-13, Close, 22130.32\n", - "2023-03-13, Close, 22479.64\n", - "2023-03-13, BUY CREATE, 22479.64\n", - "2023-03-13, BUY EXECUTED, Price: 22479.64, Cost: 112398.20, Comm 0.00\n", - "2023-03-13, Close, 23484.63\n", - "2023-03-13, Close, 23981.72\n", - "2023-03-13, Close, 23955.16\n", - "2023-03-13, Close, 24109.10\n", - "2023-03-13, Close, 24256.15\n", - "2023-03-13, Close, 24279.91\n", - "2023-03-13, Close, 24134.11\n", - "2023-03-13, Close, 24085.04\n", - "2023-03-13, Close, 24201.15\n", - "2023-03-13, Close, 24113.48\n", - "2023-03-14, Close, 24166.31\n", - "2023-03-14, Close, 24402.53\n", - "2023-03-14, Close, 24274.69\n", - "2023-03-14, Close, 24374.20\n", - "2023-03-14, Close, 24414.06\n", - "2023-03-14, Close, 24317.80\n", - "2023-03-14, Close, 24325.38\n", - "2023-03-14, Close, 24247.64\n", - "2023-03-14, Close, 24219.61\n", - "2023-03-14, SELL CREATE, 24219.61\n", - "2023-03-14, SELL EXECUTED, Price: 24219.61, Cost: 112398.20, Comm 0.00\n", - "2023-03-14, OPERATION PROFIT, GROSS 8699.85, NET 8699.85\n", - "2023-03-14, Close, 24280.22\n", - "2023-03-14, BUY CREATE, 24280.22\n", - "2023-03-14, BUY EXECUTED, Price: 24280.74, Cost: 121403.70, Comm 0.00\n", - "2023-03-14, Close, 24569.36\n", - "2023-03-14, Close, 24743.04\n", - "2023-03-14, Close, 25832.57\n", - "2023-03-14, Close, 25759.64\n", - "2023-03-14, Close, 25815.75\n", - "2023-03-14, Close, 25894.67\n", - "2023-03-14, Close, 25867.21\n", - "2023-03-14, Close, 25628.25\n", - "2023-03-14, Close, 24990.18\n", - "2023-03-14, SELL CREATE, 24990.18\n", - "2023-03-14, SELL EXECUTED, Price: 24987.84, Cost: 121403.70, Comm 0.00\n", - "2023-03-14, OPERATION PROFIT, GROSS 3535.50, NET 3535.50\n", - "2023-03-14, Close, 25054.15\n", - "2023-03-14, BUY CREATE, 25054.15\n", - "2023-03-14, BUY EXECUTED, Price: 25048.39, Cost: 125241.95, Comm 0.00\n", - "2023-03-14, Close, 24570.06\n", - "2023-03-14, SELL CREATE, 24570.06\n", - "2023-03-14, SELL EXECUTED, Price: 24570.06, Cost: 125241.95, Comm 0.00\n", - "2023-03-14, OPERATION PROFIT, GROSS -2391.65, NET -2391.65\n", - "2023-03-14, Close, 24535.95\n", - "2023-03-14, Close, 24698.39\n", - "2023-03-14, Close, 24670.41\n", - "2023-03-15, Close, 24720.06\n", - "2023-03-15, Close, 24906.01\n", - "2023-03-15, Close, 24827.89\n", - "2023-03-15, Close, 24717.65\n", - "2023-03-15, Close, 24799.90\n", - "2023-03-15, Close, 24699.71\n", - "2023-03-15, Close, 24781.98\n", - "2023-03-15, Close, 24871.28\n", - "2023-03-15, BUY CREATE, 24871.28\n", - "2023-03-15, BUY EXECUTED, Price: 24872.54, Cost: 124362.70, Comm 0.00\n", - "2023-03-15, Close, 24754.70\n", - "2023-03-15, SELL CREATE, 24754.70\n", - "2023-03-15, SELL EXECUTED, Price: 24754.70, Cost: 124362.70, Comm 0.00\n", - "2023-03-15, OPERATION PROFIT, GROSS -589.20, NET -589.20\n", - "2023-03-15, Close, 24516.74\n", - "2023-03-15, Close, 24538.14\n", - "2023-03-15, Close, 24754.50\n", - "2023-03-15, BUY CREATE, 24754.50\n", - "2023-03-15, BUY EXECUTED, Price: 24753.27, Cost: 123766.35, Comm 0.00\n", - "2023-03-15, Close, 24808.12\n", - "2023-03-15, Close, 24777.01\n", - "2023-03-15, Close, 24706.61\n", - "2023-03-15, SELL CREATE, 24706.61\n", - "2023-03-15, SELL EXECUTED, Price: 24706.61, Cost: 123766.35, Comm 0.00\n", - "2023-03-15, OPERATION PROFIT, GROSS -233.30, NET -233.30\n", - "2023-03-15, Close, 24471.01\n", - "2023-03-15, Close, 24104.69\n", - "2023-03-15, Close, 24281.86\n", - "2023-03-15, Close, 24409.25\n", - "2023-03-15, Close, 24366.71\n", - "2023-03-15, Close, 24318.56\n", - "2023-03-15, Close, 24422.31\n", - "2023-03-15, Close, 24361.12\n", - "2023-03-15, Close, 24285.66\n", - "2023-03-16, Close, 24202.64\n", - "2023-03-16, Close, 24322.50\n", - "2023-03-16, Close, 24362.64\n", - "2023-03-16, Close, 24265.43\n", - "2023-03-16, Close, 24262.65\n", - "2023-03-16, Close, 24342.80\n", - "2023-03-16, BUY CREATE, 24342.80\n", - "2023-03-16, BUY EXECUTED, Price: 24342.80, Cost: 121714.00, Comm 0.00\n", - "2023-03-16, Close, 24568.74\n", - "2023-03-16, Close, 24614.27\n", - "2023-03-16, Close, 24581.10\n", - "2023-03-16, Close, 24658.21\n", - "2023-03-16, Close, 24930.23\n", - "2023-03-16, Close, 24824.62\n", - "2023-03-16, Close, 24720.18\n", - "2023-03-16, Close, 24832.09\n", - "2023-03-16, Close, 24846.64\n", - "2023-03-16, Close, 24888.44\n", - "2023-03-16, Close, 24780.79\n", - "2023-03-16, Close, 24684.98\n", - "2023-03-16, Close, 24790.77\n", - "2023-03-16, Close, 24953.21\n", - "2023-03-16, Close, 24696.87\n", - "2023-03-16, SELL CREATE, 24696.87\n", - "2023-03-16, SELL EXECUTED, Price: 24698.41, Cost: 121714.00, Comm 0.00\n", - "2023-03-16, OPERATION PROFIT, GROSS 1778.05, NET 1778.05\n", - "2023-03-16, Close, 24914.01\n", - "2023-03-16, BUY CREATE, 24914.01\n", - "2023-03-16, BUY EXECUTED, Price: 24915.22, Cost: 124576.10, Comm 0.00\n", - "2023-03-16, Close, 24981.59\n", - "2023-03-16, Close, 24998.78\n", - "2023-03-17, Close, 24918.14\n", - "2023-03-17, Close, 25666.59\n", - "2023-03-17, Close, 25580.16\n", - "2023-03-17, Close, 25781.66\n", - "2023-03-17, Close, 25722.04\n", - "2023-03-17, Close, 25765.88\n", - "2023-03-17, Close, 26142.14\n", - "2023-03-17, Close, 26058.45\n", - "2023-03-17, Close, 25996.41\n", - "2023-03-17, Close, 26240.16\n", - "2023-03-17, Close, 26706.71\n", - "2023-03-17, Close, 26918.73\n", - "2023-03-17, Close, 26631.94\n", - "2023-03-17, Close, 26453.89\n", - "2023-03-17, Close, 26283.00\n", - "2023-03-17, Close, 26421.34\n", - "2023-03-17, Close, 26393.98\n", - "2023-03-17, Close, 26487.79\n", - "2023-03-17, Close, 26617.57\n", - "2023-03-17, Close, 26834.87\n", - "2023-03-17, Close, 26769.59\n", - "2023-03-17, Close, 27094.27\n", - "2023-03-17, Close, 27513.31\n", - "2023-03-17, Close, 27395.13\n", - "2023-03-18, Close, 27627.51\n", - "2023-03-18, Close, 27329.78\n", - "2023-03-18, Close, 27290.98\n", - "2023-03-18, Close, 27307.54\n", - "2023-03-18, Close, 27331.24\n", - "2023-03-18, Close, 27578.05\n", - "2023-03-18, Close, 27505.28\n", - "2023-03-18, Close, 27359.89\n", - "2023-03-18, Close, 27217.57\n", - "2023-03-18, SELL CREATE, 27217.57\n", - "2023-03-18, SELL EXECUTED, Price: 27216.53, Cost: 124576.10, Comm 0.00\n", - "2023-03-18, OPERATION PROFIT, GROSS 11506.55, NET 11506.55\n", - "2023-03-18, Close, 27398.26\n", - "2023-03-18, BUY CREATE, 27398.26\n", - "2023-03-18, BUY EXECUTED, Price: 27398.26, Cost: 136991.30, Comm 0.00\n", - "2023-03-18, Close, 27465.19\n", - "2023-03-18, Close, 27443.09\n", - "2023-03-18, Close, 27503.25\n", - "2023-03-18, Close, 27414.93\n", - "2023-03-18, Close, 27525.56\n", - "2023-03-18, Close, 27226.23\n", - "2023-03-18, SELL CREATE, 27226.23\n", - "2023-03-18, SELL EXECUTED, Price: 27227.63, Cost: 136991.30, Comm 0.00\n", - "2023-03-18, OPERATION PROFIT, GROSS -853.15, NET -853.15\n", - "2023-03-18, Close, 27343.98\n", - "2023-03-18, Close, 27307.07\n", - "2023-03-18, Close, 27319.70\n", - "2023-03-18, Close, 27329.83\n", - "2023-03-18, Close, 27317.96\n", - "2023-03-18, Close, 27189.87\n", - "2023-03-18, Close, 26910.45\n", - "2023-03-18, Close, 26907.49\n", - "2023-03-19, Close, 27077.54\n", - "2023-03-19, Close, 27104.91\n", - "2023-03-19, Close, 27116.07\n", - "2023-03-19, Close, 27198.71\n", - "2023-03-19, Close, 27142.00\n", - "2023-03-19, Close, 27060.08\n", - "2023-03-19, Close, 26934.96\n", - "2023-03-19, Close, 26974.81\n", - "2023-03-19, Close, 26982.58\n", - "2023-03-19, Close, 27043.27\n", - "2023-03-19, Close, 27052.80\n", - "2023-03-19, Close, 27160.98\n", - "2023-03-19, BUY CREATE, 27160.98\n", - "2023-03-19, BUY EXECUTED, Price: 27162.33, Cost: 135811.65, Comm 0.00\n", - "2023-03-19, Close, 27246.96\n", - "2023-03-19, Close, 27178.27\n", - "2023-03-19, Close, 27327.72\n", - "2023-03-19, Close, 27546.62\n", - "2023-03-19, Close, 27923.37\n", - "2023-03-19, Close, 27897.98\n", - "2023-03-19, Close, 28303.69\n", - "2023-03-19, Close, 28255.87\n", - "2023-03-19, Close, 27889.22\n", - "2023-03-19, Close, 27975.77\n", - "2023-03-19, Close, 28112.88\n", - "2023-03-19, Close, 27972.87\n", - "2023-03-20, Close, 27825.47\n", - "2023-03-20, Close, 27675.84\n", - "2023-03-20, SELL CREATE, 27675.84\n", - "2023-03-20, SELL EXECUTED, Price: 27675.84, Cost: 135811.65, Comm 0.00\n", - "2023-03-20, OPERATION PROFIT, GROSS 2567.55, NET 2567.55\n", - "2023-03-20, Close, 27434.91\n", - "2023-03-20, Close, 27269.17\n", - "2023-03-20, Close, 27437.00\n", - "2023-03-20, Close, 27519.97\n", - "2023-03-20, Close, 27628.50\n", - "2023-03-20, Close, 28183.13\n", - "2023-03-20, BUY CREATE, 28183.13\n", - "2023-03-20, Order Canceled/Margin/Rejected\n", - "2023-03-20, Close, 28313.85\n", - "2023-03-20, BUY CREATE, 28313.85\n", - "2023-03-20, Order Canceled/Margin/Rejected\n", - "2023-03-20, Close, 28198.04\n", - "2023-03-20, BUY CREATE, 28198.04\n", - "2023-03-20, Order Canceled/Margin/Rejected\n", - "2023-03-20, Close, 28101.40\n", - "2023-03-20, BUY CREATE, 28101.40\n", - "2023-03-20, Order Canceled/Margin/Rejected\n", - "2023-03-20, Close, 28188.93\n", - "2023-03-20, BUY CREATE, 28188.93\n", - "2023-03-20, Order Canceled/Margin/Rejected\n", - "2023-03-20, Close, 28224.99\n", - "2023-03-20, BUY CREATE, 28224.99\n", - "2023-03-20, Order Canceled/Margin/Rejected\n", - "2023-03-20, Close, 27822.73\n", - "2023-03-20, Close, 28055.89\n", - "2023-03-20, BUY CREATE, 28055.89\n", - "2023-03-20, Order Canceled/Margin/Rejected\n", - "2023-03-20, Close, 27694.46\n", - "2023-03-20, Close, 27553.81\n", - "2023-03-20, Close, 27626.96\n", - "2023-03-20, Close, 27980.02\n", - "2023-03-20, BUY CREATE, 27980.02\n", - "2023-03-20, Order Canceled/Margin/Rejected\n", - "2023-03-20, Close, 27785.10\n", - "2023-03-20, Close, 28001.00\n", - "2023-03-20, BUY CREATE, 28001.00\n", - "2023-03-20, Order Canceled/Margin/Rejected\n", - "2023-03-20, Close, 27996.09\n", - "2023-03-20, BUY CREATE, 27996.09\n", - "2023-03-20, Order Canceled/Margin/Rejected\n", - "2023-03-20, Close, 27952.20\n", - "2023-03-20, Close, 27717.01\n", - "2023-03-21, Close, 27850.21\n", - "2023-03-21, Close, 27875.65\n", - "2023-03-21, Close, 27779.74\n", - "2023-03-21, Close, 27787.29\n", - "2023-03-21, Close, 27906.81\n", - "2023-03-21, BUY CREATE, 27906.81\n", - "2023-03-21, Order Canceled/Margin/Rejected\n", - "2023-03-21, Close, 27801.41\n", - "2023-03-21, Close, 27637.01\n", - "2023-03-21, Close, 27505.25\n", - "2023-03-21, Close, 27646.65\n", - "2023-03-21, Close, 27929.23\n", - "2023-03-21, BUY CREATE, 27929.23\n", - "2023-03-21, Order Canceled/Margin/Rejected\n", - "2023-03-21, Close, 27962.20\n", - "2023-03-21, BUY CREATE, 27962.20\n", - "2023-03-21, Order Canceled/Margin/Rejected\n", - "2023-03-21, Close, 28040.13\n", - "2023-03-21, BUY CREATE, 28040.13\n", - "2023-03-21, Order Canceled/Margin/Rejected\n", - "2023-03-21, Close, 28188.92\n", - "2023-03-21, BUY CREATE, 28188.92\n", - "2023-03-21, Order Canceled/Margin/Rejected\n", - "2023-03-21, Close, 28037.90\n", - "2023-03-21, BUY CREATE, 28037.90\n", - "2023-03-21, Order Canceled/Margin/Rejected\n", - "2023-03-21, Close, 27887.98\n", - "2023-03-21, BUY CREATE, 27887.98\n", - "2023-03-21, Order Canceled/Margin/Rejected\n", - "2023-03-21, Close, 28041.06\n", - "2023-03-21, BUY CREATE, 28041.06\n", - "2023-03-21, Order Canceled/Margin/Rejected\n", - "2023-03-21, Close, 28343.92\n", - "2023-03-21, BUY CREATE, 28343.92\n", - "2023-03-21, Order Canceled/Margin/Rejected\n", - "2023-03-21, Close, 27988.69\n", - "2023-03-21, BUY CREATE, 27988.69\n", - "2023-03-21, Order Canceled/Margin/Rejected\n", - "2023-03-21, Close, 28128.77\n", - "2023-03-21, BUY CREATE, 28128.77\n", - "2023-03-21, Order Canceled/Margin/Rejected\n", - "2023-03-21, Close, 28126.84\n", - "2023-03-21, BUY CREATE, 28126.84\n", - "2023-03-21, Order Canceled/Margin/Rejected\n", - "2023-03-21, Close, 28077.28\n", - "2023-03-21, BUY CREATE, 28077.28\n", - "2023-03-21, Order Canceled/Margin/Rejected\n", - "2023-03-21, Close, 27997.84\n", - "2023-03-21, BUY CREATE, 27997.84\n", - "2023-03-21, Order Canceled/Margin/Rejected\n", - "2023-03-21, Close, 28031.17\n", - "2023-03-21, BUY CREATE, 28031.17\n", - "2023-03-21, Order Canceled/Margin/Rejected\n", - "2023-03-21, Close, 28105.47\n", - "2023-03-21, BUY CREATE, 28105.47\n", - "2023-03-22, Order Canceled/Margin/Rejected\n", - "2023-03-22, Close, 28028.91\n", - "2023-03-22, Close, 28086.85\n", - "2023-03-22, BUY CREATE, 28086.85\n", - "2023-03-22, Order Canceled/Margin/Rejected\n", - "2023-03-22, Close, 28049.59\n", - "2023-03-22, Close, 28154.14\n", - "2023-03-22, BUY CREATE, 28154.14\n", - "2023-03-22, Order Canceled/Margin/Rejected\n", - "2023-03-22, Close, 28196.41\n", - "2023-03-22, BUY CREATE, 28196.41\n", - "2023-03-22, Order Canceled/Margin/Rejected\n", - "2023-03-22, Close, 28201.52\n", - "2023-03-22, BUY CREATE, 28201.52\n", - "2023-03-22, Order Canceled/Margin/Rejected\n", - "2023-03-22, Close, 28205.16\n", - "2023-03-22, BUY CREATE, 28205.16\n", - "2023-03-22, Order Canceled/Margin/Rejected\n", - "2023-03-22, Close, 28103.69\n", - "2023-03-22, BUY CREATE, 28103.69\n", - "2023-03-22, Order Canceled/Margin/Rejected\n", - "2023-03-22, Close, 28086.99\n", - "2023-03-22, Close, 28099.99\n", - "2023-03-22, Close, 28154.95\n", - "2023-03-22, BUY CREATE, 28154.95\n", - "2023-03-22, Order Canceled/Margin/Rejected\n", - "2023-03-22, Close, 28122.74\n", - "2023-03-22, BUY CREATE, 28122.74\n", - "2023-03-22, Order Canceled/Margin/Rejected\n", - "2023-03-22, Close, 28220.08\n", - "2023-03-22, BUY CREATE, 28220.08\n", - "2023-03-22, Order Canceled/Margin/Rejected\n", - "2023-03-22, Close, 28285.56\n", - "2023-03-22, BUY CREATE, 28285.56\n", - "2023-03-22, Order Canceled/Margin/Rejected\n", - "2023-03-22, Close, 28563.61\n", - "2023-03-22, BUY CREATE, 28563.61\n", - "2023-03-22, Order Canceled/Margin/Rejected\n", - "2023-03-22, Close, 28595.07\n", - "2023-03-22, BUY CREATE, 28595.07\n", - "2023-03-22, Order Canceled/Margin/Rejected\n", - "2023-03-22, Close, 28647.26\n", - "2023-03-22, BUY CREATE, 28647.26\n", - "2023-03-22, Order Canceled/Margin/Rejected\n", - "2023-03-22, Close, 28516.34\n", - "2023-03-22, BUY CREATE, 28516.34\n", - "2023-03-22, Order Canceled/Margin/Rejected\n", - "2023-03-22, Close, 28027.99\n", - "2023-03-22, Close, 26667.33\n", - "2023-03-22, Close, 27311.29\n", - "2023-03-22, Close, 27083.55\n", - "2023-03-22, Close, 27209.19\n", - "2023-03-22, Close, 27250.97\n", - "2023-03-23, Close, 27322.28\n", - "2023-03-23, Close, 27150.91\n", - "2023-03-23, Close, 27346.16\n", - "2023-03-23, Close, 27356.78\n", - "2023-03-23, Close, 27275.16\n", - "2023-03-23, Close, 27629.18\n", - "2023-03-23, BUY CREATE, 27629.18\n", - "2023-03-23, BUY EXECUTED, Price: 27629.19, Cost: 138145.95, Comm 0.00\n", - "2023-03-23, Close, 27647.67\n", - "2023-03-23, Close, 27631.93\n", - "2023-03-23, Close, 27632.02\n", - "2023-03-23, Close, 27622.82\n", - "2023-03-23, Close, 27612.55\n", - "2023-03-23, Close, 27584.53\n", - "2023-03-23, Close, 27469.99\n", - "2023-03-23, Close, 27369.00\n", - "2023-03-23, SELL CREATE, 27369.00\n", - "2023-03-23, SELL EXECUTED, Price: 27369.01, Cost: 138145.95, Comm 0.00\n", - "2023-03-23, OPERATION PROFIT, GROSS -1300.90, NET -1300.90\n", - "2023-03-23, Close, 28045.30\n", - "2023-03-23, BUY CREATE, 28045.30\n", - "2023-03-23, Order Canceled/Margin/Rejected\n", - "2023-03-23, Close, 28580.87\n", - "2023-03-23, BUY CREATE, 28580.87\n", - "2023-03-23, Order Canceled/Margin/Rejected\n", - "2023-03-23, Close, 28464.96\n", - "2023-03-23, BUY CREATE, 28464.96\n", - "2023-03-23, Order Canceled/Margin/Rejected\n", - "2023-03-23, Close, 28297.16\n", - "2023-03-23, BUY CREATE, 28297.16\n", - "2023-03-23, Order Canceled/Margin/Rejected\n", - "2023-03-23, Close, 27903.80\n", - "2023-03-23, BUY CREATE, 27903.80\n", - "2023-03-23, Order Canceled/Margin/Rejected\n", - "2023-03-23, Close, 28369.99\n", - "2023-03-23, BUY CREATE, 28369.99\n", - "2023-03-23, Order Canceled/Margin/Rejected\n", - "2023-03-23, Close, 28280.03\n", - "2023-03-23, BUY CREATE, 28280.03\n", - "2023-03-23, Order Canceled/Margin/Rejected\n", - "2023-03-23, Close, 28163.79\n", - "2023-03-23, BUY CREATE, 28163.79\n", - "2023-03-23, Order Canceled/Margin/Rejected\n", - "2023-03-23, Close, 28214.10\n", - "2023-03-23, BUY CREATE, 28214.10\n", - "2023-03-23, Order Canceled/Margin/Rejected\n", - "2023-03-23, Close, 28295.41\n", - "2023-03-23, BUY CREATE, 28295.41\n", - "2023-03-24, Order Canceled/Margin/Rejected\n", - "2023-03-24, Close, 28195.30\n", - "2023-03-24, BUY CREATE, 28195.30\n", - "2023-03-24, Order Canceled/Margin/Rejected\n", - "2023-03-24, Close, 28253.00\n", - "2023-03-24, BUY CREATE, 28253.00\n", - "2023-03-24, Order Canceled/Margin/Rejected\n", - "2023-03-24, Close, 28186.28\n", - "2023-03-24, BUY CREATE, 28186.28\n", - "2023-03-24, Order Canceled/Margin/Rejected\n", - "2023-03-24, Close, 28219.98\n", - "2023-03-24, BUY CREATE, 28219.98\n", - "2023-03-24, Order Canceled/Margin/Rejected\n", - "2023-03-24, Close, 28130.41\n", - "2023-03-24, Close, 28284.45\n", - "2023-03-24, BUY CREATE, 28284.45\n", - "2023-03-24, Order Canceled/Margin/Rejected\n", - "2023-03-24, Close, 28262.83\n", - "2023-03-24, BUY CREATE, 28262.83\n", - "2023-03-24, Order Canceled/Margin/Rejected\n", - "2023-03-24, Close, 28274.59\n", - "2023-03-24, BUY CREATE, 28274.59\n", - "2023-03-24, Order Canceled/Margin/Rejected\n", - "2023-03-24, Close, 28034.37\n", - "2023-03-24, Close, 28041.11\n", - "2023-03-24, Close, 28039.71\n", - "2023-03-24, Close, 28080.00\n", - "2023-03-24, Close, 28080.00\n", - "2023-03-24, Close, 27989.06\n", - "2023-03-24, Close, 28018.04\n", - "2023-03-24, Close, 27831.33\n", - "2023-03-24, Close, 27609.99\n", - "2023-03-24, Close, 27740.01\n", - "2023-03-24, Close, 27821.60\n", - "2023-03-24, Close, 27584.82\n", - "2023-03-24, Close, 27335.14\n", - "2023-03-24, Close, 27298.05\n", - "2023-03-24, Close, 27454.47\n", - "2023-03-25, Close, 27556.35\n", - "2023-03-25, Close, 27498.54\n", - "2023-03-25, Close, 27599.66\n", - "2023-03-25, Close, 27581.65\n", - "2023-03-25, Close, 27535.25\n", - "2023-03-25, Close, 27458.73\n", - "2023-03-25, Close, 27495.66\n", - "2023-03-25, Close, 27485.36\n", - "2023-03-25, Close, 27422.56\n", - "2023-03-25, Close, 27481.96\n", - "2023-03-25, Close, 27477.01\n", - "2023-03-25, Close, 27457.20\n", - "2023-03-25, Close, 27451.71\n", - "2023-03-25, Close, 27566.96\n", - "2023-03-25, BUY CREATE, 27566.96\n", - "2023-03-25, Order Canceled/Margin/Rejected\n", - "2023-03-25, Close, 27527.06\n", - "2023-03-25, BUY CREATE, 27527.06\n", - "2023-03-25, BUY EXECUTED, Price: 27527.06, Cost: 137635.30, Comm 0.00\n", - "2023-03-25, Close, 27647.43\n", - "2023-03-25, Close, 27629.22\n", - "2023-03-25, Close, 27481.58\n", - "2023-03-25, SELL CREATE, 27481.58\n", - "2023-03-25, SELL EXECUTED, Price: 27481.57, Cost: 137635.30, Comm 0.00\n", - "2023-03-25, OPERATION PROFIT, GROSS -227.45, NET -227.45\n", - "2023-03-25, Close, 27442.92\n", - "2023-03-25, Close, 27189.68\n", - "2023-03-25, Close, 27354.72\n", - "2023-03-25, Close, 27411.54\n", - "2023-03-25, Close, 27447.32\n", - "2023-03-25, Close, 27462.95\n", - "2023-03-26, Close, 27531.28\n", - "2023-03-26, BUY CREATE, 27531.28\n", - "2023-03-26, Order Canceled/Margin/Rejected\n", - "2023-03-26, Close, 27593.34\n", - "2023-03-26, BUY CREATE, 27593.34\n", - "2023-03-26, Order Canceled/Margin/Rejected\n", - "2023-03-26, Close, 27589.64\n", - "2023-03-26, BUY CREATE, 27589.64\n", - "2023-03-26, Order Canceled/Margin/Rejected\n", - "2023-03-26, Close, 27529.26\n", - "2023-03-26, BUY CREATE, 27529.26\n", - "2023-03-26, Order Canceled/Margin/Rejected\n", - "2023-03-26, Close, 27516.61\n", - "2023-03-26, BUY CREATE, 27516.61\n", - "2023-03-26, Order Canceled/Margin/Rejected\n", - "2023-03-26, Close, 27544.81\n", - "2023-03-26, BUY CREATE, 27544.81\n", - "2023-03-26, Order Canceled/Margin/Rejected\n", - "2023-03-26, Close, 27496.68\n", - "2023-03-26, BUY CREATE, 27496.68\n", - "2023-03-26, Order Canceled/Margin/Rejected\n", - "2023-03-26, Close, 27504.94\n", - "2023-03-26, BUY CREATE, 27504.94\n", - "2023-03-26, Order Canceled/Margin/Rejected\n", - "2023-03-26, Close, 27659.20\n", - "2023-03-26, BUY CREATE, 27659.20\n", - "2023-03-26, Order Canceled/Margin/Rejected\n", - "2023-03-26, Close, 27686.73\n", - "2023-03-26, BUY CREATE, 27686.73\n", - "2023-03-26, Order Canceled/Margin/Rejected\n", - "2023-03-26, Close, 27678.63\n", - "2023-03-26, BUY CREATE, 27678.63\n", - "2023-03-26, Order Canceled/Margin/Rejected\n", - "2023-03-26, Close, 27865.95\n", - "2023-03-26, BUY CREATE, 27865.95\n", - "2023-03-26, Order Canceled/Margin/Rejected\n", - "2023-03-26, Close, 27919.74\n", - "2023-03-26, BUY CREATE, 27919.74\n", - "2023-03-26, Order Canceled/Margin/Rejected\n", - "2023-03-26, Close, 28149.99\n", - "2023-03-26, BUY CREATE, 28149.99\n", - "2023-03-26, Order Canceled/Margin/Rejected\n", - "2023-03-26, Close, 27795.22\n", - "2023-03-26, BUY CREATE, 27795.22\n", - "2023-03-26, Order Canceled/Margin/Rejected\n", - "2023-03-26, Close, 27803.89\n", - "2023-03-26, BUY CREATE, 27803.89\n", - "2023-03-26, Order Canceled/Margin/Rejected\n", - "2023-03-26, Close, 27699.28\n", - "2023-03-26, BUY CREATE, 27699.28\n", - "2023-03-26, Order Canceled/Margin/Rejected\n", - "2023-03-26, Close, 27837.82\n", - "2023-03-26, BUY CREATE, 27837.82\n", - "2023-03-26, Order Canceled/Margin/Rejected\n", - "2023-03-26, Close, 27808.76\n", - "2023-03-26, BUY CREATE, 27808.76\n", - "2023-03-26, Order Canceled/Margin/Rejected\n", - "2023-03-26, Close, 27827.95\n", - "2023-03-26, BUY CREATE, 27827.95\n", - "2023-03-26, Order Canceled/Margin/Rejected\n", - "2023-03-26, Close, 27777.63\n", - "2023-03-26, BUY CREATE, 27777.63\n", - "2023-03-26, Order Canceled/Margin/Rejected\n", - "2023-03-26, Close, 27838.11\n", - "2023-03-26, BUY CREATE, 27838.11\n", - "2023-03-26, Order Canceled/Margin/Rejected\n", - "2023-03-26, Close, 28040.29\n", - "2023-03-26, BUY CREATE, 28040.29\n", - "2023-03-26, Order Canceled/Margin/Rejected\n", - "2023-03-26, Close, 27968.05\n", - "2023-03-26, BUY CREATE, 27968.05\n", - "2023-03-27, Order Canceled/Margin/Rejected\n", - "2023-03-27, Close, 27994.28\n", - "2023-03-27, BUY CREATE, 27994.28\n", - "2023-03-27, Order Canceled/Margin/Rejected\n", - "2023-03-27, Close, 27826.98\n", - "2023-03-27, Close, 27879.16\n", - "2023-03-27, BUY CREATE, 27879.16\n", - "2023-03-27, Order Canceled/Margin/Rejected\n", - "2023-03-27, Close, 27888.68\n", - "2023-03-27, BUY CREATE, 27888.68\n", - "2023-03-27, Order Canceled/Margin/Rejected\n", - "2023-03-27, Close, 27906.98\n", - "2023-03-27, BUY CREATE, 27906.98\n", - "2023-03-27, Order Canceled/Margin/Rejected\n", - "2023-03-27, Close, 27715.18\n", - "2023-03-27, Close, 27785.85\n", - "2023-03-27, Close, 27808.81\n", - "2023-03-27, Close, 27848.53\n", - "2023-03-27, Close, 27925.63\n", - "2023-03-27, BUY CREATE, 27925.63\n", - "2023-03-27, Order Canceled/Margin/Rejected\n", - "2023-03-27, Close, 27915.39\n", - "2023-03-27, BUY CREATE, 27915.39\n", - "2023-03-27, Order Canceled/Margin/Rejected\n", - "2023-03-27, Close, 27892.69\n", - "2023-03-27, BUY CREATE, 27892.69\n", - "2023-03-27, Order Canceled/Margin/Rejected\n", - "2023-03-27, Close, 27749.99\n", - "2023-03-27, Close, 27692.99\n", - "2023-03-27, Close, 26960.38\n", - "2023-03-27, Close, 26903.62\n", - "2023-03-27, Close, 27145.50\n", - "2023-03-27, Close, 26960.00\n", - "2023-03-27, Close, 27090.81\n", - "2023-03-27, Close, 26968.94\n", - "2023-03-27, Close, 27043.84\n", - "2023-03-27, Close, 27170.63\n", - "2023-03-27, Close, 27099.99\n", - "2023-03-27, Close, 27124.91\n", - "2023-03-28, Close, 26960.92\n", - "2023-03-28, Close, 27074.81\n", - "2023-03-28, Close, 27037.58\n", - "2023-03-28, Close, 26971.71\n", - "2023-03-28, Close, 26964.60\n", - "2023-03-28, Close, 26974.63\n", - "2023-03-28, Close, 27070.52\n", - "2023-03-28, BUY CREATE, 27070.52\n", - "2023-03-28, BUY EXECUTED, Price: 27070.53, Cost: 135352.65, Comm 0.00\n", - "2023-03-28, Close, 26962.88\n", - "2023-03-28, SELL CREATE, 26962.88\n", - "2023-03-28, SELL EXECUTED, Price: 26962.89, Cost: 135352.65, Comm 0.00\n", - "2023-03-28, OPERATION PROFIT, GROSS -538.20, NET -538.20\n", - "2023-03-28, Close, 27013.68\n", - "2023-03-28, Close, 26875.03\n", - "2023-03-28, Close, 26740.96\n", - "2023-03-28, Close, 27057.36\n", - "2023-03-28, BUY CREATE, 27057.36\n", - "2023-03-28, BUY EXECUTED, Price: 27057.36, Cost: 135286.80, Comm 0.00\n", - "2023-03-28, Close, 26983.02\n", - "2023-03-28, SELL CREATE, 26983.02\n", - "2023-03-28, SELL EXECUTED, Price: 26983.02, Cost: 135286.80, Comm 0.00\n", - "2023-03-28, OPERATION PROFIT, GROSS -371.70, NET -371.70\n", - "2023-03-28, Close, 26881.97\n", - "2023-03-28, Close, 26943.01\n", - "2023-03-28, Close, 26998.63\n", - "2023-03-28, BUY CREATE, 26998.63\n", - "2023-03-28, BUY EXECUTED, Price: 26998.63, Cost: 134993.15, Comm 0.00\n", - "2023-03-28, Close, 26882.07\n", - "2023-03-28, SELL CREATE, 26882.07\n", - "2023-03-28, SELL EXECUTED, Price: 26882.07, Cost: 134993.15, Comm 0.00\n", - "2023-03-28, OPERATION PROFIT, GROSS -582.80, NET -582.80\n", - "2023-03-28, Close, 26863.20\n", - "2023-03-28, Close, 27344.13\n", - "2023-03-28, BUY CREATE, 27344.13\n", - "2023-03-28, Order Canceled/Margin/Rejected\n", - "2023-03-28, Close, 27425.99\n", - "2023-03-28, BUY CREATE, 27425.99\n", - "2023-03-28, Order Canceled/Margin/Rejected\n", - "2023-03-28, Close, 27307.20\n", - "2023-03-28, BUY CREATE, 27307.20\n", - "2023-03-28, Order Canceled/Margin/Rejected\n", - "2023-03-28, Close, 27190.54\n", - "2023-03-28, BUY CREATE, 27190.54\n", - "2023-03-28, Order Canceled/Margin/Rejected\n", - "2023-03-28, Close, 27218.39\n", - "2023-03-28, BUY CREATE, 27218.39\n", - "2023-03-28, Order Canceled/Margin/Rejected\n", - "2023-03-28, Close, 27261.07\n", - "2023-03-28, BUY CREATE, 27261.07\n", - "2023-03-29, Order Canceled/Margin/Rejected\n", - "2023-03-29, Close, 27268.73\n", - "2023-03-29, BUY CREATE, 27268.73\n", - "2023-03-29, Order Canceled/Margin/Rejected\n", - "2023-03-29, Close, 27325.78\n", - "2023-03-29, BUY CREATE, 27325.78\n", - "2023-03-29, Order Canceled/Margin/Rejected\n", - "2023-03-29, Close, 27395.00\n", - "2023-03-29, BUY CREATE, 27395.00\n", - "2023-03-29, Order Canceled/Margin/Rejected\n", - "2023-03-29, Close, 27367.45\n", - "2023-03-29, BUY CREATE, 27367.45\n", - "2023-03-29, Order Canceled/Margin/Rejected\n", - "2023-03-29, Close, 27568.07\n", - "2023-03-29, BUY CREATE, 27568.07\n", - "2023-03-29, Order Canceled/Margin/Rejected\n", - "2023-03-29, Close, 27544.14\n", - "2023-03-29, BUY CREATE, 27544.14\n", - "2023-03-29, Order Canceled/Margin/Rejected\n", - "2023-03-29, Close, 28052.30\n", - "2023-03-29, BUY CREATE, 28052.30\n", - "2023-03-29, Order Canceled/Margin/Rejected\n", - "2023-03-29, Close, 28086.82\n", - "2023-03-29, BUY CREATE, 28086.82\n", - "2023-03-29, Order Canceled/Margin/Rejected\n", - "2023-03-29, Close, 28506.99\n", - "2023-03-29, BUY CREATE, 28506.99\n", - "2023-03-29, Order Canceled/Margin/Rejected\n", - "2023-03-29, Close, 28319.89\n", - "2023-03-29, BUY CREATE, 28319.89\n", - "2023-03-29, Order Canceled/Margin/Rejected\n", - "2023-03-29, Close, 28382.23\n", - "2023-03-29, BUY CREATE, 28382.23\n", - "2023-03-29, Order Canceled/Margin/Rejected\n", - "2023-03-29, Close, 28353.99\n", - "2023-03-29, BUY CREATE, 28353.99\n", - "2023-03-29, Order Canceled/Margin/Rejected\n", - "2023-03-29, Close, 28441.77\n", - "2023-03-29, BUY CREATE, 28441.77\n", - "2023-03-29, Order Canceled/Margin/Rejected\n", - "2023-03-29, Close, 28425.91\n", - "2023-03-29, BUY CREATE, 28425.91\n", - "2023-03-29, Order Canceled/Margin/Rejected\n", - "2023-03-29, Close, 28290.97\n", - "2023-03-29, BUY CREATE, 28290.97\n", - "2023-03-29, Order Canceled/Margin/Rejected\n", - "2023-03-29, Close, 28442.79\n", - "2023-03-29, BUY CREATE, 28442.79\n", - "2023-03-29, Order Canceled/Margin/Rejected\n", - "2023-03-29, Close, 28152.46\n", - "2023-03-29, BUY CREATE, 28152.46\n", - "2023-03-29, Order Canceled/Margin/Rejected\n", - "2023-03-29, Close, 28252.33\n", - "2023-03-29, BUY CREATE, 28252.33\n", - "2023-03-29, Order Canceled/Margin/Rejected\n", - "2023-03-29, Close, 28316.13\n", - "2023-03-29, BUY CREATE, 28316.13\n", - "2023-03-29, Order Canceled/Margin/Rejected\n", - "2023-03-29, Close, 28419.49\n", - "2023-03-29, BUY CREATE, 28419.49\n", - "2023-03-29, Order Canceled/Margin/Rejected\n", - "2023-03-29, Close, 28388.58\n", - "2023-03-29, BUY CREATE, 28388.58\n", - "2023-03-29, Order Canceled/Margin/Rejected\n", - "2023-03-29, Close, 28291.00\n", - "2023-03-29, Close, 28389.41\n", - "2023-03-29, BUY CREATE, 28389.41\n", - "2023-03-29, Order Canceled/Margin/Rejected\n", - "2023-03-29, Close, 28348.60\n", - "2023-03-29, BUY CREATE, 28348.60\n", - "2023-03-30, Order Canceled/Margin/Rejected\n", - "2023-03-30, Close, 28328.47\n", - "2023-03-30, Close, 28350.00\n", - "2023-03-30, BUY CREATE, 28350.00\n", - "2023-03-30, Order Canceled/Margin/Rejected\n", - "2023-03-30, Close, 28964.76\n", - "2023-03-30, BUY CREATE, 28964.76\n", - "2023-03-30, Order Canceled/Margin/Rejected\n", - "2023-03-30, Close, 28489.18\n", - "2023-03-30, BUY CREATE, 28489.18\n", - "2023-03-30, Order Canceled/Margin/Rejected\n", - "2023-03-30, Close, 28587.64\n", - "2023-03-30, BUY CREATE, 28587.64\n", - "2023-03-30, Order Canceled/Margin/Rejected\n", - "2023-03-30, Close, 28613.98\n", - "2023-03-30, BUY CREATE, 28613.98\n", - "2023-03-30, Order Canceled/Margin/Rejected\n", - "2023-03-30, Close, 28613.88\n", - "2023-03-30, BUY CREATE, 28613.88\n", - "2023-03-30, Order Canceled/Margin/Rejected\n", - "2023-03-30, Close, 28725.01\n", - "2023-03-30, BUY CREATE, 28725.01\n", - "2023-03-30, Order Canceled/Margin/Rejected\n", - "2023-03-30, Close, 28572.81\n", - "2023-03-30, BUY CREATE, 28572.81\n", - "2023-03-30, Order Canceled/Margin/Rejected\n", - "2023-03-30, Close, 28583.59\n", - "2023-03-30, BUY CREATE, 28583.59\n", - "2023-03-30, Order Canceled/Margin/Rejected\n", - "2023-03-30, Close, 28602.48\n", - "2023-03-30, BUY CREATE, 28602.48\n", - "2023-03-30, Order Canceled/Margin/Rejected\n", - "2023-03-30, Close, 28644.79\n", - "2023-03-30, BUY CREATE, 28644.79\n", - "2023-03-30, Order Canceled/Margin/Rejected\n", - "2023-03-30, Close, 28646.35\n", - "2023-03-30, BUY CREATE, 28646.35\n", - "2023-03-30, Order Canceled/Margin/Rejected\n", - "2023-03-30, Close, 28517.96\n", - "2023-03-30, Close, 28428.47\n", - "2023-03-30, Close, 28300.33\n", - "2023-03-30, Close, 28247.27\n", - "2023-03-30, Close, 27839.41\n", - "2023-03-30, Close, 27903.69\n", - "2023-03-30, Close, 27986.09\n", - "2023-03-30, Close, 28149.80\n", - "2023-03-30, Close, 28068.50\n", - "2023-03-30, Close, 27898.59\n", - "2023-03-30, Close, 28028.53\n", - "2023-03-31, Close, 28249.17\n", - "2023-03-31, BUY CREATE, 28249.17\n", - "2023-03-31, Order Canceled/Margin/Rejected\n", - "2023-03-31, Close, 28153.12\n", - "2023-03-31, Close, 28146.79\n", - "2023-03-31, Close, 28168.41\n", - "2023-03-31, BUY CREATE, 28168.41\n", - "2023-03-31, Order Canceled/Margin/Rejected\n", - "2023-03-31, Close, 28179.60\n", - "2023-03-31, BUY CREATE, 28179.60\n", - "2023-03-31, Order Canceled/Margin/Rejected\n", - "2023-03-31, Close, 28034.52\n", - "2023-03-31, Close, 28079.96\n", - "2023-03-31, BUY CREATE, 28079.96\n", - "2023-03-31, Order Canceled/Margin/Rejected\n", - "2023-03-31, Close, 27738.48\n", - "2023-03-31, Close, 27797.32\n", - "2023-03-31, Close, 27819.99\n", - "2023-03-31, Close, 27893.80\n", - "2023-03-31, Close, 27927.97\n", - "2023-03-31, Close, 28110.36\n", - "2023-03-31, BUY CREATE, 28110.36\n", - "2023-03-31, Order Canceled/Margin/Rejected\n", - "2023-03-31, Close, 28370.78\n", - "2023-03-31, BUY CREATE, 28370.78\n", - "2023-03-31, Order Canceled/Margin/Rejected\n", - "2023-03-31, Close, 28521.78\n", - "2023-03-31, BUY CREATE, 28521.78\n", - "2023-03-31, Order Canceled/Margin/Rejected\n", - "2023-03-31, Close, 28494.99\n", - "2023-03-31, BUY CREATE, 28494.99\n", - "2023-03-31, Order Canceled/Margin/Rejected\n", - "2023-03-31, Close, 28430.76\n", - "2023-03-31, BUY CREATE, 28430.76\n", - "2023-03-31, Order Canceled/Margin/Rejected\n", - "2023-03-31, Close, 28334.53\n", - "2023-03-31, BUY CREATE, 28334.53\n", - "2023-03-31, Order Canceled/Margin/Rejected\n", - "2023-03-31, Close, 28315.50\n", - "2023-03-31, BUY CREATE, 28315.50\n", - "2023-03-31, Order Canceled/Margin/Rejected\n", - "2023-03-31, Close, 28469.31\n", - "2023-03-31, BUY CREATE, 28469.31\n", - "2023-03-31, Order Canceled/Margin/Rejected\n", - "2023-03-31, Close, 28391.80\n", - "2023-03-31, BUY CREATE, 28391.80\n", - "2023-03-31, Order Canceled/Margin/Rejected\n", - "2023-03-31, Close, 28477.19\n", - "2023-03-31, BUY CREATE, 28477.19\n", - "2023-03-31, Order Canceled/Margin/Rejected\n", - "2023-03-31, Close, 28570.31\n", - "2023-03-31, BUY CREATE, 28570.31\n", - "2023-03-31, Order Canceled/Margin/Rejected\n", - "2023-03-31, Close, 28465.36\n", - "2023-03-31, BUY CREATE, 28465.36\n", - "2023-04-01, Order Canceled/Margin/Rejected\n", - "2023-04-01, Close, 28438.27\n", - "2023-04-01, BUY CREATE, 28438.27\n", - "2023-04-01, Order Canceled/Margin/Rejected\n", - "2023-04-01, Close, 28610.63\n", - "2023-04-01, BUY CREATE, 28610.63\n", - "2023-04-01, Order Canceled/Margin/Rejected\n", - "2023-04-01, Close, 28583.36\n", - "2023-04-01, BUY CREATE, 28583.36\n", - "2023-04-01, Order Canceled/Margin/Rejected\n", - "2023-04-01, Close, 28541.10\n", - "2023-04-01, BUY CREATE, 28541.10\n", - "2023-04-01, Order Canceled/Margin/Rejected\n", - "2023-04-01, Close, 28580.00\n", - "2023-04-01, BUY CREATE, 28580.00\n", - "2023-04-01, Order Canceled/Margin/Rejected\n", - "2023-04-01, Close, 28571.08\n", - "2023-04-01, BUY CREATE, 28571.08\n", - "2023-04-01, Order Canceled/Margin/Rejected\n", - "2023-04-01, Close, 28482.72\n", - "2023-04-01, Close, 28424.99\n", - "2023-04-01, Close, 28440.56\n", - "2023-04-01, Close, 28425.49\n", - "2023-04-01, Close, 28465.32\n", - "2023-04-01, Close, 28372.85\n", - "2023-04-01, Close, 28422.89\n", - "2023-04-01, Close, 28417.80\n", - "2023-04-01, Close, 28318.04\n", - "2023-04-01, Close, 28400.07\n", - "2023-04-01, Close, 28326.00\n", - "2023-04-01, Close, 28372.37\n", - "2023-04-01, Close, 28376.74\n", - "2023-04-01, Close, 28381.98\n", - "2023-04-01, Close, 28446.78\n", - "2023-04-01, BUY CREATE, 28446.78\n", - "2023-04-01, Order Canceled/Margin/Rejected\n", - "2023-04-01, Close, 28477.72\n", - "2023-04-01, BUY CREATE, 28477.72\n", - "2023-04-01, Order Canceled/Margin/Rejected\n", - "2023-04-01, Close, 28517.94\n", - "2023-04-01, BUY CREATE, 28517.94\n", - "2023-04-01, Order Canceled/Margin/Rejected\n", - "2023-04-01, Close, 28452.73\n", - "2023-04-01, BUY CREATE, 28452.73\n", - "2023-04-02, Order Canceled/Margin/Rejected\n", - "2023-04-02, Close, 28366.30\n", - "2023-04-02, Close, 28388.34\n", - "2023-04-02, Close, 28406.13\n", - "2023-04-02, BUY CREATE, 28406.13\n", - "2023-04-02, Order Canceled/Margin/Rejected\n", - "2023-04-02, Close, 28476.59\n", - "2023-04-02, BUY CREATE, 28476.59\n", - "2023-04-02, Order Canceled/Margin/Rejected\n", - "2023-04-02, Close, 28386.09\n", - "2023-04-02, Close, 28470.01\n", - "2023-04-02, BUY CREATE, 28470.01\n", - "2023-04-02, Order Canceled/Margin/Rejected\n", - "2023-04-02, Close, 28458.26\n", - "2023-04-02, BUY CREATE, 28458.26\n", - "2023-04-02, Order Canceled/Margin/Rejected\n", - "2023-04-02, Close, 28416.38\n", - "2023-04-02, Close, 28381.37\n", - "2023-04-02, Close, 28410.57\n", - "2023-04-02, Close, 28367.25\n", - "2023-04-02, Close, 28357.93\n", - "2023-04-02, Close, 28265.26\n", - "2023-04-02, Close, 28279.53\n", - "2023-04-02, Close, 28273.10\n", - "2023-04-02, Close, 28124.81\n", - "2023-04-02, Close, 28121.97\n", - "2023-04-02, Close, 28194.39\n", - "2023-04-02, Close, 28156.98\n", - "2023-04-02, Close, 27943.85\n", - "2023-04-02, Close, 28058.75\n", - "2023-04-02, Close, 28014.80\n", - "2023-04-02, Close, 28105.81\n", - "2023-04-02, Close, 28171.87\n", - "2023-04-03, Close, 28114.62\n", - "2023-04-03, Close, 27709.94\n", - "2023-04-03, Close, 27719.09\n", - "2023-04-03, Close, 27753.85\n", - "2023-04-03, Close, 27704.39\n", - "2023-04-03, Close, 27679.57\n", - "2023-04-03, Close, 27779.48\n", - "2023-04-03, Close, 27958.74\n", - "2023-04-03, BUY CREATE, 27958.74\n", - "2023-04-03, Order Canceled/Margin/Rejected\n", - "2023-04-03, Close, 28335.00\n", - "2023-04-03, BUY CREATE, 28335.00\n", - "2023-04-03, Order Canceled/Margin/Rejected\n", - "2023-04-03, Close, 28327.33\n", - "2023-04-03, BUY CREATE, 28327.33\n", - "2023-04-03, Order Canceled/Margin/Rejected\n", - "2023-04-03, Close, 28303.77\n", - "2023-04-03, BUY CREATE, 28303.77\n", - "2023-04-03, Order Canceled/Margin/Rejected\n", - "2023-04-03, Close, 28253.73\n", - "2023-04-03, BUY CREATE, 28253.73\n", - "2023-04-03, Order Canceled/Margin/Rejected\n", - "2023-04-03, Close, 28163.01\n", - "2023-04-03, BUY CREATE, 28163.01\n", - "2023-04-03, Order Canceled/Margin/Rejected\n", - "2023-04-03, Close, 28258.78\n", - "2023-04-03, BUY CREATE, 28258.78\n", - "2023-04-03, Order Canceled/Margin/Rejected\n", - "2023-04-03, Close, 27995.04\n", - "2023-04-03, Close, 28051.48\n", - "2023-04-03, BUY CREATE, 28051.48\n", - "2023-04-03, Order Canceled/Margin/Rejected\n", - "2023-04-03, Close, 27930.84\n", - "2023-04-03, Close, 27986.48\n", - "2023-04-03, Close, 28152.00\n", - "2023-04-03, BUY CREATE, 28152.00\n", - "2023-04-03, Order Canceled/Margin/Rejected\n", - "2023-04-03, Close, 28081.08\n", - "2023-04-03, Close, 27582.78\n", - "2023-04-03, Close, 27714.56\n", - "2023-04-03, Close, 27799.99\n", - "2023-04-03, Close, 27800.00\n", - "2023-04-04, Close, 27760.58\n", - "2023-04-04, Close, 27816.16\n", - "2023-04-04, Close, 27857.35\n", - "2023-04-04, Close, 27855.06\n", - "2023-04-04, Close, 27813.86\n", - "2023-04-04, Close, 27890.01\n", - "2023-04-04, BUY CREATE, 27890.01\n", - "2023-04-04, Order Canceled/Margin/Rejected\n", - "2023-04-04, Close, 28078.14\n", - "2023-04-04, BUY CREATE, 28078.14\n", - "2023-04-04, Order Canceled/Margin/Rejected\n", - "2023-04-04, Close, 28021.30\n", - "2023-04-04, BUY CREATE, 28021.30\n", - "2023-04-04, Order Canceled/Margin/Rejected\n", - "2023-04-04, Close, 28103.48\n", - "2023-04-04, BUY CREATE, 28103.48\n", - "2023-04-04, Order Canceled/Margin/Rejected\n", - "2023-04-04, Close, 28198.76\n", - "2023-04-04, BUY CREATE, 28198.76\n", - "2023-04-04, Order Canceled/Margin/Rejected\n", - "2023-04-04, Close, 28219.63\n", - "2023-04-04, BUY CREATE, 28219.63\n", - "2023-04-04, Order Canceled/Margin/Rejected\n", - "2023-04-04, Close, 28289.52\n", - "2023-04-04, BUY CREATE, 28289.52\n", - "2023-04-04, Order Canceled/Margin/Rejected\n", - "2023-04-04, Close, 28267.68\n", - "2023-04-04, BUY CREATE, 28267.68\n", - "2023-04-04, Order Canceled/Margin/Rejected\n", - "2023-04-04, Close, 28111.04\n", - "2023-04-04, BUY CREATE, 28111.04\n", - "2023-04-04, Order Canceled/Margin/Rejected\n", - "2023-04-04, Close, 28123.00\n", - "2023-04-04, BUY CREATE, 28123.00\n", - "2023-04-04, Order Canceled/Margin/Rejected\n", - "2023-04-04, Close, 28030.04\n", - "2023-04-04, Close, 28098.99\n", - "2023-04-04, BUY CREATE, 28098.99\n", - "2023-04-04, Order Canceled/Margin/Rejected\n", - "2023-04-04, Close, 28226.99\n", - "2023-04-04, BUY CREATE, 28226.99\n", - "2023-04-04, Order Canceled/Margin/Rejected\n", - "2023-04-04, Close, 28114.42\n", - "2023-04-04, BUY CREATE, 28114.42\n", - "2023-04-04, Order Canceled/Margin/Rejected\n", - "2023-04-04, Close, 28189.25\n", - "2023-04-04, BUY CREATE, 28189.25\n", - "2023-04-04, Order Canceled/Margin/Rejected\n", - "2023-04-04, Close, 28250.04\n", - "2023-04-04, BUY CREATE, 28250.04\n", - "2023-04-04, Order Canceled/Margin/Rejected\n", - "2023-04-04, Close, 28223.62\n", - "2023-04-04, BUY CREATE, 28223.62\n", - "2023-04-04, Order Canceled/Margin/Rejected\n", - "2023-04-04, Close, 28187.26\n", - "2023-04-04, BUY CREATE, 28187.26\n", - "2023-04-04, Order Canceled/Margin/Rejected\n", - "2023-04-04, Close, 28165.47\n", - "2023-04-05, Close, 28661.81\n", - "2023-04-05, BUY CREATE, 28661.81\n", - "2023-04-05, Order Canceled/Margin/Rejected\n", - "2023-04-05, Close, 28571.41\n", - "2023-04-05, BUY CREATE, 28571.41\n", - "2023-04-05, Order Canceled/Margin/Rejected\n", - "2023-04-05, Close, 28565.57\n", - "2023-04-05, BUY CREATE, 28565.57\n", - "2023-04-05, Order Canceled/Margin/Rejected\n", - "2023-04-05, Close, 28544.72\n", - "2023-04-05, BUY CREATE, 28544.72\n", - "2023-04-05, Order Canceled/Margin/Rejected\n", - "2023-04-05, Close, 28506.62\n", - "2023-04-05, BUY CREATE, 28506.62\n", - "2023-04-05, Order Canceled/Margin/Rejected\n", - "2023-04-05, Close, 28582.84\n", - "2023-04-05, BUY CREATE, 28582.84\n", - "2023-04-05, Order Canceled/Margin/Rejected\n", - "2023-04-05, Close, 28534.42\n", - "2023-04-05, BUY CREATE, 28534.42\n", - "2023-04-05, Order Canceled/Margin/Rejected\n", - "2023-04-05, Close, 28525.21\n", - "2023-04-05, BUY CREATE, 28525.21\n", - "2023-04-05, Order Canceled/Margin/Rejected\n", - "2023-04-05, Close, 28543.80\n", - "2023-04-05, BUY CREATE, 28543.80\n", - "2023-04-05, Order Canceled/Margin/Rejected\n", - "2023-04-05, Close, 28508.76\n", - "2023-04-05, BUY CREATE, 28508.76\n", - "2023-04-05, Order Canceled/Margin/Rejected\n", - "2023-04-05, Close, 28510.00\n", - "2023-04-05, BUY CREATE, 28510.00\n", - "2023-04-05, Order Canceled/Margin/Rejected\n", - "2023-04-05, Close, 28554.38\n", - "2023-04-05, BUY CREATE, 28554.38\n", - "2023-04-05, Order Canceled/Margin/Rejected\n", - "2023-04-05, Close, 28568.95\n", - "2023-04-05, BUY CREATE, 28568.95\n", - "2023-04-05, Order Canceled/Margin/Rejected\n", - "2023-04-05, Close, 28404.58\n", - "2023-04-05, Close, 28105.20\n", - "2023-04-05, Close, 28031.09\n", - "2023-04-05, Close, 27947.99\n", - "2023-04-05, Close, 28023.74\n", - "2023-04-05, Close, 28030.20\n", - "2023-04-05, Close, 28240.64\n", - "2023-04-05, Close, 28150.61\n", - "2023-04-05, Close, 28181.06\n", - "2023-04-05, Close, 28175.28\n", - "2023-04-05, Close, 28170.01\n", - "2023-04-06, Close, 27999.15\n", - "2023-04-06, Close, 28064.46\n", - "2023-04-06, Close, 28039.73\n", - "2023-04-06, Close, 28128.42\n", - "2023-04-06, BUY CREATE, 28128.42\n", - "2023-04-06, Order Canceled/Margin/Rejected\n", - "2023-04-06, Close, 28068.91\n", - "2023-04-06, Close, 28036.75\n", - "2023-04-06, Close, 28063.91\n", - "2023-04-06, Close, 27910.97\n", - "2023-04-06, Close, 27953.62\n", - "2023-04-06, Close, 27904.04\n", - "2023-04-06, Close, 27850.00\n", - "2023-04-06, Close, 27945.52\n", - "2023-04-06, Close, 27903.73\n", - "2023-04-06, Close, 27891.16\n", - "2023-04-06, Close, 27952.78\n", - "2023-04-06, Close, 28090.39\n", - "2023-04-06, BUY CREATE, 28090.39\n", - "2023-04-06, Order Canceled/Margin/Rejected\n", - "2023-04-06, Close, 28065.14\n", - "2023-04-06, BUY CREATE, 28065.14\n", - "2023-04-06, Order Canceled/Margin/Rejected\n", - "2023-04-06, Close, 28041.40\n", - "2023-04-06, BUY CREATE, 28041.40\n", - "2023-04-06, Order Canceled/Margin/Rejected\n", - "2023-04-06, Close, 27963.35\n", - "2023-04-06, Close, 28017.77\n", - "2023-04-06, BUY CREATE, 28017.77\n", - "2023-04-06, Order Canceled/Margin/Rejected\n", - "2023-04-06, Close, 27975.85\n", - "2023-04-06, BUY CREATE, 27975.85\n", - "2023-04-06, Order Canceled/Margin/Rejected\n", - "2023-04-06, Close, 27989.16\n", - "2023-04-06, BUY CREATE, 27989.16\n", - "2023-04-06, Order Canceled/Margin/Rejected\n", - "2023-04-06, Close, 28007.86\n", - "2023-04-06, BUY CREATE, 28007.86\n", - "2023-04-06, Order Canceled/Margin/Rejected\n", - "2023-04-06, Close, 28033.82\n", - "2023-04-06, BUY CREATE, 28033.82\n", - "2023-04-07, Order Canceled/Margin/Rejected\n", - "2023-04-07, Close, 28097.99\n", - "2023-04-07, BUY CREATE, 28097.99\n", - "2023-04-07, Order Canceled/Margin/Rejected\n", - "2023-04-07, Close, 28056.51\n", - "2023-04-07, BUY CREATE, 28056.51\n", - "2023-04-07, Order Canceled/Margin/Rejected\n", - "2023-04-07, Close, 28017.22\n", - "2023-04-07, BUY CREATE, 28017.22\n", - "2023-04-07, Order Canceled/Margin/Rejected\n", - "2023-04-07, Close, 28038.66\n", - "2023-04-07, BUY CREATE, 28038.66\n", - "2023-04-07, Order Canceled/Margin/Rejected\n", - "2023-04-07, Close, 28021.77\n", - "2023-04-07, Close, 27980.00\n", - "2023-04-07, Close, 27960.09\n", - "2023-04-07, Close, 27839.78\n", - "2023-04-07, Close, 27816.76\n", - "2023-04-07, Close, 27869.48\n", - "2023-04-07, Close, 27933.36\n", - "2023-04-07, Close, 27840.90\n", - "2023-04-07, Close, 27892.63\n", - "2023-04-07, Close, 27896.93\n", - "2023-04-07, Close, 27914.64\n", - "2023-04-07, Close, 27944.10\n", - "2023-04-07, BUY CREATE, 27944.10\n", - "2023-04-07, Order Canceled/Margin/Rejected\n", - "2023-04-07, Close, 27879.30\n", - "2023-04-07, Close, 27911.51\n", - "2023-04-07, Close, 27891.77\n", - "2023-04-07, Close, 27897.52\n", - "2023-04-07, Close, 27864.20\n", - "2023-04-07, Close, 27891.13\n", - "2023-04-07, BUY CREATE, 27891.13\n", - "2023-04-07, Order Canceled/Margin/Rejected\n", - "2023-04-07, Close, 27955.99\n", - "2023-04-07, BUY CREATE, 27955.99\n", - "2023-04-07, Order Canceled/Margin/Rejected\n", - "2023-04-07, Close, 27906.33\n", - "2023-04-07, BUY CREATE, 27906.33\n", - "2023-04-08, Order Canceled/Margin/Rejected\n", - "2023-04-08, Close, 27880.27\n", - "2023-04-08, Close, 27903.24\n", - "2023-04-08, BUY CREATE, 27903.24\n", - "2023-04-08, Order Canceled/Margin/Rejected\n", - "2023-04-08, Close, 27956.76\n", - "2023-04-08, BUY CREATE, 27956.76\n", - "2023-04-08, Order Canceled/Margin/Rejected\n", - "2023-04-08, Close, 28023.39\n", - "2023-04-08, BUY CREATE, 28023.39\n", - "2023-04-08, Order Canceled/Margin/Rejected\n", - "2023-04-08, Close, 27984.98\n", - "2023-04-08, BUY CREATE, 27984.98\n", - "2023-04-08, Order Canceled/Margin/Rejected\n", - "2023-04-08, Close, 28140.92\n", - "2023-04-08, BUY CREATE, 28140.92\n", - "2023-04-08, Order Canceled/Margin/Rejected\n", - "2023-04-08, Close, 28113.12\n", - "2023-04-08, BUY CREATE, 28113.12\n", - "2023-04-08, Order Canceled/Margin/Rejected\n", - "2023-04-08, Close, 28086.22\n", - "2023-04-08, BUY CREATE, 28086.22\n", - "2023-04-08, Order Canceled/Margin/Rejected\n", - "2023-04-08, Close, 28025.53\n", - "2023-04-08, BUY CREATE, 28025.53\n", - "2023-04-08, Order Canceled/Margin/Rejected\n", - "2023-04-08, Close, 28032.49\n", - "2023-04-08, BUY CREATE, 28032.49\n", - "2023-04-08, Order Canceled/Margin/Rejected\n", - "2023-04-08, Close, 28011.62\n", - "2023-04-08, BUY CREATE, 28011.62\n", - "2023-04-08, Order Canceled/Margin/Rejected\n", - "2023-04-08, Close, 28016.09\n", - "2023-04-08, BUY CREATE, 28016.09\n", - "2023-04-08, Order Canceled/Margin/Rejected\n", - "2023-04-08, Close, 27987.57\n", - "2023-04-08, Close, 28020.66\n", - "2023-04-08, BUY CREATE, 28020.66\n", - "2023-04-08, Order Canceled/Margin/Rejected\n", - "2023-04-08, Close, 28027.67\n", - "2023-04-08, BUY CREATE, 28027.67\n", - "2023-04-08, Order Canceled/Margin/Rejected\n", - "2023-04-08, Close, 28014.70\n", - "2023-04-08, Close, 28002.53\n", - "2023-04-08, Close, 27935.11\n", - "2023-04-08, Close, 27904.38\n", - "2023-04-08, Close, 27924.13\n", - "2023-04-08, Close, 27911.69\n", - "2023-04-08, Close, 27929.80\n", - "2023-04-08, Close, 27937.77\n", - "2023-04-08, Close, 27938.38\n", - "2023-04-09, Close, 28036.76\n", - "2023-04-09, BUY CREATE, 28036.76\n", - "2023-04-09, Order Canceled/Margin/Rejected\n", - "2023-04-09, Close, 28077.78\n", - "2023-04-09, BUY CREATE, 28077.78\n", - "2023-04-09, Order Canceled/Margin/Rejected\n", - "2023-04-09, Close, 28036.30\n", - "2023-04-09, BUY CREATE, 28036.30\n", - "2023-04-09, Order Canceled/Margin/Rejected\n", - "2023-04-09, Close, 28027.71\n", - "2023-04-09, BUY CREATE, 28027.71\n", - "2023-04-09, Order Canceled/Margin/Rejected\n", - "2023-04-09, Close, 28037.39\n", - "2023-04-09, BUY CREATE, 28037.39\n", - "2023-04-09, Order Canceled/Margin/Rejected\n", - "2023-04-09, Close, 27999.25\n", - "2023-04-09, BUY CREATE, 27999.25\n", - "2023-04-09, Order Canceled/Margin/Rejected\n", - "2023-04-09, Close, 27880.13\n", - "2023-04-09, Close, 27903.02\n", - "2023-04-09, Close, 27881.64\n", - "2023-04-09, Close, 27898.58\n", - "2023-04-09, Close, 27893.22\n", - "2023-04-09, Close, 27930.20\n", - "2023-04-09, Close, 27930.07\n", - "2023-04-09, Close, 27905.62\n", - "2023-04-09, Close, 27866.49\n", - "2023-04-09, Close, 27891.91\n", - "2023-04-09, Close, 27896.98\n", - "2023-04-09, Close, 27906.68\n", - "2023-04-09, Close, 28026.72\n", - "2023-04-09, BUY CREATE, 28026.72\n", - "2023-04-09, Order Canceled/Margin/Rejected\n", - "2023-04-09, Close, 28140.40\n", - "2023-04-09, BUY CREATE, 28140.40\n", - "2023-04-09, Order Canceled/Margin/Rejected\n", - "2023-04-09, Close, 28114.63\n", - "2023-04-09, BUY CREATE, 28114.63\n", - "2023-04-09, Order Canceled/Margin/Rejected\n", - "2023-04-09, Close, 28437.19\n", - "2023-04-09, BUY CREATE, 28437.19\n", - "2023-04-09, Order Canceled/Margin/Rejected\n", - "2023-04-09, Close, 28371.39\n", - "2023-04-09, BUY CREATE, 28371.39\n", - "2023-04-09, Order Canceled/Margin/Rejected\n", - "2023-04-09, Close, 28323.76\n", - "2023-04-09, BUY CREATE, 28323.76\n", - "2023-04-10, Order Canceled/Margin/Rejected\n", - "2023-04-10, Close, 28381.25\n", - "2023-04-10, BUY CREATE, 28381.25\n", - "2023-04-10, Order Canceled/Margin/Rejected\n", - "2023-04-10, Close, 28304.05\n", - "2023-04-10, BUY CREATE, 28304.05\n", - "2023-04-10, Order Canceled/Margin/Rejected\n", - "2023-04-10, Close, 28296.00\n", - "2023-04-10, BUY CREATE, 28296.00\n", - "2023-04-10, Order Canceled/Margin/Rejected\n", - "2023-04-10, Close, 28278.45\n", - "2023-04-10, BUY CREATE, 28278.45\n", - "2023-04-10, Order Canceled/Margin/Rejected\n", - "2023-04-10, Close, 28234.51\n", - "2023-04-10, BUY CREATE, 28234.51\n", - "2023-04-10, Order Canceled/Margin/Rejected\n", - "2023-04-10, Close, 28282.16\n", - "2023-04-10, BUY CREATE, 28282.16\n", - "2023-04-10, Order Canceled/Margin/Rejected\n", - "2023-04-10, Close, 28277.94\n", - "2023-04-10, BUY CREATE, 28277.94\n", - "2023-04-10, Order Canceled/Margin/Rejected\n", - "2023-04-10, Close, 28284.57\n", - "2023-04-10, BUY CREATE, 28284.57\n", - "2023-04-10, Order Canceled/Margin/Rejected\n", - "2023-04-10, Close, 28295.16\n", - "2023-04-10, BUY CREATE, 28295.16\n", - "2023-04-10, Order Canceled/Margin/Rejected\n", - "2023-04-10, Close, 28310.29\n", - "2023-04-10, BUY CREATE, 28310.29\n", - "2023-04-10, Order Canceled/Margin/Rejected\n", - "2023-04-10, Close, 28331.88\n", - "2023-04-10, BUY CREATE, 28331.88\n", - "2023-04-10, Order Canceled/Margin/Rejected\n", - "2023-04-10, Close, 28305.60\n", - "2023-04-10, Close, 28277.86\n", - "2023-04-10, Close, 28217.46\n", - "2023-04-10, Close, 28305.43\n", - "2023-04-10, BUY CREATE, 28305.43\n", - "2023-04-10, Order Canceled/Margin/Rejected\n", - "2023-04-10, Close, 28439.38\n", - "2023-04-10, BUY CREATE, 28439.38\n", - "2023-04-10, Order Canceled/Margin/Rejected\n", - "2023-04-10, Close, 29036.85\n", - "2023-04-10, BUY CREATE, 29036.85\n", - "2023-04-10, Order Canceled/Margin/Rejected\n", - "2023-04-10, Close, 29160.00\n", - "2023-04-10, BUY CREATE, 29160.00\n", - "2023-04-10, Order Canceled/Margin/Rejected\n", - "2023-04-10, Close, 29273.14\n", - "2023-04-10, BUY CREATE, 29273.14\n", - "2023-04-10, Order Canceled/Margin/Rejected\n", - "2023-04-10, Close, 29173.06\n", - "2023-04-10, BUY CREATE, 29173.06\n", - "2023-04-10, Order Canceled/Margin/Rejected\n", - "2023-04-10, Close, 29115.11\n", - "2023-04-10, BUY CREATE, 29115.11\n", - "2023-04-10, Order Canceled/Margin/Rejected\n", - "2023-04-10, Close, 29222.34\n", - "2023-04-10, BUY CREATE, 29222.34\n", - "2023-04-10, Order Canceled/Margin/Rejected\n", - "2023-04-10, Close, 29594.00\n", - "2023-04-10, BUY CREATE, 29594.00\n", - "2023-04-10, Order Canceled/Margin/Rejected\n", - "2023-04-10, Close, 29637.34\n", - "2023-04-10, BUY CREATE, 29637.34\n", - "2023-04-11, Order Canceled/Margin/Rejected\n", - "2023-04-11, Close, 29928.86\n", - "2023-04-11, BUY CREATE, 29928.86\n", - "2023-04-11, Order Canceled/Margin/Rejected\n", - "2023-04-11, Close, 30189.90\n", - "2023-04-11, BUY CREATE, 30189.90\n", - "2023-04-11, Order Canceled/Margin/Rejected\n", - "2023-04-11, Close, 30083.01\n", - "2023-04-11, BUY CREATE, 30083.01\n", - "2023-04-11, Order Canceled/Margin/Rejected\n", - "2023-04-11, Close, 30115.95\n", - "2023-04-11, BUY CREATE, 30115.95\n", - "2023-04-11, Order Canceled/Margin/Rejected\n", - "2023-04-11, Close, 30109.01\n", - "2023-04-11, BUY CREATE, 30109.01\n", - "2023-04-11, Order Canceled/Margin/Rejected\n", - "2023-04-11, Close, 29883.84\n", - "2023-04-11, BUY CREATE, 29883.84\n", - "2023-04-11, Order Canceled/Margin/Rejected\n", - "2023-04-11, Close, 30035.78\n", - "2023-04-11, BUY CREATE, 30035.78\n", - "2023-04-11, Order Canceled/Margin/Rejected\n", - "2023-04-11, Close, 30106.89\n", - "2023-04-11, BUY CREATE, 30106.89\n", - "2023-04-11, Order Canceled/Margin/Rejected\n", - "2023-04-11, Close, 30093.90\n", - "2023-04-11, BUY CREATE, 30093.90\n", - "2023-04-11, Order Canceled/Margin/Rejected\n", - "2023-04-11, Close, 30052.38\n", - "2023-04-11, BUY CREATE, 30052.38\n", - "2023-04-11, Order Canceled/Margin/Rejected\n", - "2023-04-11, Close, 30122.50\n", - "2023-04-11, BUY CREATE, 30122.50\n", - "2023-04-11, Order Canceled/Margin/Rejected\n", - "2023-04-11, Close, 30055.15\n", - "2023-04-11, BUY CREATE, 30055.15\n", - "2023-04-11, Order Canceled/Margin/Rejected\n", - "2023-04-11, Close, 30098.92\n", - "2023-04-11, BUY CREATE, 30098.92\n", - "2023-04-11, Order Canceled/Margin/Rejected\n", - "2023-04-11, Close, 30246.31\n", - "2023-04-11, BUY CREATE, 30246.31\n", - "2023-04-11, Order Canceled/Margin/Rejected\n", - "2023-04-11, Close, 30060.39\n", - "2023-04-11, Close, 30194.22\n", - "2023-04-11, BUY CREATE, 30194.22\n", - "2023-04-11, Order Canceled/Margin/Rejected\n", - "2023-04-11, Close, 30127.98\n", - "2023-04-11, BUY CREATE, 30127.98\n", - "2023-04-11, Order Canceled/Margin/Rejected\n", - "2023-04-11, Close, 30207.57\n", - "2023-04-11, BUY CREATE, 30207.57\n", - "2023-04-11, Order Canceled/Margin/Rejected\n", - "2023-04-11, Close, 30230.24\n", - "2023-04-11, BUY CREATE, 30230.24\n", - "2023-04-11, Order Canceled/Margin/Rejected\n", - "2023-04-11, Close, 30130.02\n", - "2023-04-11, BUY CREATE, 30130.02\n", - "2023-04-11, Order Canceled/Margin/Rejected\n", - "2023-04-11, Close, 30164.23\n", - "2023-04-11, BUY CREATE, 30164.23\n", - "2023-04-11, Order Canceled/Margin/Rejected\n", - "2023-04-11, Close, 30189.52\n", - "2023-04-11, BUY CREATE, 30189.52\n", - "2023-04-11, Order Canceled/Margin/Rejected\n", - "2023-04-11, Close, 30263.75\n", - "2023-04-11, BUY CREATE, 30263.75\n", - "2023-04-11, Order Canceled/Margin/Rejected\n", - "2023-04-11, Close, 30200.42\n", - "2023-04-11, BUY CREATE, 30200.42\n", - "2023-04-12, Order Canceled/Margin/Rejected\n", - "2023-04-12, Close, 30224.78\n", - "2023-04-12, BUY CREATE, 30224.78\n", - "2023-04-12, Order Canceled/Margin/Rejected\n", - "2023-04-12, Close, 30170.80\n", - "2023-04-12, Close, 29916.16\n", - "2023-04-12, Close, 29922.04\n", - "2023-04-12, Close, 29978.58\n", - "2023-04-12, Close, 29920.00\n", - "2023-04-12, Close, 29932.89\n", - "2023-04-12, Close, 29987.00\n", - "2023-04-12, Close, 29914.97\n", - "2023-04-12, Close, 30007.68\n", - "2023-04-12, Close, 29996.27\n", - "2023-04-12, Close, 30016.30\n", - "2023-04-12, Close, 30157.09\n", - "2023-04-12, BUY CREATE, 30157.09\n", - "2023-04-12, Order Canceled/Margin/Rejected\n", - "2023-04-12, Close, 30053.73\n", - "2023-04-12, BUY CREATE, 30053.73\n", - "2023-04-12, Order Canceled/Margin/Rejected\n", - "2023-04-12, Close, 30024.69\n", - "2023-04-12, BUY CREATE, 30024.69\n", - "2023-04-12, Order Canceled/Margin/Rejected\n", - "2023-04-12, Close, 29964.02\n", - "2023-04-12, Close, 29939.02\n", - "2023-04-12, Close, 30023.92\n", - "2023-04-12, BUY CREATE, 30023.92\n", - "2023-04-12, Order Canceled/Margin/Rejected\n", - "2023-04-12, Close, 29917.26\n", - "2023-04-12, Close, 29798.59\n", - "2023-04-12, Close, 29947.47\n", - "2023-04-12, Close, 29944.12\n", - "2023-04-12, Close, 29841.35\n", - "2023-04-12, Close, 29888.07\n", - "2023-04-13, Close, 29984.69\n", - "2023-04-13, BUY CREATE, 29984.69\n", - "2023-04-13, Order Canceled/Margin/Rejected\n", - "2023-04-13, Close, 30065.13\n", - "2023-04-13, BUY CREATE, 30065.13\n", - "2023-04-13, Order Canceled/Margin/Rejected\n", - "2023-04-13, Close, 30116.51\n", - "2023-04-13, BUY CREATE, 30116.51\n", - "2023-04-13, Order Canceled/Margin/Rejected\n", - "2023-04-13, Close, 30072.17\n", - "2023-04-13, BUY CREATE, 30072.17\n", - "2023-04-13, Order Canceled/Margin/Rejected\n", - "2023-04-13, Close, 30053.65\n", - "2023-04-13, BUY CREATE, 30053.65\n", - "2023-04-13, Order Canceled/Margin/Rejected\n", - "2023-04-13, Close, 30105.08\n", - "2023-04-13, BUY CREATE, 30105.08\n", - "2023-04-13, Order Canceled/Margin/Rejected\n", - "2023-04-13, Close, 30016.54\n", - "2023-04-13, BUY CREATE, 30016.54\n", - "2023-04-13, Order Canceled/Margin/Rejected\n", - "2023-04-13, Close, 30068.60\n", - "2023-04-13, BUY CREATE, 30068.60\n", - "2023-04-13, Order Canceled/Margin/Rejected\n", - "2023-04-13, Close, 30188.14\n", - "2023-04-13, BUY CREATE, 30188.14\n", - "2023-04-13, Order Canceled/Margin/Rejected\n", - "2023-04-13, Close, 30204.85\n", - "2023-04-13, BUY CREATE, 30204.85\n", - "2023-04-13, Order Canceled/Margin/Rejected\n", - "2023-04-13, Close, 30203.14\n", - "2023-04-13, BUY CREATE, 30203.14\n", - "2023-04-13, Order Canceled/Margin/Rejected\n", - "2023-04-13, Close, 30159.82\n", - "2023-04-13, BUY CREATE, 30159.82\n", - "2023-04-13, Order Canceled/Margin/Rejected\n", - "2023-04-13, Close, 30272.14\n", - "2023-04-13, BUY CREATE, 30272.14\n", - "2023-04-13, Order Canceled/Margin/Rejected\n", - "2023-04-13, Close, 30175.75\n", - "2023-04-13, BUY CREATE, 30175.75\n", - "2023-04-13, Order Canceled/Margin/Rejected\n", - "2023-04-13, Close, 30435.34\n", - "2023-04-13, BUY CREATE, 30435.34\n", - "2023-04-13, Order Canceled/Margin/Rejected\n", - "2023-04-13, Close, 30441.43\n", - "2023-04-13, BUY CREATE, 30441.43\n", - "2023-04-13, Order Canceled/Margin/Rejected\n", - "2023-04-13, Close, 30322.37\n", - "2023-04-13, BUY CREATE, 30322.37\n", - "2023-04-13, Order Canceled/Margin/Rejected\n", - "2023-04-13, Close, 30425.85\n", - "2023-04-13, BUY CREATE, 30425.85\n", - "2023-04-13, Order Canceled/Margin/Rejected\n", - "2023-04-13, Close, 30440.78\n", - "2023-04-13, BUY CREATE, 30440.78\n", - "2023-04-13, Order Canceled/Margin/Rejected\n", - "2023-04-13, Close, 30335.13\n", - "2023-04-13, BUY CREATE, 30335.13\n", - "2023-04-13, Order Canceled/Margin/Rejected\n", - "2023-04-13, Close, 30251.97\n", - "2023-04-13, Close, 30283.70\n", - "2023-04-13, BUY CREATE, 30283.70\n", - "2023-04-13, Order Canceled/Margin/Rejected\n", - "2023-04-13, Close, 30296.09\n", - "2023-04-13, BUY CREATE, 30296.09\n", - "2023-04-13, Order Canceled/Margin/Rejected\n", - "2023-04-13, Close, 30373.84\n", - "2023-04-13, BUY CREATE, 30373.84\n", - "2023-04-14, Order Canceled/Margin/Rejected\n", - "2023-04-14, Close, 30745.73\n", - "2023-04-14, BUY CREATE, 30745.73\n", - "2023-04-14, Order Canceled/Margin/Rejected\n", - "2023-04-14, Close, 30775.34\n", - "2023-04-14, BUY CREATE, 30775.34\n", - "2023-04-14, Order Canceled/Margin/Rejected\n", - "2023-04-14, Close, 30595.80\n", - "2023-04-14, BUY CREATE, 30595.80\n", - "2023-04-14, Order Canceled/Margin/Rejected\n", - "2023-04-14, Close, 30690.88\n", - "2023-04-14, BUY CREATE, 30690.88\n", - "2023-04-14, Order Canceled/Margin/Rejected\n", - "2023-04-14, Close, 30708.82\n", - "2023-04-14, BUY CREATE, 30708.82\n", - "2023-04-14, Order Canceled/Margin/Rejected\n", - "2023-04-14, Close, 30796.28\n", - "2023-04-14, BUY CREATE, 30796.28\n", - "2023-04-14, Order Canceled/Margin/Rejected\n", - "2023-04-14, Close, 30942.87\n", - "2023-04-14, BUY CREATE, 30942.87\n", - "2023-04-14, Order Canceled/Margin/Rejected\n", - "2023-04-14, Close, 30733.72\n", - "2023-04-14, BUY CREATE, 30733.72\n", - "2023-04-14, Order Canceled/Margin/Rejected\n", - "2023-04-14, Close, 30730.22\n", - "2023-04-14, BUY CREATE, 30730.22\n", - "2023-04-14, Order Canceled/Margin/Rejected\n", - "2023-04-14, Close, 30794.16\n", - "2023-04-14, BUY CREATE, 30794.16\n", - "2023-04-14, Order Canceled/Margin/Rejected\n", - "2023-04-14, Close, 30766.01\n", - "2023-04-14, BUY CREATE, 30766.01\n", - "2023-04-14, Order Canceled/Margin/Rejected\n", - "2023-04-14, Close, 30801.89\n", - "2023-04-14, BUY CREATE, 30801.89\n", - "2023-04-14, Order Canceled/Margin/Rejected\n", - "2023-04-14, Close, 30616.98\n", - "2023-04-14, Close, 30721.54\n", - "2023-04-14, BUY CREATE, 30721.54\n", - "2023-04-14, Order Canceled/Margin/Rejected\n", - "2023-04-14, Close, 30599.89\n", - "2023-04-14, Close, 30237.89\n", - "2023-04-14, Close, 30147.49\n", - "2023-04-14, Close, 30276.62\n", - "2023-04-14, Close, 30277.10\n", - "2023-04-14, Close, 30324.09\n", - "2023-04-14, Close, 30448.82\n", - "2023-04-14, Close, 30454.09\n", - "2023-04-14, Close, 30435.34\n", - "2023-04-14, Close, 30466.93\n", - "2023-04-15, Close, 30372.48\n", - "2023-04-15, Close, 30370.01\n", - "2023-04-15, Close, 30380.00\n", - "2023-04-15, Close, 30376.14\n", - "2023-04-15, Close, 30356.11\n", - "2023-04-15, Close, 30427.05\n", - "2023-04-15, BUY CREATE, 30427.05\n", - "2023-04-15, Order Canceled/Margin/Rejected\n", - "2023-04-15, Close, 30390.99\n", - "2023-04-15, BUY CREATE, 30390.99\n", - "2023-04-15, Order Canceled/Margin/Rejected\n", - "2023-04-15, Close, 30433.30\n", - "2023-04-15, BUY CREATE, 30433.30\n", - "2023-04-15, Order Canceled/Margin/Rejected\n", - "2023-04-15, Close, 30385.12\n", - "2023-04-15, Close, 30459.94\n", - "2023-04-15, BUY CREATE, 30459.94\n", - "2023-04-15, Order Canceled/Margin/Rejected\n", - "2023-04-15, Close, 30417.07\n", - "2023-04-15, BUY CREATE, 30417.07\n", - "2023-04-15, Order Canceled/Margin/Rejected\n", - "2023-04-15, Close, 30385.30\n", - "2023-04-15, Close, 30423.28\n", - "2023-04-15, BUY CREATE, 30423.28\n", - "2023-04-15, Order Canceled/Margin/Rejected\n", - "2023-04-15, Close, 30335.19\n", - "2023-04-15, Close, 30359.39\n", - "2023-04-15, Close, 30325.27\n", - "2023-04-15, Close, 30319.98\n", - "2023-04-15, Close, 30246.21\n", - "2023-04-15, Close, 30300.77\n", - "2023-04-15, Close, 30331.74\n", - "2023-04-15, Close, 30280.65\n", - "2023-04-15, Close, 30263.77\n", - "2023-04-15, Close, 30350.98\n", - "2023-04-15, BUY CREATE, 30350.98\n", - "2023-04-15, Order Canceled/Margin/Rejected\n", - "2023-04-15, Close, 30295.09\n", - "2023-04-16, Close, 30277.54\n", - "2023-04-16, Close, 30236.95\n", - "2023-04-16, Close, 30264.20\n", - "2023-04-16, Close, 30249.37\n", - "2023-04-16, Close, 30298.52\n", - "2023-04-16, BUY CREATE, 30298.52\n", - "2023-04-16, Order Canceled/Margin/Rejected\n", - "2023-04-16, Close, 30306.32\n", - "2023-04-16, BUY CREATE, 30306.32\n", - "2023-04-16, Order Canceled/Margin/Rejected\n", - "2023-04-16, Close, 30306.07\n", - "2023-04-16, BUY CREATE, 30306.07\n", - "2023-04-16, Order Canceled/Margin/Rejected\n", - "2023-04-16, Close, 30344.97\n", - "2023-04-16, BUY CREATE, 30344.97\n", - "2023-04-16, Order Canceled/Margin/Rejected\n", - "2023-04-16, Close, 30337.40\n", - "2023-04-16, BUY CREATE, 30337.40\n", - "2023-04-16, Order Canceled/Margin/Rejected\n", - "2023-04-16, Close, 30279.34\n", - "2023-04-16, Close, 30290.15\n", - "2023-04-16, Close, 30226.45\n", - "2023-04-16, Close, 30260.00\n", - "2023-04-16, Close, 30249.99\n", - "2023-04-16, Close, 30311.83\n", - "2023-04-16, BUY CREATE, 30311.83\n", - "2023-04-16, Order Canceled/Margin/Rejected\n", - "2023-04-16, Close, 30332.98\n", - "2023-04-16, BUY CREATE, 30332.98\n", - "2023-04-16, Order Canceled/Margin/Rejected\n", - "2023-04-16, Close, 30335.00\n", - "2023-04-16, BUY CREATE, 30335.00\n", - "2023-04-16, Order Canceled/Margin/Rejected\n", - "2023-04-16, Close, 30300.00\n", - "2023-04-16, BUY CREATE, 30300.00\n", - "2023-04-16, Order Canceled/Margin/Rejected\n", - "2023-04-16, Close, 30478.43\n", - "2023-04-16, BUY CREATE, 30478.43\n", - "2023-04-16, Order Canceled/Margin/Rejected\n", - "2023-04-16, Close, 30309.06\n", - "2023-04-16, Close, 30343.04\n", - "2023-04-16, BUY CREATE, 30343.04\n", - "2023-04-16, Order Canceled/Margin/Rejected\n", - "2023-04-16, Close, 30385.62\n", - "2023-04-16, BUY CREATE, 30385.62\n", - "2023-04-16, Order Canceled/Margin/Rejected\n", - "2023-04-16, Close, 30331.04\n", - "2023-04-16, BUY CREATE, 30331.04\n", - "2023-04-16, Order Canceled/Margin/Rejected\n", - "2023-04-16, Close, 30304.65\n", - "2023-04-17, Close, 29842.86\n", - "2023-04-17, Close, 29946.22\n", - "2023-04-17, Close, 30020.00\n", - "2023-04-17, Close, 29982.80\n", - "2023-04-17, Close, 29981.18\n", - "2023-04-17, Close, 29997.89\n", - "2023-04-17, Close, 29901.28\n", - "2023-04-17, Close, 29838.30\n", - "2023-04-17, Close, 29918.10\n", - "2023-04-17, Close, 29876.97\n", - "2023-04-17, Close, 29884.66\n", - "2023-04-17, Close, 29570.81\n", - "2023-04-17, Close, 29529.85\n", - "2023-04-17, Close, 29402.20\n", - "2023-04-17, Close, 29440.42\n", - "2023-04-17, Close, 29358.31\n", - "2023-04-17, Close, 29464.43\n", - "2023-04-17, Close, 29462.67\n", - "2023-04-17, Close, 29524.97\n", - "2023-04-17, Close, 29467.24\n", - "2023-04-17, Close, 29443.75\n", - "2023-04-17, Close, 29452.22\n", - "2023-04-17, Close, 29502.28\n", - "2023-04-17, Close, 29430.27\n", - "2023-04-18, Close, 29364.16\n", - "2023-04-18, Close, 29373.53\n", - "2023-04-18, Close, 29465.84\n", - "2023-04-18, BUY CREATE, 29465.84\n", - "2023-04-18, Order Canceled/Margin/Rejected\n", - "2023-04-18, Close, 29446.99\n", - "2023-04-18, BUY CREATE, 29446.99\n", - "2023-04-18, Order Canceled/Margin/Rejected\n", - "2023-04-18, Close, 29494.69\n", - "2023-04-18, BUY CREATE, 29494.69\n", - "2023-04-18, Order Canceled/Margin/Rejected\n", - "2023-04-18, Close, 29542.14\n", - "2023-04-18, BUY CREATE, 29542.14\n", - "2023-04-18, Order Canceled/Margin/Rejected\n", - "2023-04-18, Close, 29720.98\n", - "2023-04-18, BUY CREATE, 29720.98\n", - "2023-04-18, Order Canceled/Margin/Rejected\n", - "2023-04-18, Close, 29775.62\n", - "2023-04-18, BUY CREATE, 29775.62\n", - "2023-04-18, Order Canceled/Margin/Rejected\n", - "2023-04-18, Close, 29703.89\n", - "2023-04-18, BUY CREATE, 29703.89\n", - "2023-04-18, Order Canceled/Margin/Rejected\n", - "2023-04-18, Close, 29897.68\n", - "2023-04-18, BUY CREATE, 29897.68\n", - "2023-04-18, Order Canceled/Margin/Rejected\n", - "2023-04-18, Close, 29899.26\n", - "2023-04-18, BUY CREATE, 29899.26\n", - "2023-04-18, Order Canceled/Margin/Rejected\n", - "2023-04-18, Close, 30380.59\n", - "2023-04-18, BUY CREATE, 30380.59\n", - "2023-04-18, Order Canceled/Margin/Rejected\n", - "2023-04-18, Close, 30303.14\n", - "2023-04-18, BUY CREATE, 30303.14\n", - "2023-04-18, Order Canceled/Margin/Rejected\n", - "2023-04-18, Close, 30381.31\n", - "2023-04-18, BUY CREATE, 30381.31\n", - "2023-04-18, Order Canceled/Margin/Rejected\n", - "2023-04-18, Close, 30247.81\n", - "2023-04-18, BUY CREATE, 30247.81\n", - "2023-04-18, Order Canceled/Margin/Rejected\n", - "2023-04-18, Close, 30184.86\n", - "2023-04-18, BUY CREATE, 30184.86\n", - "2023-04-18, Order Canceled/Margin/Rejected\n", - "2023-04-18, Close, 30220.85\n", - "2023-04-18, BUY CREATE, 30220.85\n", - "2023-04-18, Order Canceled/Margin/Rejected\n", - "2023-04-18, Close, 30025.51\n", - "2023-04-18, BUY CREATE, 30025.51\n", - "2023-04-18, Order Canceled/Margin/Rejected\n", - "2023-04-18, Close, 30144.50\n", - "2023-04-18, BUY CREATE, 30144.50\n", - "2023-04-18, Order Canceled/Margin/Rejected\n", - "2023-04-18, Close, 30221.52\n", - "2023-04-18, BUY CREATE, 30221.52\n", - "2023-04-18, Order Canceled/Margin/Rejected\n", - "2023-04-18, Close, 30419.12\n", - "2023-04-18, BUY CREATE, 30419.12\n", - "2023-04-18, Order Canceled/Margin/Rejected\n", - "2023-04-18, Close, 30371.69\n", - "2023-04-18, BUY CREATE, 30371.69\n", - "2023-04-18, Order Canceled/Margin/Rejected\n", - "2023-04-18, Close, 30370.86\n", - "2023-04-18, BUY CREATE, 30370.86\n", - "2023-04-18, Order Canceled/Margin/Rejected\n", - "2023-04-18, Close, 30380.01\n", - "2023-04-18, BUY CREATE, 30380.01\n", - "2023-04-19, Order Canceled/Margin/Rejected\n", - "2023-04-19, Close, 30319.25\n", - "2023-04-19, BUY CREATE, 30319.25\n", - "2023-04-19, Order Canceled/Margin/Rejected\n", - "2023-04-19, Close, 30233.42\n", - "2023-04-19, Close, 30200.63\n", - "2023-04-19, Close, 30211.23\n", - "2023-04-19, Close, 30202.57\n", - "2023-04-19, Close, 30268.27\n", - "2023-04-19, BUY CREATE, 30268.27\n", - "2023-04-19, Order Canceled/Margin/Rejected\n", - "2023-04-19, Close, 30008.13\n", - "2023-04-19, Close, 30077.76\n", - "2023-04-19, Close, 29168.47\n", - "2023-04-19, Close, 29200.57\n", - "2023-04-19, Close, 29257.26\n", - "2023-04-19, Close, 29310.65\n", - "2023-04-19, Close, 29218.66\n", - "2023-04-19, Close, 29333.00\n", - "2023-04-19, Close, 29393.46\n", - "2023-04-19, Close, 29260.44\n", - "2023-04-19, Close, 29315.24\n", - "2023-04-19, Close, 29318.14\n", - "2023-04-19, Close, 29277.45\n", - "2023-04-19, Close, 29227.07\n", - "2023-04-19, Close, 29237.71\n", - "2023-04-19, Close, 29170.00\n", - "2023-04-19, Close, 29076.20\n", - "2023-04-19, Close, 28797.10\n", - "2023-04-20, Close, 28920.01\n", - "2023-04-20, Close, 28934.07\n", - "2023-04-20, Close, 28742.57\n", - "2023-04-20, Close, 28862.52\n", - "2023-04-20, Close, 28867.52\n", - "2023-04-20, Close, 28893.52\n", - "2023-04-20, Close, 28925.58\n", - "2023-04-20, Close, 28869.66\n", - "2023-04-20, Close, 28826.60\n", - "2023-04-20, Close, 28866.00\n", - "2023-04-20, Close, 28855.22\n", - "2023-04-20, Close, 28607.13\n", - "2023-04-20, Close, 28893.00\n", - "2023-04-20, BUY CREATE, 28893.00\n", - "2023-04-20, Order Canceled/Margin/Rejected\n", - "2023-04-20, Close, 28820.08\n", - "2023-04-20, Close, 28719.71\n", - "2023-04-20, Close, 28506.69\n", - "2023-04-20, Close, 28442.56\n", - "2023-04-20, Close, 28452.20\n", - "2023-04-20, Close, 28360.49\n", - "2023-04-20, Close, 28104.38\n", - "2023-04-20, Close, 28204.56\n", - "2023-04-20, Close, 28230.40\n", - "2023-04-20, Close, 28249.10\n", - "2023-04-20, Close, 28243.65\n", - "2023-04-21, Close, 28291.26\n", - "2023-04-21, Close, 28200.91\n", - "2023-04-21, Close, 28247.50\n", - "2023-04-21, Close, 28321.41\n", - "2023-04-21, Close, 28236.16\n", - "2023-04-21, Close, 28158.21\n", - "2023-04-21, Close, 27916.88\n", - "2023-04-21, Close, 28155.03\n", - "2023-04-21, Close, 28071.90\n", - "2023-04-21, Close, 28060.85\n", - "2023-04-21, Close, 28001.96\n", - "2023-04-21, Close, 28066.21\n", - "2023-04-21, Close, 28218.64\n", - "2023-04-21, BUY CREATE, 28218.64\n", - "2023-04-21, Order Canceled/Margin/Rejected\n", - "2023-04-21, Close, 28113.44\n", - "2023-04-21, Close, 28060.86\n", - "2023-04-21, Close, 28040.70\n", - "2023-04-21, Close, 28042.71\n", - "2023-04-21, Close, 27901.63\n", - "2023-04-21, Close, 27783.96\n", - "2023-04-21, Close, 27279.91\n", - "2023-04-21, Close, 27270.88\n", - "2023-04-21, Close, 27279.99\n", - "2023-04-21, Close, 27266.08\n", - "2023-04-21, Close, 27262.84\n", - "2023-04-22, Close, 27225.08\n", - "2023-04-22, Close, 27291.67\n", - "2023-04-22, Close, 27241.52\n", - "2023-04-22, Close, 27322.16\n", - "2023-04-22, Close, 27347.99\n", - "2023-04-22, Close, 27397.63\n", - "2023-04-22, Close, 27346.50\n", - "2023-04-22, Close, 27277.76\n", - "2023-04-22, Close, 27211.42\n", - "2023-04-22, Close, 27239.06\n", - "2023-04-22, Close, 27250.04\n", - "2023-04-22, Close, 27286.65\n", - "2023-04-22, BUY CREATE, 27286.65\n", - "2023-04-22, Order Canceled/Margin/Rejected\n", - "2023-04-22, Close, 27338.04\n", - "2023-04-22, BUY CREATE, 27338.04\n", - "2023-04-22, Order Canceled/Margin/Rejected\n", - "2023-04-22, Close, 27254.99\n", - "2023-04-22, Close, 27476.09\n", - "2023-04-22, BUY CREATE, 27476.09\n", - "2023-04-22, Order Canceled/Margin/Rejected\n", - "2023-04-22, Close, 27488.93\n", - "2023-04-22, BUY CREATE, 27488.93\n", - "2023-04-22, Order Canceled/Margin/Rejected\n", - "2023-04-22, Close, 27586.57\n", - "2023-04-22, BUY CREATE, 27586.57\n", - "2023-04-22, Order Canceled/Margin/Rejected\n", - "2023-04-22, Close, 27668.63\n", - "2023-04-22, BUY CREATE, 27668.63\n", - "2023-04-22, Order Canceled/Margin/Rejected\n", - "2023-04-22, Close, 27601.29\n", - "2023-04-22, BUY CREATE, 27601.29\n", - "2023-04-22, Order Canceled/Margin/Rejected\n", - "2023-04-22, Close, 27622.61\n", - "2023-04-22, BUY CREATE, 27622.61\n", - "2023-04-22, Order Canceled/Margin/Rejected\n", - "2023-04-22, Close, 27634.45\n", - "2023-04-22, BUY CREATE, 27634.45\n", - "2023-04-22, Order Canceled/Margin/Rejected\n", - "2023-04-22, Close, 27669.09\n", - "2023-04-22, BUY CREATE, 27669.09\n", - "2023-04-22, Order Canceled/Margin/Rejected\n", - "2023-04-22, Close, 27853.28\n", - "2023-04-22, BUY CREATE, 27853.28\n", - "2023-04-22, Order Canceled/Margin/Rejected\n", - "2023-04-22, Close, 27816.85\n", - "2023-04-22, BUY CREATE, 27816.85\n", - "2023-04-23, Order Canceled/Margin/Rejected\n", - "2023-04-23, Close, 27541.80\n", - "2023-04-23, BUY CREATE, 27541.80\n", - "2023-04-23, Order Canceled/Margin/Rejected\n", - "2023-04-23, Close, 27551.15\n", - "2023-04-23, Close, 27592.02\n", - "2023-04-23, BUY CREATE, 27592.02\n", - "2023-04-23, Order Canceled/Margin/Rejected\n", - "2023-04-23, Close, 27557.84\n", - "2023-04-23, Close, 27605.82\n", - "2023-04-23, Close, 27585.14\n", - "2023-04-23, Close, 27588.14\n", - "2023-04-23, Close, 27718.90\n", - "2023-04-23, BUY CREATE, 27718.90\n", - "2023-04-23, Order Canceled/Margin/Rejected\n", - "2023-04-23, Close, 27710.51\n", - "2023-04-23, BUY CREATE, 27710.51\n", - "2023-04-23, Order Canceled/Margin/Rejected\n", - "2023-04-23, Close, 27628.95\n", - "2023-04-23, Close, 27527.61\n", - "2023-04-23, Close, 27642.90\n", - "2023-04-23, BUY CREATE, 27642.90\n", - "2023-04-23, Order Canceled/Margin/Rejected\n", - "2023-04-23, Close, 27605.99\n", - "2023-04-23, Close, 27630.76\n", - "2023-04-23, BUY CREATE, 27630.76\n", - "2023-04-23, Order Canceled/Margin/Rejected\n", - "2023-04-23, Close, 27552.51\n", - "2023-04-23, Close, 27474.47\n", - "2023-04-23, Close, 27584.42\n", - "2023-04-23, Close, 27512.97\n", - "2023-04-23, Close, 27455.70\n", - "2023-04-23, Close, 27465.77\n", - "2023-04-23, Close, 27504.62\n", - "2023-04-23, Close, 27517.83\n", - "2023-04-23, Close, 27591.73\n", - "2023-04-23, BUY CREATE, 27591.73\n", - "2023-04-23, Order Canceled/Margin/Rejected\n", - "2023-04-23, Close, 27590.60\n", - "2023-04-23, BUY CREATE, 27590.60\n", - "2023-04-24, Order Canceled/Margin/Rejected\n", - "2023-04-24, Close, 27807.49\n", - "2023-04-24, BUY CREATE, 27807.49\n", - "2023-04-24, Order Canceled/Margin/Rejected\n", - "2023-04-24, Close, 27752.48\n", - "2023-04-24, BUY CREATE, 27752.48\n", - "2023-04-24, Order Canceled/Margin/Rejected\n", - "2023-04-24, Close, 27745.17\n", - "2023-04-24, BUY CREATE, 27745.17\n", - "2023-04-24, Order Canceled/Margin/Rejected\n", - "2023-04-24, Close, 27790.48\n", - "2023-04-24, BUY CREATE, 27790.48\n", - "2023-04-24, Order Canceled/Margin/Rejected\n", - "2023-04-24, Close, 27702.34\n", - "2023-04-24, BUY CREATE, 27702.34\n", - "2023-04-24, Order Canceled/Margin/Rejected\n", - "2023-04-24, Close, 27654.83\n", - "2023-04-24, BUY CREATE, 27654.83\n", - "2023-04-24, Order Canceled/Margin/Rejected\n", - "2023-04-24, Close, 27546.68\n", - "2023-04-24, Close, 27451.97\n", - "2023-04-24, Close, 27185.75\n", - "2023-04-24, Close, 27313.10\n", - "2023-04-24, Close, 27418.91\n", - "2023-04-24, Close, 27550.84\n", - "2023-04-24, Close, 27443.85\n", - "2023-04-24, Close, 27624.25\n", - "2023-04-24, BUY CREATE, 27624.25\n", - "2023-04-24, Order Canceled/Margin/Rejected\n", - "2023-04-24, Close, 27430.19\n", - "2023-04-24, Close, 27267.05\n", - "2023-04-24, Close, 27110.55\n", - "2023-04-24, Close, 27381.49\n", - "2023-04-24, Close, 27339.90\n", - "2023-04-24, Close, 27383.29\n", - "2023-04-24, Close, 27460.44\n", - "2023-04-24, BUY CREATE, 27460.44\n", - "2023-04-24, Order Canceled/Margin/Rejected\n", - "2023-04-24, Close, 27414.64\n", - "2023-04-24, BUY CREATE, 27414.64\n", - "2023-04-24, Order Canceled/Margin/Rejected\n", - "2023-04-24, Close, 27463.87\n", - "2023-04-24, BUY CREATE, 27463.87\n", - "2023-04-24, Order Canceled/Margin/Rejected\n", - "2023-04-24, Close, 27510.93\n", - "2023-04-24, BUY CREATE, 27510.93\n", - "2023-04-25, Order Canceled/Margin/Rejected\n", - "2023-04-25, Close, 27459.04\n", - "2023-04-25, BUY CREATE, 27459.04\n", - "2023-04-25, Order Canceled/Margin/Rejected\n", - "2023-04-25, Close, 27403.24\n", - "2023-04-25, Close, 27402.81\n", - "2023-04-25, Close, 27345.72\n", - "2023-04-25, Close, 27410.00\n", - "2023-04-25, BUY CREATE, 27410.00\n", - "2023-04-25, Order Canceled/Margin/Rejected\n", - "2023-04-25, Close, 27413.20\n", - "2023-04-25, BUY CREATE, 27413.20\n", - "2023-04-25, Order Canceled/Margin/Rejected\n", - "2023-04-25, Close, 27357.31\n", - "2023-04-25, Close, 27266.54\n", - "2023-04-25, Close, 27430.87\n", - "2023-04-25, BUY CREATE, 27430.87\n", - "2023-04-25, Order Canceled/Margin/Rejected\n", - "2023-04-25, Close, 27323.00\n", - "2023-04-25, Close, 27331.01\n", - "2023-04-25, Close, 27390.96\n", - "2023-04-25, Close, 27394.26\n", - "2023-04-25, BUY CREATE, 27394.26\n", - "2023-04-25, Order Canceled/Margin/Rejected\n", - "2023-04-25, Close, 27344.62\n", - "2023-04-25, Close, 27294.69\n", - "2023-04-25, Close, 27345.00\n", - "2023-04-25, Close, 27393.27\n", - "2023-04-25, BUY CREATE, 27393.27\n", - "2023-04-25, Order Canceled/Margin/Rejected\n", - "2023-04-25, Close, 27617.65\n", - "2023-04-25, BUY CREATE, 27617.65\n", - "2023-04-25, Order Canceled/Margin/Rejected\n", - "2023-04-25, Close, 27577.66\n", - "2023-04-25, BUY CREATE, 27577.66\n", - "2023-04-25, Order Canceled/Margin/Rejected\n", - "2023-04-25, Close, 27611.40\n", - "2023-04-25, BUY CREATE, 27611.40\n", - "2023-04-25, Order Canceled/Margin/Rejected\n", - "2023-04-25, Close, 27975.01\n", - "2023-04-25, BUY CREATE, 27975.01\n", - "2023-04-25, Order Canceled/Margin/Rejected\n", - "2023-04-25, Close, 28262.89\n", - "2023-04-25, BUY CREATE, 28262.89\n", - "2023-04-25, Order Canceled/Margin/Rejected\n", - "2023-04-25, Close, 28233.25\n", - "2023-04-25, BUY CREATE, 28233.25\n", - "2023-04-25, Order Canceled/Margin/Rejected\n", - "2023-04-25, Close, 28300.79\n", - "2023-04-25, BUY CREATE, 28300.79\n", - "2023-04-26, Order Canceled/Margin/Rejected\n", - "2023-04-26, Close, 28299.63\n", - "2023-04-26, BUY CREATE, 28299.63\n", - "2023-04-26, Order Canceled/Margin/Rejected\n", - "2023-04-26, Close, 28392.01\n", - "2023-04-26, BUY CREATE, 28392.01\n", - "2023-04-26, Order Canceled/Margin/Rejected\n", - "2023-04-26, Close, 28389.28\n", - "2023-04-26, BUY CREATE, 28389.28\n", - "2023-04-26, Order Canceled/Margin/Rejected\n", - "2023-04-26, Close, 28309.10\n", - "2023-04-26, BUY CREATE, 28309.10\n", - "2023-04-26, Order Canceled/Margin/Rejected\n", - "2023-04-26, Close, 28328.94\n", - "2023-04-26, BUY CREATE, 28328.94\n", - "2023-04-26, Order Canceled/Margin/Rejected\n", - "2023-04-26, Close, 28395.25\n", - "2023-04-26, BUY CREATE, 28395.25\n", - "2023-04-26, Order Canceled/Margin/Rejected\n", - "2023-04-26, Close, 28395.01\n", - "2023-04-26, BUY CREATE, 28395.01\n", - "2023-04-26, Order Canceled/Margin/Rejected\n", - "2023-04-26, Close, 28376.18\n", - "2023-04-26, BUY CREATE, 28376.18\n", - "2023-04-26, Order Canceled/Margin/Rejected\n", - "2023-04-26, Close, 28727.19\n", - "2023-04-26, BUY CREATE, 28727.19\n", - "2023-04-26, Order Canceled/Margin/Rejected\n", - "2023-04-26, Close, 28867.50\n", - "2023-04-26, BUY CREATE, 28867.50\n", - "2023-04-26, Order Canceled/Margin/Rejected\n", - "2023-04-26, Close, 28998.82\n", - "2023-04-26, BUY CREATE, 28998.82\n", - "2023-04-26, Order Canceled/Margin/Rejected\n", - "2023-04-26, Close, 28952.32\n", - "2023-04-26, BUY CREATE, 28952.32\n", - "2023-04-26, Order Canceled/Margin/Rejected\n", - "2023-04-26, Close, 29965.45\n", - "2023-04-26, BUY CREATE, 29965.45\n", - "2023-04-26, Order Canceled/Margin/Rejected\n", - "2023-04-26, Close, 29847.06\n", - "2023-04-26, BUY CREATE, 29847.06\n", - "2023-04-26, Order Canceled/Margin/Rejected\n", - "2023-04-26, Close, 29700.22\n", - "2023-04-26, BUY CREATE, 29700.22\n", - "2023-04-26, Order Canceled/Margin/Rejected\n", - "2023-04-26, Close, 29820.03\n", - "2023-04-26, BUY CREATE, 29820.03\n", - "2023-04-26, Order Canceled/Margin/Rejected\n", - "2023-04-26, Close, 29810.28\n", - "2023-04-26, BUY CREATE, 29810.28\n", - "2023-04-26, Order Canceled/Margin/Rejected\n", - "2023-04-26, Close, 29720.92\n", - "2023-04-26, BUY CREATE, 29720.92\n", - "2023-04-26, Order Canceled/Margin/Rejected\n", - "2023-04-26, Close, 29741.53\n", - "2023-04-26, BUY CREATE, 29741.53\n", - "2023-04-26, Order Canceled/Margin/Rejected\n", - "2023-04-26, Close, 27884.24\n", - "2023-04-26, Close, 28413.39\n", - "2023-04-26, Close, 28677.65\n", - "2023-04-26, Close, 28298.25\n", - "2023-04-26, Close, 28415.29\n", - "2023-04-27, Close, 29225.54\n", - "2023-04-27, BUY CREATE, 29225.54\n", - "2023-04-27, Order Canceled/Margin/Rejected\n", - "2023-04-27, Close, 28741.72\n", - "2023-04-27, Close, 29034.33\n", - "2023-04-27, Close, 28885.79\n", - "2023-04-27, Close, 29096.12\n", - "2023-04-27, BUY CREATE, 29096.12\n", - "2023-04-27, Order Canceled/Margin/Rejected\n", - "2023-04-27, Close, 29083.11\n", - "2023-04-27, BUY CREATE, 29083.11\n", - "2023-04-27, Order Canceled/Margin/Rejected\n", - "2023-04-27, Close, 28793.30\n", - "2023-04-27, Close, 28893.83\n", - "2023-04-27, BUY CREATE, 28893.83\n", - "2023-04-27, Order Canceled/Margin/Rejected\n", - "2023-04-27, Close, 28955.43\n", - "2023-04-27, BUY CREATE, 28955.43\n", - "2023-04-27, Order Canceled/Margin/Rejected\n", - "2023-04-27, Close, 28931.71\n", - "2023-04-27, BUY CREATE, 28931.71\n", - "2023-04-27, Order Canceled/Margin/Rejected\n", - "2023-04-27, Close, 28990.77\n", - "2023-04-27, BUY CREATE, 28990.77\n", - "2023-04-27, Order Canceled/Margin/Rejected\n", - "2023-04-27, Close, 28934.21\n", - "2023-04-27, BUY CREATE, 28934.21\n", - "2023-04-27, Order Canceled/Margin/Rejected\n", - "2023-04-27, Close, 28862.13\n", - "2023-04-27, Close, 28936.32\n", - "2023-04-27, BUY CREATE, 28936.32\n", - "2023-04-27, Order Canceled/Margin/Rejected\n", - "2023-04-27, Close, 28974.54\n", - "2023-04-27, BUY CREATE, 28974.54\n", - "2023-04-27, Order Canceled/Margin/Rejected\n", - "2023-04-27, Close, 29149.73\n", - "2023-04-27, BUY CREATE, 29149.73\n", - "2023-04-27, Order Canceled/Margin/Rejected\n", - "2023-04-27, Close, 29129.75\n", - "2023-04-27, BUY CREATE, 29129.75\n", - "2023-04-27, Order Canceled/Margin/Rejected\n", - "2023-04-27, Close, 29296.14\n", - "2023-04-27, BUY CREATE, 29296.14\n", - "2023-04-27, Order Canceled/Margin/Rejected\n", - "2023-04-27, Close, 29772.12\n", - "2023-04-27, BUY CREATE, 29772.12\n", - "2023-04-27, Order Canceled/Margin/Rejected\n", - "2023-04-27, Close, 29673.98\n", - "2023-04-27, BUY CREATE, 29673.98\n", - "2023-04-27, Order Canceled/Margin/Rejected\n", - "2023-04-27, Close, 29619.30\n", - "2023-04-27, BUY CREATE, 29619.30\n", - "2023-04-27, Order Canceled/Margin/Rejected\n", - "2023-04-27, Close, 29647.07\n", - "2023-04-27, BUY CREATE, 29647.07\n", - "2023-04-27, Order Canceled/Margin/Rejected\n", - "2023-04-27, Close, 29385.20\n", - "2023-04-27, BUY CREATE, 29385.20\n", - "2023-04-27, Order Canceled/Margin/Rejected\n", - "2023-04-27, Close, 29472.77\n", - "2023-04-27, BUY CREATE, 29472.77\n", - "2023-04-28, Order Canceled/Margin/Rejected\n", - "2023-04-28, Close, 29554.25\n", - "2023-04-28, BUY CREATE, 29554.25\n", - "2023-04-28, Order Canceled/Margin/Rejected\n", - "2023-04-28, Close, 29516.32\n", - "2023-04-28, BUY CREATE, 29516.32\n", - "2023-04-28, Order Canceled/Margin/Rejected\n", - "2023-04-28, Close, 29395.89\n", - "2023-04-28, BUY CREATE, 29395.89\n", - "2023-04-28, Order Canceled/Margin/Rejected\n", - "2023-04-28, Close, 29420.52\n", - "2023-04-28, BUY CREATE, 29420.52\n", - "2023-04-28, Order Canceled/Margin/Rejected\n", - "2023-04-28, Close, 29501.91\n", - "2023-04-28, BUY CREATE, 29501.91\n", - "2023-04-28, Order Canceled/Margin/Rejected\n", - "2023-04-28, Close, 29473.95\n", - "2023-04-28, BUY CREATE, 29473.95\n", - "2023-04-28, Order Canceled/Margin/Rejected\n", - "2023-04-28, Close, 29467.12\n", - "2023-04-28, Close, 29488.83\n", - "2023-04-28, Close, 29251.98\n", - "2023-04-28, Close, 29199.44\n", - "2023-04-28, Close, 29262.33\n", - "2023-04-28, Close, 29235.36\n", - "2023-04-28, Close, 29229.29\n", - "2023-04-28, Close, 29029.48\n", - "2023-04-28, Close, 29096.69\n", - "2023-04-28, Close, 29146.89\n", - "2023-04-28, Close, 29273.42\n", - "2023-04-28, Close, 29239.36\n", - "2023-04-28, Close, 29242.66\n", - "2023-04-28, Close, 29328.53\n", - "2023-04-28, BUY CREATE, 29328.53\n", - "2023-04-28, Order Canceled/Margin/Rejected\n", - "2023-04-28, Close, 29338.01\n", - "2023-04-28, BUY CREATE, 29338.01\n", - "2023-04-28, Order Canceled/Margin/Rejected\n", - "2023-04-28, Close, 29328.60\n", - "2023-04-28, BUY CREATE, 29328.60\n", - "2023-04-28, Order Canceled/Margin/Rejected\n", - "2023-04-28, Close, 29345.34\n", - "2023-04-28, BUY CREATE, 29345.34\n", - "2023-04-28, Order Canceled/Margin/Rejected\n", - "2023-04-28, Close, 29311.70\n", - "2023-04-28, BUY CREATE, 29311.70\n", - "2023-04-29, Order Canceled/Margin/Rejected\n", - "2023-04-29, Close, 29262.02\n", - "2023-04-29, BUY CREATE, 29262.02\n", - "2023-04-29, Order Canceled/Margin/Rejected\n", - "2023-04-29, Close, 29272.64\n", - "2023-04-29, BUY CREATE, 29272.64\n", - "2023-04-29, Order Canceled/Margin/Rejected\n", - "2023-04-29, Close, 29374.87\n", - "2023-04-29, BUY CREATE, 29374.87\n", - "2023-04-29, Order Canceled/Margin/Rejected\n", - "2023-04-29, Close, 29345.74\n", - "2023-04-29, BUY CREATE, 29345.74\n", - "2023-04-29, Order Canceled/Margin/Rejected\n", - "2023-04-29, Close, 29372.66\n", - "2023-04-29, BUY CREATE, 29372.66\n", - "2023-04-29, Order Canceled/Margin/Rejected\n", - "2023-04-29, Close, 29356.03\n", - "2023-04-29, BUY CREATE, 29356.03\n", - "2023-04-29, Order Canceled/Margin/Rejected\n", - "2023-04-29, Close, 29328.64\n", - "2023-04-29, BUY CREATE, 29328.64\n", - "2023-04-29, Order Canceled/Margin/Rejected\n", - "2023-04-29, Close, 29345.54\n", - "2023-04-29, BUY CREATE, 29345.54\n", - "2023-04-29, Order Canceled/Margin/Rejected\n", - "2023-04-29, Close, 29313.87\n", - "2023-04-29, Close, 29298.84\n", - "2023-04-29, Close, 29267.56\n", - "2023-04-29, Close, 29332.11\n", - "2023-04-29, BUY CREATE, 29332.11\n", - "2023-04-29, Order Canceled/Margin/Rejected\n", - "2023-04-29, Close, 29281.37\n", - "2023-04-29, Close, 29384.10\n", - "2023-04-29, BUY CREATE, 29384.10\n", - "2023-04-29, Order Canceled/Margin/Rejected\n", - "2023-04-29, Close, 29336.06\n", - "2023-04-29, BUY CREATE, 29336.06\n", - "2023-04-29, Order Canceled/Margin/Rejected\n", - "2023-04-29, Close, 29271.21\n", - "2023-04-29, Close, 29281.78\n", - "2023-04-29, Close, 29155.24\n", - "2023-04-29, Close, 29176.00\n", - "2023-04-29, Close, 29240.67\n", - "2023-04-29, Close, 29221.43\n", - "2023-04-29, Close, 29230.00\n", - "2023-04-29, Close, 29200.65\n", - "2023-04-29, Close, 29230.45\n", - "2023-04-30, Close, 29136.00\n", - "2023-04-30, Close, 29096.99\n", - "2023-04-30, Close, 29176.96\n", - "2023-04-30, Close, 29178.87\n", - "2023-04-30, Close, 29210.61\n", - "2023-04-30, BUY CREATE, 29210.61\n", - "2023-04-30, Order Canceled/Margin/Rejected\n", - "2023-04-30, Close, 29258.49\n", - "2023-04-30, BUY CREATE, 29258.49\n", - "2023-04-30, Order Canceled/Margin/Rejected\n", - "2023-04-30, Close, 29271.38\n", - "2023-04-30, BUY CREATE, 29271.38\n", - "2023-04-30, Order Canceled/Margin/Rejected\n", - "2023-04-30, Close, 29266.43\n", - "2023-04-30, BUY CREATE, 29266.43\n", - "2023-04-30, Order Canceled/Margin/Rejected\n", - "2023-04-30, Close, 29269.99\n", - "2023-04-30, BUY CREATE, 29269.99\n", - "2023-04-30, Order Canceled/Margin/Rejected\n", - "2023-04-30, Close, 29258.60\n", - "2023-04-30, BUY CREATE, 29258.60\n", - "2023-04-30, Order Canceled/Margin/Rejected\n", - "2023-04-30, Close, 29221.93\n", - "2023-04-30, BUY CREATE, 29221.93\n", - "2023-04-30, Order Canceled/Margin/Rejected\n", - "2023-04-30, Close, 29197.01\n", - "2023-04-30, Close, 29238.20\n", - "2023-04-30, BUY CREATE, 29238.20\n", - "2023-04-30, Order Canceled/Margin/Rejected\n", - "2023-04-30, Close, 29292.51\n", - "2023-04-30, BUY CREATE, 29292.51\n", - "2023-04-30, Order Canceled/Margin/Rejected\n", - "2023-04-30, Close, 29395.01\n", - "2023-04-30, BUY CREATE, 29395.01\n", - "2023-04-30, Order Canceled/Margin/Rejected\n", - "2023-04-30, Close, 29655.18\n", - "2023-04-30, BUY CREATE, 29655.18\n", - "2023-04-30, Order Canceled/Margin/Rejected\n", - "2023-04-30, Close, 29717.55\n", - "2023-04-30, BUY CREATE, 29717.55\n", - "2023-04-30, Order Canceled/Margin/Rejected\n", - "2023-04-30, Close, 29644.37\n", - "2023-04-30, BUY CREATE, 29644.37\n", - "2023-04-30, Order Canceled/Margin/Rejected\n", - "2023-04-30, Close, 29577.09\n", - "2023-04-30, BUY CREATE, 29577.09\n", - "2023-04-30, Order Canceled/Margin/Rejected\n", - "2023-04-30, Close, 29361.13\n", - "2023-04-30, Close, 29329.89\n", - "2023-04-30, Close, 29411.21\n", - "2023-04-30, BUY CREATE, 29411.21\n", - "2023-04-30, Order Canceled/Margin/Rejected\n", - "2023-04-30, Close, 29378.72\n", - "2023-04-30, Close, 29233.21\n", - "2023-05-01, Close, 29315.57\n", - "2023-05-01, Close, 28504.36\n", - "2023-05-01, Close, 28549.41\n", - "2023-05-01, Close, 28561.06\n", - "2023-05-01, Close, 28555.00\n", - "2023-05-01, Close, 28483.68\n", - "2023-05-01, Close, 28594.34\n", - "2023-05-01, Close, 28629.09\n", - "2023-05-01, Close, 28574.45\n", - "2023-05-01, Close, 28524.98\n", - "2023-05-01, Close, 28552.43\n", - "2023-05-01, Close, 28523.86\n", - "2023-05-01, Close, 28596.32\n", - "2023-05-01, Close, 28457.84\n", - "2023-05-01, Close, 28473.30\n", - "2023-05-01, Close, 28170.64\n", - "2023-05-01, Close, 28360.80\n", - "2023-05-01, Close, 28278.22\n", - "2023-05-01, Close, 28173.83\n", - "2023-05-01, Close, 27843.36\n", - "2023-05-01, Close, 27678.09\n", - "2023-05-01, Close, 27985.46\n", - "2023-05-01, Close, 28020.01\n", - "2023-05-01, Close, 28068.26\n", - "2023-05-02, Close, 28050.42\n", - "2023-05-02, Close, 27942.87\n", - "2023-05-02, Close, 28008.52\n", - "2023-05-02, Close, 28043.76\n", - "2023-05-02, Close, 27927.69\n", - "2023-05-02, Close, 28000.01\n", - "2023-05-02, Close, 27999.10\n", - "2023-05-02, Close, 28057.47\n", - "2023-05-02, BUY CREATE, 28057.47\n", - "2023-05-02, Order Canceled/Margin/Rejected\n", - "2023-05-02, Close, 28028.54\n", - "2023-05-02, BUY CREATE, 28028.54\n", - "2023-05-02, Order Canceled/Margin/Rejected\n", - "2023-05-02, Close, 27983.20\n", - "2023-05-02, BUY CREATE, 27983.20\n", - "2023-05-02, Order Canceled/Margin/Rejected\n", - "2023-05-02, Close, 28016.52\n", - "2023-05-02, BUY CREATE, 28016.52\n", - "2023-05-02, Order Canceled/Margin/Rejected\n", - "2023-05-02, Close, 28084.83\n", - "2023-05-02, BUY CREATE, 28084.83\n", - "2023-05-02, Order Canceled/Margin/Rejected\n", - "2023-05-02, Close, 28106.95\n", - "2023-05-02, BUY CREATE, 28106.95\n", - "2023-05-02, Order Canceled/Margin/Rejected\n", - "2023-05-02, Close, 28009.07\n", - "2023-05-02, Close, 28374.22\n", - "2023-05-02, BUY CREATE, 28374.22\n", - "2023-05-02, Order Canceled/Margin/Rejected\n", - "2023-05-02, Close, 28540.68\n", - "2023-05-02, BUY CREATE, 28540.68\n", - "2023-05-02, Order Canceled/Margin/Rejected\n", - "2023-05-02, Close, 28468.58\n", - "2023-05-02, BUY CREATE, 28468.58\n", - "2023-05-02, Order Canceled/Margin/Rejected\n", - "2023-05-02, Close, 28583.52\n", - "2023-05-02, BUY CREATE, 28583.52\n", - "2023-05-02, Order Canceled/Margin/Rejected\n", - "2023-05-02, Close, 28718.90\n", - "2023-05-02, BUY CREATE, 28718.90\n", - "2023-05-02, Order Canceled/Margin/Rejected\n", - "2023-05-02, Close, 28686.14\n", - "2023-05-02, BUY CREATE, 28686.14\n", - "2023-05-02, Order Canceled/Margin/Rejected\n", - "2023-05-02, Close, 28675.98\n", - "2023-05-02, BUY CREATE, 28675.98\n", - "2023-05-02, Order Canceled/Margin/Rejected\n", - "2023-05-02, Close, 28660.46\n", - "2023-05-02, BUY CREATE, 28660.46\n", - "2023-05-02, Order Canceled/Margin/Rejected\n", - "2023-05-02, Close, 28736.91\n", - "2023-05-02, BUY CREATE, 28736.91\n", - "2023-05-02, Order Canceled/Margin/Rejected\n", - "2023-05-02, Close, 28669.86\n", - "2023-05-02, BUY CREATE, 28669.86\n", - "2023-05-03, Order Canceled/Margin/Rejected\n", - "2023-05-03, Close, 28503.72\n", - "2023-05-03, BUY CREATE, 28503.72\n", - "2023-05-03, Order Canceled/Margin/Rejected\n", - "2023-05-03, Close, 28542.06\n", - "2023-05-03, BUY CREATE, 28542.06\n", - "2023-05-03, Order Canceled/Margin/Rejected\n", - "2023-05-03, Close, 28508.62\n", - "2023-05-03, Close, 28520.90\n", - "2023-05-03, Close, 28514.99\n", - "2023-05-03, Close, 28477.19\n", - "2023-05-03, Close, 28600.02\n", - "2023-05-03, BUY CREATE, 28600.02\n", - "2023-05-03, Order Canceled/Margin/Rejected\n", - "2023-05-03, Close, 28653.80\n", - "2023-05-03, BUY CREATE, 28653.80\n", - "2023-05-03, Order Canceled/Margin/Rejected\n", - "2023-05-03, Close, 28691.21\n", - "2023-05-03, BUY CREATE, 28691.21\n", - "2023-05-03, Order Canceled/Margin/Rejected\n", - "2023-05-03, Close, 28665.36\n", - "2023-05-03, BUY CREATE, 28665.36\n", - "2023-05-03, Order Canceled/Margin/Rejected\n", - "2023-05-03, Close, 28573.49\n", - "2023-05-03, Close, 28543.74\n", - "2023-05-03, Close, 28306.53\n", - "2023-05-03, Close, 28373.55\n", - "2023-05-03, Close, 28215.86\n", - "2023-05-03, Close, 28311.51\n", - "2023-05-03, Close, 28476.96\n", - "2023-05-03, Close, 28576.70\n", - "2023-05-03, BUY CREATE, 28576.70\n", - "2023-05-03, Order Canceled/Margin/Rejected\n", - "2023-05-03, Close, 28444.29\n", - "2023-05-03, Close, 28322.98\n", - "2023-05-03, Close, 28518.72\n", - "2023-05-03, BUY CREATE, 28518.72\n", - "2023-05-03, Order Canceled/Margin/Rejected\n", - "2023-05-03, Close, 28923.52\n", - "2023-05-03, BUY CREATE, 28923.52\n", - "2023-05-03, Order Canceled/Margin/Rejected\n", - "2023-05-03, Close, 29107.13\n", - "2023-05-03, BUY CREATE, 29107.13\n", - "2023-05-03, Order Canceled/Margin/Rejected\n", - "2023-05-03, Close, 29026.16\n", - "2023-05-03, BUY CREATE, 29026.16\n", - "2023-05-04, Order Canceled/Margin/Rejected\n", - "2023-05-04, Close, 29043.94\n", - "2023-05-04, BUY CREATE, 29043.94\n", - "2023-05-04, Order Canceled/Margin/Rejected\n", - "2023-05-04, Close, 29070.67\n", - "2023-05-04, BUY CREATE, 29070.67\n", - "2023-05-04, Order Canceled/Margin/Rejected\n", - "2023-05-04, Close, 29060.61\n", - "2023-05-04, BUY CREATE, 29060.61\n", - "2023-05-04, Order Canceled/Margin/Rejected\n", - "2023-05-04, Close, 29096.86\n", - "2023-05-04, BUY CREATE, 29096.86\n", - "2023-05-04, Order Canceled/Margin/Rejected\n", - "2023-05-04, Close, 29102.33\n", - "2023-05-04, BUY CREATE, 29102.33\n", - "2023-05-04, Order Canceled/Margin/Rejected\n", - "2023-05-04, Close, 29203.90\n", - "2023-05-04, BUY CREATE, 29203.90\n", - "2023-05-04, Order Canceled/Margin/Rejected\n", - "2023-05-04, Close, 29166.72\n", - "2023-05-04, BUY CREATE, 29166.72\n", - "2023-05-04, Order Canceled/Margin/Rejected\n", - "2023-05-04, Close, 29058.19\n", - "2023-05-04, BUY CREATE, 29058.19\n", - "2023-05-04, Order Canceled/Margin/Rejected\n", - "2023-05-04, Close, 29089.26\n", - "2023-05-04, BUY CREATE, 29089.26\n", - "2023-05-04, Order Canceled/Margin/Rejected\n", - "2023-05-04, Close, 29088.97\n", - "2023-05-04, BUY CREATE, 29088.97\n", - "2023-05-04, Order Canceled/Margin/Rejected\n", - "2023-05-04, Close, 29243.62\n", - "2023-05-04, BUY CREATE, 29243.62\n", - "2023-05-04, Order Canceled/Margin/Rejected\n", - "2023-05-04, Close, 29154.66\n", - "2023-05-04, BUY CREATE, 29154.66\n", - "2023-05-04, Order Canceled/Margin/Rejected\n", - "2023-05-04, Close, 29054.84\n", - "2023-05-04, Close, 28761.51\n", - "2023-05-04, Close, 28783.65\n", - "2023-05-04, Close, 28866.19\n", - "2023-05-04, Close, 28924.82\n", - "2023-05-04, Close, 28842.29\n", - "2023-05-04, Close, 28799.23\n", - "2023-05-04, Close, 28895.12\n", - "2023-05-04, Close, 28870.16\n", - "2023-05-04, Close, 28839.98\n", - "2023-05-04, Close, 28779.90\n", - "2023-05-04, Close, 28838.16\n", - "2023-05-05, Close, 28937.63\n", - "2023-05-05, BUY CREATE, 28937.63\n", - "2023-05-05, Order Canceled/Margin/Rejected\n", - "2023-05-05, Close, 29325.74\n", - "2023-05-05, BUY CREATE, 29325.74\n", - "2023-05-05, Order Canceled/Margin/Rejected\n", - "2023-05-05, Close, 29246.26\n", - "2023-05-05, BUY CREATE, 29246.26\n", - "2023-05-05, Order Canceled/Margin/Rejected\n", - "2023-05-05, Close, 29198.23\n", - "2023-05-05, BUY CREATE, 29198.23\n", - "2023-05-05, Order Canceled/Margin/Rejected\n", - "2023-05-05, Close, 29228.08\n", - "2023-05-05, BUY CREATE, 29228.08\n", - "2023-05-05, Order Canceled/Margin/Rejected\n", - "2023-05-05, Close, 29198.00\n", - "2023-05-05, BUY CREATE, 29198.00\n", - "2023-05-05, Order Canceled/Margin/Rejected\n", - "2023-05-05, Close, 29163.80\n", - "2023-05-05, BUY CREATE, 29163.80\n", - "2023-05-05, Order Canceled/Margin/Rejected\n", - "2023-05-05, Close, 29062.29\n", - "2023-05-05, BUY CREATE, 29062.29\n", - "2023-05-05, Order Canceled/Margin/Rejected\n", - "2023-05-05, Close, 29058.00\n", - "2023-05-05, BUY CREATE, 29058.00\n", - "2023-05-05, Order Canceled/Margin/Rejected\n", - "2023-05-05, Close, 29101.00\n", - "2023-05-05, BUY CREATE, 29101.00\n", - "2023-05-05, Order Canceled/Margin/Rejected\n", - "2023-05-05, Close, 29110.68\n", - "2023-05-05, BUY CREATE, 29110.68\n", - "2023-05-05, Order Canceled/Margin/Rejected\n", - "2023-05-05, Close, 29149.36\n", - "2023-05-05, BUY CREATE, 29149.36\n", - "2023-05-05, Order Canceled/Margin/Rejected\n", - "2023-05-05, Close, 28952.39\n", - "2023-05-05, Close, 29175.57\n", - "2023-05-05, BUY CREATE, 29175.57\n", - "2023-05-05, Order Canceled/Margin/Rejected\n", - "2023-05-05, Close, 29259.19\n", - "2023-05-05, BUY CREATE, 29259.19\n", - "2023-05-05, Order Canceled/Margin/Rejected\n", - "2023-05-05, Close, 29356.45\n", - "2023-05-05, BUY CREATE, 29356.45\n", - "2023-05-05, Order Canceled/Margin/Rejected\n", - "2023-05-05, Close, 29586.93\n", - "2023-05-05, BUY CREATE, 29586.93\n", - "2023-05-05, Order Canceled/Margin/Rejected\n", - "2023-05-05, Close, 29460.39\n", - "2023-05-05, BUY CREATE, 29460.39\n", - "2023-05-05, Order Canceled/Margin/Rejected\n", - "2023-05-05, Close, 29399.16\n", - "2023-05-05, BUY CREATE, 29399.16\n", - "2023-05-05, Order Canceled/Margin/Rejected\n", - "2023-05-05, Close, 29561.66\n", - "2023-05-05, BUY CREATE, 29561.66\n", - "2023-05-05, Order Canceled/Margin/Rejected\n", - "2023-05-05, Close, 29493.12\n", - "2023-05-05, BUY CREATE, 29493.12\n", - "2023-05-05, Order Canceled/Margin/Rejected\n", - "2023-05-05, Close, 29486.78\n", - "2023-05-05, BUY CREATE, 29486.78\n", - "2023-05-05, Order Canceled/Margin/Rejected\n", - "2023-05-05, Close, 29589.73\n", - "2023-05-05, BUY CREATE, 29589.73\n", - "2023-05-05, Order Canceled/Margin/Rejected\n", - "2023-05-05, Close, 29505.61\n", - "2023-05-05, BUY CREATE, 29505.61\n", - "2023-05-06, Order Canceled/Margin/Rejected\n", - "2023-05-06, Close, 29671.11\n", - "2023-05-06, BUY CREATE, 29671.11\n", - "2023-05-06, Order Canceled/Margin/Rejected\n", - "2023-05-06, Close, 29541.39\n", - "2023-05-06, BUY CREATE, 29541.39\n", - "2023-05-06, Order Canceled/Margin/Rejected\n", - "2023-05-06, Close, 29463.76\n", - "2023-05-06, BUY CREATE, 29463.76\n", - "2023-05-06, Order Canceled/Margin/Rejected\n", - "2023-05-06, Close, 29353.61\n", - "2023-05-06, Close, 29343.31\n", - "2023-05-06, Close, 29346.99\n", - "2023-05-06, Close, 29386.17\n", - "2023-05-06, Close, 29363.35\n", - "2023-05-06, Close, 29330.12\n", - "2023-05-06, Close, 29285.06\n", - "2023-05-06, Close, 29238.57\n", - "2023-05-06, Close, 29266.15\n", - "2023-05-06, Close, 29096.85\n", - "2023-05-06, Close, 28935.84\n", - "2023-05-06, Close, 28606.61\n", - "2023-05-06, Close, 28576.61\n", - "2023-05-06, Close, 28701.53\n", - "2023-05-06, Close, 28771.89\n", - "2023-05-06, Close, 28912.43\n", - "2023-05-06, Close, 28842.82\n", - "2023-05-06, Close, 28795.89\n", - "2023-05-06, Close, 28807.43\n", - "2023-05-06, Close, 28835.12\n", - "2023-05-06, Close, 28848.20\n", - "2023-05-07, Close, 28942.72\n", - "2023-05-07, BUY CREATE, 28942.72\n", - "2023-05-07, Order Canceled/Margin/Rejected\n", - "2023-05-07, Close, 28887.79\n", - "2023-05-07, BUY CREATE, 28887.79\n", - "2023-05-07, Order Canceled/Margin/Rejected\n", - "2023-05-07, Close, 28816.20\n", - "2023-05-07, Close, 28798.56\n", - "2023-05-07, Close, 28840.03\n", - "2023-05-07, BUY CREATE, 28840.03\n", - "2023-05-07, Order Canceled/Margin/Rejected\n", - "2023-05-07, Close, 28890.00\n", - "2023-05-07, BUY CREATE, 28890.00\n", - "2023-05-07, Order Canceled/Margin/Rejected\n", - "2023-05-07, Close, 28914.55\n", - "2023-05-07, BUY CREATE, 28914.55\n", - "2023-05-07, Order Canceled/Margin/Rejected\n", - "2023-05-07, Close, 28910.41\n", - "2023-05-07, BUY CREATE, 28910.41\n", - "2023-05-07, Order Canceled/Margin/Rejected\n", - "2023-05-07, Close, 28857.06\n", - "2023-05-07, Close, 28815.77\n", - "2023-05-07, Close, 28847.74\n", - "2023-05-07, Close, 28840.06\n", - "2023-05-07, Close, 28919.07\n", - "2023-05-07, BUY CREATE, 28919.07\n", - "2023-05-07, Order Canceled/Margin/Rejected\n", - "2023-05-07, Close, 28920.00\n", - "2023-05-07, BUY CREATE, 28920.00\n", - "2023-05-07, Order Canceled/Margin/Rejected\n", - "2023-05-07, Close, 29045.71\n", - "2023-05-07, BUY CREATE, 29045.71\n", - "2023-05-07, Order Canceled/Margin/Rejected\n", - "2023-05-07, Close, 28942.67\n", - "2023-05-07, BUY CREATE, 28942.67\n", - "2023-05-07, Order Canceled/Margin/Rejected\n", - "2023-05-07, Close, 28953.65\n", - "2023-05-07, BUY CREATE, 28953.65\n", - "2023-05-07, Order Canceled/Margin/Rejected\n", - "2023-05-07, Close, 28904.56\n", - "2023-05-07, BUY CREATE, 28904.56\n", - "2023-05-07, Order Canceled/Margin/Rejected\n", - "2023-05-07, Close, 28857.62\n", - "2023-05-07, Close, 28907.73\n", - "2023-05-07, BUY CREATE, 28907.73\n", - "2023-05-07, Order Canceled/Margin/Rejected\n", - "2023-05-07, Close, 28912.07\n", - "2023-05-07, BUY CREATE, 28912.07\n", - "2023-05-07, Order Canceled/Margin/Rejected\n", - "2023-05-07, Close, 28772.83\n", - "2023-05-07, Close, 28739.22\n", - "2023-05-07, Close, 28430.10\n", - "2023-05-08, Close, 28572.17\n", - "2023-05-08, Close, 28220.34\n", - "2023-05-08, Close, 28284.98\n", - "2023-05-08, Close, 28199.71\n", - "2023-05-08, Close, 28125.00\n", - "2023-05-08, Close, 28260.47\n", - "2023-05-08, Close, 28170.75\n", - "2023-05-08, Close, 27975.48\n", - "2023-05-08, Close, 27704.94\n", - "2023-05-08, Close, 27914.94\n", - "2023-05-08, Close, 27936.14\n", - "2023-05-08, Close, 27934.09\n", - "2023-05-08, Close, 27766.81\n", - "2023-05-08, Close, 27855.78\n", - "2023-05-08, Close, 27970.53\n", - "2023-05-08, Close, 27887.58\n", - "2023-05-08, Close, 27867.20\n", - "2023-05-08, Close, 27530.00\n", - "2023-05-08, Close, 27475.26\n", - "2023-05-08, Close, 27340.72\n", - "2023-05-08, Close, 27534.91\n", - "2023-05-08, Close, 27541.41\n", - "2023-05-08, Close, 27653.09\n", - "2023-05-08, Close, 27668.79\n", - "2023-05-09, Close, 27578.26\n", - "2023-05-09, Close, 27701.39\n", - "2023-05-09, BUY CREATE, 27701.39\n", - "2023-05-09, Order Canceled/Margin/Rejected\n", - "2023-05-09, Close, 27641.55\n", - "2023-05-09, Close, 27629.34\n", - "2023-05-09, Close, 27608.96\n", - "2023-05-09, Close, 27549.70\n", - "2023-05-09, Close, 27547.76\n", - "2023-05-09, Close, 27666.64\n", - "2023-05-09, BUY CREATE, 27666.64\n", - "2023-05-09, Order Canceled/Margin/Rejected\n", - "2023-05-09, Close, 27569.87\n", - "2023-05-09, Close, 27579.99\n", - "2023-05-09, Close, 27584.56\n", - "2023-05-09, Close, 27678.31\n", - "2023-05-09, BUY CREATE, 27678.31\n", - "2023-05-09, Order Canceled/Margin/Rejected\n", - "2023-05-09, Close, 27758.34\n", - "2023-05-09, BUY CREATE, 27758.34\n", - "2023-05-09, Order Canceled/Margin/Rejected\n", - "2023-05-09, Close, 27619.30\n", - "2023-05-09, Close, 27540.31\n", - "2023-05-09, Close, 27400.39\n", - "2023-05-09, Close, 27699.14\n", - "2023-05-09, BUY CREATE, 27699.14\n", - "2023-05-09, Order Canceled/Margin/Rejected\n", - "2023-05-09, Close, 27614.43\n", - "2023-05-09, BUY CREATE, 27614.43\n", - "2023-05-09, Order Canceled/Margin/Rejected\n", - "2023-05-09, Close, 27556.34\n", - "2023-05-09, Close, 27716.32\n", - "2023-05-09, BUY CREATE, 27716.32\n", - "2023-05-09, Order Canceled/Margin/Rejected\n", - "2023-05-09, Close, 27649.22\n", - "2023-05-09, BUY CREATE, 27649.22\n", - "2023-05-09, Order Canceled/Margin/Rejected\n", - "2023-05-09, Close, 27602.74\n", - "2023-05-09, Close, 27579.61\n", - "2023-05-09, Close, 27628.27\n", - "2023-05-09, BUY CREATE, 27628.27\n", - "2023-05-10, Order Canceled/Margin/Rejected\n", - "2023-05-10, Close, 27747.06\n", - "2023-05-10, BUY CREATE, 27747.06\n", - "2023-05-10, Order Canceled/Margin/Rejected\n", - "2023-05-10, Close, 27697.98\n", - "2023-05-10, BUY CREATE, 27697.98\n", - "2023-05-10, Order Canceled/Margin/Rejected\n", - "2023-05-10, Close, 27671.74\n", - "2023-05-10, BUY CREATE, 27671.74\n", - "2023-05-10, Order Canceled/Margin/Rejected\n", - "2023-05-10, Close, 27685.29\n", - "2023-05-10, BUY CREATE, 27685.29\n", - "2023-05-10, Order Canceled/Margin/Rejected\n", - "2023-05-10, Close, 27689.78\n", - "2023-05-10, BUY CREATE, 27689.78\n", - "2023-05-10, Order Canceled/Margin/Rejected\n", - "2023-05-10, Close, 27655.55\n", - "2023-05-10, BUY CREATE, 27655.55\n", - "2023-05-10, Order Canceled/Margin/Rejected\n", - "2023-05-10, Close, 27628.27\n", - "2023-05-10, Close, 27542.26\n", - "2023-05-10, Close, 27572.48\n", - "2023-05-10, Close, 27577.70\n", - "2023-05-10, Close, 27590.09\n", - "2023-05-10, Close, 27677.09\n", - "2023-05-10, BUY CREATE, 27677.09\n", - "2023-05-10, Order Canceled/Margin/Rejected\n", - "2023-05-10, Close, 28175.28\n", - "2023-05-10, BUY CREATE, 28175.28\n", - "2023-05-10, Order Canceled/Margin/Rejected\n", - "2023-05-10, Close, 28169.76\n", - "2023-05-10, BUY CREATE, 28169.76\n", - "2023-05-10, Order Canceled/Margin/Rejected\n", - "2023-05-10, Close, 28089.31\n", - "2023-05-10, BUY CREATE, 28089.31\n", - "2023-05-10, Order Canceled/Margin/Rejected\n", - "2023-05-10, Close, 28153.20\n", - "2023-05-10, BUY CREATE, 28153.20\n", - "2023-05-10, Order Canceled/Margin/Rejected\n", - "2023-05-10, Close, 28182.17\n", - "2023-05-10, BUY CREATE, 28182.17\n", - "2023-05-10, Order Canceled/Margin/Rejected\n", - "2023-05-10, Close, 27498.72\n", - "2023-05-10, Close, 27432.18\n", - "2023-05-10, Close, 27692.26\n", - "2023-05-10, Close, 27857.22\n", - "2023-05-10, BUY CREATE, 27857.22\n", - "2023-05-10, Order Canceled/Margin/Rejected\n", - "2023-05-10, Close, 27508.57\n", - "2023-05-10, Close, 27670.34\n", - "2023-05-10, Close, 27598.75\n", - "2023-05-11, Close, 27515.09\n", - "2023-05-11, Close, 27554.12\n", - "2023-05-11, Close, 27503.66\n", - "2023-05-11, Close, 27446.90\n", - "2023-05-11, Close, 27493.55\n", - "2023-05-11, Close, 27528.85\n", - "2023-05-11, Close, 27504.52\n", - "2023-05-11, Close, 27450.07\n", - "2023-05-11, Close, 27390.46\n", - "2023-05-11, Close, 27417.47\n", - "2023-05-11, Close, 27459.86\n", - "2023-05-11, Close, 27405.61\n", - "2023-05-11, Close, 27399.00\n", - "2023-05-11, Close, 27206.61\n", - "2023-05-11, Close, 27121.19\n", - "2023-05-11, Close, 27179.42\n", - "2023-05-11, Close, 27129.17\n", - "2023-05-11, Close, 26907.28\n", - "2023-05-11, Close, 26963.73\n", - "2023-05-11, Close, 26843.05\n", - "2023-05-11, Close, 26996.18\n", - "2023-05-11, Close, 26977.99\n", - "2023-05-11, Close, 26903.81\n", - "2023-05-11, Close, 26968.62\n", - "2023-05-12, Close, 27033.78\n", - "2023-05-12, Close, 26878.48\n", - "2023-05-12, Close, 26646.70\n", - "2023-05-12, Close, 26584.32\n", - "2023-05-12, Close, 26654.19\n", - "2023-05-12, Close, 26276.67\n", - "2023-05-12, Close, 26299.75\n", - "2023-05-12, Close, 26311.52\n", - "2023-05-12, Close, 26289.12\n", - "2023-05-12, Close, 26380.93\n", - "2023-05-12, Close, 26343.27\n", - "2023-05-12, Close, 26348.01\n", - "2023-05-12, Close, 26412.22\n", - "2023-05-12, Close, 26450.00\n", - "2023-05-12, Close, 26313.85\n", - "2023-05-12, Close, 26320.84\n", - "2023-05-12, Close, 26290.98\n", - "2023-05-12, Close, 26304.49\n", - "2023-05-12, Close, 26299.30\n", - "2023-05-12, Close, 26459.62\n", - "2023-05-12, BUY CREATE, 26459.62\n", - "2023-05-12, BUY EXECUTED, Price: 26459.63, Cost: 132298.15, Comm 0.00\n", - "2023-05-12, Close, 26438.42\n", - "2023-05-12, Close, 26750.09\n", - "2023-05-12, Close, 26684.77\n", - "2023-05-12, Close, 26795.01\n", - "2023-05-13, Close, 26838.99\n", - "2023-05-13, Close, 26827.20\n", - "2023-05-13, Close, 26779.94\n", - "2023-05-13, Close, 26808.27\n", - "2023-05-13, Close, 26797.75\n", - "2023-05-13, Close, 26741.03\n", - "2023-05-13, Close, 26731.59\n", - "2023-05-13, Close, 26771.88\n", - "2023-05-13, Close, 26799.73\n", - "2023-05-13, Close, 26842.05\n", - "2023-05-13, Close, 26830.69\n", - "2023-05-13, Close, 26823.94\n", - "2023-05-13, Close, 26824.60\n", - "2023-05-13, Close, 26821.38\n", - "2023-05-13, Close, 26789.12\n", - "2023-05-13, SELL CREATE, 26789.12\n", - "2023-05-13, SELL EXECUTED, Price: 26789.12, Cost: 132298.15, Comm 0.00\n", - "2023-05-13, OPERATION PROFIT, GROSS 1647.45, NET 1647.45\n", - "2023-05-13, Close, 26816.25\n", - "2023-05-13, BUY CREATE, 26816.25\n", - "2023-05-13, BUY EXECUTED, Price: 26816.25, Cost: 134081.25, Comm 0.00\n", - "2023-05-13, Close, 26822.80\n", - "2023-05-13, Close, 26812.32\n", - "2023-05-13, Close, 26785.00\n", - "2023-05-13, SELL CREATE, 26785.00\n", - "2023-05-13, SELL EXECUTED, Price: 26785.00, Cost: 134081.25, Comm 0.00\n", - "2023-05-13, OPERATION PROFIT, GROSS -156.25, NET -156.25\n", - "2023-05-13, Close, 26837.94\n", - "2023-05-13, BUY CREATE, 26837.94\n", - "2023-05-13, BUY EXECUTED, Price: 26837.93, Cost: 134189.65, Comm 0.00\n", - "2023-05-13, Close, 26904.86\n", - "2023-05-13, Close, 26862.56\n", - "2023-05-13, Close, 26889.94\n", - "2023-05-13, Close, 26775.28\n", - "2023-05-13, SELL CREATE, 26775.28\n", - "2023-05-14, SELL EXECUTED, Price: 26775.27, Cost: 134189.65, Comm 0.00\n", - "2023-05-14, OPERATION PROFIT, GROSS -313.30, NET -313.30\n", - "2023-05-14, Close, 26741.31\n", - "2023-05-14, Close, 26730.00\n", - "2023-05-14, Close, 26810.64\n", - "2023-05-14, Close, 26865.03\n", - "2023-05-14, BUY CREATE, 26865.03\n", - "2023-05-14, BUY EXECUTED, Price: 26865.04, Cost: 134325.20, Comm 0.00\n", - "2023-05-14, Close, 26825.87\n", - "2023-05-14, Close, 26828.49\n", - "2023-05-14, Close, 26843.29\n", - "2023-05-14, Close, 26855.21\n", - "2023-05-14, Close, 26845.53\n", - "2023-05-14, Close, 26842.53\n", - "2023-05-14, Close, 26827.07\n", - "2023-05-14, SELL CREATE, 26827.07\n", - "2023-05-14, SELL EXECUTED, Price: 26827.07, Cost: 134325.20, Comm 0.00\n", - "2023-05-14, OPERATION PROFIT, GROSS -189.85, NET -189.85\n", - "2023-05-14, Close, 26805.98\n", - "2023-05-14, Close, 26871.33\n", - "2023-05-14, BUY CREATE, 26871.33\n", - "2023-05-14, BUY EXECUTED, Price: 26871.32, Cost: 134356.60, Comm 0.00\n", - "2023-05-14, Close, 26912.42\n", - "2023-05-14, Close, 26963.41\n", - "2023-05-14, Close, 27082.02\n", - "2023-05-14, Close, 26958.70\n", - "2023-05-14, Close, 26940.72\n", - "2023-05-14, Close, 26920.72\n", - "2023-05-14, Close, 26878.97\n", - "2023-05-14, SELL CREATE, 26878.97\n", - "2023-05-14, SELL EXECUTED, Price: 26878.96, Cost: 134356.60, Comm 0.00\n", - "2023-05-14, OPERATION PROFIT, GROSS 38.20, NET 38.20\n", - "2023-05-14, Close, 26942.55\n", - "2023-05-14, BUY CREATE, 26942.55\n", - "2023-05-14, BUY EXECUTED, Price: 26942.55, Cost: 134712.75, Comm 0.00\n", - "2023-05-14, Close, 26906.62\n", - "2023-05-14, Close, 26900.79\n", - "2023-05-14, SELL CREATE, 26900.79\n", - "2023-05-14, SELL EXECUTED, Price: 26900.79, Cost: 134712.75, Comm 0.00\n", - "2023-05-14, OPERATION PROFIT, GROSS -208.80, NET -208.80\n", - "2023-05-14, Close, 26917.62\n", - "2023-05-14, BUY CREATE, 26917.62\n", - "2023-05-15, BUY EXECUTED, Price: 26917.61, Cost: 134588.05, Comm 0.00\n", - "2023-05-15, Close, 26800.25\n", - "2023-05-15, SELL CREATE, 26800.25\n", - "2023-05-15, SELL EXECUTED, Price: 26800.25, Cost: 134588.05, Comm 0.00\n", - "2023-05-15, OPERATION PROFIT, GROSS -586.80, NET -586.80\n", - "2023-05-15, Close, 27208.38\n", - "2023-05-15, BUY CREATE, 27208.38\n", - "2023-05-15, BUY EXECUTED, Price: 27208.38, Cost: 136041.90, Comm 0.00\n", - "2023-05-15, Close, 27162.07\n", - "2023-05-15, Close, 27232.80\n", - "2023-05-15, Close, 27289.04\n", - "2023-05-15, Close, 27335.52\n", - "2023-05-15, Close, 27475.63\n", - "2023-05-15, Close, 27407.48\n", - "2023-05-15, Close, 27434.67\n", - "2023-05-15, Close, 27390.50\n", - "2023-05-15, Close, 27416.61\n", - "2023-05-15, Close, 27336.12\n", - "2023-05-15, Close, 27395.73\n", - "2023-05-15, Close, 27374.25\n", - "2023-05-15, Close, 27404.71\n", - "2023-05-15, Close, 27396.80\n", - "2023-05-15, Close, 27482.65\n", - "2023-05-15, Close, 27506.41\n", - "2023-05-15, Close, 27431.88\n", - "2023-05-15, Close, 27418.24\n", - "2023-05-15, Close, 27346.30\n", - "2023-05-15, SELL CREATE, 27346.30\n", - "2023-05-15, SELL EXECUTED, Price: 27346.31, Cost: 136041.90, Comm 0.00\n", - "2023-05-15, OPERATION PROFIT, GROSS 689.65, NET 689.65\n", - "2023-05-15, Close, 27362.45\n", - "2023-05-15, Close, 27310.17\n", - "2023-05-15, Close, 27162.14\n", - "2023-05-16, Close, 27205.57\n", - "2023-05-16, Close, 27024.64\n", - "2023-05-16, Close, 27080.49\n", - "2023-05-16, Close, 27130.00\n", - "2023-05-16, Close, 27114.73\n", - "2023-05-16, Close, 27061.55\n", - "2023-05-16, Close, 27065.57\n", - "2023-05-16, Close, 27252.58\n", - "2023-05-16, BUY CREATE, 27252.58\n", - "2023-05-16, BUY EXECUTED, Price: 27252.58, Cost: 136262.90, Comm 0.00\n", - "2023-05-16, Close, 27202.22\n", - "2023-05-16, SELL CREATE, 27202.22\n", - "2023-05-16, SELL EXECUTED, Price: 27202.21, Cost: 136262.90, Comm 0.00\n", - "2023-05-16, OPERATION PROFIT, GROSS -251.85, NET -251.85\n", - "2023-05-16, Close, 27092.56\n", - "2023-05-16, Close, 27013.92\n", - "2023-05-16, Close, 27059.03\n", - "2023-05-16, Close, 27060.00\n", - "2023-05-16, Close, 26984.84\n", - "2023-05-16, Close, 26982.79\n", - "2023-05-16, Close, 27038.02\n", - "2023-05-16, Close, 27052.83\n", - "2023-05-16, Close, 27086.56\n", - "2023-05-16, BUY CREATE, 27086.56\n", - "2023-05-16, BUY EXECUTED, Price: 27086.56, Cost: 135432.80, Comm 0.00\n", - "2023-05-16, Close, 27051.78\n", - "2023-05-16, SELL CREATE, 27051.78\n", - "2023-05-16, SELL EXECUTED, Price: 27051.79, Cost: 135432.80, Comm 0.00\n", - "2023-05-16, OPERATION PROFIT, GROSS -173.85, NET -173.85\n", - "2023-05-16, Close, 26933.05\n", - "2023-05-16, Close, 26951.41\n", - "2023-05-16, Close, 27012.97\n", - "2023-05-16, Close, 26998.36\n", - "2023-05-16, Close, 27033.84\n", - "2023-05-16, BUY CREATE, 27033.84\n", - "2023-05-17, BUY EXECUTED, Price: 27033.85, Cost: 135169.25, Comm 0.00\n", - "2023-05-17, Close, 27098.59\n", - "2023-05-17, Close, 27170.77\n", - "2023-05-17, Close, 27065.15\n", - "2023-05-17, Close, 27060.04\n", - "2023-05-17, Close, 27072.50\n", - "2023-05-17, Close, 26990.78\n", - "2023-05-17, SELL CREATE, 26990.78\n", - "2023-05-17, SELL EXECUTED, Price: 26990.78, Cost: 135169.25, Comm 0.00\n", - "2023-05-17, OPERATION PROFIT, GROSS -215.35, NET -215.35\n", - "2023-05-17, Close, 26993.92\n", - "2023-05-17, Close, 26845.14\n", - "2023-05-17, Close, 26813.07\n", - "2023-05-17, Close, 26871.80\n", - "2023-05-17, Close, 26868.21\n", - "2023-05-17, Close, 26637.62\n", - "2023-05-17, Close, 26669.89\n", - "2023-05-17, Close, 26635.91\n", - "2023-05-17, Close, 26780.77\n", - "2023-05-17, Close, 26796.93\n", - "2023-05-17, Close, 26905.10\n", - "2023-05-17, BUY CREATE, 26905.10\n", - "2023-05-17, BUY EXECUTED, Price: 26905.10, Cost: 134525.50, Comm 0.00\n", - "2023-05-17, Close, 27086.12\n", - "2023-05-17, Close, 27099.07\n", - "2023-05-17, Close, 27385.09\n", - "2023-05-17, Close, 27340.59\n", - "2023-05-17, Close, 27364.96\n", - "2023-05-17, Close, 27333.73\n", - "2023-05-17, Close, 27405.61\n", - "2023-05-18, Close, 27357.42\n", - "2023-05-18, Close, 27323.21\n", - "2023-05-18, Close, 27349.32\n", - "2023-05-18, Close, 27365.69\n", - "2023-05-18, Close, 27302.62\n", - "2023-05-18, Close, 27220.16\n", - "2023-05-18, SELL CREATE, 27220.16\n", - "2023-05-18, SELL EXECUTED, Price: 27220.16, Cost: 134525.50, Comm 0.00\n", - "2023-05-18, OPERATION PROFIT, GROSS 1575.30, NET 1575.30\n", - "2023-05-18, Close, 27210.88\n", - "2023-05-18, Close, 27391.61\n", - "2023-05-18, BUY CREATE, 27391.61\n", - "2023-05-18, BUY EXECUTED, Price: 27391.61, Cost: 136958.05, Comm 0.00\n", - "2023-05-18, Close, 27388.54\n", - "2023-05-18, Close, 27405.00\n", - "2023-05-18, Close, 27347.86\n", - "2023-05-18, Close, 27398.97\n", - "2023-05-18, Close, 27237.02\n", - "2023-05-18, SELL CREATE, 27237.02\n", - "2023-05-18, SELL EXECUTED, Price: 27237.02, Cost: 136958.05, Comm 0.00\n", - "2023-05-18, OPERATION PROFIT, GROSS -772.95, NET -772.95\n", - "2023-05-18, Close, 27257.21\n", - "2023-05-18, Close, 27244.99\n", - "2023-05-18, Close, 27086.77\n", - "2023-05-18, Close, 27069.56\n", - "2023-05-18, Close, 26488.99\n", - "2023-05-18, Close, 26617.62\n", - "2023-05-18, Close, 26734.01\n", - "2023-05-18, Close, 26720.63\n", - "2023-05-18, Close, 26917.24\n", - "2023-05-18, Close, 26891.75\n", - "2023-05-18, Close, 26821.28\n", - "2023-05-19, Close, 26885.47\n", - "2023-05-19, Close, 26809.99\n", - "2023-05-19, Close, 26802.05\n", - "2023-05-19, Close, 26834.73\n", - "2023-05-19, Close, 26875.00\n", - "2023-05-19, BUY CREATE, 26875.00\n", - "2023-05-19, BUY EXECUTED, Price: 26874.99, Cost: 134374.95, Comm 0.00\n", - "2023-05-19, Close, 26876.45\n", - "2023-05-19, Close, 26902.72\n", - "2023-05-19, Close, 26851.38\n", - "2023-05-19, Close, 26886.52\n", - "2023-05-19, Close, 26842.18\n", - "2023-05-19, SELL CREATE, 26842.18\n", - "2023-05-19, SELL EXECUTED, Price: 26842.18, Cost: 134374.95, Comm 0.00\n", - "2023-05-19, OPERATION PROFIT, GROSS -164.05, NET -164.05\n", - "2023-05-19, Close, 26823.08\n", - "2023-05-19, Close, 26855.89\n", - "2023-05-19, Close, 26909.94\n", - "2023-05-19, BUY CREATE, 26909.94\n", - "2023-05-19, BUY EXECUTED, Price: 26909.93, Cost: 134549.65, Comm 0.00\n", - "2023-05-19, Close, 26865.46\n", - "2023-05-19, Close, 26835.33\n", - "2023-05-19, SELL CREATE, 26835.33\n", - "2023-05-19, SELL EXECUTED, Price: 26835.34, Cost: 134549.65, Comm 0.00\n", - "2023-05-19, OPERATION PROFIT, GROSS -372.95, NET -372.95\n", - "2023-05-19, Close, 26883.65\n", - "2023-05-19, BUY CREATE, 26883.65\n", - "2023-05-19, BUY EXECUTED, Price: 26883.65, Cost: 134418.25, Comm 0.00\n", - "2023-05-19, Close, 26837.72\n", - "2023-05-19, SELL CREATE, 26837.72\n", - "2023-05-19, SELL EXECUTED, Price: 26837.73, Cost: 134418.25, Comm 0.00\n", - "2023-05-19, OPERATION PROFIT, GROSS -229.60, NET -229.60\n", - "2023-05-19, Close, 26919.17\n", - "2023-05-19, BUY CREATE, 26919.17\n", - "2023-05-19, BUY EXECUTED, Price: 26919.16, Cost: 134595.80, Comm 0.00\n", - "2023-05-19, Close, 26890.80\n", - "2023-05-19, Close, 26834.46\n", - "2023-05-19, SELL CREATE, 26834.46\n", - "2023-05-19, SELL EXECUTED, Price: 26834.47, Cost: 134595.80, Comm 0.00\n", - "2023-05-19, OPERATION PROFIT, GROSS -423.45, NET -423.45\n", - "2023-05-19, Close, 26831.04\n", - "2023-05-19, Close, 26906.12\n", - "2023-05-19, BUY CREATE, 26906.12\n", - "2023-05-19, BUY EXECUTED, Price: 26906.13, Cost: 134530.65, Comm 0.00\n", - "2023-05-19, Close, 26871.15\n", - "2023-05-19, Close, 26880.26\n", - "2023-05-20, Close, 26845.71\n", - "2023-05-20, SELL CREATE, 26845.71\n", - "2023-05-20, SELL EXECUTED, Price: 26845.71, Cost: 134530.65, Comm 0.00\n", - "2023-05-20, OPERATION PROFIT, GROSS -302.10, NET -302.10\n", - "2023-05-20, Close, 26858.98\n", - "2023-05-20, Close, 26839.63\n", - "2023-05-20, Close, 26865.58\n", - "2023-05-20, BUY CREATE, 26865.58\n", - "2023-05-20, BUY EXECUTED, Price: 26865.59, Cost: 134327.95, Comm 0.00\n", - "2023-05-20, Close, 26873.63\n", - "2023-05-20, Close, 26869.36\n", - "2023-05-20, Close, 26854.04\n", - "2023-05-20, SELL CREATE, 26854.04\n", - "2023-05-20, SELL EXECUTED, Price: 26854.05, Cost: 134327.95, Comm 0.00\n", - "2023-05-20, OPERATION PROFIT, GROSS -57.70, NET -57.70\n", - "2023-05-20, Close, 26854.98\n", - "2023-05-20, Close, 26908.98\n", - "2023-05-20, BUY CREATE, 26908.98\n", - "2023-05-20, BUY EXECUTED, Price: 26908.99, Cost: 134544.95, Comm 0.00\n", - "2023-05-20, Close, 26880.31\n", - "2023-05-20, Close, 26887.08\n", - "2023-05-20, Close, 26880.06\n", - "2023-05-20, Close, 26895.77\n", - "2023-05-20, Close, 26889.11\n", - "2023-05-20, Close, 26920.01\n", - "2023-05-20, Close, 26945.66\n", - "2023-05-20, Close, 26918.46\n", - "2023-05-20, Close, 27139.45\n", - "2023-05-20, Close, 27029.05\n", - "2023-05-20, Close, 27063.03\n", - "2023-05-20, Close, 27011.29\n", - "2023-05-20, Close, 27033.03\n", - "2023-05-20, Close, 27067.32\n", - "2023-05-20, Close, 27102.43\n", - "2023-05-21, Close, 27237.75\n", - "2023-05-21, Close, 27158.79\n", - "2023-05-21, Close, 27168.54\n", - "2023-05-21, Close, 27176.22\n", - "2023-05-21, Close, 27129.32\n", - "2023-05-21, Close, 27098.85\n", - "2023-05-21, Close, 27083.85\n", - "2023-05-21, SELL CREATE, 27083.85\n", - "2023-05-21, SELL EXECUTED, Price: 27083.85, Cost: 134544.95, Comm 0.00\n", - "2023-05-21, OPERATION PROFIT, GROSS 874.30, NET 874.30\n", - "2023-05-21, Close, 27054.99\n", - "2023-05-21, Close, 27042.87\n", - "2023-05-21, Close, 27077.21\n", - "2023-05-21, Close, 26955.00\n", - "2023-05-21, Close, 26829.94\n", - "2023-05-21, Close, 26930.01\n", - "2023-05-21, Close, 26890.69\n", - "2023-05-21, Close, 26898.32\n", - "2023-05-21, Close, 26898.97\n", - "2023-05-21, Close, 26886.43\n", - "2023-05-21, Close, 26871.55\n", - "2023-05-21, Close, 26872.28\n", - "2023-05-21, Close, 26902.12\n", - "2023-05-21, Close, 26845.80\n", - "2023-05-21, Close, 26745.15\n", - "2023-05-21, Close, 26754.81\n", - "2023-05-21, Close, 26747.78\n", - "2023-05-22, Close, 26656.11\n", - "2023-05-22, Close, 26584.17\n", - "2023-05-22, Close, 26649.67\n", - "2023-05-22, Close, 26644.80\n", - "2023-05-22, Close, 26691.67\n", - "2023-05-22, Close, 26756.09\n", - "2023-05-22, Close, 26821.69\n", - "2023-05-22, BUY CREATE, 26821.69\n", - "2023-05-22, BUY EXECUTED, Price: 26821.68, Cost: 134108.40, Comm 0.00\n", - "2023-05-22, Close, 26843.13\n", - "2023-05-22, Close, 26826.62\n", - "2023-05-22, Close, 26862.57\n", - "2023-05-22, Close, 26831.77\n", - "2023-05-22, Close, 26826.78\n", - "2023-05-22, Close, 26731.60\n", - "2023-05-22, SELL CREATE, 26731.60\n", - "2023-05-22, SELL EXECUTED, Price: 26731.61, Cost: 134108.40, Comm 0.00\n", - "2023-05-22, OPERATION PROFIT, GROSS -450.35, NET -450.35\n", - "2023-05-22, Close, 27007.00\n", - "2023-05-22, BUY CREATE, 27007.00\n", - "2023-05-22, BUY EXECUTED, Price: 27007.01, Cost: 135035.05, Comm 0.00\n", - "2023-05-22, Close, 26957.28\n", - "2023-05-22, Close, 26877.18\n", - "2023-05-22, Close, 26873.16\n", - "2023-05-22, Close, 26850.16\n", - "2023-05-22, Close, 26880.19\n", - "2023-05-22, Close, 26862.43\n", - "2023-05-22, Close, 26895.13\n", - "2023-05-22, Close, 26900.52\n", - "2023-05-22, Close, 26872.03\n", - "2023-05-22, Close, 26849.27\n", - "2023-05-22, SELL CREATE, 26849.27\n", - "2023-05-23, SELL EXECUTED, Price: 26849.28, Cost: 135035.05, Comm 0.00\n", - "2023-05-23, OPERATION PROFIT, GROSS -788.65, NET -788.65\n", - "2023-05-23, Close, 26822.33\n", - "2023-05-23, Close, 26994.98\n", - "2023-05-23, BUY CREATE, 26994.98\n", - "2023-05-23, BUY EXECUTED, Price: 26994.98, Cost: 134974.90, Comm 0.00\n", - "2023-05-23, Close, 27128.42\n", - "2023-05-23, Close, 27366.67\n", - "2023-05-23, Close, 27381.65\n", - "2023-05-23, Close, 27387.49\n", - "2023-05-23, Close, 27292.49\n", - "2023-05-23, Close, 27304.40\n", - "2023-05-23, Close, 27334.52\n", - "2023-05-23, Close, 27273.54\n", - "2023-05-23, Close, 27327.80\n", - "2023-05-23, Close, 27337.36\n", - "2023-05-23, Close, 27284.78\n", - "2023-05-23, Close, 27236.03\n", - "2023-05-23, Close, 27321.35\n", - "2023-05-23, Close, 27320.05\n", - "2023-05-23, Close, 27229.23\n", - "2023-05-23, SELL CREATE, 27229.23\n", - "2023-05-23, SELL EXECUTED, Price: 27229.24, Cost: 134974.90, Comm 0.00\n", - "2023-05-23, OPERATION PROFIT, GROSS 1171.30, NET 1171.30\n", - "2023-05-23, Close, 27203.71\n", - "2023-05-23, Close, 27139.01\n", - "2023-05-23, Close, 27181.22\n", - "2023-05-23, Close, 27215.11\n", - "2023-05-23, Close, 27200.38\n", - "2023-05-23, Close, 27194.91\n", - "2023-05-23, Close, 27219.61\n", - "2023-05-24, Close, 27156.70\n", - "2023-05-24, Close, 27138.19\n", - "2023-05-24, Close, 27161.76\n", - "2023-05-24, Close, 26786.00\n", - "2023-05-24, Close, 26804.12\n", - "2023-05-24, Close, 26775.45\n", - "2023-05-24, Close, 26712.55\n", - "2023-05-24, Close, 26678.67\n", - "2023-05-24, Close, 26748.58\n", - "2023-05-24, Close, 26750.80\n", - "2023-05-24, Close, 26730.00\n", - "2023-05-24, Close, 26742.24\n", - "2023-05-24, Close, 26695.41\n", - "2023-05-24, Close, 26442.86\n", - "2023-05-24, Close, 26254.93\n", - "2023-05-24, Close, 26314.69\n", - "2023-05-24, Close, 26238.01\n", - "2023-05-24, Close, 26285.01\n", - "2023-05-24, Close, 26220.55\n", - "2023-05-24, Close, 26252.33\n", - "2023-05-24, Close, 26404.18\n", - "2023-05-24, Close, 26368.66\n", - "2023-05-24, Close, 26348.52\n", - "2023-05-24, Close, 26329.01\n", - "2023-05-25, Close, 26236.47\n", - "2023-05-25, Close, 26124.08\n", - "2023-05-25, Close, 26122.71\n", - "2023-05-25, Close, 26183.72\n", - "2023-05-25, Close, 26224.39\n", - "2023-05-25, Close, 26260.12\n", - "2023-05-25, Close, 26261.27\n", - "2023-05-25, BUY CREATE, 26261.27\n", - "2023-05-25, BUY EXECUTED, Price: 26261.26, Cost: 131306.30, Comm 0.00\n", - "2023-05-25, Close, 26131.27\n", - "2023-05-25, SELL CREATE, 26131.27\n", - "2023-05-25, SELL EXECUTED, Price: 26131.27, Cost: 131306.30, Comm 0.00\n", - "2023-05-25, OPERATION PROFIT, GROSS -649.95, NET -649.95\n", - "2023-05-25, Close, 26223.87\n", - "2023-05-25, Close, 26284.76\n", - "2023-05-25, BUY CREATE, 26284.76\n", - "2023-05-25, BUY EXECUTED, Price: 26284.76, Cost: 131423.80, Comm 0.00\n", - "2023-05-25, Close, 26248.18\n", - "2023-05-25, SELL CREATE, 26248.18\n", - "2023-05-25, SELL EXECUTED, Price: 26248.17, Cost: 131423.80, Comm 0.00\n", - "2023-05-25, OPERATION PROFIT, GROSS -182.95, NET -182.95\n", - "2023-05-25, Close, 26296.62\n", - "2023-05-25, BUY CREATE, 26296.62\n", - "2023-05-25, BUY EXECUTED, Price: 26296.61, Cost: 131483.05, Comm 0.00\n", - "2023-05-25, Close, 26403.52\n", - "2023-05-25, Close, 26338.37\n", - "2023-05-25, Close, 26364.65\n", - "2023-05-25, Close, 26226.12\n", - "2023-05-25, SELL CREATE, 26226.12\n", - "2023-05-25, SELL EXECUTED, Price: 26226.12, Cost: 131483.05, Comm 0.00\n", - "2023-05-25, OPERATION PROFIT, GROSS -352.45, NET -352.45\n", - "2023-05-25, Close, 26276.73\n", - "2023-05-25, BUY CREATE, 26276.73\n", - "2023-05-25, BUY EXECUTED, Price: 26276.73, Cost: 131383.65, Comm 0.00\n", - "2023-05-25, Close, 26350.84\n", - "2023-05-25, Close, 26374.54\n", - "2023-05-25, Close, 26468.68\n", - "2023-05-25, Close, 26485.21\n", - "2023-05-25, Close, 26475.86\n", - "2023-05-25, Close, 26454.41\n", - "2023-05-25, Close, 26473.79\n", - "2023-05-26, Close, 26469.93\n", - "2023-05-26, Close, 26414.90\n", - "2023-05-26, Close, 26403.34\n", - "2023-05-26, Close, 26435.14\n", - "2023-05-26, Close, 26426.43\n", - "2023-05-26, Close, 26347.43\n", - "2023-05-26, SELL CREATE, 26347.43\n", - "2023-05-26, SELL EXECUTED, Price: 26347.44, Cost: 131383.65, Comm 0.00\n", - "2023-05-26, OPERATION PROFIT, GROSS 353.55, NET 353.55\n", - "2023-05-26, Close, 26434.40\n", - "2023-05-26, BUY CREATE, 26434.40\n", - "2023-05-26, BUY EXECUTED, Price: 26434.40, Cost: 132172.00, Comm 0.00\n", - "2023-05-26, Close, 26501.33\n", - "2023-05-26, Close, 26473.36\n", - "2023-05-26, Close, 26445.45\n", - "2023-05-26, SELL CREATE, 26445.45\n", - "2023-05-26, SELL EXECUTED, Price: 26445.46, Cost: 132172.00, Comm 0.00\n", - "2023-05-26, OPERATION PROFIT, GROSS 55.30, NET 55.30\n", - "2023-05-26, Close, 26450.13\n", - "2023-05-26, BUY CREATE, 26450.13\n", - "2023-05-26, BUY EXECUTED, Price: 26450.12, Cost: 132250.60, Comm 0.00\n", - "2023-05-26, Close, 26463.29\n", - "2023-05-26, Close, 26440.04\n", - "2023-05-26, SELL CREATE, 26440.04\n", - "2023-05-26, SELL EXECUTED, Price: 26440.04, Cost: 132250.60, Comm 0.00\n", - "2023-05-26, OPERATION PROFIT, GROSS -50.40, NET -50.40\n", - "2023-05-26, Close, 26539.97\n", - "2023-05-26, BUY CREATE, 26539.97\n", - "2023-05-26, BUY EXECUTED, Price: 26539.98, Cost: 132699.90, Comm 0.00\n", - "2023-05-26, Close, 26760.01\n", - "2023-05-26, Close, 26750.21\n", - "2023-05-26, Close, 26792.36\n", - "2023-05-26, Close, 26713.00\n", - "2023-05-26, Close, 26730.69\n", - "2023-05-26, Close, 26767.21\n", - "2023-05-26, Close, 26747.66\n", - "2023-05-26, Close, 26725.24\n", - "2023-05-26, Close, 26686.00\n", - "2023-05-26, Close, 26705.92\n", - "2023-05-27, Close, 26651.92\n", - "2023-05-27, SELL CREATE, 26651.92\n", - "2023-05-27, SELL EXECUTED, Price: 26651.93, Cost: 132699.90, Comm 0.00\n", - "2023-05-27, OPERATION PROFIT, GROSS 559.75, NET 559.75\n", - "2023-05-27, Close, 26713.76\n", - "2023-05-27, BUY CREATE, 26713.76\n", - "2023-05-27, BUY EXECUTED, Price: 26713.75, Cost: 133568.75, Comm 0.00\n", - "2023-05-27, Close, 26742.97\n", - "2023-05-27, Close, 26752.00\n", - "2023-05-27, Close, 26760.96\n", - "2023-05-27, Close, 26725.16\n", - "2023-05-27, SELL CREATE, 26725.16\n", - "2023-05-27, SELL EXECUTED, Price: 26725.16, Cost: 133568.75, Comm 0.00\n", - "2023-05-27, OPERATION PROFIT, GROSS 57.05, NET 57.05\n", - "2023-05-27, Close, 26749.47\n", - "2023-05-27, BUY CREATE, 26749.47\n", - "2023-05-27, BUY EXECUTED, Price: 26749.46, Cost: 133747.30, Comm 0.00\n", - "2023-05-27, Close, 26722.80\n", - "2023-05-27, SELL CREATE, 26722.80\n", - "2023-05-27, SELL EXECUTED, Price: 26722.80, Cost: 133747.30, Comm 0.00\n", - "2023-05-27, OPERATION PROFIT, GROSS -133.30, NET -133.30\n", - "2023-05-27, Close, 26688.65\n", - "2023-05-27, Close, 26699.17\n", - "2023-05-27, Close, 26676.89\n", - "2023-05-27, Close, 26699.02\n", - "2023-05-27, Close, 26711.50\n", - "2023-05-27, Close, 26628.29\n", - "2023-05-27, Close, 26666.87\n", - "2023-05-27, Close, 26690.05\n", - "2023-05-27, Close, 26664.07\n", - "2023-05-27, Close, 26756.70\n", - "2023-05-27, BUY CREATE, 26756.70\n", - "2023-05-27, BUY EXECUTED, Price: 26756.71, Cost: 133783.55, Comm 0.00\n", - "2023-05-27, Close, 26702.64\n", - "2023-05-27, SELL CREATE, 26702.64\n", - "2023-05-27, SELL EXECUTED, Price: 26702.64, Cost: 133783.55, Comm 0.00\n", - "2023-05-27, OPERATION PROFIT, GROSS -270.35, NET -270.35\n", - "2023-05-27, Close, 26729.60\n", - "2023-05-27, BUY CREATE, 26729.60\n", - "2023-05-27, BUY EXECUTED, Price: 26729.60, Cost: 133648.00, Comm 0.00\n", - "2023-05-27, Close, 26751.52\n", - "2023-05-27, Close, 26771.27\n", - "2023-05-27, Close, 26803.28\n", - "2023-05-27, Close, 26854.27\n", - "2023-05-28, Close, 27072.42\n", - "2023-05-28, Close, 27093.94\n", - "2023-05-28, Close, 27100.01\n", - "2023-05-28, Close, 27187.23\n", - "2023-05-28, Close, 27167.97\n", - "2023-05-28, Close, 27164.75\n", - "2023-05-28, Close, 27184.90\n", - "2023-05-28, Close, 27226.37\n", - "2023-05-28, Close, 27197.63\n", - "2023-05-28, Close, 27156.68\n", - "2023-05-28, Close, 27212.35\n", - "2023-05-28, Close, 27153.76\n", - "2023-05-28, Close, 27142.48\n", - "2023-05-28, Close, 27181.31\n", - "2023-05-28, Close, 27190.21\n", - "2023-05-28, Close, 27272.17\n", - "2023-05-28, Close, 27252.27\n", - "2023-05-28, Close, 27351.59\n", - "2023-05-28, Close, 27589.75\n", - "2023-05-28, Close, 27525.99\n", - "2023-05-28, Close, 27554.48\n", - "2023-05-28, Close, 27835.02\n", - "2023-05-28, Close, 28090.39\n", - "2023-05-28, Close, 28065.00\n", - "2023-05-29, Close, 28192.53\n", - "2023-05-29, Close, 28166.57\n", - "2023-05-29, Close, 28096.01\n", - "2023-05-29, Close, 27954.99\n", - "2023-05-29, Close, 27947.07\n", - "2023-05-29, Close, 27990.72\n", - "2023-05-29, Close, 28002.49\n", - "2023-05-29, Close, 27907.87\n", - "2023-05-29, Close, 27900.61\n", - "2023-05-29, SELL CREATE, 27900.61\n", - "2023-05-29, SELL EXECUTED, Price: 27900.60, Cost: 133648.00, Comm 0.00\n", - "2023-05-29, OPERATION PROFIT, GROSS 5855.00, NET 5855.00\n", - "2023-05-29, Close, 27939.95\n", - "2023-05-29, Close, 27857.59\n", - "2023-05-29, Close, 27913.87\n", - "2023-05-29, Close, 27876.98\n", - "2023-05-29, Close, 27903.12\n", - "2023-05-29, Close, 27787.77\n", - "2023-05-29, Close, 27630.51\n", - "2023-05-29, Close, 27597.24\n", - "2023-05-29, Close, 27689.14\n", - "2023-05-29, Close, 27635.45\n", - "2023-05-29, Close, 27637.94\n", - "2023-05-29, Close, 27682.77\n", - "2023-05-29, Close, 27666.70\n", - "2023-05-29, Close, 27689.22\n", - "2023-05-29, Close, 27736.40\n", - "2023-05-30, Close, 27709.55\n", - "2023-05-30, Close, 27766.03\n", - "2023-05-30, BUY CREATE, 27766.03\n", - "2023-05-30, BUY EXECUTED, Price: 27766.03, Cost: 138830.15, Comm 0.00\n", - "2023-05-30, Close, 27783.43\n", - "2023-05-30, Close, 27829.23\n", - "2023-05-30, Close, 27776.19\n", - "2023-05-30, Close, 27753.38\n", - "2023-05-30, Close, 27795.81\n", - "2023-05-30, Close, 27733.22\n", - "2023-05-30, Close, 27781.78\n", - "2023-05-30, Close, 27852.33\n", - "2023-05-30, Close, 27900.18\n", - "2023-05-30, Close, 28021.40\n", - "2023-05-30, Close, 27903.51\n", - "2023-05-30, Close, 27800.01\n", - "2023-05-30, SELL CREATE, 27800.01\n", - "2023-05-30, SELL EXECUTED, Price: 27800.02, Cost: 138830.15, Comm 0.00\n", - "2023-05-30, OPERATION PROFIT, GROSS 169.95, NET 169.95\n", - "2023-05-30, Close, 27622.65\n", - "2023-05-30, Close, 27673.08\n", - "2023-05-30, Close, 27713.43\n", - "2023-05-30, Close, 27696.12\n", - "2023-05-30, Close, 27765.84\n", - "2023-05-30, Close, 27850.20\n", - "2023-05-30, BUY CREATE, 27850.20\n", - "2023-05-30, BUY EXECUTED, Price: 27850.21, Cost: 139251.05, Comm 0.00\n", - "2023-05-30, Close, 27762.51\n", - "2023-05-30, SELL CREATE, 27762.51\n", - "2023-05-30, SELL EXECUTED, Price: 27762.52, Cost: 139251.05, Comm 0.00\n", - "2023-05-30, OPERATION PROFIT, GROSS -438.45, NET -438.45\n", - "2023-05-30, Close, 27719.37\n", - "2023-05-30, Close, 27738.52\n", - "2023-05-30, Close, 27694.40\n", - "2023-05-31, Close, 27754.78\n", - "2023-05-31, Close, 27742.09\n", - "2023-05-31, Close, 27673.47\n", - "2023-05-31, Close, 27657.30\n", - "2023-05-31, Close, 27257.70\n", - "2023-05-31, Close, 27088.15\n", - "2023-05-31, Close, 27163.37\n", - "2023-05-31, Close, 27167.90\n", - "2023-05-31, Close, 27136.93\n", - "2023-05-31, Close, 27133.28\n", - "2023-05-31, Close, 27056.53\n", - "2023-05-31, Close, 27097.18\n", - "2023-05-31, Close, 27072.34\n", - "2023-05-31, Close, 27117.11\n", - "2023-05-31, Close, 27033.86\n", - "2023-05-31, Close, 26911.54\n", - "2023-05-31, Close, 26936.01\n", - "2023-05-31, Close, 27055.40\n", - "2023-05-31, Close, 27037.06\n", - "2023-05-31, Close, 27010.57\n", - "2023-05-31, Close, 27114.20\n", - "2023-05-31, BUY CREATE, 27114.20\n", - "2023-05-31, BUY EXECUTED, Price: 27114.19, Cost: 135570.95, Comm 0.00\n", - "2023-05-31, Close, 27090.79\n", - "2023-05-31, Close, 27183.98\n", - "2023-05-31, Close, 27210.35\n", - "2023-06-01, Close, 27065.77\n", - "2023-06-01, SELL CREATE, 27065.77\n", - "2023-06-01, SELL EXECUTED, Price: 27065.76, Cost: 135570.95, Comm 0.00\n", - "2023-06-01, OPERATION PROFIT, GROSS -242.15, NET -242.15\n", - "2023-06-01, Close, 27078.56\n", - "2023-06-01, BUY CREATE, 27078.56\n", - "2023-06-01, BUY EXECUTED, Price: 27078.56, Cost: 135392.80, Comm 0.00\n", - "2023-06-01, Close, 26719.26\n", - "2023-06-01, SELL CREATE, 26719.26\n", - "2023-06-01, SELL EXECUTED, Price: 26719.26, Cost: 135392.80, Comm 0.00\n", - "2023-06-01, OPERATION PROFIT, GROSS -1796.50, NET -1796.50\n", - "2023-06-01, Close, 26779.94\n", - "2023-06-01, Close, 26804.15\n", - "2023-06-01, Close, 26849.20\n", - "2023-06-01, Close, 26785.13\n", - "2023-06-01, Close, 26802.67\n", - "2023-06-01, Close, 26912.53\n", - "2023-06-01, Close, 26908.63\n", - "2023-06-01, Close, 26860.00\n", - "2023-06-01, Close, 26892.96\n", - "2023-06-01, Close, 26941.79\n", - "2023-06-01, BUY CREATE, 26941.79\n", - "2023-06-01, BUY EXECUTED, Price: 26941.80, Cost: 134709.00, Comm 0.00\n", - "2023-06-01, Close, 26891.74\n", - "2023-06-01, SELL CREATE, 26891.74\n", - "2023-06-01, SELL EXECUTED, Price: 26891.74, Cost: 134709.00, Comm 0.00\n", - "2023-06-01, OPERATION PROFIT, GROSS -250.30, NET -250.30\n", - "2023-06-01, Close, 26898.08\n", - "2023-06-01, BUY CREATE, 26898.08\n", - "2023-06-01, BUY EXECUTED, Price: 26898.07, Cost: 134490.35, Comm 0.00\n", - "2023-06-01, Close, 26894.48\n", - "2023-06-01, Close, 27092.08\n", - "2023-06-01, Close, 26956.94\n", - "2023-06-01, Close, 26964.77\n", - "2023-06-01, Close, 26862.68\n", - "2023-06-01, SELL CREATE, 26862.68\n", - "2023-06-01, SELL EXECUTED, Price: 26862.68, Cost: 134490.35, Comm 0.00\n", - "2023-06-01, OPERATION PROFIT, GROSS -176.95, NET -176.95\n", - "2023-06-01, Close, 26863.00\n", - "2023-06-01, Close, 26889.84\n", - "2023-06-01, Close, 26880.97\n", - "2023-06-01, Close, 26817.93\n", - "2023-06-02, Close, 26786.03\n", - "2023-06-02, Close, 26811.90\n", - "2023-06-02, Close, 26960.01\n", - "2023-06-02, BUY CREATE, 26960.01\n", - "2023-06-02, BUY EXECUTED, Price: 26960.01, Cost: 134800.05, Comm 0.00\n", - "2023-06-02, Close, 27000.00\n", - "2023-06-02, Close, 27068.27\n", - "2023-06-02, Close, 27152.60\n", - "2023-06-02, Close, 27071.06\n", - "2023-06-02, Close, 27049.65\n", - "2023-06-02, Close, 27166.14\n", - "2023-06-02, Close, 27080.68\n", - "2023-06-02, Close, 27096.99\n", - "2023-06-02, Close, 27130.75\n", - "2023-06-02, Close, 27095.42\n", - "2023-06-02, Close, 26908.84\n", - "2023-06-02, SELL CREATE, 26908.84\n", - "2023-06-02, SELL EXECUTED, Price: 26908.85, Cost: 134800.05, Comm 0.00\n", - "2023-06-02, OPERATION PROFIT, GROSS -255.80, NET -255.80\n", - "2023-06-02, Close, 26964.74\n", - "2023-06-02, Close, 27095.92\n", - "2023-06-02, BUY CREATE, 27095.92\n", - "2023-06-02, BUY EXECUTED, Price: 27095.93, Cost: 135479.65, Comm 0.00\n", - "2023-06-02, Close, 27056.06\n", - "2023-06-02, SELL CREATE, 27056.06\n", - "2023-06-02, SELL EXECUTED, Price: 27056.06, Cost: 135479.65, Comm 0.00\n", - "2023-06-02, OPERATION PROFIT, GROSS -199.35, NET -199.35\n", - "2023-06-02, Close, 27057.58\n", - "2023-06-02, Close, 27192.60\n", - "2023-06-02, BUY CREATE, 27192.60\n", - "2023-06-02, BUY EXECUTED, Price: 27192.61, Cost: 135963.05, Comm 0.00\n", - "2023-06-02, Close, 27239.02\n", - "2023-06-02, Close, 27172.84\n", - "2023-06-02, Close, 27207.40\n", - "2023-06-02, Close, 27262.92\n", - "2023-06-02, Close, 27242.59\n", - "2023-06-03, Close, 27165.09\n", - "2023-06-03, Close, 27130.40\n", - "2023-06-03, Close, 27153.26\n", - "2023-06-03, Close, 27143.20\n", - "2023-06-03, Close, 27160.24\n", - "2023-06-03, Close, 27157.20\n", - "2023-06-03, SELL CREATE, 27157.20\n", - "2023-06-03, SELL EXECUTED, Price: 27157.20, Cost: 135963.05, Comm 0.00\n", - "2023-06-03, OPERATION PROFIT, GROSS -177.05, NET -177.05\n", - "2023-06-03, Close, 27182.35\n", - "2023-06-03, BUY CREATE, 27182.35\n", - "2023-06-03, BUY EXECUTED, Price: 27182.35, Cost: 135911.75, Comm 0.00\n", - "2023-06-03, Close, 27174.42\n", - "2023-06-03, SELL CREATE, 27174.42\n", - "2023-06-03, SELL EXECUTED, Price: 27174.42, Cost: 135911.75, Comm 0.00\n", - "2023-06-03, OPERATION PROFIT, GROSS -39.65, NET -39.65\n", - "2023-06-03, Close, 27146.62\n", - "2023-06-03, Close, 27151.51\n", - "2023-06-03, Close, 27140.00\n", - "2023-06-03, Close, 27129.79\n", - "2023-06-03, Close, 27165.81\n", - "2023-06-03, Close, 27166.98\n", - "2023-06-03, BUY CREATE, 27166.98\n", - "2023-06-03, BUY EXECUTED, Price: 27166.97, Cost: 135834.85, Comm 0.00\n", - "2023-06-03, Close, 27171.24\n", - "2023-06-03, Close, 27305.26\n", - "2023-06-03, Close, 27248.48\n", - "2023-06-03, Close, 27160.90\n", - "2023-06-03, SELL CREATE, 27160.90\n", - "2023-06-03, SELL EXECUTED, Price: 27160.91, Cost: 135834.85, Comm 0.00\n", - "2023-06-03, OPERATION PROFIT, GROSS -30.30, NET -30.30\n", - "2023-06-03, Close, 27147.43\n", - "2023-06-03, Close, 27096.36\n", - "2023-06-03, Close, 27062.33\n", - "2023-06-03, Close, 27004.41\n", - "2023-06-03, Close, 27071.55\n", - "2023-06-03, Close, 27069.22\n", - "2023-06-04, Close, 27005.13\n", - "2023-06-04, Close, 27041.03\n", - "2023-06-04, Close, 27091.27\n", - "2023-06-04, Close, 27061.38\n", - "2023-06-04, Close, 27054.95\n", - "2023-06-04, Close, 27038.63\n", - "2023-06-04, Close, 27127.78\n", - "2023-06-04, BUY CREATE, 27127.78\n", - "2023-06-04, BUY EXECUTED, Price: 27127.78, Cost: 135638.90, Comm 0.00\n", - "2023-06-04, Close, 27150.45\n", - "2023-06-04, Close, 27150.82\n", - "2023-06-04, Close, 27215.89\n", - "2023-06-04, Close, 27221.05\n", - "2023-06-04, Close, 27198.55\n", - "2023-06-04, Close, 27210.10\n", - "2023-06-04, Close, 27245.46\n", - "2023-06-04, Close, 27234.20\n", - "2023-06-04, Close, 27179.00\n", - "2023-06-04, Close, 27170.66\n", - "2023-06-04, Close, 27176.76\n", - "2023-06-04, Close, 27194.18\n", - "2023-06-04, Close, 27213.11\n", - "2023-06-04, Close, 27241.51\n", - "2023-06-04, Close, 27194.57\n", - "2023-06-04, SELL CREATE, 27194.57\n", - "2023-06-04, SELL EXECUTED, Price: 27194.57, Cost: 135638.90, Comm 0.00\n", - "2023-06-04, OPERATION PROFIT, GROSS 333.95, NET 333.95\n", - "2023-06-04, Close, 27234.06\n", - "2023-06-04, BUY CREATE, 27234.06\n", - "2023-06-04, BUY EXECUTED, Price: 27234.06, Cost: 136170.30, Comm 0.00\n", - "2023-06-04, Close, 27115.21\n", - "2023-06-04, SELL CREATE, 27115.21\n", - "2023-06-05, SELL EXECUTED, Price: 27115.20, Cost: 136170.30, Comm 0.00\n", - "2023-06-05, OPERATION PROFIT, GROSS -594.30, NET -594.30\n", - "2023-06-05, Close, 27024.76\n", - "2023-06-05, Close, 27047.14\n", - "2023-06-05, Close, 26922.71\n", - "2023-06-05, Close, 26843.58\n", - "2023-06-05, Close, 26837.00\n", - "2023-06-05, Close, 26816.70\n", - "2023-06-05, Close, 26765.34\n", - "2023-06-05, Close, 26829.99\n", - "2023-06-05, Close, 26798.64\n", - "2023-06-05, Close, 26776.99\n", - "2023-06-05, Close, 26716.80\n", - "2023-06-05, Close, 26773.39\n", - "2023-06-05, Close, 26690.76\n", - "2023-06-05, Close, 26728.64\n", - "2023-06-05, Close, 26802.21\n", - "2023-06-05, Close, 26007.53\n", - "2023-06-05, Close, 25809.05\n", - "2023-06-05, Close, 25756.28\n", - "2023-06-05, Close, 25564.43\n", - "2023-06-05, Close, 25629.99\n", - "2023-06-05, Close, 25631.16\n", - "2023-06-05, Close, 25658.35\n", - "2023-06-05, Close, 25710.73\n", - "2023-06-05, Close, 25728.20\n", - "2023-06-06, Close, 25690.89\n", - "2023-06-06, Close, 25640.01\n", - "2023-06-06, Close, 25764.76\n", - "2023-06-06, Close, 25730.83\n", - "2023-06-06, Close, 25797.65\n", - "2023-06-06, BUY CREATE, 25797.65\n", - "2023-06-06, BUY EXECUTED, Price: 25797.66, Cost: 128988.30, Comm 0.00\n", - "2023-06-06, Close, 25769.95\n", - "2023-06-06, Close, 25766.21\n", - "2023-06-06, Close, 25722.33\n", - "2023-06-06, Close, 25707.80\n", - "2023-06-06, Close, 25750.76\n", - "2023-06-06, Close, 25742.36\n", - "2023-06-06, Close, 25686.64\n", - "2023-06-06, SELL CREATE, 25686.64\n", - "2023-06-06, SELL EXECUTED, Price: 25686.64, Cost: 128988.30, Comm 0.00\n", - "2023-06-06, OPERATION PROFIT, GROSS -555.10, NET -555.10\n", - "2023-06-06, Close, 25533.41\n", - "2023-06-06, Close, 25735.20\n", - "2023-06-06, BUY CREATE, 25735.20\n", - "2023-06-06, BUY EXECUTED, Price: 25735.20, Cost: 128676.00, Comm 0.00\n", - "2023-06-06, Close, 26024.73\n", - "2023-06-06, Close, 26066.11\n", - "2023-06-06, Close, 26369.99\n", - "2023-06-06, Close, 26669.16\n", - "2023-06-06, Close, 26698.08\n", - "2023-06-06, Close, 27080.13\n", - "2023-06-06, Close, 26944.98\n", - "2023-06-06, Close, 27057.03\n", - "2023-06-06, Close, 27152.65\n", - "2023-06-06, Close, 27230.08\n", - "2023-06-07, Close, 27179.80\n", - "2023-06-07, Close, 27085.83\n", - "2023-06-07, Close, 26943.69\n", - "2023-06-07, Close, 26909.01\n", - "2023-06-07, Close, 26933.12\n", - "2023-06-07, Close, 26912.99\n", - "2023-06-07, Close, 26829.30\n", - "2023-06-07, SELL CREATE, 26829.30\n", - "2023-06-07, SELL EXECUTED, Price: 26829.30, Cost: 128676.00, Comm 0.00\n", - "2023-06-07, OPERATION PROFIT, GROSS 5470.50, NET 5470.50\n", - "2023-06-07, Close, 26795.87\n", - "2023-06-07, Close, 26816.47\n", - "2023-06-07, Close, 26486.28\n", - "2023-06-07, Close, 26595.74\n", - "2023-06-07, Close, 26896.14\n", - "2023-06-07, Close, 26802.35\n", - "2023-06-07, Close, 26818.62\n", - "2023-06-07, Close, 26443.57\n", - "2023-06-07, Close, 26349.52\n", - "2023-06-07, Close, 26329.16\n", - "2023-06-07, Close, 26507.04\n", - "2023-06-07, Close, 26472.94\n", - "2023-06-07, Close, 26482.42\n", - "2023-06-07, Close, 26359.93\n", - "2023-06-07, Close, 26156.00\n", - "2023-06-07, Close, 26275.90\n", - "2023-06-07, Close, 26339.34\n", - "2023-06-08, Close, 26390.01\n", - "2023-06-08, Close, 26443.60\n", - "2023-06-08, Close, 26386.51\n", - "2023-06-08, Close, 26344.17\n", - "2023-06-08, Close, 26400.97\n", - "2023-06-08, BUY CREATE, 26400.97\n", - "2023-06-08, BUY EXECUTED, Price: 26400.96, Cost: 132004.80, Comm 0.00\n", - "2023-06-08, Close, 26377.51\n", - "2023-06-08, Close, 26427.34\n", - "2023-06-08, Close, 26444.69\n", - "2023-06-08, Close, 26441.54\n", - "2023-06-08, Close, 26385.06\n", - "2023-06-08, Close, 26484.77\n", - "2023-06-08, Close, 26432.00\n", - "2023-06-08, Close, 26462.90\n", - "2023-06-08, Close, 26400.93\n", - "2023-06-08, SELL CREATE, 26400.93\n", - "2023-06-08, SELL EXECUTED, Price: 26400.92, Cost: 132004.80, Comm 0.00\n", - "2023-06-08, OPERATION PROFIT, GROSS -0.20, NET -0.20\n", - "2023-06-08, Close, 26648.55\n", - "2023-06-08, BUY CREATE, 26648.55\n", - "2023-06-08, BUY EXECUTED, Price: 26648.54, Cost: 133242.70, Comm 0.00\n", - "2023-06-08, Close, 26721.68\n", - "2023-06-08, Close, 26498.40\n", - "2023-06-08, Close, 26485.00\n", - "2023-06-08, Close, 26550.00\n", - "2023-06-08, Close, 26539.90\n", - "2023-06-08, Close, 26637.30\n", - "2023-06-08, Close, 26573.42\n", - "2023-06-08, Close, 26544.38\n", - "2023-06-08, Close, 26498.61\n", - "2023-06-08, SELL CREATE, 26498.61\n", - "2023-06-09, SELL EXECUTED, Price: 26498.62, Cost: 133242.70, Comm 0.00\n", - "2023-06-09, OPERATION PROFIT, GROSS -749.60, NET -749.60\n", - "2023-06-09, Close, 26456.95\n", - "2023-06-09, Close, 26504.21\n", - "2023-06-09, Close, 26457.51\n", - "2023-06-09, Close, 26483.70\n", - "2023-06-09, Close, 26491.38\n", - "2023-06-09, Close, 26504.54\n", - "2023-06-09, Close, 26492.93\n", - "2023-06-09, Close, 26493.43\n", - "2023-06-09, Close, 26642.37\n", - "2023-06-09, BUY CREATE, 26642.37\n", - "2023-06-09, BUY EXECUTED, Price: 26642.38, Cost: 133211.90, Comm 0.00\n", - "2023-06-09, Close, 26639.03\n", - "2023-06-09, Close, 26635.40\n", - "2023-06-09, Close, 26610.19\n", - "2023-06-09, Close, 26673.76\n", - "2023-06-09, Close, 26634.65\n", - "2023-06-09, Close, 26594.64\n", - "2023-06-09, Close, 26477.37\n", - "2023-06-09, SELL CREATE, 26477.37\n", - "2023-06-09, SELL EXECUTED, Price: 26477.36, Cost: 133211.90, Comm 0.00\n", - "2023-06-09, OPERATION PROFIT, GROSS -825.10, NET -825.10\n", - "2023-06-09, Close, 26482.84\n", - "2023-06-09, Close, 26496.06\n", - "2023-06-09, Close, 26450.00\n", - "2023-06-09, Close, 26407.15\n", - "2023-06-09, Close, 26451.16\n", - "2023-06-09, Close, 26479.52\n", - "2023-06-09, Close, 26492.69\n", - "2023-06-09, Close, 26477.81\n", - "2023-06-10, Close, 26459.99\n", - "2023-06-10, Close, 26396.93\n", - "2023-06-10, Close, 26326.92\n", - "2023-06-10, Close, 26323.07\n", - "2023-06-10, Close, 25765.28\n", - "2023-06-10, Close, 25518.06\n", - "2023-06-10, Close, 25538.81\n", - "2023-06-10, Close, 25651.09\n", - "2023-06-10, Close, 25669.07\n", - "2023-06-10, Close, 25651.88\n", - "2023-06-10, Close, 25698.31\n", - "2023-06-10, Close, 25731.40\n", - "2023-06-10, Close, 25616.18\n", - "2023-06-10, Close, 25657.49\n", - "2023-06-10, Close, 25668.34\n", - "2023-06-10, Close, 25628.80\n", - "2023-06-10, Close, 25588.67\n", - "2023-06-10, Close, 26022.34\n", - "2023-06-10, BUY CREATE, 26022.34\n", - "2023-06-10, BUY EXECUTED, Price: 26022.34, Cost: 130111.70, Comm 0.00\n", - "2023-06-10, Close, 25547.28\n", - "2023-06-10, SELL CREATE, 25547.28\n", - "2023-06-10, SELL EXECUTED, Price: 25547.28, Cost: 130111.70, Comm 0.00\n", - "2023-06-10, OPERATION PROFIT, GROSS -2375.30, NET -2375.30\n", - "2023-06-10, Close, 25750.00\n", - "2023-06-10, BUY CREATE, 25750.00\n", - "2023-06-10, BUY EXECUTED, Price: 25750.01, Cost: 128750.05, Comm 0.00\n", - "2023-06-10, Close, 25751.25\n", - "2023-06-10, Close, 25761.28\n", - "2023-06-10, Close, 25875.16\n", - "2023-06-10, Close, 25841.21\n", - "2023-06-11, Close, 25750.28\n", - "2023-06-11, Close, 25824.99\n", - "2023-06-11, Close, 25766.72\n", - "2023-06-11, Close, 25727.51\n", - "2023-06-11, SELL CREATE, 25727.51\n", - "2023-06-11, SELL EXECUTED, Price: 25727.51, Cost: 128750.05, Comm 0.00\n", - "2023-06-11, OPERATION PROFIT, GROSS -112.50, NET -112.50\n", - "2023-06-11, Close, 25727.74\n", - "2023-06-11, Close, 25819.10\n", - "2023-06-11, BUY CREATE, 25819.10\n", - "2023-06-11, BUY EXECUTED, Price: 25819.10, Cost: 129095.50, Comm 0.00\n", - "2023-06-11, Close, 25786.49\n", - "2023-06-11, Close, 25741.33\n", - "2023-06-11, SELL CREATE, 25741.33\n", - "2023-06-11, SELL EXECUTED, Price: 25741.32, Cost: 129095.50, Comm 0.00\n", - "2023-06-11, OPERATION PROFIT, GROSS -388.90, NET -388.90\n", - "2023-06-11, Close, 25740.20\n", - "2023-06-11, Close, 25706.26\n", - "2023-06-11, Close, 25774.08\n", - "2023-06-11, BUY CREATE, 25774.08\n", - "2023-06-11, BUY EXECUTED, Price: 25774.08, Cost: 128870.40, Comm 0.00\n", - "2023-06-11, Close, 25796.06\n", - "2023-06-11, Close, 25750.00\n", - "2023-06-11, SELL CREATE, 25750.00\n", - "2023-06-11, SELL EXECUTED, Price: 25750.01, Cost: 128870.40, Comm 0.00\n", - "2023-06-11, OPERATION PROFIT, GROSS -120.35, NET -120.35\n", - "2023-06-11, Close, 25703.33\n", - "2023-06-11, Close, 25753.19\n", - "2023-06-11, Close, 25751.36\n", - "2023-06-11, Close, 25868.39\n", - "2023-06-11, BUY CREATE, 25868.39\n", - "2023-06-11, BUY EXECUTED, Price: 25868.39, Cost: 129341.95, Comm 0.00\n", - "2023-06-11, Close, 25941.63\n", - "2023-06-11, Close, 25975.00\n", - "2023-06-11, Close, 26030.89\n", - "2023-06-11, Close, 26123.68\n", - "2023-06-11, Close, 26046.37\n", - "2023-06-11, Close, 25895.80\n", - "2023-06-11, Close, 25925.55\n", - "2023-06-12, Close, 25965.13\n", - "2023-06-12, Close, 25935.17\n", - "2023-06-12, Close, 25773.47\n", - "2023-06-12, SELL CREATE, 25773.47\n", - "2023-06-12, SELL EXECUTED, Price: 25773.48, Cost: 129341.95, Comm 0.00\n", - "2023-06-12, OPERATION PROFIT, GROSS -474.55, NET -474.55\n", - "2023-06-12, Close, 25791.29\n", - "2023-06-12, Close, 25814.98\n", - "2023-06-12, Close, 25772.80\n", - "2023-06-12, Close, 25844.34\n", - "2023-06-12, Close, 25802.98\n", - "2023-06-12, Close, 25939.32\n", - "2023-06-12, BUY CREATE, 25939.32\n", - "2023-06-12, BUY EXECUTED, Price: 25939.31, Cost: 129696.55, Comm 0.00\n", - "2023-06-12, Close, 25965.10\n", - "2023-06-12, Close, 25964.59\n", - "2023-06-12, Close, 25988.83\n", - "2023-06-12, Close, 25933.10\n", - "2023-06-12, Close, 25798.30\n", - "2023-06-12, SELL CREATE, 25798.30\n", - "2023-06-12, SELL EXECUTED, Price: 25798.29, Cost: 129696.55, Comm 0.00\n", - "2023-06-12, OPERATION PROFIT, GROSS -705.10, NET -705.10\n", - "2023-06-12, Close, 25846.35\n", - "2023-06-12, Close, 25824.63\n", - "2023-06-12, Close, 25825.41\n", - "2023-06-12, Close, 25804.56\n", - "2023-06-12, Close, 25845.31\n", - "2023-06-12, Close, 25824.23\n", - "2023-06-12, Close, 25893.48\n", - "2023-06-12, BUY CREATE, 25893.48\n", - "2023-06-12, BUY EXECUTED, Price: 25893.48, Cost: 129467.40, Comm 0.00\n", - "2023-06-12, Close, 25930.52\n", - "2023-06-12, Close, 25929.93\n", - "2023-06-12, Close, 25905.19\n", - "2023-06-13, Close, 25868.89\n", - "2023-06-13, SELL CREATE, 25868.89\n", - "2023-06-13, SELL EXECUTED, Price: 25868.88, Cost: 129467.40, Comm 0.00\n", - "2023-06-13, OPERATION PROFIT, GROSS -123.00, NET -123.00\n", - "2023-06-13, Close, 25970.67\n", - "2023-06-13, BUY CREATE, 25970.67\n", - "2023-06-13, BUY EXECUTED, Price: 25970.67, Cost: 129853.35, Comm 0.00\n", - "2023-06-13, Close, 26125.49\n", - "2023-06-13, Close, 26063.85\n", - "2023-06-13, Close, 26055.51\n", - "2023-06-13, Close, 26080.82\n", - "2023-06-13, Close, 26080.01\n", - "2023-06-13, Close, 26073.92\n", - "2023-06-13, Close, 26176.83\n", - "2023-06-13, Close, 26147.37\n", - "2023-06-13, Close, 26156.31\n", - "2023-06-13, Close, 26191.81\n", - "2023-06-13, Close, 26082.29\n", - "2023-06-13, Close, 26032.92\n", - "2023-06-13, SELL CREATE, 26032.92\n", - "2023-06-13, SELL EXECUTED, Price: 26032.91, Cost: 129853.35, Comm 0.00\n", - "2023-06-13, OPERATION PROFIT, GROSS 311.20, NET 311.20\n", - "2023-06-13, Close, 25985.67\n", - "2023-06-13, Close, 25759.54\n", - "2023-06-13, Close, 25865.29\n", - "2023-06-13, Close, 25821.88\n", - "2023-06-13, Close, 25889.63\n", - "2023-06-13, Close, 25902.84\n", - "2023-06-13, Close, 25847.98\n", - "2023-06-13, Close, 25847.45\n", - "2023-06-13, Close, 25840.00\n", - "2023-06-13, Close, 25934.25\n", - "2023-06-14, Close, 25989.72\n", - "2023-06-14, BUY CREATE, 25989.72\n", - "2023-06-14, BUY EXECUTED, Price: 25989.72, Cost: 129948.60, Comm 0.00\n", - "2023-06-14, Close, 26046.27\n", - "2023-06-14, Close, 26027.40\n", - "2023-06-14, Close, 25985.07\n", - "2023-06-14, Close, 25981.01\n", - "2023-06-14, Close, 25845.14\n", - "2023-06-14, SELL CREATE, 25845.14\n", - "2023-06-14, SELL EXECUTED, Price: 25845.14, Cost: 129948.60, Comm 0.00\n", - "2023-06-14, OPERATION PROFIT, GROSS -722.90, NET -722.90\n", - "2023-06-14, Close, 25894.54\n", - "2023-06-14, Close, 25897.72\n", - "2023-06-14, Close, 25928.30\n", - "2023-06-14, BUY CREATE, 25928.30\n", - "2023-06-14, BUY EXECUTED, Price: 25928.30, Cost: 129641.50, Comm 0.00\n", - "2023-06-14, Close, 25980.53\n", - "2023-06-14, Close, 25956.99\n", - "2023-06-14, Close, 25975.71\n", - "2023-06-14, Close, 26022.15\n", - "2023-06-14, Close, 25990.00\n", - "2023-06-14, Close, 26001.27\n", - "2023-06-14, Close, 25986.75\n", - "2023-06-14, Close, 25965.86\n", - "2023-06-14, Close, 26027.04\n", - "2023-06-14, Close, 25915.03\n", - "2023-06-14, SELL CREATE, 25915.03\n", - "2023-06-14, SELL EXECUTED, Price: 25915.02, Cost: 129641.50, Comm 0.00\n", - "2023-06-14, OPERATION PROFIT, GROSS -66.40, NET -66.40\n", - "2023-06-14, Close, 25874.59\n", - "2023-06-14, Close, 24934.21\n", - "2023-06-14, Close, 25121.25\n", - "2023-06-14, Close, 25034.98\n", - "2023-06-14, Close, 25128.60\n", - "2023-06-15, Close, 25206.51\n", - "2023-06-15, Close, 25064.79\n", - "2023-06-15, Close, 25083.79\n", - "2023-06-15, Close, 25065.35\n", - "2023-06-15, Close, 25028.15\n", - "2023-06-15, Close, 25031.42\n", - "2023-06-15, Close, 24927.95\n", - "2023-06-15, Close, 24983.80\n", - "2023-06-15, Close, 24974.26\n", - "2023-06-15, Close, 24947.71\n", - "2023-06-15, Close, 24923.51\n", - "2023-06-15, Close, 25014.97\n", - "2023-06-15, Close, 24954.45\n", - "2023-06-15, Close, 25055.22\n", - "2023-06-15, BUY CREATE, 25055.22\n", - "2023-06-15, BUY EXECUTED, Price: 25055.22, Cost: 125276.10, Comm 0.00\n", - "2023-06-15, Close, 25014.62\n", - "2023-06-15, SELL CREATE, 25014.62\n", - "2023-06-15, SELL EXECUTED, Price: 25014.62, Cost: 125276.10, Comm 0.00\n", - "2023-06-15, OPERATION PROFIT, GROSS -203.00, NET -203.00\n", - "2023-06-15, Close, 24959.95\n", - "2023-06-15, Close, 24999.99\n", - "2023-06-15, BUY CREATE, 24999.99\n", - "2023-06-15, BUY EXECUTED, Price: 25000.00, Cost: 125000.00, Comm 0.00\n", - "2023-06-15, Close, 25144.72\n", - "2023-06-15, Close, 25389.97\n", - "2023-06-15, Close, 25455.49\n", - "2023-06-15, Close, 25566.00\n", - "2023-06-15, Close, 25574.60\n", - "2023-06-15, Close, 25629.30\n", - "2023-06-15, Close, 25598.49\n", - "2023-06-16, Close, 25496.59\n", - "2023-06-16, Close, 25517.48\n", - "2023-06-16, Close, 25554.88\n", - "2023-06-16, Close, 25561.74\n", - "2023-06-16, Close, 25528.77\n", - "2023-06-16, Close, 25553.04\n", - "2023-06-16, Close, 25578.58\n", - "2023-06-16, Close, 25537.01\n", - "2023-06-16, Close, 25545.25\n", - "2023-06-16, Close, 25595.95\n", - "2023-06-16, Close, 25570.00\n", - "2023-06-16, Close, 25474.51\n", - "2023-06-16, SELL CREATE, 25474.51\n", - "2023-06-16, SELL EXECUTED, Price: 25474.51, Cost: 125000.00, Comm 0.00\n", - "2023-06-16, OPERATION PROFIT, GROSS 2372.55, NET 2372.55\n", - "2023-06-16, Close, 25569.99\n", - "2023-06-16, BUY CREATE, 25569.99\n", - "2023-06-16, BUY EXECUTED, Price: 25570.00, Cost: 127850.00, Comm 0.00\n", - "2023-06-16, Close, 25492.64\n", - "2023-06-16, SELL CREATE, 25492.64\n", - "2023-06-16, SELL EXECUTED, Price: 25492.64, Cost: 127850.00, Comm 0.00\n", - "2023-06-16, OPERATION PROFIT, GROSS -386.80, NET -386.80\n", - "2023-06-16, Close, 25616.01\n", - "2023-06-16, BUY CREATE, 25616.01\n", - "2023-06-16, BUY EXECUTED, Price: 25616.00, Cost: 128080.00, Comm 0.00\n", - "2023-06-16, Close, 25840.01\n", - "2023-06-16, Close, 25959.77\n", - "2023-06-16, Close, 26320.99\n", - "2023-06-16, Close, 26361.40\n", - "2023-06-16, Close, 26382.43\n", - "2023-06-16, Close, 26412.13\n", - "2023-06-16, Close, 26297.84\n", - "2023-06-16, Close, 26370.51\n", - "2023-06-16, Close, 26345.00\n", - "2023-06-17, Close, 26313.11\n", - "2023-06-17, Close, 26198.47\n", - "2023-06-17, Close, 26276.67\n", - "2023-06-17, Close, 26262.16\n", - "2023-06-17, Close, 26358.49\n", - "2023-06-17, Close, 26690.45\n", - "2023-06-17, Close, 26665.12\n", - "2023-06-17, Close, 26593.57\n", - "2023-06-17, Close, 26601.01\n", - "2023-06-17, Close, 26596.09\n", - "2023-06-17, Close, 26588.77\n", - "2023-06-17, Close, 26507.76\n", - "2023-06-17, Close, 26521.05\n", - "2023-06-17, Close, 26551.15\n", - "2023-06-17, Close, 26496.62\n", - "2023-06-17, Close, 26410.82\n", - "2023-06-17, SELL CREATE, 26410.82\n", - "2023-06-17, SELL EXECUTED, Price: 26410.82, Cost: 128080.00, Comm 0.00\n", - "2023-06-17, OPERATION PROFIT, GROSS 3974.10, NET 3974.10\n", - "2023-06-17, Close, 26473.14\n", - "2023-06-17, Close, 26423.42\n", - "2023-06-17, Close, 26521.43\n", - "2023-06-17, Close, 26475.30\n", - "2023-06-17, Close, 26541.86\n", - "2023-06-17, BUY CREATE, 26541.86\n", - "2023-06-17, BUY EXECUTED, Price: 26541.85, Cost: 132709.25, Comm 0.00\n", - "2023-06-17, Close, 26525.40\n", - "2023-06-17, Close, 26570.15\n", - "2023-06-17, Close, 26516.99\n", - "2023-06-18, Close, 26453.96\n", - "2023-06-18, SELL CREATE, 26453.96\n", - "2023-06-18, SELL EXECUTED, Price: 26453.95, Cost: 132709.25, Comm 0.00\n", - "2023-06-18, OPERATION PROFIT, GROSS -439.50, NET -439.50\n", - "2023-06-18, Close, 26492.12\n", - "2023-06-18, Close, 26475.52\n", - "2023-06-18, Close, 26548.45\n", - "2023-06-18, BUY CREATE, 26548.45\n", - "2023-06-18, BUY EXECUTED, Price: 26548.46, Cost: 132742.30, Comm 0.00\n", - "2023-06-18, Close, 26535.51\n", - "2023-06-18, Close, 26540.01\n", - "2023-06-18, Close, 26544.02\n", - "2023-06-18, Close, 26584.98\n", - "2023-06-18, Close, 26499.32\n", - "2023-06-18, SELL CREATE, 26499.32\n", - "2023-06-18, SELL EXECUTED, Price: 26499.32, Cost: 132742.30, Comm 0.00\n", - "2023-06-18, OPERATION PROFIT, GROSS -245.70, NET -245.70\n", - "2023-06-18, Close, 26527.34\n", - "2023-06-18, BUY CREATE, 26527.34\n", - "2023-06-18, BUY EXECUTED, Price: 26527.34, Cost: 132636.70, Comm 0.00\n", - "2023-06-18, Close, 26508.00\n", - "2023-06-18, SELL CREATE, 26508.00\n", - "2023-06-18, SELL EXECUTED, Price: 26507.99, Cost: 132636.70, Comm 0.00\n", - "2023-06-18, OPERATION PROFIT, GROSS -96.75, NET -96.75\n", - "2023-06-18, Close, 26500.00\n", - "2023-06-18, Close, 26534.97\n", - "2023-06-18, BUY CREATE, 26534.97\n", - "2023-06-18, BUY EXECUTED, Price: 26534.97, Cost: 132674.85, Comm 0.00\n", - "2023-06-18, Close, 26486.00\n", - "2023-06-18, SELL CREATE, 26486.00\n", - "2023-06-18, SELL EXECUTED, Price: 26486.01, Cost: 132674.85, Comm 0.00\n", - "2023-06-18, OPERATION PROFIT, GROSS -244.80, NET -244.80\n", - "2023-06-18, Close, 26549.99\n", - "2023-06-18, BUY CREATE, 26549.99\n", - "2023-06-18, BUY EXECUTED, Price: 26550.00, Cost: 132750.00, Comm 0.00\n", - "2023-06-18, Close, 26562.09\n", - "2023-06-18, Close, 26620.12\n", - "2023-06-18, Close, 26630.00\n", - "2023-06-18, Close, 26620.87\n", - "2023-06-18, Close, 26650.00\n", - "2023-06-18, Close, 26473.74\n", - "2023-06-18, SELL CREATE, 26473.74\n", - "2023-06-18, SELL EXECUTED, Price: 26473.74, Cost: 132750.00, Comm 0.00\n", - "2023-06-18, OPERATION PROFIT, GROSS -381.30, NET -381.30\n", - "2023-06-18, Close, 26415.34\n", - "2023-06-18, Close, 26402.26\n", - "2023-06-18, Close, 26339.97\n", - "2023-06-19, Close, 26366.10\n", - "2023-06-19, Close, 26437.43\n", - "2023-06-19, Close, 26446.33\n", - "2023-06-19, Close, 26403.36\n", - "2023-06-19, Close, 26428.55\n", - "2023-06-19, Close, 26465.59\n", - "2023-06-19, Close, 26427.98\n", - "2023-06-19, Close, 26428.01\n", - "2023-06-19, Close, 26417.25\n", - "2023-06-19, Close, 26401.03\n", - "2023-06-19, Close, 26377.99\n", - "2023-06-19, Close, 26447.73\n", - "2023-06-19, BUY CREATE, 26447.73\n", - "2023-06-19, BUY EXECUTED, Price: 26447.73, Cost: 132238.65, Comm 0.00\n", - "2023-06-19, Close, 26531.39\n", - "2023-06-19, Close, 26535.17\n", - "2023-06-19, Close, 26423.23\n", - "2023-06-19, SELL CREATE, 26423.23\n", - "2023-06-19, SELL EXECUTED, Price: 26423.24, Cost: 132238.65, Comm 0.00\n", - "2023-06-19, OPERATION PROFIT, GROSS -122.45, NET -122.45\n", - "2023-06-19, Close, 26444.00\n", - "2023-06-19, BUY CREATE, 26444.00\n", - "2023-06-19, BUY EXECUTED, Price: 26443.99, Cost: 132219.95, Comm 0.00\n", - "2023-06-19, Close, 26499.65\n", - "2023-06-19, Close, 26665.06\n", - "2023-06-19, Close, 26496.00\n", - "2023-06-19, Close, 26682.28\n", - "2023-06-19, Close, 26723.99\n", - "2023-06-19, Close, 26770.18\n", - "2023-06-19, Close, 26754.99\n", - "2023-06-19, Close, 26844.35\n", - "2023-06-20, Close, 26982.28\n", - "2023-06-20, Close, 26902.31\n", - "2023-06-20, Close, 26914.50\n", - "2023-06-20, Close, 26896.52\n", - "2023-06-20, Close, 26965.94\n", - "2023-06-20, Close, 26820.46\n", - "2023-06-20, Close, 26789.15\n", - "2023-06-20, Close, 26832.44\n", - "2023-06-20, Close, 26754.25\n", - "2023-06-20, SELL CREATE, 26754.25\n", - "2023-06-20, SELL EXECUTED, Price: 26754.24, Cost: 132219.95, Comm 0.00\n", - "2023-06-20, OPERATION PROFIT, GROSS 1551.25, NET 1551.25\n", - "2023-06-20, Close, 26780.56\n", - "2023-06-20, Close, 26775.98\n", - "2023-06-20, Close, 26907.99\n", - "2023-06-20, BUY CREATE, 26907.99\n", - "2023-06-20, BUY EXECUTED, Price: 26907.99, Cost: 134539.95, Comm 0.00\n", - "2023-06-20, Close, 26851.99\n", - "2023-06-20, Close, 26812.01\n", - "2023-06-20, SELL CREATE, 26812.01\n", - "2023-06-20, SELL EXECUTED, Price: 26812.00, Cost: 134539.95, Comm 0.00\n", - "2023-06-20, OPERATION PROFIT, GROSS -479.95, NET -479.95\n", - "2023-06-20, Close, 26780.00\n", - "2023-06-20, Close, 27071.93\n", - "2023-06-20, BUY CREATE, 27071.93\n", - "2023-06-20, BUY EXECUTED, Price: 27071.94, Cost: 135359.70, Comm 0.00\n", - "2023-06-20, Close, 27380.54\n", - "2023-06-20, Close, 27796.00\n", - "2023-06-20, Close, 28070.54\n", - "2023-06-20, Close, 27982.77\n", - "2023-06-20, Close, 28157.99\n", - "2023-06-20, Close, 28130.00\n", - "2023-06-20, Close, 28213.47\n", - "2023-06-20, Close, 28307.99\n", - "2023-06-21, Close, 28414.00\n", - "2023-06-21, Close, 28785.93\n", - "2023-06-21, Close, 28789.05\n", - "2023-06-21, Close, 28711.15\n", - "2023-06-21, Close, 28785.53\n", - "2023-06-21, Close, 28982.02\n", - "2023-06-21, Close, 28858.01\n", - "2023-06-21, Close, 28872.28\n", - "2023-06-21, Close, 28824.41\n", - "2023-06-21, Close, 28923.69\n", - "2023-06-21, Close, 28834.91\n", - "2023-06-21, Close, 28930.00\n", - "2023-06-21, Close, 28893.73\n", - "2023-06-21, Close, 29311.99\n", - "2023-06-21, Close, 29536.01\n", - "2023-06-21, Close, 29851.58\n", - "2023-06-21, Close, 30164.58\n", - "2023-06-21, Close, 30080.23\n", - "2023-06-21, Close, 30131.39\n", - "2023-06-21, Close, 30112.03\n", - "2023-06-21, Close, 29988.01\n", - "2023-06-21, Close, 29880.95\n", - "2023-06-21, Close, 30114.56\n", - "2023-06-21, Close, 29993.89\n", - "2023-06-22, Close, 30139.48\n", - "2023-06-22, Close, 30159.06\n", - "2023-06-22, Close, 30472.11\n", - "2023-06-22, Close, 30296.01\n", - "2023-06-22, Close, 30350.00\n", - "2023-06-22, Close, 30285.30\n", - "2023-06-22, Close, 30130.02\n", - "2023-06-22, SELL CREATE, 30130.02\n", - "2023-06-22, SELL EXECUTED, Price: 30130.02, Cost: 135359.70, Comm 0.00\n", - "2023-06-22, OPERATION PROFIT, GROSS 15290.40, NET 15290.40\n", - "2023-06-22, Close, 30100.75\n", - "2023-06-22, Close, 30096.70\n", - "2023-06-22, Close, 30134.36\n", - "2023-06-22, Close, 30178.00\n", - "2023-06-22, BUY CREATE, 30178.00\n", - "2023-06-22, BUY EXECUTED, Price: 30178.00, Cost: 150890.00, Comm 0.00\n", - "2023-06-22, Close, 29928.00\n", - "2023-06-22, SELL CREATE, 29928.00\n", - "2023-06-22, SELL EXECUTED, Price: 29928.01, Cost: 150890.00, Comm 0.00\n", - "2023-06-22, OPERATION PROFIT, GROSS -1249.95, NET -1249.95\n", - "2023-06-22, Close, 30115.49\n", - "2023-06-22, Close, 30235.99\n", - "2023-06-22, BUY CREATE, 30235.99\n", - "2023-06-22, BUY EXECUTED, Price: 30235.99, Cost: 151179.95, Comm 0.00\n", - "2023-06-22, Close, 29746.76\n", - "2023-06-22, SELL CREATE, 29746.76\n", - "2023-06-22, SELL EXECUTED, Price: 29746.75, Cost: 151179.95, Comm 0.00\n", - "2023-06-22, OPERATION PROFIT, GROSS -2446.20, NET -2446.20\n", - "2023-06-22, Close, 29850.65\n", - "2023-06-22, Close, 29970.02\n", - "2023-06-22, Close, 30145.29\n", - "2023-06-22, BUY CREATE, 30145.29\n", - "2023-06-22, BUY EXECUTED, Price: 30145.30, Cost: 150726.50, Comm 0.00\n", - "2023-06-22, Close, 30133.99\n", - "2023-06-22, Close, 30213.11\n", - "2023-06-22, Close, 30152.07\n", - "2023-06-22, Close, 30054.07\n", - "2023-06-22, SELL CREATE, 30054.07\n", - "2023-06-22, SELL EXECUTED, Price: 30054.06, Cost: 150726.50, Comm 0.00\n", - "2023-06-22, OPERATION PROFIT, GROSS -456.20, NET -456.20\n", - "2023-06-22, Close, 29927.77\n", - "2023-06-22, Close, 29884.92\n", - "2023-06-23, Close, 30010.00\n", - "2023-06-23, Close, 29933.53\n", - "2023-06-23, Close, 29984.91\n", - "2023-06-23, Close, 30007.96\n", - "2023-06-23, Close, 30002.00\n", - "2023-06-23, BUY CREATE, 30002.00\n", - "2023-06-23, BUY EXECUTED, Price: 30002.00, Cost: 150010.00, Comm 0.00\n", - "2023-06-23, Close, 30042.00\n", - "2023-06-23, Close, 30012.18\n", - "2023-06-23, SELL CREATE, 30012.18\n", - "2023-06-23, SELL EXECUTED, Price: 30012.18, Cost: 150010.00, Comm 0.00\n", - "2023-06-23, OPERATION PROFIT, GROSS 50.90, NET 50.90\n", - "2023-06-23, Close, 29931.99\n", - "2023-06-23, Close, 30008.12\n", - "2023-06-23, Close, 30145.22\n", - "2023-06-23, BUY CREATE, 30145.22\n", - "2023-06-23, BUY EXECUTED, Price: 30145.21, Cost: 150726.05, Comm 0.00\n", - "2023-06-23, Close, 30075.99\n", - "2023-06-23, Close, 30140.87\n", - "2023-06-23, Close, 30106.50\n", - "2023-06-23, Close, 30077.82\n", - "2023-06-23, Close, 30282.04\n", - "2023-06-23, Close, 31238.00\n", - "2023-06-23, Close, 31097.02\n", - "2023-06-23, Close, 31241.10\n", - "2023-06-23, Close, 30943.68\n", - "2023-06-23, Close, 30880.87\n", - "2023-06-23, Close, 30906.07\n", - "2023-06-23, Close, 30659.80\n", - "2023-06-23, Close, 30644.17\n", - "2023-06-23, Close, 30688.50\n", - "2023-06-24, Close, 30488.20\n", - "2023-06-24, SELL CREATE, 30488.20\n", - "2023-06-24, SELL EXECUTED, Price: 30488.20, Cost: 150726.05, Comm 0.00\n", - "2023-06-24, OPERATION PROFIT, GROSS 1714.95, NET 1714.95\n", - "2023-06-24, Close, 30605.30\n", - "2023-06-24, Close, 30756.60\n", - "2023-06-24, BUY CREATE, 30756.60\n", - "2023-06-24, BUY EXECUTED, Price: 30756.61, Cost: 153783.05, Comm 0.00\n", - "2023-06-24, Close, 30730.01\n", - "2023-06-24, SELL CREATE, 30730.01\n", - "2023-06-24, SELL EXECUTED, Price: 30730.00, Cost: 153783.05, Comm 0.00\n", - "2023-06-24, OPERATION PROFIT, GROSS -133.05, NET -133.05\n", - "2023-06-24, Close, 30703.68\n", - "2023-06-24, Close, 30725.01\n", - "2023-06-24, Close, 30697.94\n", - "2023-06-24, Close, 30567.58\n", - "2023-06-24, Close, 30608.82\n", - "2023-06-24, Close, 30621.63\n", - "2023-06-24, Close, 30739.98\n", - "2023-06-24, BUY CREATE, 30739.98\n", - "2023-06-24, BUY EXECUTED, Price: 30739.99, Cost: 153699.95, Comm 0.00\n", - "2023-06-24, Close, 30684.38\n", - "2023-06-24, Close, 30694.57\n", - "2023-06-24, Close, 30640.69\n", - "2023-06-24, SELL CREATE, 30640.69\n", - "2023-06-24, SELL EXECUTED, Price: 30640.69, Cost: 153699.95, Comm 0.00\n", - "2023-06-24, OPERATION PROFIT, GROSS -496.50, NET -496.50\n", - "2023-06-24, Close, 30688.53\n", - "2023-06-24, BUY CREATE, 30688.53\n", - "2023-06-24, BUY EXECUTED, Price: 30688.52, Cost: 153442.60, Comm 0.00\n", - "2023-06-24, Close, 30398.71\n", - "2023-06-24, SELL CREATE, 30398.71\n", - "2023-06-24, SELL EXECUTED, Price: 30398.72, Cost: 153442.60, Comm 0.00\n", - "2023-06-24, OPERATION PROFIT, GROSS -1449.00, NET -1449.00\n", - "2023-06-24, Close, 30510.01\n", - "2023-06-24, Close, 30584.49\n", - "2023-06-24, Close, 30638.38\n", - "2023-06-24, BUY CREATE, 30638.38\n", - "2023-06-24, Order Canceled/Margin/Rejected\n", - "2023-06-24, Close, 30627.84\n", - "2023-06-24, Close, 30507.56\n", - "2023-06-24, Close, 30513.78\n", - "2023-06-24, Close, 30515.33\n", - "2023-06-24, Close, 30527.43\n", - "2023-06-25, Close, 30513.23\n", - "2023-06-25, Close, 30598.52\n", - "2023-06-25, BUY CREATE, 30598.52\n", - "2023-06-25, Order Canceled/Margin/Rejected\n", - "2023-06-25, Close, 30621.30\n", - "2023-06-25, BUY CREATE, 30621.30\n", - "2023-06-25, Order Canceled/Margin/Rejected\n", - "2023-06-25, Close, 30748.46\n", - "2023-06-25, BUY CREATE, 30748.46\n", - "2023-06-25, Order Canceled/Margin/Rejected\n", - "2023-06-25, Close, 30890.66\n", - "2023-06-25, BUY CREATE, 30890.66\n", - "2023-06-25, Order Canceled/Margin/Rejected\n", - "2023-06-25, Close, 30858.56\n", - "2023-06-25, BUY CREATE, 30858.56\n", - "2023-06-25, Order Canceled/Margin/Rejected\n", - "2023-06-25, Close, 30872.66\n", - "2023-06-25, BUY CREATE, 30872.66\n", - "2023-06-25, Order Canceled/Margin/Rejected\n", - "2023-06-25, Close, 30723.78\n", - "2023-06-25, BUY CREATE, 30723.78\n", - "2023-06-25, Order Canceled/Margin/Rejected\n", - "2023-06-25, Close, 30735.93\n", - "2023-06-25, BUY CREATE, 30735.93\n", - "2023-06-25, Order Canceled/Margin/Rejected\n", - "2023-06-25, Close, 30683.99\n", - "2023-06-25, BUY CREATE, 30683.99\n", - "2023-06-25, Order Canceled/Margin/Rejected\n", - "2023-06-25, Close, 30621.27\n", - "2023-06-25, Close, 30716.03\n", - "2023-06-25, BUY CREATE, 30716.03\n", - "2023-06-25, Order Canceled/Margin/Rejected\n", - "2023-06-25, Close, 30669.40\n", - "2023-06-25, Close, 30676.50\n", - "2023-06-25, Close, 30551.82\n", - "2023-06-25, Close, 30585.16\n", - "2023-06-25, Close, 30590.29\n", - "2023-06-25, Close, 30526.01\n", - "2023-06-25, Close, 30453.03\n", - "2023-06-25, Close, 30429.78\n", - "2023-06-25, Close, 30374.00\n", - "2023-06-25, Close, 30451.52\n", - "2023-06-25, Close, 30500.86\n", - "2023-06-25, Close, 30462.66\n", - "2023-06-26, Close, 30394.89\n", - "2023-06-26, Close, 30172.74\n", - "2023-06-26, Close, 30222.48\n", - "2023-06-26, Close, 30296.36\n", - "2023-06-26, Close, 30245.17\n", - "2023-06-26, Close, 30215.05\n", - "2023-06-26, Close, 30483.97\n", - "2023-06-26, BUY CREATE, 30483.97\n", - "2023-06-26, BUY EXECUTED, Price: 30483.97, Cost: 152419.85, Comm 0.00\n", - "2023-06-26, Close, 30404.29\n", - "2023-06-26, Close, 30405.75\n", - "2023-06-26, Close, 30268.00\n", - "2023-06-26, SELL CREATE, 30268.00\n", - "2023-06-26, SELL EXECUTED, Price: 30268.00, Cost: 152419.85, Comm 0.00\n", - "2023-06-26, OPERATION PROFIT, GROSS -1079.85, NET -1079.85\n", - "2023-06-26, Close, 30267.99\n", - "2023-06-26, Close, 30322.89\n", - "2023-06-26, Close, 30359.30\n", - "2023-06-26, BUY CREATE, 30359.30\n", - "2023-06-26, Order Canceled/Margin/Rejected\n", - "2023-06-26, Close, 30639.14\n", - "2023-06-26, BUY CREATE, 30639.14\n", - "2023-06-26, Order Canceled/Margin/Rejected\n", - "2023-06-26, Close, 30394.56\n", - "2023-06-26, BUY CREATE, 30394.56\n", - "2023-06-26, Order Canceled/Margin/Rejected\n", - "2023-06-26, Close, 30419.62\n", - "2023-06-26, BUY CREATE, 30419.62\n", - "2023-06-26, Order Canceled/Margin/Rejected\n", - "2023-06-26, Close, 30100.47\n", - "2023-06-26, Close, 30084.63\n", - "2023-06-26, Close, 30213.36\n", - "2023-06-26, Close, 30243.97\n", - "2023-06-26, Close, 30161.78\n", - "2023-06-26, Close, 30158.07\n", - "2023-06-26, Close, 30227.51\n", - "2023-06-26, Close, 30267.99\n", - "2023-06-27, Close, 30354.02\n", - "2023-06-27, BUY CREATE, 30354.02\n", - "2023-06-27, Order Canceled/Margin/Rejected\n", - "2023-06-27, Close, 30373.77\n", - "2023-06-27, BUY CREATE, 30373.77\n", - "2023-06-27, Order Canceled/Margin/Rejected\n", - "2023-06-27, Close, 30480.06\n", - "2023-06-27, BUY CREATE, 30480.06\n", - "2023-06-27, Order Canceled/Margin/Rejected\n", - "2023-06-27, Close, 30371.57\n", - "2023-06-27, BUY CREATE, 30371.57\n", - "2023-06-27, Order Canceled/Margin/Rejected\n", - "2023-06-27, Close, 30348.80\n", - "2023-06-27, BUY CREATE, 30348.80\n", - "2023-06-27, Order Canceled/Margin/Rejected\n", - "2023-06-27, Close, 30317.90\n", - "2023-06-27, BUY CREATE, 30317.90\n", - "2023-06-27, Order Canceled/Margin/Rejected\n", - "2023-06-27, Close, 30320.14\n", - "2023-06-27, BUY CREATE, 30320.14\n", - "2023-06-27, Order Canceled/Margin/Rejected\n", - "2023-06-27, Close, 30411.22\n", - "2023-06-27, BUY CREATE, 30411.22\n", - "2023-06-27, Order Canceled/Margin/Rejected\n", - "2023-06-27, Close, 30395.14\n", - "2023-06-27, BUY CREATE, 30395.14\n", - "2023-06-27, Order Canceled/Margin/Rejected\n", - "2023-06-27, Close, 30377.98\n", - "2023-06-27, BUY CREATE, 30377.98\n", - "2023-06-27, Order Canceled/Margin/Rejected\n", - "2023-06-27, Close, 30656.57\n", - "2023-06-27, BUY CREATE, 30656.57\n", - "2023-06-27, Order Canceled/Margin/Rejected\n", - "2023-06-27, Close, 30729.10\n", - "2023-06-27, BUY CREATE, 30729.10\n", - "2023-06-27, Order Canceled/Margin/Rejected\n", - "2023-06-27, Close, 30713.99\n", - "2023-06-27, BUY CREATE, 30713.99\n", - "2023-06-27, Order Canceled/Margin/Rejected\n", - "2023-06-27, Close, 30610.41\n", - "2023-06-27, BUY CREATE, 30610.41\n", - "2023-06-27, Order Canceled/Margin/Rejected\n", - "2023-06-27, Close, 30808.63\n", - "2023-06-27, BUY CREATE, 30808.63\n", - "2023-06-27, Order Canceled/Margin/Rejected\n", - "2023-06-27, Close, 30498.74\n", - "2023-06-27, BUY CREATE, 30498.74\n", - "2023-06-27, Order Canceled/Margin/Rejected\n", - "2023-06-27, Close, 30710.65\n", - "2023-06-27, BUY CREATE, 30710.65\n", - "2023-06-27, Order Canceled/Margin/Rejected\n", - "2023-06-27, Close, 30733.20\n", - "2023-06-27, BUY CREATE, 30733.20\n", - "2023-06-27, Order Canceled/Margin/Rejected\n", - "2023-06-27, Close, 30686.32\n", - "2023-06-27, BUY CREATE, 30686.32\n", - "2023-06-27, Order Canceled/Margin/Rejected\n", - "2023-06-27, Close, 30648.03\n", - "2023-06-27, BUY CREATE, 30648.03\n", - "2023-06-27, Order Canceled/Margin/Rejected\n", - "2023-06-27, Close, 30649.96\n", - "2023-06-27, BUY CREATE, 30649.96\n", - "2023-06-27, Order Canceled/Margin/Rejected\n", - "2023-06-27, Close, 30717.42\n", - "2023-06-27, BUY CREATE, 30717.42\n", - "2023-06-27, Order Canceled/Margin/Rejected\n", - "2023-06-27, Close, 30586.45\n", - "2023-06-27, Close, 30692.44\n", - "2023-06-27, BUY CREATE, 30692.44\n", - "2023-06-28, Order Canceled/Margin/Rejected\n", - "2023-06-28, Close, 30614.00\n", - "2023-06-28, Close, 30498.42\n", - "2023-06-28, Close, 30420.01\n", - "2023-06-28, Close, 30452.75\n", - "2023-06-28, Close, 30482.31\n", - "2023-06-28, Close, 30452.53\n", - "2023-06-28, Close, 30375.09\n", - "2023-06-28, Close, 30186.13\n", - "2023-06-28, Close, 30278.00\n", - "2023-06-28, Close, 30304.42\n", - "2023-06-28, Close, 30337.62\n", - "2023-06-28, Close, 30310.73\n", - "2023-06-28, Close, 30101.99\n", - "2023-06-28, Close, 30202.34\n", - "2023-06-28, Close, 30316.00\n", - "2023-06-28, Close, 30411.06\n", - "2023-06-28, BUY CREATE, 30411.06\n", - "2023-06-28, Order Canceled/Margin/Rejected\n", - "2023-06-28, Close, 30258.00\n", - "2023-06-28, Close, 30155.23\n", - "2023-06-28, Close, 30198.15\n", - "2023-06-28, Close, 30100.00\n", - "2023-06-28, Close, 30108.01\n", - "2023-06-28, Close, 30134.38\n", - "2023-06-28, Close, 30105.94\n", - "2023-06-28, Close, 30077.41\n", - "2023-06-29, Close, 30079.99\n", - "2023-06-29, Close, 30168.77\n", - "2023-06-29, Close, 30121.15\n", - "2023-06-29, Close, 30176.00\n", - "2023-06-29, BUY CREATE, 30176.00\n", - "2023-06-29, BUY EXECUTED, Price: 30176.00, Cost: 150880.00, Comm 0.00\n", - "2023-06-29, Close, 30221.30\n", - "2023-06-29, Close, 30183.00\n", - "2023-06-29, Close, 30235.56\n", - "2023-06-29, Close, 30340.29\n", - "2023-06-29, Close, 30383.98\n", - "2023-06-29, Close, 30433.33\n", - "2023-06-29, Close, 30697.11\n", - "2023-06-29, Close, 30670.94\n", - "2023-06-29, Close, 30623.93\n", - "2023-06-29, Close, 30564.00\n", - "2023-06-29, Close, 30450.01\n", - "2023-06-29, Close, 30478.80\n", - "2023-06-29, Close, 30502.01\n", - "2023-06-29, Close, 30543.33\n", - "2023-06-29, Close, 30566.80\n", - "2023-06-29, Close, 30584.99\n", - "2023-06-29, Close, 30398.98\n", - "2023-06-29, SELL CREATE, 30398.98\n", - "2023-06-29, SELL EXECUTED, Price: 30398.97, Cost: 150880.00, Comm 0.00\n", - "2023-06-29, OPERATION PROFIT, GROSS 1114.85, NET 1114.85\n", - "2023-06-29, Close, 30417.34\n", - "2023-06-29, Close, 30409.34\n", - "2023-06-29, Close, 30447.31\n", - "2023-06-30, Close, 30441.34\n", - "2023-06-30, Close, 30384.53\n", - "2023-06-30, Close, 30661.82\n", - "2023-06-30, BUY CREATE, 30661.82\n", - "2023-06-30, Order Canceled/Margin/Rejected\n", - "2023-06-30, Close, 30745.05\n", - "2023-06-30, BUY CREATE, 30745.05\n", - "2023-06-30, Order Canceled/Margin/Rejected\n", - "2023-06-30, Close, 30877.99\n", - "2023-06-30, BUY CREATE, 30877.99\n", - "2023-06-30, Order Canceled/Margin/Rejected\n", - "2023-06-30, Close, 30736.63\n", - "2023-06-30, BUY CREATE, 30736.63\n", - "2023-06-30, Order Canceled/Margin/Rejected\n", - "2023-06-30, Close, 30665.99\n", - "2023-06-30, BUY CREATE, 30665.99\n", - "2023-06-30, Order Canceled/Margin/Rejected\n", - "2023-06-30, Close, 30765.09\n", - "2023-06-30, BUY CREATE, 30765.09\n", - "2023-06-30, Order Canceled/Margin/Rejected\n", - "2023-06-30, Close, 30854.00\n", - "2023-06-30, BUY CREATE, 30854.00\n", - "2023-06-30, Order Canceled/Margin/Rejected\n", - "2023-06-30, Close, 30768.83\n", - "2023-06-30, BUY CREATE, 30768.83\n", - "2023-06-30, Order Canceled/Margin/Rejected\n", - "2023-06-30, Close, 30811.52\n", - "2023-06-30, BUY CREATE, 30811.52\n", - "2023-06-30, Order Canceled/Margin/Rejected\n", - "2023-06-30, Close, 30910.01\n", - "2023-06-30, BUY CREATE, 30910.01\n", - "2023-06-30, Order Canceled/Margin/Rejected\n", - "2023-06-30, Close, 31010.11\n", - "2023-06-30, BUY CREATE, 31010.11\n", - "2023-06-30, Order Canceled/Margin/Rejected\n", - "2023-06-30, Close, 30135.62\n", - "2023-06-30, Close, 30092.50\n", - "2023-06-30, Close, 30067.72\n", - "2023-06-30, Close, 30400.53\n", - "2023-06-30, Close, 30455.80\n", - "2023-06-30, Close, 30359.99\n", - "2023-06-30, Close, 30372.36\n", - "2023-06-30, Close, 30397.54\n", - "2023-06-30, Close, 30479.56\n", - "2023-06-30, Close, 30476.68\n", - "2023-06-30, Close, 30472.00\n", - "2023-07-01, Close, 30469.83\n", - "2023-07-01, BUY CREATE, 30469.83\n", - "2023-07-01, BUY EXECUTED, Price: 30469.82, Cost: 152349.10, Comm 0.00\n", - "2023-07-01, Close, 30447.78\n", - "2023-07-01, Close, 30420.85\n", - "2023-07-01, Close, 30398.01\n", - "2023-07-01, Close, 30389.15\n", - "2023-07-01, Close, 30429.36\n", - "2023-07-01, Close, 30450.26\n", - "2023-07-01, Close, 30459.88\n", - "2023-07-01, Close, 30441.70\n", - "2023-07-01, Close, 30441.23\n", - "2023-07-01, Close, 30469.98\n", - "2023-07-01, Close, 30523.02\n", - "2023-07-01, Close, 30564.01\n", - "2023-07-01, Close, 30565.26\n", - "2023-07-01, Close, 30608.52\n", - "2023-07-01, Close, 30572.58\n", - "2023-07-01, Close, 30572.00\n", - "2023-07-01, Close, 30573.86\n", - "2023-07-01, Close, 30608.87\n", - "2023-07-01, Close, 30609.51\n", - "2023-07-01, Close, 30582.58\n", - "2023-07-01, Close, 30584.65\n", - "2023-07-01, Close, 30577.64\n", - "2023-07-01, Close, 30585.90\n", - "2023-07-02, Close, 30575.77\n", - "2023-07-02, Close, 30567.56\n", - "2023-07-02, SELL CREATE, 30567.56\n", - "2023-07-02, SELL EXECUTED, Price: 30567.57, Cost: 152349.10, Comm 0.00\n", - "2023-07-02, OPERATION PROFIT, GROSS 488.75, NET 488.75\n", - "2023-07-02, Close, 30542.00\n", - "2023-07-02, Close, 30509.31\n", - "2023-07-02, Close, 30527.67\n", - "2023-07-02, Close, 30481.27\n", - "2023-07-02, Close, 30480.00\n", - "2023-07-02, Close, 30513.01\n", - "2023-07-02, Close, 30484.01\n", - "2023-07-02, Close, 30516.81\n", - "2023-07-02, Close, 30509.99\n", - "2023-07-02, Close, 30544.74\n", - "2023-07-02, BUY CREATE, 30544.74\n", - "2023-07-02, BUY EXECUTED, Price: 30544.74, Cost: 152723.70, Comm 0.00\n", - "2023-07-02, Close, 30525.99\n", - "2023-07-02, SELL CREATE, 30525.99\n", - "2023-07-02, SELL EXECUTED, Price: 30525.99, Cost: 152723.70, Comm 0.00\n", - "2023-07-02, OPERATION PROFIT, GROSS -93.75, NET -93.75\n", - "2023-07-02, Close, 30517.96\n", - "2023-07-02, Close, 30590.23\n", - "2023-07-02, BUY CREATE, 30590.23\n", - "2023-07-02, Order Canceled/Margin/Rejected\n", - "2023-07-02, Close, 30498.01\n", - "2023-07-02, Close, 30561.58\n", - "2023-07-02, BUY CREATE, 30561.58\n", - "2023-07-02, BUY EXECUTED, Price: 30561.57, Cost: 152807.85, Comm 0.00\n", - "2023-07-02, Close, 30441.20\n", - "2023-07-02, SELL CREATE, 30441.20\n", - "2023-07-02, SELL EXECUTED, Price: 30441.20, Cost: 152807.85, Comm 0.00\n", - "2023-07-02, OPERATION PROFIT, GROSS -601.85, NET -601.85\n", - "2023-07-02, Close, 30523.07\n", - "2023-07-02, BUY CREATE, 30523.07\n", - "2023-07-02, Order Canceled/Margin/Rejected\n", - "2023-07-02, Close, 30557.74\n", - "2023-07-02, BUY CREATE, 30557.74\n", - "2023-07-02, Order Canceled/Margin/Rejected\n", - "2023-07-02, Close, 30588.47\n", - "2023-07-02, BUY CREATE, 30588.47\n", - "2023-07-02, Order Canceled/Margin/Rejected\n", - "2023-07-02, Close, 30557.44\n", - "2023-07-02, BUY CREATE, 30557.44\n", - "2023-07-02, Order Canceled/Margin/Rejected\n", - "2023-07-02, Close, 30651.29\n", - "2023-07-02, BUY CREATE, 30651.29\n", - "2023-07-02, Order Canceled/Margin/Rejected\n", - "2023-07-02, Close, 30617.03\n", - "2023-07-02, BUY CREATE, 30617.03\n", - "2023-07-03, Order Canceled/Margin/Rejected\n", - "2023-07-03, Close, 30637.99\n", - "2023-07-03, BUY CREATE, 30637.99\n", - "2023-07-03, Order Canceled/Margin/Rejected\n", - "2023-07-03, Close, 30660.86\n", - "2023-07-03, BUY CREATE, 30660.86\n", - "2023-07-03, Order Canceled/Margin/Rejected\n", - "2023-07-03, Close, 30755.00\n", - "2023-07-03, BUY CREATE, 30755.00\n", - "2023-07-03, Order Canceled/Margin/Rejected\n", - "2023-07-03, Close, 30756.65\n", - "2023-07-03, BUY CREATE, 30756.65\n", - "2023-07-03, Order Canceled/Margin/Rejected\n", - "2023-07-03, Close, 30679.99\n", - "2023-07-03, BUY CREATE, 30679.99\n", - "2023-07-03, Order Canceled/Margin/Rejected\n", - "2023-07-03, Close, 30673.62\n", - "2023-07-03, BUY CREATE, 30673.62\n", - "2023-07-03, Order Canceled/Margin/Rejected\n", - "2023-07-03, Close, 30651.25\n", - "2023-07-03, BUY CREATE, 30651.25\n", - "2023-07-03, Order Canceled/Margin/Rejected\n", - "2023-07-03, Close, 30667.19\n", - "2023-07-03, BUY CREATE, 30667.19\n", - "2023-07-03, Order Canceled/Margin/Rejected\n", - "2023-07-03, Close, 30640.12\n", - "2023-07-03, Close, 30610.61\n", - "2023-07-03, Close, 30640.09\n", - "2023-07-03, Close, 30625.22\n", - "2023-07-03, Close, 30653.06\n", - "2023-07-03, Close, 30653.84\n", - "2023-07-03, Close, 30736.27\n", - "2023-07-03, BUY CREATE, 30736.27\n", - "2023-07-03, Order Canceled/Margin/Rejected\n", - "2023-07-03, Close, 31068.64\n", - "2023-07-03, BUY CREATE, 31068.64\n", - "2023-07-03, Order Canceled/Margin/Rejected\n", - "2023-07-03, Close, 31042.22\n", - "2023-07-03, BUY CREATE, 31042.22\n", - "2023-07-03, Order Canceled/Margin/Rejected\n", - "2023-07-03, Close, 31000.98\n", - "2023-07-03, BUY CREATE, 31000.98\n", - "2023-07-03, Order Canceled/Margin/Rejected\n", - "2023-07-03, Close, 31199.14\n", - "2023-07-03, BUY CREATE, 31199.14\n", - "2023-07-03, Order Canceled/Margin/Rejected\n", - "2023-07-03, Close, 31255.84\n", - "2023-07-03, BUY CREATE, 31255.84\n", - "2023-07-03, Order Canceled/Margin/Rejected\n", - "2023-07-03, Close, 31121.18\n", - "2023-07-03, BUY CREATE, 31121.18\n", - "2023-07-03, Order Canceled/Margin/Rejected\n", - "2023-07-03, Close, 31050.23\n", - "2023-07-03, BUY CREATE, 31050.23\n", - "2023-07-03, Order Canceled/Margin/Rejected\n", - "2023-07-03, Close, 31120.69\n", - "2023-07-03, BUY CREATE, 31120.69\n", - "2023-07-03, Order Canceled/Margin/Rejected\n", - "2023-07-03, Close, 31156.20\n", - "2023-07-03, BUY CREATE, 31156.20\n", - "2023-07-04, Order Canceled/Margin/Rejected\n", - "2023-07-04, Close, 31112.86\n", - "2023-07-04, BUY CREATE, 31112.86\n", - "2023-07-04, Order Canceled/Margin/Rejected\n", - "2023-07-04, Close, 31288.80\n", - "2023-07-04, BUY CREATE, 31288.80\n", - "2023-07-04, Order Canceled/Margin/Rejected\n", - "2023-07-04, Close, 31259.77\n", - "2023-07-04, BUY CREATE, 31259.77\n", - "2023-07-04, Order Canceled/Margin/Rejected\n", - "2023-07-04, Close, 31195.69\n", - "2023-07-04, BUY CREATE, 31195.69\n", - "2023-07-04, Order Canceled/Margin/Rejected\n", - "2023-07-04, Close, 31058.00\n", - "2023-07-04, Close, 30972.70\n", - "2023-07-04, Close, 30999.55\n", - "2023-07-04, Close, 30911.41\n", - "2023-07-04, Close, 30930.76\n", - "2023-07-04, Close, 31016.91\n", - "2023-07-04, Close, 31025.64\n", - "2023-07-04, Close, 31067.99\n", - "2023-07-04, Close, 31044.90\n", - "2023-07-04, Close, 30999.55\n", - "2023-07-04, Close, 30972.40\n", - "2023-07-04, Close, 30964.37\n", - "2023-07-04, Close, 30960.29\n", - "2023-07-04, Close, 30900.01\n", - "2023-07-04, Close, 30902.00\n", - "2023-07-04, Close, 30696.84\n", - "2023-07-04, Close, 30797.13\n", - "2023-07-04, Close, 30803.72\n", - "2023-07-04, Close, 30820.01\n", - "2023-07-04, Close, 30766.51\n", - "2023-07-05, Close, 30762.27\n", - "2023-07-05, Close, 30795.93\n", - "2023-07-05, Close, 30837.99\n", - "2023-07-05, Close, 30868.71\n", - "2023-07-05, BUY CREATE, 30868.71\n", - "2023-07-05, Order Canceled/Margin/Rejected\n", - "2023-07-05, Close, 30834.86\n", - "2023-07-05, Close, 30814.08\n", - "2023-07-05, Close, 30810.72\n", - "2023-07-05, Close, 30774.25\n", - "2023-07-05, Close, 30764.29\n", - "2023-07-05, Close, 30680.00\n", - "2023-07-05, Close, 30430.21\n", - "2023-07-05, Close, 30404.30\n", - "2023-07-05, Close, 30321.22\n", - "2023-07-05, Close, 30357.31\n", - "2023-07-05, Close, 30417.65\n", - "2023-07-05, Close, 30356.11\n", - "2023-07-05, Close, 30462.60\n", - "2023-07-05, Close, 30523.21\n", - "2023-07-05, Close, 30505.52\n", - "2023-07-05, Close, 30431.95\n", - "2023-07-05, Close, 30460.29\n", - "2023-07-05, Close, 30469.99\n", - "2023-07-05, Close, 30436.92\n", - "2023-07-05, Close, 30504.81\n", - "2023-07-05, BUY CREATE, 30504.81\n", - "2023-07-06, Order Canceled/Margin/Rejected\n", - "2023-07-06, Close, 30413.10\n", - "2023-07-06, Close, 30476.71\n", - "2023-07-06, BUY CREATE, 30476.71\n", - "2023-07-06, Order Canceled/Margin/Rejected\n", - "2023-07-06, Close, 30471.65\n", - "2023-07-06, BUY CREATE, 30471.65\n", - "2023-07-06, Order Canceled/Margin/Rejected\n", - "2023-07-06, Close, 30490.85\n", - "2023-07-06, BUY CREATE, 30490.85\n", - "2023-07-06, Order Canceled/Margin/Rejected\n", - "2023-07-06, Close, 30465.40\n", - "2023-07-06, BUY CREATE, 30465.40\n", - "2023-07-06, BUY EXECUTED, Price: 30465.40, Cost: 152327.00, Comm 0.00\n", - "2023-07-06, Close, 30582.51\n", - "2023-07-06, Close, 30692.56\n", - "2023-07-06, Close, 30803.19\n", - "2023-07-06, Close, 31329.97\n", - "2023-07-06, Close, 31069.60\n", - "2023-07-06, Close, 31231.64\n", - "2023-07-06, Close, 30846.55\n", - "2023-07-06, Close, 30600.31\n", - "2023-07-06, SELL CREATE, 30600.31\n", - "2023-07-06, SELL EXECUTED, Price: 30600.30, Cost: 152327.00, Comm 0.00\n", - "2023-07-06, OPERATION PROFIT, GROSS 674.50, NET 674.50\n", - "2023-07-06, Close, 30373.47\n", - "2023-07-06, Close, 30214.35\n", - "2023-07-06, Close, 30407.01\n", - "2023-07-06, Close, 30313.99\n", - "2023-07-06, Close, 30294.86\n", - "2023-07-06, Close, 30378.01\n", - "2023-07-06, Close, 30309.88\n", - "2023-07-06, Close, 30315.16\n", - "2023-07-06, Close, 30224.72\n", - "2023-07-06, Close, 30167.30\n", - "2023-07-06, Close, 29895.43\n", - "2023-07-07, Close, 30052.60\n", - "2023-07-07, Close, 30086.00\n", - "2023-07-07, Close, 30102.98\n", - "2023-07-07, Close, 30135.40\n", - "2023-07-07, Close, 30087.81\n", - "2023-07-07, Close, 30208.40\n", - "2023-07-07, BUY CREATE, 30208.40\n", - "2023-07-07, BUY EXECUTED, Price: 30208.40, Cost: 151042.00, Comm 0.00\n", - "2023-07-07, Close, 30117.00\n", - "2023-07-07, SELL CREATE, 30117.00\n", - "2023-07-07, SELL EXECUTED, Price: 30117.00, Cost: 151042.00, Comm 0.00\n", - "2023-07-07, OPERATION PROFIT, GROSS -457.00, NET -457.00\n", - "2023-07-07, Close, 30007.40\n", - "2023-07-07, Close, 30055.41\n", - "2023-07-07, Close, 30138.79\n", - "2023-07-07, BUY CREATE, 30138.79\n", - "2023-07-07, BUY EXECUTED, Price: 30138.79, Cost: 150693.95, Comm 0.00\n", - "2023-07-07, Close, 30165.88\n", - "2023-07-07, Close, 30118.70\n", - "2023-07-07, Close, 30203.98\n", - "2023-07-07, Close, 30385.39\n", - "2023-07-07, Close, 30411.49\n", - "2023-07-07, Close, 30390.83\n", - "2023-07-07, Close, 30354.85\n", - "2023-07-07, Close, 30238.46\n", - "2023-07-07, Close, 30166.32\n", - "2023-07-07, SELL CREATE, 30166.32\n", - "2023-07-07, SELL EXECUTED, Price: 30166.32, Cost: 150693.95, Comm 0.00\n", - "2023-07-07, OPERATION PROFIT, GROSS 137.65, NET 137.65\n", - "2023-07-07, Close, 30246.20\n", - "2023-07-07, BUY CREATE, 30246.20\n", - "2023-07-07, BUY EXECUTED, Price: 30246.21, Cost: 151231.05, Comm 0.00\n", - "2023-07-07, Close, 30264.12\n", - "2023-07-07, Close, 30289.64\n", - "2023-07-07, Close, 30304.08\n", - "2023-07-07, Close, 30344.70\n", - "2023-07-08, Close, 30286.29\n", - "2023-07-08, Close, 30304.58\n", - "2023-07-08, Close, 30355.42\n", - "2023-07-08, Close, 30274.83\n", - "2023-07-08, SELL CREATE, 30274.83\n", - "2023-07-08, SELL EXECUTED, Price: 30274.82, Cost: 151231.05, Comm 0.00\n", - "2023-07-08, OPERATION PROFIT, GROSS 143.05, NET 143.05\n", - "2023-07-08, Close, 30235.89\n", - "2023-07-08, Close, 30239.49\n", - "2023-07-08, Close, 30176.71\n", - "2023-07-08, Close, 30193.36\n", - "2023-07-08, Close, 30276.01\n", - "2023-07-08, BUY CREATE, 30276.01\n", - "2023-07-08, BUY EXECUTED, Price: 30276.02, Cost: 151380.10, Comm 0.00\n", - "2023-07-08, Close, 30248.72\n", - "2023-07-08, SELL CREATE, 30248.72\n", - "2023-07-08, SELL EXECUTED, Price: 30248.71, Cost: 151380.10, Comm 0.00\n", - "2023-07-08, OPERATION PROFIT, GROSS -136.55, NET -136.55\n", - "2023-07-08, Close, 30222.80\n", - "2023-07-08, Close, 30201.71\n", - "2023-07-08, Close, 30171.85\n", - "2023-07-08, Close, 30209.32\n", - "2023-07-08, Close, 30204.99\n", - "2023-07-08, Close, 30208.00\n", - "2023-07-08, Close, 30254.57\n", - "2023-07-08, BUY CREATE, 30254.57\n", - "2023-07-08, BUY EXECUTED, Price: 30254.58, Cost: 151272.90, Comm 0.00\n", - "2023-07-08, Close, 30254.69\n", - "2023-07-08, Close, 30201.74\n", - "2023-07-08, SELL CREATE, 30201.74\n", - "2023-07-08, SELL EXECUTED, Price: 30201.73, Cost: 151272.90, Comm 0.00\n", - "2023-07-08, OPERATION PROFIT, GROSS -264.25, NET -264.25\n", - "2023-07-08, Close, 30112.00\n", - "2023-07-08, Close, 30158.21\n", - "2023-07-08, Close, 30180.80\n", - "2023-07-08, Close, 30224.50\n", - "2023-07-08, BUY CREATE, 30224.50\n", - "2023-07-08, BUY EXECUTED, Price: 30224.50, Cost: 151122.50, Comm 0.00\n", - "2023-07-08, Close, 30284.63\n", - "2023-07-09, Close, 30336.01\n", - "2023-07-09, Close, 30332.26\n", - "2023-07-09, Close, 30301.04\n", - "2023-07-09, Close, 30287.99\n", - "2023-07-09, Close, 30275.35\n", - "2023-07-09, Close, 30260.67\n", - "2023-07-09, Close, 30254.79\n", - "2023-07-09, Close, 30265.00\n", - "2023-07-09, Close, 30305.51\n", - "2023-07-09, Close, 30276.00\n", - "2023-07-09, Close, 30262.89\n", - "2023-07-09, SELL CREATE, 30262.89\n", - "2023-07-09, SELL EXECUTED, Price: 30262.89, Cost: 151122.50, Comm 0.00\n", - "2023-07-09, OPERATION PROFIT, GROSS 191.95, NET 191.95\n", - "2023-07-09, Close, 30266.69\n", - "2023-07-09, Close, 30329.99\n", - "2023-07-09, BUY CREATE, 30329.99\n", - "2023-07-09, BUY EXECUTED, Price: 30329.99, Cost: 151649.95, Comm 0.00\n", - "2023-07-09, Close, 30265.14\n", - "2023-07-09, SELL CREATE, 30265.14\n", - "2023-07-09, SELL EXECUTED, Price: 30265.14, Cost: 151649.95, Comm 0.00\n", - "2023-07-09, OPERATION PROFIT, GROSS -324.25, NET -324.25\n", - "2023-07-09, Close, 30341.02\n", - "2023-07-09, BUY CREATE, 30341.02\n", - "2023-07-09, BUY EXECUTED, Price: 30341.02, Cost: 151705.10, Comm 0.00\n", - "2023-07-09, Close, 30349.47\n", - "2023-07-09, Close, 30287.99\n", - "2023-07-09, SELL CREATE, 30287.99\n", - "2023-07-09, SELL EXECUTED, Price: 30287.99, Cost: 151705.10, Comm 0.00\n", - "2023-07-09, OPERATION PROFIT, GROSS -265.15, NET -265.15\n", - "2023-07-09, Close, 30288.29\n", - "2023-07-09, BUY CREATE, 30288.29\n", - "2023-07-09, BUY EXECUTED, Price: 30288.30, Cost: 151441.50, Comm 0.00\n", - "2023-07-09, Close, 30258.01\n", - "2023-07-09, SELL CREATE, 30258.01\n", - "2023-07-09, SELL EXECUTED, Price: 30258.00, Cost: 151441.50, Comm 0.00\n", - "2023-07-09, OPERATION PROFIT, GROSS -151.50, NET -151.50\n", - "2023-07-09, Close, 30242.42\n", - "2023-07-09, Close, 30193.99\n", - "2023-07-09, Close, 30153.90\n", - "2023-07-09, Close, 30174.00\n", - "2023-07-09, Close, 30160.71\n", - "2023-07-10, Close, 30090.27\n", - "2023-07-10, Close, 30048.80\n", - "2023-07-10, Close, 30200.00\n", - "2023-07-10, Close, 30156.17\n", - "2023-07-10, Close, 30118.07\n", - "2023-07-10, Close, 30082.25\n", - "2023-07-10, Close, 30089.64\n", - "2023-07-10, Close, 30112.10\n", - "2023-07-10, Close, 30099.21\n", - "2023-07-10, Close, 30140.00\n", - "2023-07-10, BUY CREATE, 30140.00\n", - "2023-07-10, BUY EXECUTED, Price: 30140.01, Cost: 150700.05, Comm 0.00\n", - "2023-07-10, Close, 30183.45\n", - "2023-07-10, Close, 30240.00\n", - "2023-07-10, Close, 30161.47\n", - "2023-07-10, Close, 30209.70\n", - "2023-07-10, Close, 30310.03\n", - "2023-07-10, Close, 30312.81\n", - "2023-07-10, Close, 30351.18\n", - "2023-07-10, Close, 30278.20\n", - "2023-07-10, Close, 30529.00\n", - "2023-07-10, Close, 30837.40\n", - "2023-07-10, Close, 30779.01\n", - "2023-07-10, Close, 30302.21\n", - "2023-07-10, SELL CREATE, 30302.21\n", - "2023-07-10, SELL EXECUTED, Price: 30302.22, Cost: 150700.05, Comm 0.00\n", - "2023-07-10, OPERATION PROFIT, GROSS 811.05, NET 811.05\n", - "2023-07-10, Close, 30347.37\n", - "2023-07-10, BUY CREATE, 30347.37\n", - "2023-07-10, BUY EXECUTED, Price: 30347.38, Cost: 151736.90, Comm 0.00\n", - "2023-07-10, Close, 30411.57\n", - "2023-07-11, Close, 30419.99\n", - "2023-07-11, Close, 30586.26\n", - "2023-07-11, Close, 30483.69\n", - "2023-07-11, Close, 30476.00\n", - "2023-07-11, Close, 30441.19\n", - "2023-07-11, SELL CREATE, 30441.19\n", - "2023-07-11, SELL EXECUTED, Price: 30441.19, Cost: 151736.90, Comm 0.00\n", - "2023-07-11, OPERATION PROFIT, GROSS 469.05, NET 469.05\n", - "2023-07-11, Close, 30456.00\n", - "2023-07-11, Close, 30634.59\n", - "2023-07-11, BUY CREATE, 30634.59\n", - "2023-07-11, Order Canceled/Margin/Rejected\n", - "2023-07-11, Close, 30535.38\n", - "2023-07-11, BUY CREATE, 30535.38\n", - "2023-07-11, BUY EXECUTED, Price: 30535.38, Cost: 152676.90, Comm 0.00\n", - "2023-07-11, Close, 30495.91\n", - "2023-07-11, SELL CREATE, 30495.91\n", - "2023-07-11, SELL EXECUTED, Price: 30495.92, Cost: 152676.90, Comm 0.00\n", - "2023-07-11, OPERATION PROFIT, GROSS -197.30, NET -197.30\n", - "2023-07-11, Close, 30449.83\n", - "2023-07-11, Close, 30394.94\n", - "2023-07-11, Close, 30404.31\n", - "2023-07-11, Close, 30433.05\n", - "2023-07-11, Close, 30450.00\n", - "2023-07-11, Close, 30527.43\n", - "2023-07-11, BUY CREATE, 30527.43\n", - "2023-07-11, BUY EXECUTED, Price: 30527.43, Cost: 152637.15, Comm 0.00\n", - "2023-07-11, Close, 30596.45\n", - "2023-07-11, Close, 30649.30\n", - "2023-07-11, Close, 30575.60\n", - "2023-07-11, Close, 30480.00\n", - "2023-07-11, SELL CREATE, 30480.00\n", - "2023-07-11, SELL EXECUTED, Price: 30480.01, Cost: 152637.15, Comm 0.00\n", - "2023-07-11, OPERATION PROFIT, GROSS -237.10, NET -237.10\n", - "2023-07-11, Close, 30581.99\n", - "2023-07-11, BUY CREATE, 30581.99\n", - "2023-07-11, Order Canceled/Margin/Rejected\n", - "2023-07-11, Close, 30571.52\n", - "2023-07-11, BUY CREATE, 30571.52\n", - "2023-07-11, Order Canceled/Margin/Rejected\n", - "2023-07-11, Close, 30570.18\n", - "2023-07-11, BUY CREATE, 30570.18\n", - "2023-07-11, Order Canceled/Margin/Rejected\n", - "2023-07-11, Close, 30584.57\n", - "2023-07-11, BUY CREATE, 30584.57\n", - "2023-07-11, Order Canceled/Margin/Rejected\n", - "2023-07-11, Close, 30622.10\n", - "2023-07-11, BUY CREATE, 30622.10\n", - "2023-07-12, Order Canceled/Margin/Rejected\n", - "2023-07-12, Close, 30509.98\n", - "2023-07-12, Close, 30535.92\n", - "2023-07-12, Close, 30607.23\n", - "2023-07-12, BUY CREATE, 30607.23\n", - "2023-07-12, Order Canceled/Margin/Rejected\n", - "2023-07-12, Close, 30588.32\n", - "2023-07-12, BUY CREATE, 30588.32\n", - "2023-07-12, Order Canceled/Margin/Rejected\n", - "2023-07-12, Close, 30635.36\n", - "2023-07-12, BUY CREATE, 30635.36\n", - "2023-07-12, Order Canceled/Margin/Rejected\n", - "2023-07-12, Close, 30654.00\n", - "2023-07-12, BUY CREATE, 30654.00\n", - "2023-07-12, Order Canceled/Margin/Rejected\n", - "2023-07-12, Close, 30720.01\n", - "2023-07-12, BUY CREATE, 30720.01\n", - "2023-07-12, Order Canceled/Margin/Rejected\n", - "2023-07-12, Close, 30740.00\n", - "2023-07-12, BUY CREATE, 30740.00\n", - "2023-07-12, Order Canceled/Margin/Rejected\n", - "2023-07-12, Close, 30735.48\n", - "2023-07-12, BUY CREATE, 30735.48\n", - "2023-07-12, Order Canceled/Margin/Rejected\n", - "2023-07-12, Close, 30724.01\n", - "2023-07-12, BUY CREATE, 30724.01\n", - "2023-07-12, Order Canceled/Margin/Rejected\n", - "2023-07-12, Close, 30679.99\n", - "2023-07-12, BUY CREATE, 30679.99\n", - "2023-07-12, Order Canceled/Margin/Rejected\n", - "2023-07-12, Close, 30776.25\n", - "2023-07-12, BUY CREATE, 30776.25\n", - "2023-07-12, Order Canceled/Margin/Rejected\n", - "2023-07-12, Close, 30721.17\n", - "2023-07-12, BUY CREATE, 30721.17\n", - "2023-07-12, Order Canceled/Margin/Rejected\n", - "2023-07-12, Close, 30666.33\n", - "2023-07-12, BUY CREATE, 30666.33\n", - "2023-07-12, Order Canceled/Margin/Rejected\n", - "2023-07-12, Close, 30736.57\n", - "2023-07-12, BUY CREATE, 30736.57\n", - "2023-07-12, Order Canceled/Margin/Rejected\n", - "2023-07-12, Close, 30524.63\n", - "2023-07-12, Close, 30487.03\n", - "2023-07-12, Close, 30447.95\n", - "2023-07-12, Close, 30521.67\n", - "2023-07-12, Close, 30287.47\n", - "2023-07-12, Close, 30348.00\n", - "2023-07-12, Close, 30356.01\n", - "2023-07-12, Close, 30368.68\n", - "2023-07-12, Close, 30380.00\n", - "2023-07-13, Close, 30353.51\n", - "2023-07-13, Close, 30383.78\n", - "2023-07-13, Close, 30337.55\n", - "2023-07-13, Close, 30298.01\n", - "2023-07-13, Close, 30297.33\n", - "2023-07-13, Close, 30323.00\n", - "2023-07-13, Close, 30383.98\n", - "2023-07-13, BUY CREATE, 30383.98\n", - "2023-07-13, BUY EXECUTED, Price: 30383.99, Cost: 151919.95, Comm 0.00\n", - "2023-07-13, Close, 30366.02\n", - "2023-07-13, Close, 30411.99\n", - "2023-07-13, Close, 30576.68\n", - "2023-07-13, Close, 30578.84\n", - "2023-07-13, Close, 30543.99\n", - "2023-07-13, Close, 30520.02\n", - "2023-07-13, Close, 30663.43\n", - "2023-07-13, Close, 30571.99\n", - "2023-07-13, Close, 30917.48\n", - "2023-07-13, Close, 30826.46\n", - "2023-07-13, Close, 31070.08\n", - "2023-07-13, Close, 31255.00\n", - "2023-07-13, Close, 31606.01\n", - "2023-07-13, Close, 31372.91\n", - "2023-07-13, Close, 31254.01\n", - "2023-07-13, Close, 31309.17\n", - "2023-07-13, Close, 31454.23\n", - "2023-07-14, Close, 31444.01\n", - "2023-07-14, Close, 31418.88\n", - "2023-07-14, Close, 31459.24\n", - "2023-07-14, Close, 31460.00\n", - "2023-07-14, Close, 31390.53\n", - "2023-07-14, Close, 31360.48\n", - "2023-07-14, Close, 31291.22\n", - "2023-07-14, SELL CREATE, 31291.22\n", - "2023-07-14, SELL EXECUTED, Price: 31291.22, Cost: 151919.95, Comm 0.00\n", - "2023-07-14, OPERATION PROFIT, GROSS 4536.15, NET 4536.15\n", - "2023-07-14, Close, 31098.74\n", - "2023-07-14, Close, 31243.71\n", - "2023-07-14, Close, 31187.04\n", - "2023-07-14, Close, 31175.00\n", - "2023-07-14, Close, 31209.59\n", - "2023-07-14, Close, 31126.75\n", - "2023-07-14, Close, 31253.43\n", - "2023-07-14, Close, 31300.56\n", - "2023-07-14, BUY CREATE, 31300.56\n", - "2023-07-14, BUY EXECUTED, Price: 31300.57, Cost: 156502.85, Comm 0.00\n", - "2023-07-14, Close, 31240.48\n", - "2023-07-14, SELL CREATE, 31240.48\n", - "2023-07-14, SELL EXECUTED, Price: 31240.49, Cost: 156502.85, Comm 0.00\n", - "2023-07-14, OPERATION PROFIT, GROSS -300.40, NET -300.40\n", - "2023-07-14, Close, 31214.00\n", - "2023-07-14, Close, 30688.64\n", - "2023-07-14, Close, 30091.83\n", - "2023-07-14, Close, 30115.17\n", - "2023-07-14, Close, 30189.18\n", - "2023-07-14, Close, 30241.99\n", - "2023-07-14, Close, 30227.60\n", - "2023-07-14, Close, 30312.01\n", - "2023-07-15, Close, 30328.76\n", - "2023-07-15, Close, 30336.45\n", - "2023-07-15, Close, 30288.70\n", - "2023-07-15, Close, 30292.91\n", - "2023-07-15, Close, 30295.99\n", - "2023-07-15, Close, 30295.43\n", - "2023-07-15, Close, 30311.49\n", - "2023-07-15, Close, 30338.00\n", - "2023-07-15, BUY CREATE, 30338.00\n", - "2023-07-15, BUY EXECUTED, Price: 30338.00, Cost: 151690.00, Comm 0.00\n", - "2023-07-15, Close, 30316.19\n", - "2023-07-15, Close, 30350.06\n", - "2023-07-15, Close, 30325.43\n", - "2023-07-15, Close, 30311.99\n", - "2023-07-15, Close, 30351.10\n", - "2023-07-15, Close, 30324.99\n", - "2023-07-15, Close, 30284.48\n", - "2023-07-15, SELL CREATE, 30284.48\n", - "2023-07-15, SELL EXECUTED, Price: 30284.48, Cost: 151690.00, Comm 0.00\n", - "2023-07-15, OPERATION PROFIT, GROSS -267.60, NET -267.60\n", - "2023-07-15, Close, 30303.41\n", - "2023-07-15, Close, 30280.01\n", - "2023-07-15, Close, 30283.13\n", - "2023-07-15, Close, 30321.99\n", - "2023-07-15, BUY CREATE, 30321.99\n", - "2023-07-15, BUY EXECUTED, Price: 30321.99, Cost: 151609.95, Comm 0.00\n", - "2023-07-15, Close, 30326.47\n", - "2023-07-15, Close, 30302.01\n", - "2023-07-15, SELL CREATE, 30302.01\n", - "2023-07-15, SELL EXECUTED, Price: 30302.01, Cost: 151609.95, Comm 0.00\n", - "2023-07-15, OPERATION PROFIT, GROSS -99.90, NET -99.90\n", - "2023-07-15, Close, 30302.98\n", - "2023-07-15, Close, 30285.42\n", - "2023-07-15, Close, 30289.52\n", - "2023-07-16, Close, 30299.99\n", - "2023-07-16, Close, 30265.00\n", - "2023-07-16, Close, 30252.00\n", - "2023-07-16, Close, 30188.00\n", - "2023-07-16, Close, 30152.25\n", - "2023-07-16, Close, 30238.01\n", - "2023-07-16, Close, 30258.77\n", - "2023-07-16, Close, 30265.22\n", - "2023-07-16, Close, 30298.49\n", - "2023-07-16, BUY CREATE, 30298.49\n", - "2023-07-16, BUY EXECUTED, Price: 30298.50, Cost: 151492.50, Comm 0.00\n", - "2023-07-16, Close, 30303.13\n", - "2023-07-16, Close, 30290.00\n", - "2023-07-16, Close, 30306.01\n", - "2023-07-16, Close, 30293.97\n", - "2023-07-16, Close, 30303.93\n", - "2023-07-16, Close, 30401.99\n", - "2023-07-16, Close, 30379.95\n", - "2023-07-16, Close, 30364.17\n", - "2023-07-16, Close, 30381.92\n", - "2023-07-16, Close, 30276.87\n", - "2023-07-16, SELL CREATE, 30276.87\n", - "2023-07-16, SELL EXECUTED, Price: 30276.87, Cost: 151492.50, Comm 0.00\n", - "2023-07-16, OPERATION PROFIT, GROSS -108.15, NET -108.15\n", - "2023-07-16, Close, 30252.93\n", - "2023-07-16, Close, 30271.64\n", - "2023-07-16, Close, 30292.65\n", - "2023-07-16, Close, 30321.03\n", - "2023-07-16, BUY CREATE, 30321.03\n", - "2023-07-16, BUY EXECUTED, Price: 30321.02, Cost: 151605.10, Comm 0.00\n", - "2023-07-16, Close, 30231.99\n", - "2023-07-16, SELL CREATE, 30231.99\n", - "2023-07-17, SELL EXECUTED, Price: 30232.00, Cost: 151605.10, Comm 0.00\n", - "2023-07-17, OPERATION PROFIT, GROSS -445.10, NET -445.10\n", - "2023-07-17, Close, 30213.99\n", - "2023-07-17, Close, 30291.05\n", - "2023-07-17, Close, 30262.00\n", - "2023-07-17, Close, 30312.66\n", - "2023-07-17, BUY CREATE, 30312.66\n", - "2023-07-17, BUY EXECUTED, Price: 30312.66, Cost: 151563.30, Comm 0.00\n", - "2023-07-17, Close, 30296.44\n", - "2023-07-17, SELL CREATE, 30296.44\n", - "2023-07-17, SELL EXECUTED, Price: 30296.45, Cost: 151563.30, Comm 0.00\n", - "2023-07-17, OPERATION PROFIT, GROSS -81.05, NET -81.05\n", - "2023-07-17, Close, 30264.27\n", - "2023-07-17, Close, 30275.11\n", - "2023-07-17, Close, 30281.00\n", - "2023-07-17, Close, 30261.90\n", - "2023-07-17, Close, 30182.00\n", - "2023-07-17, Close, 30163.93\n", - "2023-07-17, Close, 30161.70\n", - "2023-07-17, Close, 30206.00\n", - "2023-07-17, Close, 30286.64\n", - "2023-07-17, BUY CREATE, 30286.64\n", - "2023-07-17, BUY EXECUTED, Price: 30286.65, Cost: 151433.25, Comm 0.00\n", - "2023-07-17, Close, 30274.80\n", - "2023-07-17, Close, 30174.83\n", - "2023-07-17, SELL CREATE, 30174.83\n", - "2023-07-17, SELL EXECUTED, Price: 30174.84, Cost: 151433.25, Comm 0.00\n", - "2023-07-17, OPERATION PROFIT, GROSS -559.05, NET -559.05\n", - "2023-07-17, Close, 30144.01\n", - "2023-07-17, Close, 30030.67\n", - "2023-07-17, Close, 29802.39\n", - "2023-07-17, Close, 29884.39\n", - "2023-07-17, Close, 29926.19\n", - "2023-07-17, Close, 30242.59\n", - "2023-07-17, BUY CREATE, 30242.59\n", - "2023-07-17, BUY EXECUTED, Price: 30242.60, Cost: 151213.00, Comm 0.00\n", - "2023-07-17, Close, 30106.74\n", - "2023-07-17, SELL CREATE, 30106.74\n", - "2023-07-17, SELL EXECUTED, Price: 30106.74, Cost: 151213.00, Comm 0.00\n", - "2023-07-17, OPERATION PROFIT, GROSS -679.30, NET -679.30\n", - "2023-07-17, Close, 30138.00\n", - "2023-07-17, BUY CREATE, 30138.00\n", - "2023-07-18, BUY EXECUTED, Price: 30138.01, Cost: 150690.05, Comm 0.00\n", - "2023-07-18, Close, 30168.01\n", - "2023-07-18, Close, 30215.84\n", - "2023-07-18, Close, 30120.00\n", - "2023-07-18, Close, 30073.96\n", - "2023-07-18, SELL CREATE, 30073.96\n", - "2023-07-18, SELL EXECUTED, Price: 30073.97, Cost: 150690.05, Comm 0.00\n", - "2023-07-18, OPERATION PROFIT, GROSS -320.20, NET -320.20\n", - "2023-07-18, Close, 30118.19\n", - "2023-07-18, BUY CREATE, 30118.19\n", - "2023-07-18, BUY EXECUTED, Price: 30118.19, Cost: 150590.95, Comm 0.00\n", - "2023-07-18, Close, 30052.22\n", - "2023-07-18, SELL CREATE, 30052.22\n", - "2023-07-18, SELL EXECUTED, Price: 30052.23, Cost: 150590.95, Comm 0.00\n", - "2023-07-18, OPERATION PROFIT, GROSS -329.80, NET -329.80\n", - "2023-07-18, Close, 29988.62\n", - "2023-07-18, Close, 29968.13\n", - "2023-07-18, Close, 30021.99\n", - "2023-07-18, Close, 29956.94\n", - "2023-07-18, Close, 29990.65\n", - "2023-07-18, Close, 29884.01\n", - "2023-07-18, Close, 29784.00\n", - "2023-07-18, Close, 29831.99\n", - "2023-07-18, Close, 29924.78\n", - "2023-07-18, Close, 29912.00\n", - "2023-07-18, Close, 29701.20\n", - "2023-07-18, Close, 29821.77\n", - "2023-07-18, Close, 29904.98\n", - "2023-07-18, Close, 29715.99\n", - "2023-07-18, Close, 29778.00\n", - "2023-07-18, Close, 29800.86\n", - "2023-07-18, Close, 29819.68\n", - "2023-07-18, Close, 29859.13\n", - "2023-07-18, BUY CREATE, 29859.13\n", - "2023-07-19, BUY EXECUTED, Price: 29859.14, Cost: 149295.70, Comm 0.00\n", - "2023-07-19, Close, 30055.32\n", - "2023-07-19, Close, 30006.01\n", - "2023-07-19, Close, 30024.00\n", - "2023-07-19, Close, 30059.11\n", - "2023-07-19, Close, 30099.08\n", - "2023-07-19, Close, 30098.39\n", - "2023-07-19, Close, 30044.59\n", - "2023-07-19, Close, 30000.68\n", - "2023-07-19, Close, 29923.28\n", - "2023-07-19, SELL CREATE, 29923.28\n", - "2023-07-19, SELL EXECUTED, Price: 29923.28, Cost: 149295.70, Comm 0.00\n", - "2023-07-19, OPERATION PROFIT, GROSS 320.70, NET 320.70\n", - "2023-07-19, Close, 30006.30\n", - "2023-07-19, BUY CREATE, 30006.30\n", - "2023-07-19, BUY EXECUTED, Price: 30006.29, Cost: 150031.45, Comm 0.00\n", - "2023-07-19, Close, 29988.00\n", - "2023-07-19, Close, 30012.63\n", - "2023-07-19, Close, 29950.01\n", - "2023-07-19, SELL CREATE, 29950.01\n", - "2023-07-19, SELL EXECUTED, Price: 29950.00, Cost: 150031.45, Comm 0.00\n", - "2023-07-19, OPERATION PROFIT, GROSS -281.45, NET -281.45\n", - "2023-07-19, Close, 29994.30\n", - "2023-07-19, Close, 29824.01\n", - "2023-07-19, Close, 29956.46\n", - "2023-07-19, Close, 29903.90\n", - "2023-07-19, Close, 29993.18\n", - "2023-07-19, BUY CREATE, 29993.18\n", - "2023-07-19, BUY EXECUTED, Price: 29993.19, Cost: 149965.95, Comm 0.00\n", - "2023-07-19, Close, 30078.00\n", - "2023-07-19, Close, 30044.31\n", - "2023-07-19, Close, 29964.95\n", - "2023-07-19, SELL CREATE, 29964.95\n", - "2023-07-19, SELL EXECUTED, Price: 29964.94, Cost: 149965.95, Comm 0.00\n", - "2023-07-19, OPERATION PROFIT, GROSS -141.25, NET -141.25\n", - "2023-07-19, Close, 29933.96\n", - "2023-07-19, Close, 29872.80\n", - "2023-07-19, Close, 29909.21\n", - "2023-07-20, Close, 30000.00\n", - "2023-07-20, BUY CREATE, 30000.00\n", - "2023-07-20, BUY EXECUTED, Price: 29999.99, Cost: 149999.95, Comm 0.00\n", - "2023-07-20, Close, 29987.33\n", - "2023-07-20, Close, 29985.53\n", - "2023-07-20, Close, 29948.01\n", - "2023-07-20, SELL CREATE, 29948.01\n", - "2023-07-20, SELL EXECUTED, Price: 29948.00, Cost: 149999.95, Comm 0.00\n", - "2023-07-20, OPERATION PROFIT, GROSS -259.95, NET -259.95\n", - "2023-07-20, Close, 29962.01\n", - "2023-07-20, BUY CREATE, 29962.01\n", - "2023-07-20, BUY EXECUTED, Price: 29962.01, Cost: 149810.05, Comm 0.00\n", - "2023-07-20, Close, 30125.99\n", - "2023-07-20, Close, 30120.00\n", - "2023-07-20, Close, 30202.77\n", - "2023-07-20, Close, 30264.55\n", - "2023-07-20, Close, 30327.99\n", - "2023-07-20, Close, 30295.00\n", - "2023-07-20, Close, 30284.90\n", - "2023-07-20, Close, 30221.53\n", - "2023-07-20, Close, 30229.58\n", - "2023-07-20, Close, 29782.19\n", - "2023-07-20, SELL CREATE, 29782.19\n", - "2023-07-20, SELL EXECUTED, Price: 29782.20, Cost: 149810.05, Comm 0.00\n", - "2023-07-20, OPERATION PROFIT, GROSS -899.05, NET -899.05\n", - "2023-07-20, Close, 29810.18\n", - "2023-07-20, Close, 29716.69\n", - "2023-07-20, Close, 29756.73\n", - "2023-07-20, Close, 29687.84\n", - "2023-07-20, Close, 29756.00\n", - "2023-07-20, Close, 29739.72\n", - "2023-07-20, Close, 29870.28\n", - "2023-07-20, Close, 29814.00\n", - "2023-07-20, Close, 29800.00\n", - "2023-07-21, Close, 29786.01\n", - "2023-07-21, Close, 29877.48\n", - "2023-07-21, BUY CREATE, 29877.48\n", - "2023-07-21, BUY EXECUTED, Price: 29877.49, Cost: 149387.45, Comm 0.00\n", - "2023-07-21, Close, 29903.19\n", - "2023-07-21, Close, 29897.62\n", - "2023-07-21, Close, 29864.00\n", - "2023-07-21, Close, 29817.99\n", - "2023-07-21, Close, 29856.48\n", - "2023-07-21, Close, 29766.81\n", - "2023-07-21, SELL CREATE, 29766.81\n", - "2023-07-21, SELL EXECUTED, Price: 29766.81, Cost: 149387.45, Comm 0.00\n", - "2023-07-21, OPERATION PROFIT, GROSS -553.40, NET -553.40\n", - "2023-07-21, Close, 29786.29\n", - "2023-07-21, Close, 29755.99\n", - "2023-07-21, Close, 29793.36\n", - "2023-07-21, Close, 29778.51\n", - "2023-07-21, Close, 29869.91\n", - "2023-07-21, BUY CREATE, 29869.91\n", - "2023-07-21, BUY EXECUTED, Price: 29869.90, Cost: 149349.50, Comm 0.00\n", - "2023-07-21, Close, 29813.99\n", - "2023-07-21, SELL CREATE, 29813.99\n", - "2023-07-21, SELL EXECUTED, Price: 29814.00, Cost: 149349.50, Comm 0.00\n", - "2023-07-21, OPERATION PROFIT, GROSS -279.50, NET -279.50\n", - "2023-07-21, Close, 29881.07\n", - "2023-07-21, BUY CREATE, 29881.07\n", - "2023-07-21, BUY EXECUTED, Price: 29881.07, Cost: 149405.35, Comm 0.00\n", - "2023-07-21, Close, 29866.00\n", - "2023-07-21, Close, 29828.00\n", - "2023-07-21, SELL CREATE, 29828.00\n", - "2023-07-21, SELL EXECUTED, Price: 29828.00, Cost: 149405.35, Comm 0.00\n", - "2023-07-21, OPERATION PROFIT, GROSS -265.35, NET -265.35\n", - "2023-07-21, Close, 29921.99\n", - "2023-07-21, BUY CREATE, 29921.99\n", - "2023-07-21, BUY EXECUTED, Price: 29922.00, Cost: 149610.00, Comm 0.00\n", - "2023-07-21, Close, 29981.69\n", - "2023-07-21, Close, 29875.99\n", - "2023-07-21, Close, 29880.00\n", - "2023-07-21, Close, 29899.57\n", - "2023-07-21, Close, 29925.06\n", - "2023-07-21, Close, 29901.72\n", - "2023-07-22, Close, 29983.79\n", - "2023-07-22, Close, 29924.01\n", - "2023-07-22, Close, 29935.48\n", - "2023-07-22, Close, 29903.41\n", - "2023-07-22, Close, 29884.00\n", - "2023-07-22, SELL CREATE, 29884.00\n", - "2023-07-22, SELL EXECUTED, Price: 29884.00, Cost: 149610.00, Comm 0.00\n", - "2023-07-22, OPERATION PROFIT, GROSS -190.00, NET -190.00\n", - "2023-07-22, Close, 29870.01\n", - "2023-07-22, Close, 29890.01\n", - "2023-07-22, Close, 29944.77\n", - "2023-07-22, BUY CREATE, 29944.77\n", - "2023-07-22, BUY EXECUTED, Price: 29944.78, Cost: 149723.90, Comm 0.00\n", - "2023-07-22, Close, 29937.29\n", - "2023-07-22, Close, 29929.48\n", - "2023-07-22, Close, 29902.08\n", - "2023-07-22, SELL CREATE, 29902.08\n", - "2023-07-22, SELL EXECUTED, Price: 29902.09, Cost: 149723.90, Comm 0.00\n", - "2023-07-22, OPERATION PROFIT, GROSS -213.45, NET -213.45\n", - "2023-07-22, Close, 29886.94\n", - "2023-07-22, Close, 29840.84\n", - "2023-07-22, Close, 29848.30\n", - "2023-07-22, Close, 29883.87\n", - "2023-07-22, Close, 29900.24\n", - "2023-07-22, BUY CREATE, 29900.24\n", - "2023-07-22, BUY EXECUTED, Price: 29900.23, Cost: 149501.15, Comm 0.00\n", - "2023-07-22, Close, 29899.99\n", - "2023-07-22, Close, 29837.35\n", - "2023-07-22, SELL CREATE, 29837.35\n", - "2023-07-22, SELL EXECUTED, Price: 29837.35, Cost: 149501.15, Comm 0.00\n", - "2023-07-22, OPERATION PROFIT, GROSS -314.40, NET -314.40\n", - "2023-07-22, Close, 29814.23\n", - "2023-07-22, Close, 29836.00\n", - "2023-07-22, Close, 29827.24\n", - "2023-07-22, Close, 29827.04\n", - "2023-07-22, Close, 29808.00\n", - "2023-07-22, Close, 29794.00\n", - "2023-07-23, Close, 29778.38\n", - "2023-07-23, Close, 29826.16\n", - "2023-07-23, Close, 29885.12\n", - "2023-07-23, BUY CREATE, 29885.12\n", - "2023-07-23, BUY EXECUTED, Price: 29885.12, Cost: 149425.60, Comm 0.00\n", - "2023-07-23, Close, 29845.72\n", - "2023-07-23, Close, 29905.22\n", - "2023-07-23, Close, 29921.99\n", - "2023-07-23, Close, 29919.41\n", - "2023-07-23, Close, 29916.00\n", - "2023-07-23, Close, 29948.01\n", - "2023-07-23, Close, 29900.18\n", - "2023-07-23, Close, 29887.59\n", - "2023-07-23, Close, 29888.58\n", - "2023-07-23, Close, 29919.70\n", - "2023-07-23, Close, 29888.36\n", - "2023-07-23, Close, 29894.82\n", - "2023-07-23, Close, 29897.64\n", - "2023-07-23, Close, 29954.12\n", - "2023-07-23, Close, 30118.49\n", - "2023-07-23, Close, 30248.01\n", - "2023-07-23, Close, 30093.12\n", - "2023-07-23, Close, 30143.49\n", - "2023-07-23, Close, 29955.24\n", - "2023-07-23, SELL CREATE, 29955.24\n", - "2023-07-23, SELL EXECUTED, Price: 29955.24, Cost: 149425.60, Comm 0.00\n", - "2023-07-23, OPERATION PROFIT, GROSS 350.60, NET 350.60\n", - "2023-07-23, Close, 30013.59\n", - "2023-07-23, BUY CREATE, 30013.59\n", - "2023-07-23, BUY EXECUTED, Price: 30013.60, Cost: 150068.00, Comm 0.00\n", "2023-07-23, Close, 30083.75\n", - "2023-07-24, Close, 30010.01\n", - "2023-07-24, Close, 29915.99\n", - "2023-07-24, SELL CREATE, 29915.99\n", - "2023-07-24, SELL EXECUTED, Price: 29916.00, Cost: 150068.00, Comm 0.00\n", - "2023-07-24, OPERATION PROFIT, GROSS -488.00, NET -488.00\n", - "2023-07-24, Close, 29799.63\n", - "2023-07-24, Close, 29716.01\n", - "2023-07-24, Close, 29794.00\n", - "2023-07-24, Close, 29799.92\n", - "2023-07-24, Close, 29778.46\n", - "2023-07-24, Close, 29828.00\n", - "2023-07-24, Close, 29756.01\n", - "2023-07-24, Close, 29178.01\n", - "2023-07-24, Close, 29324.01\n", - "2023-07-24, Close, 29269.99\n", - "2023-07-24, Close, 29232.00\n", - "2023-07-24, Close, 29180.00\n", - "2023-07-24, Close, 29043.38\n", - "2023-07-24, Close, 29093.78\n", - "2023-07-24, Close, 29107.54\n", - "2023-07-24, Close, 29039.74\n", - "2023-07-24, Close, 29124.26\n", - "2023-07-24, Close, 29117.99\n", - "2023-07-24, Close, 29149.15\n", - "2023-07-24, Close, 29167.05\n", - "2023-07-24, Close, 29161.25\n", "2023-07-24, Close, 29176.50\n", - "2023-07-24, BUY CREATE, 29176.50\n", - "2023-07-25, BUY EXECUTED, Price: 29176.50, Cost: 145882.50, Comm 0.00\n", - "2023-07-25, Close, 29112.86\n", - "2023-07-25, SELL CREATE, 29112.86\n", - "2023-07-25, SELL EXECUTED, Price: 29112.87, Cost: 145882.50, Comm 0.00\n", - "2023-07-25, OPERATION PROFIT, GROSS -318.15, NET -318.15\n", - "2023-07-25, Close, 29081.99\n", - "2023-07-25, Close, 29130.00\n", - "2023-07-25, BUY CREATE, 29130.00\n", - "2023-07-25, BUY EXECUTED, Price: 29130.00, Cost: 145650.00, Comm 0.00\n", - "2023-07-25, Close, 29111.00\n", - "2023-07-25, SELL CREATE, 29111.00\n", - "2023-07-25, SELL EXECUTED, Price: 29111.00, Cost: 145650.00, Comm 0.00\n", - "2023-07-25, OPERATION PROFIT, GROSS -95.00, NET -95.00\n", - "2023-07-25, Close, 29089.46\n", - "2023-07-25, Close, 29128.34\n", - "2023-07-25, BUY CREATE, 29128.34\n", - "2023-07-25, BUY EXECUTED, Price: 29128.35, Cost: 145641.75, Comm 0.00\n", - "2023-07-25, Close, 29144.67\n", - "2023-07-25, Close, 29142.46\n", - "2023-07-25, Close, 29191.43\n", - "2023-07-25, Close, 29167.31\n", - "2023-07-25, Close, 29164.99\n", - "2023-07-25, Close, 29128.29\n", - "2023-07-25, SELL CREATE, 29128.29\n", - "2023-07-25, SELL EXECUTED, Price: 29128.29, Cost: 145641.75, Comm 0.00\n", - "2023-07-25, OPERATION PROFIT, GROSS -0.30, NET -0.30\n", - "2023-07-25, Close, 29118.00\n", - "2023-07-25, Close, 29277.67\n", - "2023-07-25, BUY CREATE, 29277.67\n", - "2023-07-25, BUY EXECUTED, Price: 29277.67, Cost: 146388.35, Comm 0.00\n", - "2023-07-25, Close, 29177.50\n", - "2023-07-25, Close, 29181.51\n", - "2023-07-25, Close, 29228.79\n", - "2023-07-25, Close, 29275.99\n", - "2023-07-25, Close, 29264.01\n", - "2023-07-25, Close, 29198.83\n", - "2023-07-25, Close, 29229.85\n", - "2023-07-25, Close, 29228.93\n", - "2023-07-25, Close, 29206.46\n", "2023-07-25, Close, 29228.91\n", - "2023-07-26, Close, 29166.76\n", - "2023-07-26, SELL CREATE, 29166.76\n", - "2023-07-26, SELL EXECUTED, Price: 29166.77, Cost: 146388.35, Comm 0.00\n", - "2023-07-26, OPERATION PROFIT, GROSS -554.50, NET -554.50\n", - "2023-07-26, Close, 29131.01\n", - "2023-07-26, Close, 29288.57\n", - "2023-07-26, BUY CREATE, 29288.57\n", - "2023-07-26, BUY EXECUTED, Price: 29288.57, Cost: 146442.85, Comm 0.00\n", - "2023-07-26, Close, 29242.81\n", - "2023-07-26, Close, 29201.19\n", - "2023-07-26, SELL CREATE, 29201.19\n", - "2023-07-26, SELL EXECUTED, Price: 29201.20, Cost: 146442.85, Comm 0.00\n", - "2023-07-26, OPERATION PROFIT, GROSS -436.85, NET -436.85\n", - "2023-07-26, Close, 29268.12\n", - "2023-07-26, BUY CREATE, 29268.12\n", - "2023-07-26, BUY EXECUTED, Price: 29268.12, Cost: 146340.60, Comm 0.00\n", - "2023-07-26, Close, 29209.99\n", - "2023-07-26, SELL CREATE, 29209.99\n", - "2023-07-26, SELL EXECUTED, Price: 29209.99, Cost: 146340.60, Comm 0.00\n", - "2023-07-26, OPERATION PROFIT, GROSS -290.65, NET -290.65\n", - "2023-07-26, Close, 29216.61\n", - "2023-07-26, Close, 29222.66\n", - "2023-07-26, BUY CREATE, 29222.66\n", - "2023-07-26, BUY EXECUTED, Price: 29222.66, Cost: 146113.30, Comm 0.00\n", - "2023-07-26, Close, 29192.45\n", - "2023-07-26, SELL CREATE, 29192.45\n", - "2023-07-26, SELL EXECUTED, Price: 29192.45, Cost: 146113.30, Comm 0.00\n", - "2023-07-26, OPERATION PROFIT, GROSS -151.05, NET -151.05\n", - "2023-07-26, Close, 29192.55\n", - "2023-07-26, Close, 29175.39\n", - "2023-07-26, Close, 29229.13\n", - "2023-07-26, BUY CREATE, 29229.13\n", - "2023-07-26, BUY EXECUTED, Price: 29229.13, Cost: 146145.65, Comm 0.00\n", - "2023-07-26, Close, 29306.54\n", - "2023-07-26, Close, 29267.54\n", - "2023-07-26, Close, 29324.00\n", - "2023-07-26, Close, 29302.43\n", - "2023-07-26, Close, 29268.90\n", - "2023-07-26, Close, 29377.50\n", - "2023-07-26, Close, 29401.93\n", - "2023-07-26, Close, 29578.09\n", - "2023-07-26, Close, 29466.00\n", - "2023-07-26, Close, 29476.01\n", "2023-07-26, Close, 29351.96\n", - "2023-07-27, Close, 29356.09\n", - "2023-07-27, Close, 29399.99\n", - "2023-07-27, Close, 29437.81\n", - "2023-07-27, Close, 29405.78\n", - "2023-07-27, Close, 29488.36\n", - "2023-07-27, Close, 29460.00\n", - "2023-07-27, Close, 29384.01\n", - "2023-07-27, SELL CREATE, 29384.01\n", - "2023-07-27, SELL EXECUTED, Price: 29384.02, Cost: 146145.65, Comm 0.00\n", - "2023-07-27, OPERATION PROFIT, GROSS 774.45, NET 774.45\n", - "2023-07-27, Close, 29412.17\n", - "2023-07-27, Close, 29470.82\n", - "2023-07-27, BUY CREATE, 29470.82\n", - "2023-07-27, BUY EXECUTED, Price: 29470.83, Cost: 147354.15, Comm 0.00\n", - "2023-07-27, Close, 29544.02\n", - "2023-07-27, Close, 29479.50\n", - "2023-07-27, Close, 29507.03\n", - "2023-07-27, Close, 29496.41\n", - "2023-07-27, Close, 29446.02\n", - "2023-07-27, Close, 29350.00\n", - "2023-07-27, SELL CREATE, 29350.00\n", - "2023-07-27, SELL EXECUTED, Price: 29350.00, Cost: 147354.15, Comm 0.00\n", - "2023-07-27, OPERATION PROFIT, GROSS -604.15, NET -604.15\n", - "2023-07-27, Close, 29292.01\n", - "2023-07-27, Close, 29274.93\n", - "2023-07-27, Close, 29220.00\n", - "2023-07-27, Close, 29141.37\n", - "2023-07-27, Close, 29163.83\n", - "2023-07-27, Close, 29144.56\n", - "2023-07-27, Close, 29187.15\n", - "2023-07-27, Close, 29202.29\n", "2023-07-27, Close, 29222.78\n", - "2023-07-28, Close, 29273.00\n", - "2023-07-28, Close, 29260.75\n", - "2023-07-28, Close, 29229.99\n", - "2023-07-28, Close, 29253.85\n", - "2023-07-28, BUY CREATE, 29253.85\n", - "2023-07-28, BUY EXECUTED, Price: 29253.84, Cost: 146269.20, Comm 0.00\n", - "2023-07-28, Close, 29260.00\n", - "2023-07-28, Close, 29185.99\n", - "2023-07-28, SELL CREATE, 29185.99\n", - "2023-07-28, SELL EXECUTED, Price: 29186.00, Cost: 146269.20, Comm 0.00\n", - "2023-07-28, OPERATION PROFIT, GROSS -339.20, NET -339.20\n", - "2023-07-28, Close, 29190.01\n", - "2023-07-28, Close, 29140.80\n", - "2023-07-28, Close, 29152.00\n", - "Final Portfolio Value: 148842.05\n", - "Sharpe Ratio: None\n", - "Max Drawdown: 11.918778789944406%\n", - "Total Trades: 220\n", - "Winning Trades: 56\n", - "Losing Trades: 164\n", - "Total Return: 0.39771549057473327\n" + "2023-07-28, Close, 29314.14\n", + "2023-07-29, Close, 29352.90\n", + "2023-07-30, Close, 29281.09\n", + "2023-07-31, Close, 29232.25\n", + "2023-08-01, Close, 29705.99\n", + "2023-08-01, BUY CREATE, 29705.99\n", + "2023-08-02, BUY EXECUTED, Price: 29705.99, Cost: 29705.99, Comm 59.41\n", + "2023-08-02, Close, 29186.01\n", + "2023-08-02, SELL CREATE, 29186.01\n", + "2023-08-03, SELL EXECUTED, Price: 29186.00, Cost: 29705.99, Comm 58.37\n", + "2023-08-03, OPERATION PROFIT, GROSS -519.99, NET -637.77\n", + "2023-08-03, Close, 29193.64\n", + "2023-08-04, Close, 29113.99\n", + "2023-08-05, Close, 29072.13\n", + "2023-08-06, Close, 29088.42\n", + "2023-08-07, Close, 29211.06\n", + "2023-08-08, Close, 29770.42\n", + "2023-08-08, BUY CREATE, 29770.42\n", + "2023-08-09, BUY EXECUTED, Price: 29770.41, Cost: 29770.41, Comm 59.54\n", + "2023-08-09, Close, 29581.99\n", + "2023-08-10, Close, 29455.75\n", + "2023-08-11, Close, 29426.03\n", + "2023-08-12, Close, 29430.17\n", + "2023-08-13, Close, 29303.84\n", + "2023-08-13, SELL CREATE, 29303.84\n", + "2023-08-14, SELL EXECUTED, Price: 29303.85, Cost: 29770.41, Comm 58.61\n", + "2023-08-14, OPERATION PROFIT, GROSS -466.56, NET -584.71\n", + "2023-08-14, Close, 29430.93\n", + "2023-08-14, BUY CREATE, 29430.93\n", + "2023-08-15, BUY EXECUTED, Price: 29430.92, Cost: 29430.92, Comm 58.86\n", + "2023-08-15, Close, 29200.00\n", + "2023-08-15, SELL CREATE, 29200.00\n", + "2023-08-16, SELL EXECUTED, Price: 29200.01, Cost: 29430.92, Comm 58.40\n", + "2023-08-16, OPERATION PROFIT, GROSS -230.91, NET -348.17\n", + "2023-08-16, Close, 28730.51\n", + "2023-08-17, Close, 26623.41\n", + "2023-08-18, Close, 26054.00\n", + "2023-08-19, Close, 26100.01\n", + "2023-08-20, Close, 26189.99\n", + "2023-08-21, Close, 26126.92\n", + "2023-08-22, Close, 26056.00\n", + "2023-08-23, Close, 26432.72\n", + "2023-08-24, Close, 26180.05\n", + "2023-08-25, Close, 26060.01\n", + "2023-08-26, Close, 26017.37\n", + "2023-08-27, Close, 26101.77\n", + "2023-08-28, Close, 26120.00\n", + "2023-08-29, Close, 27716.34\n", + "2023-08-29, BUY CREATE, 27716.34\n", + "2023-08-30, BUY EXECUTED, Price: 27716.34, Cost: 27716.34, Comm 55.43\n", + "2023-08-30, Close, 27299.99\n", + "2023-08-31, Close, 25940.78\n", + "2023-08-31, SELL CREATE, 25940.78\n", + "2023-09-01, SELL EXECUTED, Price: 25940.77, Cost: 27716.34, Comm 51.88\n", + "2023-09-01, OPERATION PROFIT, GROSS -1775.57, NET -1882.88\n", + "2023-09-01, Close, 25805.05\n", + "2023-09-02, Close, 25869.51\n", + "2023-09-03, Close, 25971.21\n", + "2023-09-04, Close, 25826.02\n", + "2023-09-05, Close, 25792.10\n", + "2023-09-06, Close, 25759.95\n", + "2023-09-07, Close, 26255.00\n", + "2023-09-07, BUY CREATE, 26255.00\n", + "2023-09-08, BUY EXECUTED, Price: 26255.00, Cost: 26255.00, Comm 52.51\n", + "2023-09-08, Close, 25910.50\n", + "2023-09-08, SELL CREATE, 25910.50\n", + "2023-09-09, SELL EXECUTED, Price: 25910.50, Cost: 26255.00, Comm 51.82\n", + "2023-09-09, OPERATION PROFIT, GROSS -344.50, NET -448.83\n", + "2023-09-09, Close, 25901.61\n", + "2023-09-10, Close, 25841.61\n", + "2023-09-11, Close, 25162.52\n", + "2023-09-12, Close, 25840.10\n", + "2023-09-13, Close, 26222.00\n", + "2023-09-13, BUY CREATE, 26222.00\n", + "2023-09-14, BUY EXECUTED, Price: 26222.00, Cost: 26222.00, Comm 52.44\n", + "2023-09-14, Close, 26522.73\n", + "2023-09-15, Close, 26600.00\n", + "2023-09-16, Close, 26559.67\n", + "2023-09-17, Close, 26527.51\n", + "2023-09-18, Close, 26762.51\n", + "2023-09-19, Close, 27210.26\n", + "2023-09-20, Close, 27125.00\n", + "2023-09-21, Close, 26568.08\n", + "2023-09-22, Close, 26580.14\n", + "2023-09-23, Close, 26575.96\n", + "2023-09-24, Close, 26248.38\n", + "2023-09-24, SELL CREATE, 26248.38\n", + "2023-09-25, SELL EXECUTED, Price: 26248.39, Cost: 26222.00, Comm 52.50\n", + "2023-09-25, OPERATION PROFIT, GROSS 26.39, NET -78.55\n", + "2023-09-25, Close, 26304.81\n", + "2023-09-26, Close, 26221.67\n", + "2023-09-27, Close, 26372.99\n", + "2023-09-28, Close, 27021.39\n", + "2023-09-28, BUY CREATE, 27021.39\n", + "2023-09-29, BUY EXECUTED, Price: 27021.39, Cost: 27021.39, Comm 54.04\n", + "2023-09-29, Close, 26906.96\n", + "2023-09-30, Close, 26962.56\n", + "2023-10-01, Close, 27992.57\n", + "2023-10-02, Close, 27494.51\n", + "2023-10-03, Close, 27426.46\n", + "2023-10-04, Close, 27778.57\n", + "2023-10-05, Close, 27410.39\n", + "2023-10-06, Close, 27931.09\n", + "2023-10-07, Close, 27956.67\n", + "2023-10-08, Close, 27917.05\n", + "2023-10-09, Close, 27590.12\n", + "2023-10-10, Close, 27390.12\n", + "2023-10-11, Close, 26875.52\n", + "2023-10-11, SELL CREATE, 26875.52\n", + "2023-10-12, SELL EXECUTED, Price: 26875.52, Cost: 27021.39, Comm 53.75\n", + "2023-10-12, OPERATION PROFIT, GROSS -145.87, NET -253.66\n", + "2023-10-12, Close, 26759.63\n", + "2023-10-13, Close, 26862.00\n", + "2023-10-14, Close, 26852.48\n", + "2023-10-15, Close, 27154.15\n", + "2023-10-16, Close, 28500.78\n", + "2023-10-16, BUY CREATE, 28500.78\n", + "2023-10-17, BUY EXECUTED, Price: 28500.77, Cost: 28500.77, Comm 57.00\n", + "2023-10-17, Close, 28395.91\n", + "2023-10-18, Close, 28320.00\n", + "2023-10-19, Close, 28713.71\n", + "2023-10-20, Close, 29669.04\n", + "2023-10-21, Close, 29909.80\n", + "2023-10-22, Close, 29992.46\n", + "2023-10-23, Close, 33069.99\n", + "2023-10-24, Close, 33922.73\n", + "2023-10-25, Close, 34496.05\n", + "2023-10-26, Close, 34151.66\n", + "2023-10-27, Close, 33892.02\n", + "2023-10-28, Close, 34081.00\n", + "2023-10-29, Close, 34525.89\n", + "2023-10-30, Close, 34474.73\n", + "2023-10-31, Close, 34639.77\n", + "2023-11-01, Close, 35421.43\n", + "2023-11-02, Close, 34941.59\n", + "2023-11-03, Close, 34716.78\n", + "2023-11-04, Close, 35062.07\n", + "2023-11-05, Close, 35011.88\n", + "2023-11-06, Close, 35046.09\n", + "2023-11-07, Close, 35399.12\n", + "2023-11-08, Close, 35624.72\n", + "2023-11-09, Close, 36701.09\n", + "2023-11-10, Close, 37301.63\n", + "2023-11-11, Close, 37130.00\n", + "2023-11-12, Close, 37064.13\n", + "2023-11-13, Close, 36462.93\n", + "2023-11-14, Close, 35551.19\n", + "2023-11-14, SELL CREATE, 35551.19\n", + "2023-11-15, SELL EXECUTED, Price: 35551.20, Cost: 28500.77, Comm 71.10\n", + "2023-11-15, OPERATION PROFIT, GROSS 7050.43, NET 6922.33\n", + "2023-11-15, Close, 37858.20\n", + "2023-11-15, BUY CREATE, 37858.20\n", + "2023-11-16, BUY EXECUTED, Price: 37858.20, Cost: 37858.20, Comm 75.72\n", + "2023-11-16, Close, 36163.51\n", + "2023-11-17, Close, 36613.92\n", + "2023-11-18, Close, 36568.10\n", + "2023-11-19, Close, 37359.86\n", + "2023-11-20, Close, 37448.78\n", + "2023-11-21, Close, 35741.65\n", + "2023-11-21, SELL CREATE, 35741.65\n", + "2023-11-22, SELL EXECUTED, Price: 35741.65, Cost: 37858.20, Comm 71.48\n", + "2023-11-22, OPERATION PROFIT, GROSS -2116.55, NET -2263.75\n", + "2023-11-22, Close, 37408.34\n", + "2023-11-22, BUY CREATE, 37408.34\n", + "2023-11-23, BUY EXECUTED, Price: 37408.35, Cost: 37408.35, Comm 74.82\n", + "2023-11-23, Close, 37294.28\n", + "2023-11-24, Close, 37713.57\n", + "2023-11-25, Close, 37780.67\n", + "2023-11-26, Close, 37447.43\n", + "2023-11-27, Close, 37242.70\n", + "2023-11-28, Close, 37818.87\n", + "2023-11-29, Close, 37854.64\n", + "2023-11-30, Close, 37723.96\n", + "2023-12-01, Close, 38682.52\n", + "2023-12-02, Close, 39450.35\n", + "2023-12-03, Close, 39972.26\n", + "2023-12-04, Close, 41991.10\n", + "2023-12-05, Close, 44073.32\n", + "2023-12-06, Close, 43762.69\n", + "2023-12-07, Close, 43273.14\n", + "2023-12-08, Close, 44170.99\n", + "2023-12-09, Close, 43713.60\n", + "2023-12-10, Close, 43789.51\n", + "2023-12-11, Close, 41253.40\n", + "2023-12-12, Close, 41492.39\n", + "2023-12-13, Close, 42869.03\n", + "2023-12-14, Close, 43022.26\n", + "2023-12-15, Close, 41940.30\n", + "2023-12-15, SELL CREATE, 41940.30\n", + "2023-12-16, SELL EXECUTED, Price: 41940.29, Cost: 37408.35, Comm 83.88\n", + "2023-12-16, OPERATION PROFIT, GROSS 4531.94, NET 4373.24\n", + "2023-12-16, Close, 42278.03\n", + "2023-12-17, Close, 41374.65\n", + "2023-12-18, Close, 42657.80\n", + "2023-12-19, Close, 42275.99\n", + "2023-12-20, Close, 43668.93\n", + "2023-12-20, BUY CREATE, 43668.93\n", + "2023-12-21, BUY EXECUTED, Price: 43668.92, Cost: 43668.92, Comm 87.34\n", + "2023-12-21, Close, 43861.80\n", + "2023-12-22, Close, 43969.04\n", + "2023-12-23, Close, 43702.16\n", + "2023-12-24, Close, 42991.50\n", + "2023-12-25, Close, 43576.13\n", + "2023-12-26, Close, 42508.93\n", + "2023-12-26, SELL CREATE, 42508.93\n", + "2023-12-27, SELL EXECUTED, Price: 42508.93, Cost: 43668.92, Comm 85.02\n", + "2023-12-27, OPERATION PROFIT, GROSS -1159.99, NET -1332.35\n", + "2023-12-27, Close, 43428.85\n", + "2023-12-27, BUY CREATE, 43428.85\n", + "2023-12-28, BUY EXECUTED, Price: 43428.86, Cost: 43428.86, Comm 86.86\n", + "2023-12-28, Close, 42563.76\n", + "2023-12-28, SELL CREATE, 42563.76\n", + "2023-12-29, SELL EXECUTED, Price: 42563.76, Cost: 43428.86, Comm 85.13\n", + "2023-12-29, OPERATION PROFIT, GROSS -865.10, NET -1037.09\n", + "2023-12-29, Close, 42066.95\n", + "2023-12-30, Close, 42140.28\n", + "2023-12-31, Close, 42283.58\n", + "2024-01-01, Close, 44179.55\n", + "2024-01-01, BUY CREATE, 44179.55\n", + "2024-01-02, BUY EXECUTED, Price: 44179.55, Cost: 44179.55, Comm 88.36\n", + "2024-01-02, Close, 44946.91\n", + "2024-01-03, Close, 42845.23\n", + "2024-01-03, SELL CREATE, 42845.23\n", + "2024-01-04, SELL EXECUTED, Price: 42845.23, Cost: 44179.55, Comm 85.69\n", + "2024-01-04, OPERATION PROFIT, GROSS -1334.32, NET -1508.37\n", + "2024-01-04, Close, 44151.10\n", + "2024-01-04, BUY CREATE, 44151.10\n", + "2024-01-05, BUY EXECUTED, Price: 44151.10, Cost: 44151.10, Comm 88.30\n", + "2024-01-05, Close, 44145.11\n", + "2024-01-06, Close, 43968.32\n", + "2024-01-07, Close, 43929.02\n", + "2024-01-08, Close, 46951.04\n", + "2024-01-09, Close, 46110.00\n", + "2024-01-10, Close, 46653.99\n", + "2024-01-11, Close, 46339.16\n", + "2024-01-12, Close, 42782.73\n", + "2024-01-12, SELL CREATE, 42782.73\n", + "2024-01-13, SELL EXECUTED, Price: 42782.74, Cost: 44151.10, Comm 85.57\n", + "2024-01-13, OPERATION PROFIT, GROSS -1368.36, NET -1542.23\n", + "2024-01-13, Close, 42847.99\n", + "2024-01-14, Close, 41732.35\n", + "2024-01-15, Close, 42511.10\n", + "2024-01-16, Close, 43137.95\n", + "2024-01-17, Close, 42776.10\n", + "2024-01-18, Close, 41327.50\n", + "2024-01-19, Close, 41659.03\n", + "2024-01-20, Close, 41696.04\n", + "2024-01-21, Close, 41580.33\n", + "2024-01-22, Close, 39568.02\n", + "2024-01-23, Close, 39897.60\n", + "2024-01-24, Close, 40084.88\n", + "2024-01-25, Close, 39961.09\n", + "2024-01-26, Close, 41823.51\n", + "2024-01-26, BUY CREATE, 41823.51\n", + "2024-01-27, BUY EXECUTED, Price: 41823.51, Cost: 41823.51, Comm 83.65\n", + "2024-01-27, Close, 42120.63\n", + "2024-01-28, Close, 42031.06\n", + "2024-01-29, Close, 43302.70\n", + "2024-01-30, Close, 42941.10\n", + "2024-01-31, Close, 42580.00\n", + "2024-02-01, Close, 43082.94\n", + "2024-02-02, Close, 43200.00\n", + "2024-02-03, Close, 43011.09\n", + "2024-02-04, Close, 42582.88\n", + "2024-02-05, Close, 42708.70\n", + "2024-02-06, Close, 43098.95\n", + "2024-02-07, Close, 44349.60\n", + "2024-02-08, Close, 45288.65\n", + "2024-02-09, Close, 47132.77\n", + "2024-02-10, Close, 47751.09\n", + "2024-02-11, Close, 48299.99\n", + "2024-02-12, Close, 49917.27\n", + "2024-02-13, Close, 49699.59\n", + "2024-02-14, Close, 51795.17\n", + "2024-02-15, Close, 51880.00\n", + "2024-02-16, Close, 52124.11\n", + "2024-02-17, Close, 51642.64\n", + "2024-02-18, Close, 52137.67\n", + "2024-02-19, Close, 51774.73\n", + "2024-02-20, Close, 52258.82\n", + "2024-02-21, Close, 51849.39\n", + "2024-02-22, Close, 51288.42\n", + "2024-02-23, Close, 50744.15\n", + "2024-02-24, Close, 51568.22\n", + "2024-02-25, Close, 51728.85\n", + "2024-02-26, Close, 54476.47\n", + "2024-02-27, Close, 57037.34\n", + "2024-02-28, Close, 62432.10\n", + "2024-02-29, Close, 61130.98\n", + "2024-03-01, Close, 62387.90\n", + "2024-03-02, Close, 61987.28\n", + "2024-03-03, Close, 63113.97\n", + "2024-03-04, Close, 68245.71\n", + "2024-03-05, Close, 63724.01\n", + "2024-03-06, Close, 66074.04\n", + "2024-03-07, Close, 66823.17\n", + "2024-03-08, Close, 68124.19\n", + "2024-03-09, Close, 68313.27\n", + "2024-03-10, Close, 68955.88\n", + "2024-03-11, Close, 72078.10\n", + "2024-03-12, Close, 71452.01\n", + "2024-03-13, Close, 73072.41\n", + "2024-03-14, Close, 71388.94\n", + "2024-03-15, Close, 69499.85\n", + "2024-03-16, Close, 65300.63\n", + "2024-03-16, SELL CREATE, 65300.63\n", + "2024-03-17, SELL EXECUTED, Price: 65300.64, Cost: 41823.51, Comm 130.60\n", + "2024-03-17, OPERATION PROFIT, GROSS 23477.13, NET 23262.88\n", + "2024-03-17, Close, 68393.48\n", + "2024-03-17, BUY CREATE, 68393.48\n", + "2024-03-18, BUY EXECUTED, Price: 68393.47, Cost: 68393.47, Comm 136.79\n", + "2024-03-18, Close, 67609.99\n", + "2024-03-18, SELL CREATE, 67609.99\n", + "2024-03-19, SELL EXECUTED, Price: 67610.00, Cost: 68393.47, Comm 135.22\n", + "2024-03-19, OPERATION PROFIT, GROSS -783.47, NET -1055.48\n", + "2024-03-19, Close, 61937.40\n", + "2024-03-20, Close, 67840.51\n", + "2024-03-21, Close, 65501.27\n", + "2024-03-22, Close, 63796.64\n", + "2024-03-23, Close, 63990.01\n", + "2024-03-24, Close, 67209.99\n", + "2024-03-25, Close, 69880.01\n", + "2024-03-25, BUY CREATE, 69880.01\n", + "2024-03-26, BUY EXECUTED, Price: 69880.00, Cost: 69880.00, Comm 139.76\n", + "2024-03-26, Close, 69988.00\n", + "2024-03-27, Close, 69469.99\n", + "2024-03-28, Close, 70780.60\n", + "2024-03-29, Close, 69850.54\n", + "2024-03-30, Close, 69582.18\n", + "2024-03-31, Close, 71280.01\n", + "2024-04-01, Close, 69649.80\n", + "2024-04-02, Close, 65463.99\n", + "2024-04-02, SELL CREATE, 65463.99\n", + "2024-04-03, SELL EXECUTED, Price: 65463.99, Cost: 69880.00, Comm 130.93\n", + "2024-04-03, OPERATION PROFIT, GROSS -4416.01, NET -4686.70\n", + "2024-04-03, Close, 65963.28\n", + "2024-04-04, Close, 68487.79\n", + "2024-04-04, BUY CREATE, 68487.79\n", + "2024-04-05, BUY EXECUTED, Price: 68487.80, Cost: 68487.80, Comm 136.98\n", + "2024-04-05, Close, 67820.62\n", + "2024-04-05, SELL CREATE, 67820.62\n", + "2024-04-06, SELL EXECUTED, Price: 67820.63, Cost: 68487.80, Comm 135.64\n", + "2024-04-06, OPERATION PROFIT, GROSS -667.17, NET -939.79\n", + "2024-04-06, Close, 68896.00\n", + "2024-04-06, BUY CREATE, 68896.00\n", + "2024-04-07, BUY EXECUTED, Price: 68896.00, Cost: 68896.00, Comm 137.79\n", + "2024-04-07, Close, 69360.39\n", + "2024-04-08, Close, 71620.00\n", + "2024-04-09, Close, 69146.00\n", + "2024-04-09, SELL CREATE, 69146.00\n", + "2024-04-10, SELL EXECUTED, Price: 69146.00, Cost: 68896.00, Comm 138.29\n", + "2024-04-10, OPERATION PROFIT, GROSS 250.00, NET -26.08\n", + "2024-04-10, Close, 70631.08\n", + "2024-04-10, BUY CREATE, 70631.08\n", + "2024-04-11, BUY EXECUTED, Price: 70631.08, Cost: 70631.08, Comm 141.26\n", + "2024-04-11, Close, 70006.23\n", + "2024-04-12, Close, 67116.52\n", + "2024-04-12, SELL CREATE, 67116.52\n", + "2024-04-13, SELL EXECUTED, Price: 67116.52, Cost: 70631.08, Comm 134.23\n", + "2024-04-13, OPERATION PROFIT, GROSS -3514.56, NET -3790.06\n", + "2024-04-13, Close, 63924.51\n", + "2024-04-14, Close, 65661.84\n", + "2024-04-15, Close, 63419.99\n", + "2024-04-16, Close, 63793.39\n", + "2024-04-17, Close, 61277.37\n", + "2024-04-18, Close, 63470.08\n", + "2024-04-19, Close, 63818.01\n", + "2024-04-20, Close, 64940.59\n", + "2024-04-21, Close, 64941.15\n", + "2024-04-22, Close, 66819.32\n", + "2024-04-22, BUY CREATE, 66819.32\n", + "2024-04-23, BUY EXECUTED, Price: 66819.32, Cost: 66819.32, Comm 133.64\n", + "2024-04-23, Close, 66414.00\n", + "2024-04-24, Close, 64289.59\n", + "2024-04-24, SELL CREATE, 64289.59\n", + "2024-04-25, SELL EXECUTED, Price: 64289.58, Cost: 66819.32, Comm 128.58\n", + "2024-04-25, OPERATION PROFIT, GROSS -2529.74, NET -2791.96\n", + "2024-04-25, Close, 64498.34\n", + "2024-04-26, Close, 63770.01\n", + "2024-04-27, Close, 63461.98\n", + "2024-04-28, Close, 63118.62\n", + "2024-04-29, Close, 63866.00\n", + "2024-04-30, Close, 60672.00\n", + "2024-05-01, Close, 58364.97\n", + "2024-05-02, Close, 59060.61\n", + "2024-05-03, Close, 62882.01\n", + "2024-05-04, Close, 63892.04\n", + "2024-05-04, BUY CREATE, 63892.04\n", + "2024-05-05, BUY EXECUTED, Price: 63892.03, Cost: 63892.03, Comm 127.78\n", + "2024-05-05, Close, 64012.00\n", + "2024-05-06, Close, 63165.19\n", + "2024-05-06, SELL CREATE, 63165.19\n", + "2024-05-07, SELL EXECUTED, Price: 63165.18, Cost: 63892.03, Comm 126.33\n", + "2024-05-07, OPERATION PROFIT, GROSS -726.85, NET -980.96\n", + "2024-05-07, Close, 62312.08\n", + "2024-05-08, Close, 61193.03\n", + "2024-05-09, Close, 63074.01\n", + "2024-05-09, BUY CREATE, 63074.01\n", + "2024-05-10, BUY EXECUTED, Price: 63074.00, Cost: 63074.00, Comm 126.15\n", + "2024-05-10, Close, 60799.99\n", + "2024-05-10, SELL CREATE, 60799.99\n", + "2024-05-11, SELL EXECUTED, Price: 60799.99, Cost: 63074.00, Comm 121.60\n", + "2024-05-11, OPERATION PROFIT, GROSS -2274.01, NET -2521.76\n", + "2024-05-11, Close, 60825.99\n", + "2024-05-12, Close, 61483.99\n", + "2024-05-13, Close, 62940.08\n", + "2024-05-13, BUY CREATE, 62940.08\n", + "2024-05-14, BUY EXECUTED, Price: 62940.09, Cost: 62940.09, Comm 125.88\n", + "2024-05-14, Close, 61577.49\n", + "2024-05-14, SELL CREATE, 61577.49\n", + "2024-05-15, SELL EXECUTED, Price: 61577.49, Cost: 62940.09, Comm 123.15\n", + "2024-05-15, OPERATION PROFIT, GROSS -1362.60, NET -1611.64\n", + "2024-05-15, Close, 66206.50\n", + "2024-05-15, BUY CREATE, 66206.50\n", + "2024-05-16, BUY EXECUTED, Price: 66206.51, Cost: 66206.51, Comm 132.41\n", + "2024-05-16, Close, 65235.21\n", + "2024-05-17, Close, 67024.00\n", + "2024-05-18, Close, 66915.20\n", + "2024-05-19, Close, 66274.01\n", + "2024-05-20, Close, 71446.62\n", + "2024-05-21, Close, 70148.34\n", + "2024-05-22, Close, 69166.62\n", + "2024-05-23, Close, 67969.65\n", + "2024-05-24, Close, 68549.99\n", + "2024-05-25, Close, 69290.57\n", + "2024-05-26, Close, 68507.67\n", + "2024-05-27, Close, 69436.43\n", + "2024-05-28, Close, 68398.39\n", + "2024-05-29, Close, 67652.42\n", + "2024-05-29, SELL CREATE, 67652.42\n", + "2024-05-30, SELL EXECUTED, Price: 67652.41, Cost: 66206.51, Comm 135.30\n", + "2024-05-30, OPERATION PROFIT, GROSS 1445.90, NET 1178.18\n", + "2024-05-30, Close, 68352.17\n", + "2024-05-30, BUY CREATE, 68352.17\n", + "2024-05-31, BUY EXECUTED, Price: 68352.17, Cost: 68352.17, Comm 136.70\n", + "2024-05-31, Close, 67540.01\n", + "2024-05-31, SELL CREATE, 67540.01\n", + "2024-06-01, SELL EXECUTED, Price: 67540.01, Cost: 68352.17, Comm 135.08\n", + "2024-06-01, OPERATION PROFIT, GROSS -812.16, NET -1083.94\n", + "2024-06-01, Close, 67766.85\n", + "2024-06-02, Close, 67765.63\n", + "2024-06-03, Close, 68809.90\n", + "2024-06-03, BUY CREATE, 68809.90\n", + "2024-06-04, BUY EXECUTED, Price: 68809.89, Cost: 68809.89, Comm 137.62\n", + "2024-06-04, Close, 70537.84\n", + "2024-06-05, Close, 71108.00\n", + "2024-06-06, Close, 70799.06\n", + "2024-06-07, Close, 69355.60\n", + "2024-06-08, Close, 69310.46\n", + "2024-06-09, Close, 69648.14\n", + "2024-06-10, Close, 69540.00\n", + "2024-06-11, Close, 67314.24\n", + "2024-06-11, SELL CREATE, 67314.24\n", + "2024-06-12, SELL EXECUTED, Price: 67314.23, Cost: 68809.89, Comm 134.63\n", + "2024-06-12, OPERATION PROFIT, GROSS -1495.66, NET -1767.91\n", + "2024-06-12, Close, 68263.99\n", + "2024-06-13, Close, 66773.01\n", + "2024-06-14, Close, 66043.99\n", + "2024-06-15, Close, 66228.25\n", + "2024-06-16, Close, 66676.87\n", + "2024-06-17, Close, 66504.33\n", + "2024-06-18, Close, 65175.32\n", + "2024-06-19, Close, 64974.37\n", + "2024-06-20, Close, 64869.99\n", + "Ending Portfolio Value: 102562.00\n" + ] + }, + { + "data": { + "application/javascript": "/* Put everything inside the global mpl namespace */\nwindow.mpl = {};\n\n\nmpl.get_websocket_type = function() {\n if (typeof(WebSocket) !== 'undefined') {\n return WebSocket;\n } else if (typeof(MozWebSocket) !== 'undefined') {\n return MozWebSocket;\n } else {\n alert('Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.');\n };\n}\n\nmpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = (this.ws.binaryType != undefined);\n\n if (!this.supports_binary) {\n var warnings = document.getElementById(\"mpl-warnings\");\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent = (\n \"This browser does not support binary websocket messages. \" +\n \"Performance may be slow.\");\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = $('
');\n this._root_extra_style(this.root)\n this.root.attr('style', 'display: inline-block');\n\n $(parent_element).append(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n fig.send_message(\"send_image_mode\", {});\n if (mpl.ratio != 1) {\n fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n }\n fig.send_message(\"refresh\", {});\n }\n\n this.imageObj.onload = function() {\n if (fig.image_mode == 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function() {\n fig.ws.close();\n }\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n}\n\nmpl.figure.prototype._init_header = function() {\n var titlebar = $(\n '
');\n var titletext = $(\n '
');\n titlebar.append(titletext)\n this.root.append(titlebar);\n this.header = titletext[0];\n}\n\n\n\nmpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n\n}\n\n\nmpl.figure.prototype._root_extra_style = function(canvas_div) {\n\n}\n\nmpl.figure.prototype._init_canvas = function() {\n var fig = this;\n\n var canvas_div = $('
');\n\n canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n\n function canvas_keyboard_event(event) {\n return fig.key_event(event, event['data']);\n }\n\n canvas_div.keydown('key_press', canvas_keyboard_event);\n canvas_div.keyup('key_release', canvas_keyboard_event);\n this.canvas_div = canvas_div\n this._canvas_extra_style(canvas_div)\n this.root.append(canvas_div);\n\n var canvas = $('');\n canvas.addClass('mpl-canvas');\n canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n\n this.canvas = canvas[0];\n this.context = canvas[0].getContext(\"2d\");\n\n var backingStore = this.context.backingStorePixelRatio ||\n\tthis.context.webkitBackingStorePixelRatio ||\n\tthis.context.mozBackingStorePixelRatio ||\n\tthis.context.msBackingStorePixelRatio ||\n\tthis.context.oBackingStorePixelRatio ||\n\tthis.context.backingStorePixelRatio || 1;\n\n mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n\n var rubberband = $('');\n rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n\n var pass_mouse_events = true;\n\n canvas_div.resizable({\n start: function(event, ui) {\n pass_mouse_events = false;\n },\n resize: function(event, ui) {\n fig.request_resize(ui.size.width, ui.size.height);\n },\n stop: function(event, ui) {\n pass_mouse_events = true;\n fig.request_resize(ui.size.width, ui.size.height);\n },\n });\n\n function mouse_event_fn(event) {\n if (pass_mouse_events)\n return fig.mouse_event(event, event['data']);\n }\n\n rubberband.mousedown('button_press', mouse_event_fn);\n rubberband.mouseup('button_release', mouse_event_fn);\n // Throttle sequential mouse events to 1 every 20ms.\n rubberband.mousemove('motion_notify', mouse_event_fn);\n\n rubberband.mouseenter('figure_enter', mouse_event_fn);\n rubberband.mouseleave('figure_leave', mouse_event_fn);\n\n canvas_div.on(\"wheel\", function (event) {\n event = event.originalEvent;\n event['data'] = 'scroll'\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n mouse_event_fn(event);\n });\n\n canvas_div.append(canvas);\n canvas_div.append(rubberband);\n\n this.rubberband = rubberband;\n this.rubberband_canvas = rubberband[0];\n this.rubberband_context = rubberband[0].getContext(\"2d\");\n this.rubberband_context.strokeStyle = \"#000000\";\n\n this._resize_canvas = function(width, height) {\n // Keep the size of the canvas, canvas container, and rubber band\n // canvas in synch.\n canvas_div.css('width', width)\n canvas_div.css('height', height)\n\n canvas.attr('width', width * mpl.ratio);\n canvas.attr('height', height * mpl.ratio);\n canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n\n rubberband.attr('width', width);\n rubberband.attr('height', height);\n }\n\n // Set the figure to an initial 600x600px, this will subsequently be updated\n // upon first draw.\n this._resize_canvas(600, 600);\n\n // Disable right mouse context menu.\n $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n return false;\n });\n\n function set_focus () {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n}\n\nmpl.figure.prototype._init_toolbar = function() {\n var fig = this;\n\n var nav_element = $('
');\n nav_element.attr('style', 'width: 100%');\n this.root.append(nav_element);\n\n // Define a callback function for later on.\n function toolbar_event(event) {\n return fig.toolbar_button_onclick(event['data']);\n }\n function toolbar_mouse_event(event) {\n return fig.toolbar_button_onmouseover(event['data']);\n }\n\n for(var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n // put a spacer in here.\n continue;\n }\n var button = $('');\n button.click(method_name, toolbar_event);\n button.mouseover(tooltip, toolbar_mouse_event);\n nav_element.append(button);\n }\n\n // Add the status bar.\n var status_bar = $('');\n nav_element.append(status_bar);\n this.message = status_bar[0];\n\n // Add the close button to the window.\n var buttongrp = $('
');\n var button = $('');\n button.click(function (evt) { fig.handle_close(fig, {}); } );\n button.mouseover('Stop Interaction', toolbar_mouse_event);\n buttongrp.append(button);\n var titlebar = this.root.find($('.ui-dialog-titlebar'));\n titlebar.prepend(buttongrp);\n}\n\nmpl.figure.prototype._root_extra_style = function(el){\n var fig = this\n el.on(\"remove\", function(){\n\tfig.close_ws(fig, {});\n });\n}\n\nmpl.figure.prototype._canvas_extra_style = function(el){\n // this is important to make the div 'focusable\n el.attr('tabindex', 0)\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n }\n else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n\n}\n\nmpl.figure.prototype._key_event_extra = function(event, name) {\n var manager = IPython.notebook.keyboard_manager;\n if (!manager)\n manager = IPython.keyboard_manager;\n\n // Check for shift+enter\n if (event.shiftKey && event.which == 13) {\n this.canvas_div.blur();\n event.shiftKey = false;\n // Send a \"J\" for go to next cell\n event.which = 74;\n event.keyCode = 74;\n manager.command_mode();\n manager.handle_keydown(event);\n }\n}\n\nmpl.figure.prototype.handle_save = function(fig, msg) {\n fig.ondownload(fig, null);\n}\n\n\nmpl.find_output_cell = function(html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i=0; i= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] == html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n}\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel != null) {\n IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n}\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Starting Portfolio Value: 100000\n", + "Ending Portfolio Value: 123561.09554000002\n", + "{'Starting Portfolio Value': 100000, 'Ending Portfolio Value': 123561.09554000002, 'Sharpe Ratio': 3.360025269585281, 'Max Drawdown': 13.10642999421397, 'Total Trades': 3, 'Winning Trades': 2, 'Losing Trades': 0, 'Total Return': 0.21156554848462109}\n" + ] + } + ], + "source": [] + }, { "cell_type": "markdown", "metadata": {}, @@ -8461,65 +1165,390 @@ " - ATR (Average True Range): Measures volatility." ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Cryptocurrency Trading Backtesting\n", - "This notebook demonstrates the process of backtesting a cryptocurrency trading strategy using historical data. We will use the RSI and Bollinger Bands strategy to trade Bitcoin (BTC) against Tether (USDT)." - ] - }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "['c:\\\\Users\\\\dell\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python312\\\\python312.zip', 'c:\\\\Users\\\\dell\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python312\\\\DLLs', 'c:\\\\Users\\\\dell\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python312\\\\Lib', 'c:\\\\Users\\\\dell\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python312', '', 'c:\\\\Users\\\\dell\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python312\\\\Lib\\\\site-packages', 'c:\\\\Users\\\\dell\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python312\\\\Lib\\\\site-packages\\\\win32', 'c:\\\\Users\\\\dell\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python312\\\\Lib\\\\site-packages\\\\win32\\\\lib', 'c:\\\\Users\\\\dell\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python312\\\\Lib\\\\site-packages\\\\Pythonwin', 'c:\\\\Users\\\\dell\\\\Desktop\\\\10Academy', 'c:\\\\Users\\\\dell\\\\Desktop\\\\10Academy', 'c:\\\\Users\\\\dell\\\\Desktop\\\\10Academy', 'c:\\\\Users\\\\dell\\\\Desktop\\\\10Academy', 'c:\\\\Users\\\\dell\\\\Desktop\\\\10Academy\\\\crypto-trading-backtesting']\n" + "Executing query:\n", + "\n", + " SELECT timestamp AS date, open AS open, high AS high, low AS low, close AS close, volume AS volume \n", + " FROM public.\"ohlcv_BTC_USDT\"\n", + " WHERE timestamp >= '2023-06-20' AND timestamp <= '2024-06-20';\n", + " \n", + "\n", + "Fetched data:\n", + " date open high low close volume\n", + "0 2023-06-20 26844.35 28402.74 26652.00 28307.99 69666.95525\n", + "1 2023-06-21 28308.00 30800.00 28257.99 29993.89 108926.40412\n", + "2 2023-06-22 29993.89 30500.00 29525.61 29884.92 59054.56460\n", + "3 2023-06-23 29884.92 31431.94 29800.00 30688.50 73931.89635\n", + "4 2023-06-24 30688.51 30800.00 30250.00 30527.43 30513.30135\n", + "\n", + "Starting Portfolio Value: 100000.00\n", + "2023-08-08, Close, 29770.42\n", + "2023-08-09, Close, 29581.99\n", + "2023-08-10, Close, 29455.75\n", + "2023-08-11, Close, 29426.03\n", + "2023-08-12, Close, 29430.17\n", + "2023-08-13, Close, 29303.84\n", + "2023-08-14, Close, 29430.93\n", + "2023-08-15, Close, 29200.00\n", + "2023-08-16, Close, 28730.51\n", + "2023-08-17, Close, 26623.41\n", + "2023-08-18, Close, 26054.00\n", + "2023-08-19, Close, 26100.01\n", + "2023-08-20, Close, 26189.99\n", + "2023-08-21, Close, 26126.92\n", + "2023-08-22, Close, 26056.00\n", + "2023-08-23, Close, 26432.72\n", + "2023-08-24, Close, 26180.05\n", + "2023-08-25, Close, 26060.01\n", + "2023-08-26, Close, 26017.37\n", + "2023-08-27, Close, 26101.77\n", + "2023-08-28, Close, 26120.00\n", + "2023-08-29, Close, 27716.34\n", + "2023-08-30, Close, 27299.99\n", + "2023-08-31, Close, 25940.78\n", + "2023-09-01, Close, 25805.05\n", + "2023-09-02, Close, 25869.51\n", + "2023-09-03, Close, 25971.21\n", + "2023-09-04, Close, 25826.02\n", + "2023-09-05, Close, 25792.10\n", + "2023-09-06, Close, 25759.95\n", + "2023-09-07, Close, 26255.00\n", + "2023-09-08, Close, 25910.50\n", + "2023-09-09, Close, 25901.61\n", + "2023-09-10, Close, 25841.61\n", + "2023-09-11, Close, 25162.52\n", + "2023-09-12, Close, 25840.10\n", + "2023-09-13, Close, 26222.00\n", + "2023-09-14, Close, 26522.73\n", + "2023-09-15, Close, 26600.00\n", + "2023-09-16, Close, 26559.67\n", + "2023-09-17, Close, 26527.51\n", + "2023-09-18, Close, 26762.51\n", + "2023-09-19, Close, 27210.26\n", + "2023-09-20, Close, 27125.00\n", + "2023-09-21, Close, 26568.08\n", + "2023-09-22, Close, 26580.14\n", + "2023-09-23, Close, 26575.96\n", + "2023-09-24, Close, 26248.38\n", + "2023-09-25, Close, 26304.81\n", + "2023-09-26, Close, 26221.67\n", + "2023-09-27, Close, 26372.99\n", + "2023-09-28, Close, 27021.39\n", + "2023-09-29, Close, 26906.96\n", + "2023-09-30, Close, 26962.56\n", + "2023-10-01, Close, 27992.57\n", + "2023-10-01, BUY CREATE, 27992.57\n", + "2023-10-02, BUY EXECUTED, Price: 27992.58, Cost: 27992.58, Comm 55.99\n", + "2023-10-02, Close, 27494.51\n", + "2023-10-03, Close, 27426.46\n", + "2023-10-04, Close, 27778.57\n", + "2023-10-05, Close, 27410.39\n", + "2023-10-06, Close, 27931.09\n", + "2023-10-07, Close, 27956.67\n", + "2023-10-08, Close, 27917.05\n", + "2023-10-09, Close, 27590.12\n", + "2023-10-10, Close, 27390.12\n", + "2023-10-11, Close, 26875.52\n", + "2023-10-12, Close, 26759.63\n", + "2023-10-13, Close, 26862.00\n", + "2023-10-14, Close, 26852.48\n", + "2023-10-15, Close, 27154.15\n", + "2023-10-16, Close, 28500.78\n", + "2023-10-17, Close, 28395.91\n", + "2023-10-18, Close, 28320.00\n", + "2023-10-19, Close, 28713.71\n", + "2023-10-20, Close, 29669.04\n", + "2023-10-21, Close, 29909.80\n", + "2023-10-22, Close, 29992.46\n", + "2023-10-23, Close, 33069.99\n", + "2023-10-24, Close, 33922.73\n", + "2023-10-25, Close, 34496.05\n", + "2023-10-26, Close, 34151.66\n", + "2023-10-27, Close, 33892.02\n", + "2023-10-28, Close, 34081.00\n", + "2023-10-29, Close, 34525.89\n", + "2023-10-30, Close, 34474.73\n", + "2023-10-31, Close, 34639.77\n", + "2023-11-01, Close, 35421.43\n", + "2023-11-02, Close, 34941.59\n", + "2023-11-03, Close, 34716.78\n", + "2023-11-04, Close, 35062.07\n", + "2023-11-05, Close, 35011.88\n", + "2023-11-06, Close, 35046.09\n", + "2023-11-07, Close, 35399.12\n", + "2023-11-08, Close, 35624.72\n", + "2023-11-09, Close, 36701.09\n", + "2023-11-10, Close, 37301.63\n", + "2023-11-11, Close, 37130.00\n", + "2023-11-12, Close, 37064.13\n", + "2023-11-13, Close, 36462.93\n", + "2023-11-14, Close, 35551.19\n", + "2023-11-15, Close, 37858.20\n", + "2023-11-16, Close, 36163.51\n", + "2023-11-17, Close, 36613.92\n", + "2023-11-18, Close, 36568.10\n", + "2023-11-19, Close, 37359.86\n", + "2023-11-20, Close, 37448.78\n", + "2023-11-21, Close, 35741.65\n", + "2023-11-22, Close, 37408.34\n", + "2023-11-23, Close, 37294.28\n", + "2023-11-24, Close, 37713.57\n", + "2023-11-25, Close, 37780.67\n", + "2023-11-26, Close, 37447.43\n", + "2023-11-27, Close, 37242.70\n", + "2023-11-28, Close, 37818.87\n", + "2023-11-29, Close, 37854.64\n", + "2023-11-30, Close, 37723.96\n", + "2023-12-01, Close, 38682.52\n", + "2023-12-02, Close, 39450.35\n", + "2023-12-03, Close, 39972.26\n", + "2023-12-04, Close, 41991.10\n", + "2023-12-05, Close, 44073.32\n", + "2023-12-06, Close, 43762.69\n", + "2023-12-07, Close, 43273.14\n", + "2023-12-08, Close, 44170.99\n", + "2023-12-09, Close, 43713.60\n", + "2023-12-10, Close, 43789.51\n", + "2023-12-11, Close, 41253.40\n", + "2023-12-12, Close, 41492.39\n", + "2023-12-13, Close, 42869.03\n", + "2023-12-14, Close, 43022.26\n", + "2023-12-15, Close, 41940.30\n", + "2023-12-16, Close, 42278.03\n", + "2023-12-17, Close, 41374.65\n", + "2023-12-18, Close, 42657.80\n", + "2023-12-19, Close, 42275.99\n", + "2023-12-20, Close, 43668.93\n", + "2023-12-21, Close, 43861.80\n", + "2023-12-22, Close, 43969.04\n", + "2023-12-23, Close, 43702.16\n", + "2023-12-24, Close, 42991.50\n", + "2023-12-25, Close, 43576.13\n", + "2023-12-26, Close, 42508.93\n", + "2023-12-27, Close, 43428.85\n", + "2023-12-28, Close, 42563.76\n", + "2023-12-29, Close, 42066.95\n", + "2023-12-30, Close, 42140.28\n", + "2023-12-31, Close, 42283.58\n", + "2024-01-01, Close, 44179.55\n", + "2024-01-02, Close, 44946.91\n", + "2024-01-03, Close, 42845.23\n", + "2024-01-04, Close, 44151.10\n", + "2024-01-05, Close, 44145.11\n", + "2024-01-06, Close, 43968.32\n", + "2024-01-07, Close, 43929.02\n", + "2024-01-08, Close, 46951.04\n", + "2024-01-09, Close, 46110.00\n", + "2024-01-10, Close, 46653.99\n", + "2024-01-11, Close, 46339.16\n", + "2024-01-12, Close, 42782.73\n", + "2024-01-13, Close, 42847.99\n", + "2024-01-14, Close, 41732.35\n", + "2024-01-15, Close, 42511.10\n", + "2024-01-16, Close, 43137.95\n", + "2024-01-17, Close, 42776.10\n", + "2024-01-18, Close, 41327.50\n", + "2024-01-19, Close, 41659.03\n", + "2024-01-20, Close, 41696.04\n", + "2024-01-20, SELL CREATE, 41696.04\n", + "2024-01-21, SELL EXECUTED, Price: 41696.05, Cost: 27992.58, Comm 83.39\n", + "2024-01-21, OPERATION PROFIT, GROSS 13703.47, NET 13564.09\n", + "2024-01-21, Close, 41580.33\n", + "2024-01-22, Close, 39568.02\n", + "2024-01-23, Close, 39897.60\n", + "2024-01-24, Close, 40084.88\n", + "2024-01-25, Close, 39961.09\n", + "2024-01-26, Close, 41823.51\n", + "2024-01-27, Close, 42120.63\n", + "2024-01-28, Close, 42031.06\n", + "2024-01-29, Close, 43302.70\n", + "2024-01-30, Close, 42941.10\n", + "2024-01-31, Close, 42580.00\n", + "2024-02-01, Close, 43082.94\n", + "2024-02-02, Close, 43200.00\n", + "2024-02-03, Close, 43011.09\n", + "2024-02-04, Close, 42582.88\n", + "2024-02-05, Close, 42708.70\n", + "2024-02-06, Close, 43098.95\n", + "2024-02-07, Close, 44349.60\n", + "2024-02-07, BUY CREATE, 44349.60\n", + "2024-02-08, BUY EXECUTED, Price: 44349.60, Cost: 44349.60, Comm 88.70\n", + "2024-02-08, Close, 45288.65\n", + "2024-02-09, Close, 47132.77\n", + "2024-02-10, Close, 47751.09\n", + "2024-02-11, Close, 48299.99\n", + "2024-02-12, Close, 49917.27\n", + "2024-02-13, Close, 49699.59\n", + "2024-02-14, Close, 51795.17\n", + "2024-02-15, Close, 51880.00\n", + "2024-02-16, Close, 52124.11\n", + "2024-02-17, Close, 51642.64\n", + "2024-02-18, Close, 52137.67\n", + "2024-02-19, Close, 51774.73\n", + "2024-02-20, Close, 52258.82\n", + "2024-02-21, Close, 51849.39\n", + "2024-02-22, Close, 51288.42\n", + "2024-02-23, Close, 50744.15\n", + "2024-02-24, Close, 51568.22\n", + "2024-02-25, Close, 51728.85\n", + "2024-02-26, Close, 54476.47\n", + "2024-02-27, Close, 57037.34\n", + "2024-02-28, Close, 62432.10\n", + "2024-02-29, Close, 61130.98\n", + "2024-03-01, Close, 62387.90\n", + "2024-03-02, Close, 61987.28\n", + "2024-03-03, Close, 63113.97\n", + "2024-03-04, Close, 68245.71\n", + "2024-03-05, Close, 63724.01\n", + "2024-03-06, Close, 66074.04\n", + "2024-03-07, Close, 66823.17\n", + "2024-03-08, Close, 68124.19\n", + "2024-03-09, Close, 68313.27\n", + "2024-03-10, Close, 68955.88\n", + "2024-03-11, Close, 72078.10\n", + "2024-03-12, Close, 71452.01\n", + "2024-03-13, Close, 73072.41\n", + "2024-03-14, Close, 71388.94\n", + "2024-03-15, Close, 69499.85\n", + "2024-03-16, Close, 65300.63\n", + "2024-03-17, Close, 68393.48\n", + "2024-03-18, Close, 67609.99\n", + "2024-03-19, Close, 61937.40\n", + "2024-03-20, Close, 67840.51\n", + "2024-03-21, Close, 65501.27\n", + "2024-03-22, Close, 63796.64\n", + "2024-03-23, Close, 63990.01\n", + "2024-03-24, Close, 67209.99\n", + "2024-03-25, Close, 69880.01\n", + "2024-03-26, Close, 69988.00\n", + "2024-03-27, Close, 69469.99\n", + "2024-03-28, Close, 70780.60\n", + "2024-03-29, Close, 69850.54\n", + "2024-03-30, Close, 69582.18\n", + "2024-03-31, Close, 71280.01\n", + "2024-04-01, Close, 69649.80\n", + "2024-04-02, Close, 65463.99\n", + "2024-04-03, Close, 65963.28\n", + "2024-04-04, Close, 68487.79\n", + "2024-04-05, Close, 67820.62\n", + "2024-04-06, Close, 68896.00\n", + "2024-04-07, Close, 69360.39\n", + "2024-04-08, Close, 71620.00\n", + "2024-04-09, Close, 69146.00\n", + "2024-04-10, Close, 70631.08\n", + "2024-04-11, Close, 70006.23\n", + "2024-04-12, Close, 67116.52\n", + "2024-04-13, Close, 63924.51\n", + "2024-04-14, Close, 65661.84\n", + "2024-04-15, Close, 63419.99\n", + "2024-04-16, Close, 63793.39\n", + "2024-04-17, Close, 61277.37\n", + "2024-04-17, SELL CREATE, 61277.37\n", + "2024-04-18, SELL EXECUTED, Price: 61277.38, Cost: 44349.60, Comm 122.55\n", + "2024-04-18, OPERATION PROFIT, GROSS 16927.78, NET 16716.53\n", + "2024-04-18, Close, 63470.08\n", + "2024-04-19, Close, 63818.01\n", + "2024-04-20, Close, 64940.59\n", + "2024-04-21, Close, 64941.15\n", + "2024-04-22, Close, 66819.32\n", + "2024-04-23, Close, 66414.00\n", + "2024-04-24, Close, 64289.59\n", + "2024-04-25, Close, 64498.34\n", + "2024-04-26, Close, 63770.01\n", + "2024-04-27, Close, 63461.98\n", + "2024-04-28, Close, 63118.62\n", + "2024-04-29, Close, 63866.00\n", + "2024-04-30, Close, 60672.00\n", + "2024-05-01, Close, 58364.97\n", + "2024-05-02, Close, 59060.61\n", + "2024-05-03, Close, 62882.01\n", + "2024-05-04, Close, 63892.04\n", + "2024-05-05, Close, 64012.00\n", + "2024-05-06, Close, 63165.19\n", + "2024-05-07, Close, 62312.08\n", + "2024-05-08, Close, 61193.03\n", + "2024-05-09, Close, 63074.01\n", + "2024-05-10, Close, 60799.99\n", + "2024-05-11, Close, 60825.99\n", + "2024-05-12, Close, 61483.99\n", + "2024-05-13, Close, 62940.08\n", + "2024-05-14, Close, 61577.49\n", + "2024-05-15, Close, 66206.50\n", + "2024-05-16, Close, 65235.21\n", + "2024-05-17, Close, 67024.00\n", + "2024-05-18, Close, 66915.20\n", + "2024-05-19, Close, 66274.01\n", + "2024-05-20, Close, 71446.62\n", + "2024-05-20, BUY CREATE, 71446.62\n", + "2024-05-21, BUY EXECUTED, Price: 71446.62, Cost: 71446.62, Comm 142.89\n", + "2024-05-21, Close, 70148.34\n", + "2024-05-22, Close, 69166.62\n", + "2024-05-23, Close, 67969.65\n", + "2024-05-24, Close, 68549.99\n", + "2024-05-25, Close, 69290.57\n", + "2024-05-26, Close, 68507.67\n", + "2024-05-27, Close, 69436.43\n", + "2024-05-28, Close, 68398.39\n", + "2024-05-29, Close, 67652.42\n", + "2024-05-30, Close, 68352.17\n", + "2024-05-31, Close, 67540.01\n", + "2024-06-01, Close, 67766.85\n", + "2024-06-02, Close, 67765.63\n", + "2024-06-03, Close, 68809.90\n", + "2024-06-04, Close, 70537.84\n", + "2024-06-05, Close, 71108.00\n", + "2024-06-06, Close, 70799.06\n", + "2024-06-07, Close, 69355.60\n", + "2024-06-08, Close, 69310.46\n", + "2024-06-09, Close, 69648.14\n", + "2024-06-10, Close, 69540.00\n", + "2024-06-11, Close, 67314.24\n", + "2024-06-12, Close, 68263.99\n", + "2024-06-13, Close, 66773.01\n", + "2024-06-14, Close, 66043.99\n", + "2024-06-15, Close, 66228.25\n", + "2024-06-16, Close, 66676.87\n", + "2024-06-17, Close, 66504.33\n", + "2024-06-18, Close, 65175.32\n", + "2024-06-19, Close, 64974.37\n", + "2024-06-20, Close, 64869.99\n", + "2024-06-20, SELL CREATE, 64869.99\n", + "Ending Portfolio Value: 123561.10\n", + "Starting Portfolio Value: 100000\n", + "Ending Portfolio Value: 123561.09554000002\n", + "{'Starting Portfolio Value': 100000, 'Ending Portfolio Value': 123561.09554000002, 'Sharpe Ratio': 3.360025269585281, 'Max Drawdown': 13.10642999421397, 'Total Trades': 3, 'Winning Trades': 2, 'Losing Trades': 0, 'Total Return': 0.21156554848462109}\n" ] } ], "source": [ - "import os\n", - "import sys\n", - "import pandas as pd\n", - "from sqlalchemy import create_engine\n", - "import backtrader as bt\n", - "root_path = os.path.abspath(os.path.join(os.getcwd(), '..'))\n", - "sys.path.append(root_path)\n", - "print(sys.path)\n", - "\n", - "\n", - "from scripts.backtest_runner import fetch_data, RsiBollingerBandsStrategy, run_backtest\n", - "\n", - "rds_host = os.getenv('PG_HOST')\n", - "rds_port = os.getenv('PG_PORT')\n", - "rds_db = os.getenv('PG_DATABASE')\n", - "rds_user = os.getenv('PG_USER')\n", - "rds_password = os.getenv('PG_PASSWORD')\n", - "\n", - "engine = create_engine(f'postgresql+psycopg2://{rds_user}:{rds_password}@{rds_host}:{rds_port}/{rds_db}')\n" + "result = run_backtest(RefinedSMAStrategy, symbol, start_date, end_date)\n", + "print(f\"Starting Portfolio Value: {result['Starting Portfolio Value']}\")\n", + "print(f\"Ending Portfolio Value: {result['Ending Portfolio Value']}\")\n", + "print(result)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "# Parameters" + "## Note\n", + "- The RefinedSMAStrategy uses both a short-term and a long-term moving average to generate buy and sell signals, which is a common and effective approach in trading strategies." ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ - "symbol = 'BTC/USDT'\n", - "start_date = '2023-06-20'\n", - "end_date = '2024-06-20'" + "# Cryptocurrency Trading Backtesting for RSI and Bollinger Bands strategy\n", + "This notebook demonstrates the process of backtesting a cryptocurrency trading strategy using historical data. We will use the RSI and Bollinger Bands strategy to trade Bitcoin (BTC) against Tether (USDT)." ] }, { @@ -8531,7 +1560,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -8553,13 +1582,13 @@ "3 2023-06-23 29884.92 31431.94 29800.00 30688.50 73931.89635\n", "4 2023-06-24 30688.51 30800.00 30250.00 30527.43 30513.30135\n", "\n", - "Starting Portfolio Value: 10000.00\n", - "Ending Portfolio Value: 10000.00\n" + "Starting Portfolio Value: 100000.00\n", + "Ending Portfolio Value: 100479.17\n" ] }, { "data": { - "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute('tabindex', '0');\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;' +\n 'z-index: 2;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key_event(event, name);\n };\n }\n\n canvas_div.addEventListener(\n 'keydown',\n on_keyboard_event_closure('key_press')\n );\n canvas_div.addEventListener(\n 'keyup',\n on_keyboard_event_closure('key_release')\n );\n\n this._canvas_extra_style(canvas_div);\n this.root.appendChild(canvas_div);\n\n var canvas = (this.canvas = document.createElement('canvas'));\n canvas.classList.add('mpl-canvas');\n canvas.setAttribute(\n 'style',\n 'box-sizing: content-box;' +\n 'pointer-events: none;' +\n 'position: relative;' +\n 'z-index: 0;'\n );\n\n this.context = canvas.getContext('2d');\n\n var backingStore =\n this.context.backingStorePixelRatio ||\n this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio ||\n 1;\n\n this.ratio = (window.devicePixelRatio || 1) / backingStore;\n\n var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n 'canvas'\n ));\n rubberband_canvas.setAttribute(\n 'style',\n 'box-sizing: content-box;' +\n 'left: 0;' +\n 'pointer-events: none;' +\n 'position: absolute;' +\n 'top: 0;' +\n 'z-index: 1;'\n );\n\n // Apply a ponyfill if ResizeObserver is not implemented by browser.\n if (this.ResizeObserver === undefined) {\n if (window.ResizeObserver !== undefined) {\n this.ResizeObserver = window.ResizeObserver;\n } else {\n var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n this.ResizeObserver = obs.ResizeObserver;\n }\n }\n\n this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n var nentries = entries.length;\n for (var i = 0; i < nentries; i++) {\n var entry = entries[i];\n var width, height;\n if (entry.contentBoxSize) {\n if (entry.contentBoxSize instanceof Array) {\n // Chrome 84 implements new version of spec.\n width = entry.contentBoxSize[0].inlineSize;\n height = entry.contentBoxSize[0].blockSize;\n } else {\n // Firefox implements old version of spec.\n width = entry.contentBoxSize.inlineSize;\n height = entry.contentBoxSize.blockSize;\n }\n } else {\n // Chrome <84 implements even older version of spec.\n width = entry.contentRect.width;\n height = entry.contentRect.height;\n }\n\n // Keep the size of the canvas and rubber band canvas in sync with\n // the canvas container.\n if (entry.devicePixelContentBoxSize) {\n // Chrome 84 implements new version of spec.\n canvas.setAttribute(\n 'width',\n entry.devicePixelContentBoxSize[0].inlineSize\n );\n canvas.setAttribute(\n 'height',\n entry.devicePixelContentBoxSize[0].blockSize\n );\n } else {\n canvas.setAttribute('width', width * fig.ratio);\n canvas.setAttribute('height', height * fig.ratio);\n }\n /* This rescales the canvas back to display pixels, so that it\n * appears correct on HiDPI screens. */\n canvas.style.width = width + 'px';\n canvas.style.height = height + 'px';\n\n rubberband_canvas.setAttribute('width', width);\n rubberband_canvas.setAttribute('height', height);\n\n // And update the size in Python. We ignore the initial 0/0 size\n // that occurs as the element is placed into the DOM, which should\n // otherwise not happen due to the minimum size styling.\n if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n fig.request_resize(width, height);\n }\n }\n });\n this.resizeObserverInstance.observe(canvas_div);\n\n function on_mouse_event_closure(name) {\n /* User Agent sniffing is bad, but WebKit is busted:\n * https://bugs.webkit.org/show_bug.cgi?id=144526\n * https://bugs.webkit.org/show_bug.cgi?id=181818\n * The worst that happens here is that they get an extra browser\n * selection when dragging, if this check fails to catch them.\n */\n var UA = navigator.userAgent;\n var isWebKit = /AppleWebKit/.test(UA) && !/Chrome/.test(UA);\n if(isWebKit) {\n return function (event) {\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We\n * want to control all of the cursor setting manually through\n * the 'cursor' event from matplotlib */\n event.preventDefault()\n return fig.mouse_event(event, name);\n };\n } else {\n return function (event) {\n return fig.mouse_event(event, name);\n };\n }\n }\n\n canvas_div.addEventListener(\n 'mousedown',\n on_mouse_event_closure('button_press')\n );\n canvas_div.addEventListener(\n 'mouseup',\n on_mouse_event_closure('button_release')\n );\n canvas_div.addEventListener(\n 'dblclick',\n on_mouse_event_closure('dblclick')\n );\n // Throttle sequential mouse events to 1 every 20ms.\n canvas_div.addEventListener(\n 'mousemove',\n on_mouse_event_closure('motion_notify')\n );\n\n canvas_div.addEventListener(\n 'mouseenter',\n on_mouse_event_closure('figure_enter')\n );\n canvas_div.addEventListener(\n 'mouseleave',\n on_mouse_event_closure('figure_leave')\n );\n\n canvas_div.addEventListener('wheel', function (event) {\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n on_mouse_event_closure('scroll')(event);\n });\n\n canvas_div.appendChild(canvas);\n canvas_div.appendChild(rubberband_canvas);\n\n this.rubberband_context = rubberband_canvas.getContext('2d');\n this.rubberband_context.strokeStyle = '#000000';\n\n this._resize_canvas = function (width, height, forward) {\n if (forward) {\n canvas_div.style.width = width + 'px';\n canvas_div.style.height = height + 'px';\n }\n };\n\n // Disable right mouse context menu.\n canvas_div.addEventListener('contextmenu', function (_e) {\n event.preventDefault();\n return false;\n });\n\n function set_focus() {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'mpl-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n continue;\n }\n\n var button = (fig.buttons[name] = document.createElement('button'));\n button.classList = 'mpl-widget';\n button.setAttribute('role', 'button');\n button.setAttribute('aria-disabled', 'false');\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n\n var icon_img = document.createElement('img');\n icon_img.src = '_images/' + image + '.png';\n icon_img.srcset = '_images/' + image + '_large.png 2x';\n icon_img.alt = tooltip;\n button.appendChild(icon_img);\n\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n var fmt_picker = document.createElement('select');\n fmt_picker.classList = 'mpl-widget';\n toolbar.appendChild(fmt_picker);\n this.format_dropdown = fmt_picker;\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = document.createElement('option');\n option.selected = fmt === mpl.default_extension;\n option.innerHTML = fmt;\n fmt_picker.appendChild(option);\n }\n\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n};\n\nmpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', { width: x_pixels, height: y_pixels });\n};\n\nmpl.figure.prototype.send_message = function (type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n};\n\nmpl.figure.prototype.send_draw_message = function () {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n};\n\nmpl.figure.prototype.handle_resize = function (fig, msg) {\n var size = msg['size'];\n if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n fig._resize_canvas(size[0], size[1], msg['forward']);\n fig.send_message('refresh', {});\n }\n};\n\nmpl.figure.prototype.handle_rubberband = function (fig, msg) {\n var x0 = msg['x0'] / fig.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n var x1 = msg['x1'] / fig.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0,\n 0,\n fig.canvas.width / fig.ratio,\n fig.canvas.height / fig.ratio\n );\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n};\n\nmpl.figure.prototype.handle_figure_label = function (fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n};\n\nmpl.figure.prototype.handle_cursor = function (fig, msg) {\n fig.canvas_div.style.cursor = msg['cursor'];\n};\n\nmpl.figure.prototype.handle_message = function (fig, msg) {\n fig.message.textContent = msg['message'];\n};\n\nmpl.figure.prototype.handle_draw = function (fig, _msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n};\n\nmpl.figure.prototype.handle_image_mode = function (fig, msg) {\n fig.image_mode = msg['mode'];\n};\n\nmpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n for (var key in msg) {\n if (!(key in fig.buttons)) {\n continue;\n }\n fig.buttons[key].disabled = !msg[key];\n fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n }\n};\n\nmpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n if (msg['mode'] === 'PAN') {\n fig.buttons['Pan'].classList.add('active');\n fig.buttons['Zoom'].classList.remove('active');\n } else if (msg['mode'] === 'ZOOM') {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.add('active');\n } else {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.remove('active');\n }\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Called whenever the canvas gets updated.\n this.send_message('ack', {});\n};\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function (fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n var img = evt.data;\n if (img.type !== 'image/png') {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n img.type = 'image/png';\n }\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src\n );\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n img\n );\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n } else if (\n typeof evt.data === 'string' &&\n evt.data.slice(0, 21) === 'data:image/png;base64'\n ) {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig['handle_' + msg_type];\n } catch (e) {\n console.log(\n \"No handler for the '\" + msg_type + \"' message type: \",\n msg\n );\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\n \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n e,\n e.stack,\n msg\n );\n }\n }\n };\n};\n\nfunction getModifiers(event) {\n var mods = [];\n if (event.ctrlKey) {\n mods.push('ctrl');\n }\n if (event.altKey) {\n mods.push('alt');\n }\n if (event.shiftKey) {\n mods.push('shift');\n }\n if (event.metaKey) {\n mods.push('meta');\n }\n return mods;\n}\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * https://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys(original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object') {\n obj[key] = original[key];\n }\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function (event, name) {\n if (name === 'button_press') {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n // from https://stackoverflow.com/q/1114465\n var boundingRect = this.canvas.getBoundingClientRect();\n var x = (event.clientX - boundingRect.left) * this.ratio;\n var y = (event.clientY - boundingRect.top) * this.ratio;\n\n this.send_message(name, {\n x: x,\n y: y,\n button: event.button,\n step: event.step,\n modifiers: getModifiers(event),\n guiEvent: simpleKeys(event),\n });\n\n return false;\n};\n\nmpl.figure.prototype._key_event_extra = function (_event, _name) {\n // Handle any extra behaviour associated with a key event\n};\n\nmpl.figure.prototype.key_event = function (event, name) {\n // Prevent repeat events\n if (name === 'key_press') {\n if (event.key === this._key) {\n return;\n } else {\n this._key = event.key;\n }\n }\n if (name === 'key_release') {\n this._key = null;\n }\n\n var value = '';\n if (event.ctrlKey && event.key !== 'Control') {\n value += 'ctrl+';\n }\n else if (event.altKey && event.key !== 'Alt') {\n value += 'alt+';\n }\n else if (event.shiftKey && event.key !== 'Shift') {\n value += 'shift+';\n }\n\n value += 'k' + event.key;\n\n this._key_event_extra(event, name);\n\n this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n return false;\n};\n\nmpl.figure.prototype.toolbar_button_onclick = function (name) {\n if (name === 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message('toolbar_button', { name: name });\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n this.message.textContent = tooltip;\n};\n\n///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n// prettier-ignore\nvar _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis\", \"fa fa-square-o\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pgf\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\", \"webp\"];\n\nmpl.default_extension = \"png\";/* global mpl */\n\nvar comm_websocket_adapter = function (comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.binaryType = comm.kernel.ws.binaryType;\n ws.readyState = comm.kernel.ws.readyState;\n function updateReadyState(_event) {\n if (comm.kernel.ws) {\n ws.readyState = comm.kernel.ws.readyState;\n } else {\n ws.readyState = 3; // Closed state.\n }\n }\n comm.kernel.ws.addEventListener('open', updateReadyState);\n comm.kernel.ws.addEventListener('close', updateReadyState);\n comm.kernel.ws.addEventListener('error', updateReadyState);\n\n ws.close = function () {\n comm.close();\n };\n ws.send = function (m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function (msg) {\n //console.log('receiving', msg['content']['data'], msg);\n var data = msg['content']['data'];\n if (data['blob'] !== undefined) {\n data = {\n data: new Blob(msg['buffers'], { type: data['blob'] }),\n };\n }\n // Pass the mpl event to the overridden (by mpl) onmessage function.\n ws.onmessage(data);\n });\n return ws;\n};\n\nmpl.mpl_figure_comm = function (comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = document.getElementById(id);\n var ws_proxy = comm_websocket_adapter(comm);\n\n function ondownload(figure, _format) {\n window.open(figure.canvas.toDataURL());\n }\n\n var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element;\n fig.cell_info = mpl.find_output_cell(\"
\");\n if (!fig.cell_info) {\n console.error('Failed to find cell for figure', id, fig);\n return;\n }\n fig.cell_info[0].output_area.element.on(\n 'cleared',\n { fig: fig },\n fig._remove_fig_handler\n );\n};\n\nmpl.figure.prototype.handle_close = function (fig, msg) {\n var width = fig.canvas.width / fig.ratio;\n fig.cell_info[0].output_area.element.off(\n 'cleared',\n fig._remove_fig_handler\n );\n fig.resizeObserverInstance.unobserve(fig.canvas_div);\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable();\n fig.parent_element.innerHTML =\n '';\n fig.close_ws(fig, msg);\n};\n\nmpl.figure.prototype.close_ws = function (fig, msg) {\n fig.send_message('closing', msg);\n // fig.ws.close()\n};\n\nmpl.figure.prototype.push_to_output = function (_remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width / this.ratio;\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] =\n '';\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message('ack', {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () {\n fig.push_to_output();\n }, 1000);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'btn-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n var button;\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n continue;\n }\n\n button = fig.buttons[name] = document.createElement('button');\n button.classList = 'btn btn-default';\n button.href = '#';\n button.title = name;\n button.innerHTML = '';\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n // Add the status bar.\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message pull-right';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n\n // Add the close button to the window.\n var buttongrp = document.createElement('div');\n buttongrp.classList = 'btn-group inline pull-right';\n button = document.createElement('button');\n button.classList = 'btn btn-mini btn-primary';\n button.href = '#';\n button.title = 'Stop Interaction';\n button.innerHTML = '';\n button.addEventListener('click', function (_evt) {\n fig.handle_close(fig, {});\n });\n button.addEventListener(\n 'mouseover',\n on_mouseover_closure('Stop Interaction')\n );\n buttongrp.appendChild(button);\n var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n titlebar.insertBefore(buttongrp, titlebar.firstChild);\n};\n\nmpl.figure.prototype._remove_fig_handler = function (event) {\n var fig = event.data.fig;\n if (event.target !== this) {\n // Ignore bubbled events from children.\n return;\n }\n fig.close_ws(fig, {});\n};\n\nmpl.figure.prototype._root_extra_style = function (el) {\n el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n};\n\nmpl.figure.prototype._canvas_extra_style = function (el) {\n // this is important to make the div 'focusable\n el.setAttribute('tabindex', 0);\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n } else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n};\n\nmpl.figure.prototype._key_event_extra = function (event, _name) {\n // Check for shift+enter\n if (event.shiftKey && event.which === 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n fig.ondownload(fig, null);\n};\n\nmpl.find_output_cell = function (html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i = 0; i < ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code') {\n for (var j = 0; j < cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] === html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n};\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel !== null) {\n IPython.notebook.kernel.comm_manager.register_target(\n 'matplotlib',\n mpl.mpl_figure_comm\n );\n}\n", + "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute('tabindex', '0');\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;' +\n 'z-index: 2;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key_event(event, name);\n };\n }\n\n canvas_div.addEventListener(\n 'keydown',\n on_keyboard_event_closure('key_press')\n );\n canvas_div.addEventListener(\n 'keyup',\n on_keyboard_event_closure('key_release')\n );\n\n this._canvas_extra_style(canvas_div);\n this.root.appendChild(canvas_div);\n\n var canvas = (this.canvas = document.createElement('canvas'));\n canvas.classList.add('mpl-canvas');\n canvas.setAttribute(\n 'style',\n 'box-sizing: content-box;' +\n 'pointer-events: none;' +\n 'position: relative;' +\n 'z-index: 0;'\n );\n\n this.context = canvas.getContext('2d');\n\n var backingStore =\n this.context.backingStorePixelRatio ||\n this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio ||\n 1;\n\n this.ratio = (window.devicePixelRatio || 1) / backingStore;\n\n var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n 'canvas'\n ));\n rubberband_canvas.setAttribute(\n 'style',\n 'box-sizing: content-box;' +\n 'left: 0;' +\n 'pointer-events: none;' +\n 'position: absolute;' +\n 'top: 0;' +\n 'z-index: 1;'\n );\n\n // Apply a ponyfill if ResizeObserver is not implemented by browser.\n if (this.ResizeObserver === undefined) {\n if (window.ResizeObserver !== undefined) {\n this.ResizeObserver = window.ResizeObserver;\n } else {\n var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n this.ResizeObserver = obs.ResizeObserver;\n }\n }\n\n this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n // There's no need to resize if the WebSocket is not connected:\n // - If it is still connecting, then we will get an initial resize from\n // Python once it connects.\n // - If it has disconnected, then resizing will clear the canvas and\n // never get anything back to refill it, so better to not resize and\n // keep something visible.\n if (fig.ws.readyState != 1) {\n return;\n }\n var nentries = entries.length;\n for (var i = 0; i < nentries; i++) {\n var entry = entries[i];\n var width, height;\n if (entry.contentBoxSize) {\n if (entry.contentBoxSize instanceof Array) {\n // Chrome 84 implements new version of spec.\n width = entry.contentBoxSize[0].inlineSize;\n height = entry.contentBoxSize[0].blockSize;\n } else {\n // Firefox implements old version of spec.\n width = entry.contentBoxSize.inlineSize;\n height = entry.contentBoxSize.blockSize;\n }\n } else {\n // Chrome <84 implements even older version of spec.\n width = entry.contentRect.width;\n height = entry.contentRect.height;\n }\n\n // Keep the size of the canvas and rubber band canvas in sync with\n // the canvas container.\n if (entry.devicePixelContentBoxSize) {\n // Chrome 84 implements new version of spec.\n canvas.setAttribute(\n 'width',\n entry.devicePixelContentBoxSize[0].inlineSize\n );\n canvas.setAttribute(\n 'height',\n entry.devicePixelContentBoxSize[0].blockSize\n );\n } else {\n canvas.setAttribute('width', width * fig.ratio);\n canvas.setAttribute('height', height * fig.ratio);\n }\n /* This rescales the canvas back to display pixels, so that it\n * appears correct on HiDPI screens. */\n canvas.style.width = width + 'px';\n canvas.style.height = height + 'px';\n\n rubberband_canvas.setAttribute('width', width);\n rubberband_canvas.setAttribute('height', height);\n\n // And update the size in Python. We ignore the initial 0/0 size\n // that occurs as the element is placed into the DOM, which should\n // otherwise not happen due to the minimum size styling.\n if (width != 0 && height != 0) {\n fig.request_resize(width, height);\n }\n }\n });\n this.resizeObserverInstance.observe(canvas_div);\n\n function on_mouse_event_closure(name) {\n /* User Agent sniffing is bad, but WebKit is busted:\n * https://bugs.webkit.org/show_bug.cgi?id=144526\n * https://bugs.webkit.org/show_bug.cgi?id=181818\n * The worst that happens here is that they get an extra browser\n * selection when dragging, if this check fails to catch them.\n */\n var UA = navigator.userAgent;\n var isWebKit = /AppleWebKit/.test(UA) && !/Chrome/.test(UA);\n if(isWebKit) {\n return function (event) {\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We\n * want to control all of the cursor setting manually through\n * the 'cursor' event from matplotlib */\n event.preventDefault()\n return fig.mouse_event(event, name);\n };\n } else {\n return function (event) {\n return fig.mouse_event(event, name);\n };\n }\n }\n\n canvas_div.addEventListener(\n 'mousedown',\n on_mouse_event_closure('button_press')\n );\n canvas_div.addEventListener(\n 'mouseup',\n on_mouse_event_closure('button_release')\n );\n canvas_div.addEventListener(\n 'dblclick',\n on_mouse_event_closure('dblclick')\n );\n // Throttle sequential mouse events to 1 every 20ms.\n canvas_div.addEventListener(\n 'mousemove',\n on_mouse_event_closure('motion_notify')\n );\n\n canvas_div.addEventListener(\n 'mouseenter',\n on_mouse_event_closure('figure_enter')\n );\n canvas_div.addEventListener(\n 'mouseleave',\n on_mouse_event_closure('figure_leave')\n );\n\n canvas_div.addEventListener('wheel', function (event) {\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n on_mouse_event_closure('scroll')(event);\n });\n\n canvas_div.appendChild(canvas);\n canvas_div.appendChild(rubberband_canvas);\n\n this.rubberband_context = rubberband_canvas.getContext('2d');\n this.rubberband_context.strokeStyle = '#000000';\n\n this._resize_canvas = function (width, height, forward) {\n if (forward) {\n canvas_div.style.width = width + 'px';\n canvas_div.style.height = height + 'px';\n }\n };\n\n // Disable right mouse context menu.\n canvas_div.addEventListener('contextmenu', function (_e) {\n event.preventDefault();\n return false;\n });\n\n function set_focus() {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'mpl-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n continue;\n }\n\n var button = (fig.buttons[name] = document.createElement('button'));\n button.classList = 'mpl-widget';\n button.setAttribute('role', 'button');\n button.setAttribute('aria-disabled', 'false');\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n\n var icon_img = document.createElement('img');\n icon_img.src = '_images/' + image + '.png';\n icon_img.srcset = '_images/' + image + '_large.png 2x';\n icon_img.alt = tooltip;\n button.appendChild(icon_img);\n\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n var fmt_picker = document.createElement('select');\n fmt_picker.classList = 'mpl-widget';\n toolbar.appendChild(fmt_picker);\n this.format_dropdown = fmt_picker;\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = document.createElement('option');\n option.selected = fmt === mpl.default_extension;\n option.innerHTML = fmt;\n fmt_picker.appendChild(option);\n }\n\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n};\n\nmpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', { width: x_pixels, height: y_pixels });\n};\n\nmpl.figure.prototype.send_message = function (type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n};\n\nmpl.figure.prototype.send_draw_message = function () {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n};\n\nmpl.figure.prototype.handle_resize = function (fig, msg) {\n var size = msg['size'];\n if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n fig._resize_canvas(size[0], size[1], msg['forward']);\n fig.send_message('refresh', {});\n }\n};\n\nmpl.figure.prototype.handle_rubberband = function (fig, msg) {\n var x0 = msg['x0'] / fig.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n var x1 = msg['x1'] / fig.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0,\n 0,\n fig.canvas.width / fig.ratio,\n fig.canvas.height / fig.ratio\n );\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n};\n\nmpl.figure.prototype.handle_figure_label = function (fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n};\n\nmpl.figure.prototype.handle_cursor = function (fig, msg) {\n fig.canvas_div.style.cursor = msg['cursor'];\n};\n\nmpl.figure.prototype.handle_message = function (fig, msg) {\n fig.message.textContent = msg['message'];\n};\n\nmpl.figure.prototype.handle_draw = function (fig, _msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n};\n\nmpl.figure.prototype.handle_image_mode = function (fig, msg) {\n fig.image_mode = msg['mode'];\n};\n\nmpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n for (var key in msg) {\n if (!(key in fig.buttons)) {\n continue;\n }\n fig.buttons[key].disabled = !msg[key];\n fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n }\n};\n\nmpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n if (msg['mode'] === 'PAN') {\n fig.buttons['Pan'].classList.add('active');\n fig.buttons['Zoom'].classList.remove('active');\n } else if (msg['mode'] === 'ZOOM') {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.add('active');\n } else {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.remove('active');\n }\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Called whenever the canvas gets updated.\n this.send_message('ack', {});\n};\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function (fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n var img = evt.data;\n if (img.type !== 'image/png') {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n img.type = 'image/png';\n }\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src\n );\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n img\n );\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n } else if (\n typeof evt.data === 'string' &&\n evt.data.slice(0, 21) === 'data:image/png;base64'\n ) {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig['handle_' + msg_type];\n } catch (e) {\n console.log(\n \"No handler for the '\" + msg_type + \"' message type: \",\n msg\n );\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\n \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n e,\n e.stack,\n msg\n );\n }\n }\n };\n};\n\nfunction getModifiers(event) {\n var mods = [];\n if (event.ctrlKey) {\n mods.push('ctrl');\n }\n if (event.altKey) {\n mods.push('alt');\n }\n if (event.shiftKey) {\n mods.push('shift');\n }\n if (event.metaKey) {\n mods.push('meta');\n }\n return mods;\n}\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * https://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys(original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object') {\n obj[key] = original[key];\n }\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function (event, name) {\n if (name === 'button_press') {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n // from https://stackoverflow.com/q/1114465\n var boundingRect = this.canvas.getBoundingClientRect();\n var x = (event.clientX - boundingRect.left) * this.ratio;\n var y = (event.clientY - boundingRect.top) * this.ratio;\n\n this.send_message(name, {\n x: x,\n y: y,\n button: event.button,\n step: event.step,\n modifiers: getModifiers(event),\n guiEvent: simpleKeys(event),\n });\n\n return false;\n};\n\nmpl.figure.prototype._key_event_extra = function (_event, _name) {\n // Handle any extra behaviour associated with a key event\n};\n\nmpl.figure.prototype.key_event = function (event, name) {\n // Prevent repeat events\n if (name === 'key_press') {\n if (event.key === this._key) {\n return;\n } else {\n this._key = event.key;\n }\n }\n if (name === 'key_release') {\n this._key = null;\n }\n\n var value = '';\n if (event.ctrlKey && event.key !== 'Control') {\n value += 'ctrl+';\n }\n else if (event.altKey && event.key !== 'Alt') {\n value += 'alt+';\n }\n else if (event.shiftKey && event.key !== 'Shift') {\n value += 'shift+';\n }\n\n value += 'k' + event.key;\n\n this._key_event_extra(event, name);\n\n this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n return false;\n};\n\nmpl.figure.prototype.toolbar_button_onclick = function (name) {\n if (name === 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message('toolbar_button', { name: name });\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n this.message.textContent = tooltip;\n};\n\n///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n// prettier-ignore\nvar _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis\", \"fa fa-square-o\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pgf\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\", \"webp\"];\n\nmpl.default_extension = \"png\";/* global mpl */\n\nvar comm_websocket_adapter = function (comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.binaryType = comm.kernel.ws.binaryType;\n ws.readyState = comm.kernel.ws.readyState;\n function updateReadyState(_event) {\n if (comm.kernel.ws) {\n ws.readyState = comm.kernel.ws.readyState;\n } else {\n ws.readyState = 3; // Closed state.\n }\n }\n comm.kernel.ws.addEventListener('open', updateReadyState);\n comm.kernel.ws.addEventListener('close', updateReadyState);\n comm.kernel.ws.addEventListener('error', updateReadyState);\n\n ws.close = function () {\n comm.close();\n };\n ws.send = function (m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function (msg) {\n //console.log('receiving', msg['content']['data'], msg);\n var data = msg['content']['data'];\n if (data['blob'] !== undefined) {\n data = {\n data: new Blob(msg['buffers'], { type: data['blob'] }),\n };\n }\n // Pass the mpl event to the overridden (by mpl) onmessage function.\n ws.onmessage(data);\n });\n return ws;\n};\n\nmpl.mpl_figure_comm = function (comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = document.getElementById(id);\n var ws_proxy = comm_websocket_adapter(comm);\n\n function ondownload(figure, _format) {\n window.open(figure.canvas.toDataURL());\n }\n\n var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element;\n fig.cell_info = mpl.find_output_cell(\"
\");\n if (!fig.cell_info) {\n console.error('Failed to find cell for figure', id, fig);\n return;\n }\n fig.cell_info[0].output_area.element.on(\n 'cleared',\n { fig: fig },\n fig._remove_fig_handler\n );\n};\n\nmpl.figure.prototype.handle_close = function (fig, msg) {\n var width = fig.canvas.width / fig.ratio;\n fig.cell_info[0].output_area.element.off(\n 'cleared',\n fig._remove_fig_handler\n );\n fig.resizeObserverInstance.unobserve(fig.canvas_div);\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable();\n fig.parent_element.innerHTML =\n '';\n fig.close_ws(fig, msg);\n};\n\nmpl.figure.prototype.close_ws = function (fig, msg) {\n fig.send_message('closing', msg);\n // fig.ws.close()\n};\n\nmpl.figure.prototype.push_to_output = function (_remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width / this.ratio;\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] =\n '';\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message('ack', {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () {\n fig.push_to_output();\n }, 1000);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'btn-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n var button;\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n continue;\n }\n\n button = fig.buttons[name] = document.createElement('button');\n button.classList = 'btn btn-default';\n button.href = '#';\n button.title = name;\n button.innerHTML = '';\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n // Add the status bar.\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message pull-right';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n\n // Add the close button to the window.\n var buttongrp = document.createElement('div');\n buttongrp.classList = 'btn-group inline pull-right';\n button = document.createElement('button');\n button.classList = 'btn btn-mini btn-primary';\n button.href = '#';\n button.title = 'Stop Interaction';\n button.innerHTML = '';\n button.addEventListener('click', function (_evt) {\n fig.handle_close(fig, {});\n });\n button.addEventListener(\n 'mouseover',\n on_mouseover_closure('Stop Interaction')\n );\n buttongrp.appendChild(button);\n var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n titlebar.insertBefore(buttongrp, titlebar.firstChild);\n};\n\nmpl.figure.prototype._remove_fig_handler = function (event) {\n var fig = event.data.fig;\n if (event.target !== this) {\n // Ignore bubbled events from children.\n return;\n }\n fig.close_ws(fig, {});\n};\n\nmpl.figure.prototype._root_extra_style = function (el) {\n el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n};\n\nmpl.figure.prototype._canvas_extra_style = function (el) {\n // this is important to make the div 'focusable\n el.setAttribute('tabindex', 0);\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n } else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n};\n\nmpl.figure.prototype._key_event_extra = function (event, _name) {\n // Check for shift+enter\n if (event.shiftKey && event.which === 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n fig.ondownload(fig, null);\n};\n\nmpl.find_output_cell = function (html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i = 0; i < ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code') {\n for (var j = 0; j < cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] === html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n};\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel !== null) {\n IPython.notebook.kernel.comm_manager.register_target(\n 'matplotlib',\n mpl.mpl_figure_comm\n );\n}\n", "text/plain": [ "" ] @@ -8570,7 +1599,7 @@ { "data": { "text/html": [ - "
" + "
" ], "text/plain": [ "" @@ -8583,7 +1612,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "None\n" + "{'Starting Portfolio Value': 100000, 'Ending Portfolio Value': 100479.17268, 'Sharpe Ratio': -3.173860663341704, 'Max Drawdown': 2.5275415753733292, 'Total Trades': 1, 'Winning Trades': 1, 'Losing Trades': 0, 'Total Return': 0.004780283019556264}\n" ] } ], @@ -8601,7 +1630,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": {}, "outputs": [ { @@ -8716,8 +1745,9 @@ "2023-06-24 30688.51 30800.00 30250.00 30527.43 30513.30135" ] }, + "execution_count": 15, "metadata": {}, - "output_type": "display_data" + "output_type": "execute_result" } ], "source": [ @@ -8735,12 +1765,12 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { - "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute('tabindex', '0');\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;' +\n 'z-index: 2;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key_event(event, name);\n };\n }\n\n canvas_div.addEventListener(\n 'keydown',\n on_keyboard_event_closure('key_press')\n );\n canvas_div.addEventListener(\n 'keyup',\n on_keyboard_event_closure('key_release')\n );\n\n this._canvas_extra_style(canvas_div);\n this.root.appendChild(canvas_div);\n\n var canvas = (this.canvas = document.createElement('canvas'));\n canvas.classList.add('mpl-canvas');\n canvas.setAttribute(\n 'style',\n 'box-sizing: content-box;' +\n 'pointer-events: none;' +\n 'position: relative;' +\n 'z-index: 0;'\n );\n\n this.context = canvas.getContext('2d');\n\n var backingStore =\n this.context.backingStorePixelRatio ||\n this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio ||\n 1;\n\n this.ratio = (window.devicePixelRatio || 1) / backingStore;\n\n var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n 'canvas'\n ));\n rubberband_canvas.setAttribute(\n 'style',\n 'box-sizing: content-box;' +\n 'left: 0;' +\n 'pointer-events: none;' +\n 'position: absolute;' +\n 'top: 0;' +\n 'z-index: 1;'\n );\n\n // Apply a ponyfill if ResizeObserver is not implemented by browser.\n if (this.ResizeObserver === undefined) {\n if (window.ResizeObserver !== undefined) {\n this.ResizeObserver = window.ResizeObserver;\n } else {\n var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n this.ResizeObserver = obs.ResizeObserver;\n }\n }\n\n this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n var nentries = entries.length;\n for (var i = 0; i < nentries; i++) {\n var entry = entries[i];\n var width, height;\n if (entry.contentBoxSize) {\n if (entry.contentBoxSize instanceof Array) {\n // Chrome 84 implements new version of spec.\n width = entry.contentBoxSize[0].inlineSize;\n height = entry.contentBoxSize[0].blockSize;\n } else {\n // Firefox implements old version of spec.\n width = entry.contentBoxSize.inlineSize;\n height = entry.contentBoxSize.blockSize;\n }\n } else {\n // Chrome <84 implements even older version of spec.\n width = entry.contentRect.width;\n height = entry.contentRect.height;\n }\n\n // Keep the size of the canvas and rubber band canvas in sync with\n // the canvas container.\n if (entry.devicePixelContentBoxSize) {\n // Chrome 84 implements new version of spec.\n canvas.setAttribute(\n 'width',\n entry.devicePixelContentBoxSize[0].inlineSize\n );\n canvas.setAttribute(\n 'height',\n entry.devicePixelContentBoxSize[0].blockSize\n );\n } else {\n canvas.setAttribute('width', width * fig.ratio);\n canvas.setAttribute('height', height * fig.ratio);\n }\n /* This rescales the canvas back to display pixels, so that it\n * appears correct on HiDPI screens. */\n canvas.style.width = width + 'px';\n canvas.style.height = height + 'px';\n\n rubberband_canvas.setAttribute('width', width);\n rubberband_canvas.setAttribute('height', height);\n\n // And update the size in Python. We ignore the initial 0/0 size\n // that occurs as the element is placed into the DOM, which should\n // otherwise not happen due to the minimum size styling.\n if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n fig.request_resize(width, height);\n }\n }\n });\n this.resizeObserverInstance.observe(canvas_div);\n\n function on_mouse_event_closure(name) {\n /* User Agent sniffing is bad, but WebKit is busted:\n * https://bugs.webkit.org/show_bug.cgi?id=144526\n * https://bugs.webkit.org/show_bug.cgi?id=181818\n * The worst that happens here is that they get an extra browser\n * selection when dragging, if this check fails to catch them.\n */\n var UA = navigator.userAgent;\n var isWebKit = /AppleWebKit/.test(UA) && !/Chrome/.test(UA);\n if(isWebKit) {\n return function (event) {\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We\n * want to control all of the cursor setting manually through\n * the 'cursor' event from matplotlib */\n event.preventDefault()\n return fig.mouse_event(event, name);\n };\n } else {\n return function (event) {\n return fig.mouse_event(event, name);\n };\n }\n }\n\n canvas_div.addEventListener(\n 'mousedown',\n on_mouse_event_closure('button_press')\n );\n canvas_div.addEventListener(\n 'mouseup',\n on_mouse_event_closure('button_release')\n );\n canvas_div.addEventListener(\n 'dblclick',\n on_mouse_event_closure('dblclick')\n );\n // Throttle sequential mouse events to 1 every 20ms.\n canvas_div.addEventListener(\n 'mousemove',\n on_mouse_event_closure('motion_notify')\n );\n\n canvas_div.addEventListener(\n 'mouseenter',\n on_mouse_event_closure('figure_enter')\n );\n canvas_div.addEventListener(\n 'mouseleave',\n on_mouse_event_closure('figure_leave')\n );\n\n canvas_div.addEventListener('wheel', function (event) {\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n on_mouse_event_closure('scroll')(event);\n });\n\n canvas_div.appendChild(canvas);\n canvas_div.appendChild(rubberband_canvas);\n\n this.rubberband_context = rubberband_canvas.getContext('2d');\n this.rubberband_context.strokeStyle = '#000000';\n\n this._resize_canvas = function (width, height, forward) {\n if (forward) {\n canvas_div.style.width = width + 'px';\n canvas_div.style.height = height + 'px';\n }\n };\n\n // Disable right mouse context menu.\n canvas_div.addEventListener('contextmenu', function (_e) {\n event.preventDefault();\n return false;\n });\n\n function set_focus() {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'mpl-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n continue;\n }\n\n var button = (fig.buttons[name] = document.createElement('button'));\n button.classList = 'mpl-widget';\n button.setAttribute('role', 'button');\n button.setAttribute('aria-disabled', 'false');\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n\n var icon_img = document.createElement('img');\n icon_img.src = '_images/' + image + '.png';\n icon_img.srcset = '_images/' + image + '_large.png 2x';\n icon_img.alt = tooltip;\n button.appendChild(icon_img);\n\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n var fmt_picker = document.createElement('select');\n fmt_picker.classList = 'mpl-widget';\n toolbar.appendChild(fmt_picker);\n this.format_dropdown = fmt_picker;\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = document.createElement('option');\n option.selected = fmt === mpl.default_extension;\n option.innerHTML = fmt;\n fmt_picker.appendChild(option);\n }\n\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n};\n\nmpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', { width: x_pixels, height: y_pixels });\n};\n\nmpl.figure.prototype.send_message = function (type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n};\n\nmpl.figure.prototype.send_draw_message = function () {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n};\n\nmpl.figure.prototype.handle_resize = function (fig, msg) {\n var size = msg['size'];\n if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n fig._resize_canvas(size[0], size[1], msg['forward']);\n fig.send_message('refresh', {});\n }\n};\n\nmpl.figure.prototype.handle_rubberband = function (fig, msg) {\n var x0 = msg['x0'] / fig.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n var x1 = msg['x1'] / fig.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0,\n 0,\n fig.canvas.width / fig.ratio,\n fig.canvas.height / fig.ratio\n );\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n};\n\nmpl.figure.prototype.handle_figure_label = function (fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n};\n\nmpl.figure.prototype.handle_cursor = function (fig, msg) {\n fig.canvas_div.style.cursor = msg['cursor'];\n};\n\nmpl.figure.prototype.handle_message = function (fig, msg) {\n fig.message.textContent = msg['message'];\n};\n\nmpl.figure.prototype.handle_draw = function (fig, _msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n};\n\nmpl.figure.prototype.handle_image_mode = function (fig, msg) {\n fig.image_mode = msg['mode'];\n};\n\nmpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n for (var key in msg) {\n if (!(key in fig.buttons)) {\n continue;\n }\n fig.buttons[key].disabled = !msg[key];\n fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n }\n};\n\nmpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n if (msg['mode'] === 'PAN') {\n fig.buttons['Pan'].classList.add('active');\n fig.buttons['Zoom'].classList.remove('active');\n } else if (msg['mode'] === 'ZOOM') {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.add('active');\n } else {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.remove('active');\n }\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Called whenever the canvas gets updated.\n this.send_message('ack', {});\n};\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function (fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n var img = evt.data;\n if (img.type !== 'image/png') {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n img.type = 'image/png';\n }\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src\n );\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n img\n );\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n } else if (\n typeof evt.data === 'string' &&\n evt.data.slice(0, 21) === 'data:image/png;base64'\n ) {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig['handle_' + msg_type];\n } catch (e) {\n console.log(\n \"No handler for the '\" + msg_type + \"' message type: \",\n msg\n );\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\n \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n e,\n e.stack,\n msg\n );\n }\n }\n };\n};\n\nfunction getModifiers(event) {\n var mods = [];\n if (event.ctrlKey) {\n mods.push('ctrl');\n }\n if (event.altKey) {\n mods.push('alt');\n }\n if (event.shiftKey) {\n mods.push('shift');\n }\n if (event.metaKey) {\n mods.push('meta');\n }\n return mods;\n}\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * https://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys(original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object') {\n obj[key] = original[key];\n }\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function (event, name) {\n if (name === 'button_press') {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n // from https://stackoverflow.com/q/1114465\n var boundingRect = this.canvas.getBoundingClientRect();\n var x = (event.clientX - boundingRect.left) * this.ratio;\n var y = (event.clientY - boundingRect.top) * this.ratio;\n\n this.send_message(name, {\n x: x,\n y: y,\n button: event.button,\n step: event.step,\n modifiers: getModifiers(event),\n guiEvent: simpleKeys(event),\n });\n\n return false;\n};\n\nmpl.figure.prototype._key_event_extra = function (_event, _name) {\n // Handle any extra behaviour associated with a key event\n};\n\nmpl.figure.prototype.key_event = function (event, name) {\n // Prevent repeat events\n if (name === 'key_press') {\n if (event.key === this._key) {\n return;\n } else {\n this._key = event.key;\n }\n }\n if (name === 'key_release') {\n this._key = null;\n }\n\n var value = '';\n if (event.ctrlKey && event.key !== 'Control') {\n value += 'ctrl+';\n }\n else if (event.altKey && event.key !== 'Alt') {\n value += 'alt+';\n }\n else if (event.shiftKey && event.key !== 'Shift') {\n value += 'shift+';\n }\n\n value += 'k' + event.key;\n\n this._key_event_extra(event, name);\n\n this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n return false;\n};\n\nmpl.figure.prototype.toolbar_button_onclick = function (name) {\n if (name === 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message('toolbar_button', { name: name });\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n this.message.textContent = tooltip;\n};\n\n///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n// prettier-ignore\nvar _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis\", \"fa fa-square-o\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pgf\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\", \"webp\"];\n\nmpl.default_extension = \"png\";/* global mpl */\n\nvar comm_websocket_adapter = function (comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.binaryType = comm.kernel.ws.binaryType;\n ws.readyState = comm.kernel.ws.readyState;\n function updateReadyState(_event) {\n if (comm.kernel.ws) {\n ws.readyState = comm.kernel.ws.readyState;\n } else {\n ws.readyState = 3; // Closed state.\n }\n }\n comm.kernel.ws.addEventListener('open', updateReadyState);\n comm.kernel.ws.addEventListener('close', updateReadyState);\n comm.kernel.ws.addEventListener('error', updateReadyState);\n\n ws.close = function () {\n comm.close();\n };\n ws.send = function (m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function (msg) {\n //console.log('receiving', msg['content']['data'], msg);\n var data = msg['content']['data'];\n if (data['blob'] !== undefined) {\n data = {\n data: new Blob(msg['buffers'], { type: data['blob'] }),\n };\n }\n // Pass the mpl event to the overridden (by mpl) onmessage function.\n ws.onmessage(data);\n });\n return ws;\n};\n\nmpl.mpl_figure_comm = function (comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = document.getElementById(id);\n var ws_proxy = comm_websocket_adapter(comm);\n\n function ondownload(figure, _format) {\n window.open(figure.canvas.toDataURL());\n }\n\n var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element;\n fig.cell_info = mpl.find_output_cell(\"
\");\n if (!fig.cell_info) {\n console.error('Failed to find cell for figure', id, fig);\n return;\n }\n fig.cell_info[0].output_area.element.on(\n 'cleared',\n { fig: fig },\n fig._remove_fig_handler\n );\n};\n\nmpl.figure.prototype.handle_close = function (fig, msg) {\n var width = fig.canvas.width / fig.ratio;\n fig.cell_info[0].output_area.element.off(\n 'cleared',\n fig._remove_fig_handler\n );\n fig.resizeObserverInstance.unobserve(fig.canvas_div);\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable();\n fig.parent_element.innerHTML =\n '';\n fig.close_ws(fig, msg);\n};\n\nmpl.figure.prototype.close_ws = function (fig, msg) {\n fig.send_message('closing', msg);\n // fig.ws.close()\n};\n\nmpl.figure.prototype.push_to_output = function (_remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width / this.ratio;\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] =\n '';\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message('ack', {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () {\n fig.push_to_output();\n }, 1000);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'btn-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n var button;\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n continue;\n }\n\n button = fig.buttons[name] = document.createElement('button');\n button.classList = 'btn btn-default';\n button.href = '#';\n button.title = name;\n button.innerHTML = '';\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n // Add the status bar.\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message pull-right';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n\n // Add the close button to the window.\n var buttongrp = document.createElement('div');\n buttongrp.classList = 'btn-group inline pull-right';\n button = document.createElement('button');\n button.classList = 'btn btn-mini btn-primary';\n button.href = '#';\n button.title = 'Stop Interaction';\n button.innerHTML = '';\n button.addEventListener('click', function (_evt) {\n fig.handle_close(fig, {});\n });\n button.addEventListener(\n 'mouseover',\n on_mouseover_closure('Stop Interaction')\n );\n buttongrp.appendChild(button);\n var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n titlebar.insertBefore(buttongrp, titlebar.firstChild);\n};\n\nmpl.figure.prototype._remove_fig_handler = function (event) {\n var fig = event.data.fig;\n if (event.target !== this) {\n // Ignore bubbled events from children.\n return;\n }\n fig.close_ws(fig, {});\n};\n\nmpl.figure.prototype._root_extra_style = function (el) {\n el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n};\n\nmpl.figure.prototype._canvas_extra_style = function (el) {\n // this is important to make the div 'focusable\n el.setAttribute('tabindex', 0);\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n } else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n};\n\nmpl.figure.prototype._key_event_extra = function (event, _name) {\n // Check for shift+enter\n if (event.shiftKey && event.which === 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n fig.ondownload(fig, null);\n};\n\nmpl.find_output_cell = function (html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i = 0; i < ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code') {\n for (var j = 0; j < cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] === html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n};\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel !== null) {\n IPython.notebook.kernel.comm_manager.register_target(\n 'matplotlib',\n mpl.mpl_figure_comm\n );\n}\n", + "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute('tabindex', '0');\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;' +\n 'z-index: 2;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key_event(event, name);\n };\n }\n\n canvas_div.addEventListener(\n 'keydown',\n on_keyboard_event_closure('key_press')\n );\n canvas_div.addEventListener(\n 'keyup',\n on_keyboard_event_closure('key_release')\n );\n\n this._canvas_extra_style(canvas_div);\n this.root.appendChild(canvas_div);\n\n var canvas = (this.canvas = document.createElement('canvas'));\n canvas.classList.add('mpl-canvas');\n canvas.setAttribute(\n 'style',\n 'box-sizing: content-box;' +\n 'pointer-events: none;' +\n 'position: relative;' +\n 'z-index: 0;'\n );\n\n this.context = canvas.getContext('2d');\n\n var backingStore =\n this.context.backingStorePixelRatio ||\n this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio ||\n 1;\n\n this.ratio = (window.devicePixelRatio || 1) / backingStore;\n\n var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n 'canvas'\n ));\n rubberband_canvas.setAttribute(\n 'style',\n 'box-sizing: content-box;' +\n 'left: 0;' +\n 'pointer-events: none;' +\n 'position: absolute;' +\n 'top: 0;' +\n 'z-index: 1;'\n );\n\n // Apply a ponyfill if ResizeObserver is not implemented by browser.\n if (this.ResizeObserver === undefined) {\n if (window.ResizeObserver !== undefined) {\n this.ResizeObserver = window.ResizeObserver;\n } else {\n var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n this.ResizeObserver = obs.ResizeObserver;\n }\n }\n\n this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n // There's no need to resize if the WebSocket is not connected:\n // - If it is still connecting, then we will get an initial resize from\n // Python once it connects.\n // - If it has disconnected, then resizing will clear the canvas and\n // never get anything back to refill it, so better to not resize and\n // keep something visible.\n if (fig.ws.readyState != 1) {\n return;\n }\n var nentries = entries.length;\n for (var i = 0; i < nentries; i++) {\n var entry = entries[i];\n var width, height;\n if (entry.contentBoxSize) {\n if (entry.contentBoxSize instanceof Array) {\n // Chrome 84 implements new version of spec.\n width = entry.contentBoxSize[0].inlineSize;\n height = entry.contentBoxSize[0].blockSize;\n } else {\n // Firefox implements old version of spec.\n width = entry.contentBoxSize.inlineSize;\n height = entry.contentBoxSize.blockSize;\n }\n } else {\n // Chrome <84 implements even older version of spec.\n width = entry.contentRect.width;\n height = entry.contentRect.height;\n }\n\n // Keep the size of the canvas and rubber band canvas in sync with\n // the canvas container.\n if (entry.devicePixelContentBoxSize) {\n // Chrome 84 implements new version of spec.\n canvas.setAttribute(\n 'width',\n entry.devicePixelContentBoxSize[0].inlineSize\n );\n canvas.setAttribute(\n 'height',\n entry.devicePixelContentBoxSize[0].blockSize\n );\n } else {\n canvas.setAttribute('width', width * fig.ratio);\n canvas.setAttribute('height', height * fig.ratio);\n }\n /* This rescales the canvas back to display pixels, so that it\n * appears correct on HiDPI screens. */\n canvas.style.width = width + 'px';\n canvas.style.height = height + 'px';\n\n rubberband_canvas.setAttribute('width', width);\n rubberband_canvas.setAttribute('height', height);\n\n // And update the size in Python. We ignore the initial 0/0 size\n // that occurs as the element is placed into the DOM, which should\n // otherwise not happen due to the minimum size styling.\n if (width != 0 && height != 0) {\n fig.request_resize(width, height);\n }\n }\n });\n this.resizeObserverInstance.observe(canvas_div);\n\n function on_mouse_event_closure(name) {\n /* User Agent sniffing is bad, but WebKit is busted:\n * https://bugs.webkit.org/show_bug.cgi?id=144526\n * https://bugs.webkit.org/show_bug.cgi?id=181818\n * The worst that happens here is that they get an extra browser\n * selection when dragging, if this check fails to catch them.\n */\n var UA = navigator.userAgent;\n var isWebKit = /AppleWebKit/.test(UA) && !/Chrome/.test(UA);\n if(isWebKit) {\n return function (event) {\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We\n * want to control all of the cursor setting manually through\n * the 'cursor' event from matplotlib */\n event.preventDefault()\n return fig.mouse_event(event, name);\n };\n } else {\n return function (event) {\n return fig.mouse_event(event, name);\n };\n }\n }\n\n canvas_div.addEventListener(\n 'mousedown',\n on_mouse_event_closure('button_press')\n );\n canvas_div.addEventListener(\n 'mouseup',\n on_mouse_event_closure('button_release')\n );\n canvas_div.addEventListener(\n 'dblclick',\n on_mouse_event_closure('dblclick')\n );\n // Throttle sequential mouse events to 1 every 20ms.\n canvas_div.addEventListener(\n 'mousemove',\n on_mouse_event_closure('motion_notify')\n );\n\n canvas_div.addEventListener(\n 'mouseenter',\n on_mouse_event_closure('figure_enter')\n );\n canvas_div.addEventListener(\n 'mouseleave',\n on_mouse_event_closure('figure_leave')\n );\n\n canvas_div.addEventListener('wheel', function (event) {\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n on_mouse_event_closure('scroll')(event);\n });\n\n canvas_div.appendChild(canvas);\n canvas_div.appendChild(rubberband_canvas);\n\n this.rubberband_context = rubberband_canvas.getContext('2d');\n this.rubberband_context.strokeStyle = '#000000';\n\n this._resize_canvas = function (width, height, forward) {\n if (forward) {\n canvas_div.style.width = width + 'px';\n canvas_div.style.height = height + 'px';\n }\n };\n\n // Disable right mouse context menu.\n canvas_div.addEventListener('contextmenu', function (_e) {\n event.preventDefault();\n return false;\n });\n\n function set_focus() {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'mpl-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n continue;\n }\n\n var button = (fig.buttons[name] = document.createElement('button'));\n button.classList = 'mpl-widget';\n button.setAttribute('role', 'button');\n button.setAttribute('aria-disabled', 'false');\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n\n var icon_img = document.createElement('img');\n icon_img.src = '_images/' + image + '.png';\n icon_img.srcset = '_images/' + image + '_large.png 2x';\n icon_img.alt = tooltip;\n button.appendChild(icon_img);\n\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n var fmt_picker = document.createElement('select');\n fmt_picker.classList = 'mpl-widget';\n toolbar.appendChild(fmt_picker);\n this.format_dropdown = fmt_picker;\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = document.createElement('option');\n option.selected = fmt === mpl.default_extension;\n option.innerHTML = fmt;\n fmt_picker.appendChild(option);\n }\n\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n};\n\nmpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', { width: x_pixels, height: y_pixels });\n};\n\nmpl.figure.prototype.send_message = function (type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n};\n\nmpl.figure.prototype.send_draw_message = function () {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n};\n\nmpl.figure.prototype.handle_resize = function (fig, msg) {\n var size = msg['size'];\n if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n fig._resize_canvas(size[0], size[1], msg['forward']);\n fig.send_message('refresh', {});\n }\n};\n\nmpl.figure.prototype.handle_rubberband = function (fig, msg) {\n var x0 = msg['x0'] / fig.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n var x1 = msg['x1'] / fig.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0,\n 0,\n fig.canvas.width / fig.ratio,\n fig.canvas.height / fig.ratio\n );\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n};\n\nmpl.figure.prototype.handle_figure_label = function (fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n};\n\nmpl.figure.prototype.handle_cursor = function (fig, msg) {\n fig.canvas_div.style.cursor = msg['cursor'];\n};\n\nmpl.figure.prototype.handle_message = function (fig, msg) {\n fig.message.textContent = msg['message'];\n};\n\nmpl.figure.prototype.handle_draw = function (fig, _msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n};\n\nmpl.figure.prototype.handle_image_mode = function (fig, msg) {\n fig.image_mode = msg['mode'];\n};\n\nmpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n for (var key in msg) {\n if (!(key in fig.buttons)) {\n continue;\n }\n fig.buttons[key].disabled = !msg[key];\n fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n }\n};\n\nmpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n if (msg['mode'] === 'PAN') {\n fig.buttons['Pan'].classList.add('active');\n fig.buttons['Zoom'].classList.remove('active');\n } else if (msg['mode'] === 'ZOOM') {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.add('active');\n } else {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.remove('active');\n }\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Called whenever the canvas gets updated.\n this.send_message('ack', {});\n};\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function (fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n var img = evt.data;\n if (img.type !== 'image/png') {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n img.type = 'image/png';\n }\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src\n );\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n img\n );\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n } else if (\n typeof evt.data === 'string' &&\n evt.data.slice(0, 21) === 'data:image/png;base64'\n ) {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig['handle_' + msg_type];\n } catch (e) {\n console.log(\n \"No handler for the '\" + msg_type + \"' message type: \",\n msg\n );\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\n \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n e,\n e.stack,\n msg\n );\n }\n }\n };\n};\n\nfunction getModifiers(event) {\n var mods = [];\n if (event.ctrlKey) {\n mods.push('ctrl');\n }\n if (event.altKey) {\n mods.push('alt');\n }\n if (event.shiftKey) {\n mods.push('shift');\n }\n if (event.metaKey) {\n mods.push('meta');\n }\n return mods;\n}\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * https://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys(original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object') {\n obj[key] = original[key];\n }\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function (event, name) {\n if (name === 'button_press') {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n // from https://stackoverflow.com/q/1114465\n var boundingRect = this.canvas.getBoundingClientRect();\n var x = (event.clientX - boundingRect.left) * this.ratio;\n var y = (event.clientY - boundingRect.top) * this.ratio;\n\n this.send_message(name, {\n x: x,\n y: y,\n button: event.button,\n step: event.step,\n modifiers: getModifiers(event),\n guiEvent: simpleKeys(event),\n });\n\n return false;\n};\n\nmpl.figure.prototype._key_event_extra = function (_event, _name) {\n // Handle any extra behaviour associated with a key event\n};\n\nmpl.figure.prototype.key_event = function (event, name) {\n // Prevent repeat events\n if (name === 'key_press') {\n if (event.key === this._key) {\n return;\n } else {\n this._key = event.key;\n }\n }\n if (name === 'key_release') {\n this._key = null;\n }\n\n var value = '';\n if (event.ctrlKey && event.key !== 'Control') {\n value += 'ctrl+';\n }\n else if (event.altKey && event.key !== 'Alt') {\n value += 'alt+';\n }\n else if (event.shiftKey && event.key !== 'Shift') {\n value += 'shift+';\n }\n\n value += 'k' + event.key;\n\n this._key_event_extra(event, name);\n\n this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n return false;\n};\n\nmpl.figure.prototype.toolbar_button_onclick = function (name) {\n if (name === 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message('toolbar_button', { name: name });\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n this.message.textContent = tooltip;\n};\n\n///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n// prettier-ignore\nvar _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis\", \"fa fa-square-o\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pgf\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\", \"webp\"];\n\nmpl.default_extension = \"png\";/* global mpl */\n\nvar comm_websocket_adapter = function (comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.binaryType = comm.kernel.ws.binaryType;\n ws.readyState = comm.kernel.ws.readyState;\n function updateReadyState(_event) {\n if (comm.kernel.ws) {\n ws.readyState = comm.kernel.ws.readyState;\n } else {\n ws.readyState = 3; // Closed state.\n }\n }\n comm.kernel.ws.addEventListener('open', updateReadyState);\n comm.kernel.ws.addEventListener('close', updateReadyState);\n comm.kernel.ws.addEventListener('error', updateReadyState);\n\n ws.close = function () {\n comm.close();\n };\n ws.send = function (m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function (msg) {\n //console.log('receiving', msg['content']['data'], msg);\n var data = msg['content']['data'];\n if (data['blob'] !== undefined) {\n data = {\n data: new Blob(msg['buffers'], { type: data['blob'] }),\n };\n }\n // Pass the mpl event to the overridden (by mpl) onmessage function.\n ws.onmessage(data);\n });\n return ws;\n};\n\nmpl.mpl_figure_comm = function (comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = document.getElementById(id);\n var ws_proxy = comm_websocket_adapter(comm);\n\n function ondownload(figure, _format) {\n window.open(figure.canvas.toDataURL());\n }\n\n var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element;\n fig.cell_info = mpl.find_output_cell(\"
\");\n if (!fig.cell_info) {\n console.error('Failed to find cell for figure', id, fig);\n return;\n }\n fig.cell_info[0].output_area.element.on(\n 'cleared',\n { fig: fig },\n fig._remove_fig_handler\n );\n};\n\nmpl.figure.prototype.handle_close = function (fig, msg) {\n var width = fig.canvas.width / fig.ratio;\n fig.cell_info[0].output_area.element.off(\n 'cleared',\n fig._remove_fig_handler\n );\n fig.resizeObserverInstance.unobserve(fig.canvas_div);\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable();\n fig.parent_element.innerHTML =\n '';\n fig.close_ws(fig, msg);\n};\n\nmpl.figure.prototype.close_ws = function (fig, msg) {\n fig.send_message('closing', msg);\n // fig.ws.close()\n};\n\nmpl.figure.prototype.push_to_output = function (_remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width / this.ratio;\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] =\n '';\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message('ack', {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () {\n fig.push_to_output();\n }, 1000);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'btn-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n var button;\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n continue;\n }\n\n button = fig.buttons[name] = document.createElement('button');\n button.classList = 'btn btn-default';\n button.href = '#';\n button.title = name;\n button.innerHTML = '';\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n // Add the status bar.\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message pull-right';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n\n // Add the close button to the window.\n var buttongrp = document.createElement('div');\n buttongrp.classList = 'btn-group inline pull-right';\n button = document.createElement('button');\n button.classList = 'btn btn-mini btn-primary';\n button.href = '#';\n button.title = 'Stop Interaction';\n button.innerHTML = '';\n button.addEventListener('click', function (_evt) {\n fig.handle_close(fig, {});\n });\n button.addEventListener(\n 'mouseover',\n on_mouseover_closure('Stop Interaction')\n );\n buttongrp.appendChild(button);\n var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n titlebar.insertBefore(buttongrp, titlebar.firstChild);\n};\n\nmpl.figure.prototype._remove_fig_handler = function (event) {\n var fig = event.data.fig;\n if (event.target !== this) {\n // Ignore bubbled events from children.\n return;\n }\n fig.close_ws(fig, {});\n};\n\nmpl.figure.prototype._root_extra_style = function (el) {\n el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n};\n\nmpl.figure.prototype._canvas_extra_style = function (el) {\n // this is important to make the div 'focusable\n el.setAttribute('tabindex', 0);\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n } else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n};\n\nmpl.figure.prototype._key_event_extra = function (event, _name) {\n // Check for shift+enter\n if (event.shiftKey && event.which === 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n fig.ondownload(fig, null);\n};\n\nmpl.find_output_cell = function (html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i = 0; i < ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code') {\n for (var j = 0; j < cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] === html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n};\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel !== null) {\n IPython.notebook.kernel.comm_manager.register_target(\n 'matplotlib',\n mpl.mpl_figure_comm\n );\n}\n", "text/plain": [ "" ] @@ -8751,7 +1781,7 @@ { "data": { "text/html": [ - "
" + "
" ], "text/plain": [ "" @@ -8781,7 +1811,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -8792,7 +1822,7 @@ "\n", " SELECT timestamp AS date, open AS open, high AS high, low AS low, close AS close, volume AS volume \n", " FROM public.\"ohlcv_BTC_USDT\"\n", - " WHERE timestamp >= '2023-01-01T00:00:00Z' AND timestamp <= '2023-07-01T00:00:00Z';\n", + " WHERE timestamp >= '2023-06-20' AND timestamp <= '2024-06-20';\n", " \n", "\n", "Fetched data:\n", @@ -8803,45 +1833,48 @@ "3 2023-06-23 29884.92 31431.94 29800.00 30688.50 73931.89635\n", "4 2023-06-24 30688.51 30800.00 30250.00 30527.43 30513.30135\n", "\n", - "Starting Portfolio Value: 10000.00\n" + "Starting Portfolio Value: 100000.00\n", + "Ending Portfolio Value: 100479.17\n" ] }, { - "name": "stderr", - "output_type": "stream", - "text": [ - "c:\\Users\\dell\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\backtrader\\cerebro.py:670: SyntaxWarning: invalid escape sequence '\\*'\n", - " '''Adds a callback to get messages which would be handled by the\n", - "c:\\Users\\dell\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\backtrader\\cerebro.py:712: SyntaxWarning: invalid escape sequence '\\*'\n", - " '''Adds a callback to get messages which would be handled by the\n" - ] + "data": { + "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute('tabindex', '0');\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;' +\n 'z-index: 2;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key_event(event, name);\n };\n }\n\n canvas_div.addEventListener(\n 'keydown',\n on_keyboard_event_closure('key_press')\n );\n canvas_div.addEventListener(\n 'keyup',\n on_keyboard_event_closure('key_release')\n );\n\n this._canvas_extra_style(canvas_div);\n this.root.appendChild(canvas_div);\n\n var canvas = (this.canvas = document.createElement('canvas'));\n canvas.classList.add('mpl-canvas');\n canvas.setAttribute(\n 'style',\n 'box-sizing: content-box;' +\n 'pointer-events: none;' +\n 'position: relative;' +\n 'z-index: 0;'\n );\n\n this.context = canvas.getContext('2d');\n\n var backingStore =\n this.context.backingStorePixelRatio ||\n this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio ||\n 1;\n\n this.ratio = (window.devicePixelRatio || 1) / backingStore;\n\n var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n 'canvas'\n ));\n rubberband_canvas.setAttribute(\n 'style',\n 'box-sizing: content-box;' +\n 'left: 0;' +\n 'pointer-events: none;' +\n 'position: absolute;' +\n 'top: 0;' +\n 'z-index: 1;'\n );\n\n // Apply a ponyfill if ResizeObserver is not implemented by browser.\n if (this.ResizeObserver === undefined) {\n if (window.ResizeObserver !== undefined) {\n this.ResizeObserver = window.ResizeObserver;\n } else {\n var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n this.ResizeObserver = obs.ResizeObserver;\n }\n }\n\n this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n // There's no need to resize if the WebSocket is not connected:\n // - If it is still connecting, then we will get an initial resize from\n // Python once it connects.\n // - If it has disconnected, then resizing will clear the canvas and\n // never get anything back to refill it, so better to not resize and\n // keep something visible.\n if (fig.ws.readyState != 1) {\n return;\n }\n var nentries = entries.length;\n for (var i = 0; i < nentries; i++) {\n var entry = entries[i];\n var width, height;\n if (entry.contentBoxSize) {\n if (entry.contentBoxSize instanceof Array) {\n // Chrome 84 implements new version of spec.\n width = entry.contentBoxSize[0].inlineSize;\n height = entry.contentBoxSize[0].blockSize;\n } else {\n // Firefox implements old version of spec.\n width = entry.contentBoxSize.inlineSize;\n height = entry.contentBoxSize.blockSize;\n }\n } else {\n // Chrome <84 implements even older version of spec.\n width = entry.contentRect.width;\n height = entry.contentRect.height;\n }\n\n // Keep the size of the canvas and rubber band canvas in sync with\n // the canvas container.\n if (entry.devicePixelContentBoxSize) {\n // Chrome 84 implements new version of spec.\n canvas.setAttribute(\n 'width',\n entry.devicePixelContentBoxSize[0].inlineSize\n );\n canvas.setAttribute(\n 'height',\n entry.devicePixelContentBoxSize[0].blockSize\n );\n } else {\n canvas.setAttribute('width', width * fig.ratio);\n canvas.setAttribute('height', height * fig.ratio);\n }\n /* This rescales the canvas back to display pixels, so that it\n * appears correct on HiDPI screens. */\n canvas.style.width = width + 'px';\n canvas.style.height = height + 'px';\n\n rubberband_canvas.setAttribute('width', width);\n rubberband_canvas.setAttribute('height', height);\n\n // And update the size in Python. We ignore the initial 0/0 size\n // that occurs as the element is placed into the DOM, which should\n // otherwise not happen due to the minimum size styling.\n if (width != 0 && height != 0) {\n fig.request_resize(width, height);\n }\n }\n });\n this.resizeObserverInstance.observe(canvas_div);\n\n function on_mouse_event_closure(name) {\n /* User Agent sniffing is bad, but WebKit is busted:\n * https://bugs.webkit.org/show_bug.cgi?id=144526\n * https://bugs.webkit.org/show_bug.cgi?id=181818\n * The worst that happens here is that they get an extra browser\n * selection when dragging, if this check fails to catch them.\n */\n var UA = navigator.userAgent;\n var isWebKit = /AppleWebKit/.test(UA) && !/Chrome/.test(UA);\n if(isWebKit) {\n return function (event) {\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We\n * want to control all of the cursor setting manually through\n * the 'cursor' event from matplotlib */\n event.preventDefault()\n return fig.mouse_event(event, name);\n };\n } else {\n return function (event) {\n return fig.mouse_event(event, name);\n };\n }\n }\n\n canvas_div.addEventListener(\n 'mousedown',\n on_mouse_event_closure('button_press')\n );\n canvas_div.addEventListener(\n 'mouseup',\n on_mouse_event_closure('button_release')\n );\n canvas_div.addEventListener(\n 'dblclick',\n on_mouse_event_closure('dblclick')\n );\n // Throttle sequential mouse events to 1 every 20ms.\n canvas_div.addEventListener(\n 'mousemove',\n on_mouse_event_closure('motion_notify')\n );\n\n canvas_div.addEventListener(\n 'mouseenter',\n on_mouse_event_closure('figure_enter')\n );\n canvas_div.addEventListener(\n 'mouseleave',\n on_mouse_event_closure('figure_leave')\n );\n\n canvas_div.addEventListener('wheel', function (event) {\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n on_mouse_event_closure('scroll')(event);\n });\n\n canvas_div.appendChild(canvas);\n canvas_div.appendChild(rubberband_canvas);\n\n this.rubberband_context = rubberband_canvas.getContext('2d');\n this.rubberband_context.strokeStyle = '#000000';\n\n this._resize_canvas = function (width, height, forward) {\n if (forward) {\n canvas_div.style.width = width + 'px';\n canvas_div.style.height = height + 'px';\n }\n };\n\n // Disable right mouse context menu.\n canvas_div.addEventListener('contextmenu', function (_e) {\n event.preventDefault();\n return false;\n });\n\n function set_focus() {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'mpl-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n continue;\n }\n\n var button = (fig.buttons[name] = document.createElement('button'));\n button.classList = 'mpl-widget';\n button.setAttribute('role', 'button');\n button.setAttribute('aria-disabled', 'false');\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n\n var icon_img = document.createElement('img');\n icon_img.src = '_images/' + image + '.png';\n icon_img.srcset = '_images/' + image + '_large.png 2x';\n icon_img.alt = tooltip;\n button.appendChild(icon_img);\n\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n var fmt_picker = document.createElement('select');\n fmt_picker.classList = 'mpl-widget';\n toolbar.appendChild(fmt_picker);\n this.format_dropdown = fmt_picker;\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = document.createElement('option');\n option.selected = fmt === mpl.default_extension;\n option.innerHTML = fmt;\n fmt_picker.appendChild(option);\n }\n\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n};\n\nmpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', { width: x_pixels, height: y_pixels });\n};\n\nmpl.figure.prototype.send_message = function (type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n};\n\nmpl.figure.prototype.send_draw_message = function () {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n};\n\nmpl.figure.prototype.handle_resize = function (fig, msg) {\n var size = msg['size'];\n if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n fig._resize_canvas(size[0], size[1], msg['forward']);\n fig.send_message('refresh', {});\n }\n};\n\nmpl.figure.prototype.handle_rubberband = function (fig, msg) {\n var x0 = msg['x0'] / fig.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n var x1 = msg['x1'] / fig.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0,\n 0,\n fig.canvas.width / fig.ratio,\n fig.canvas.height / fig.ratio\n );\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n};\n\nmpl.figure.prototype.handle_figure_label = function (fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n};\n\nmpl.figure.prototype.handle_cursor = function (fig, msg) {\n fig.canvas_div.style.cursor = msg['cursor'];\n};\n\nmpl.figure.prototype.handle_message = function (fig, msg) {\n fig.message.textContent = msg['message'];\n};\n\nmpl.figure.prototype.handle_draw = function (fig, _msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n};\n\nmpl.figure.prototype.handle_image_mode = function (fig, msg) {\n fig.image_mode = msg['mode'];\n};\n\nmpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n for (var key in msg) {\n if (!(key in fig.buttons)) {\n continue;\n }\n fig.buttons[key].disabled = !msg[key];\n fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n }\n};\n\nmpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n if (msg['mode'] === 'PAN') {\n fig.buttons['Pan'].classList.add('active');\n fig.buttons['Zoom'].classList.remove('active');\n } else if (msg['mode'] === 'ZOOM') {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.add('active');\n } else {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.remove('active');\n }\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Called whenever the canvas gets updated.\n this.send_message('ack', {});\n};\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function (fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n var img = evt.data;\n if (img.type !== 'image/png') {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n img.type = 'image/png';\n }\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src\n );\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n img\n );\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n } else if (\n typeof evt.data === 'string' &&\n evt.data.slice(0, 21) === 'data:image/png;base64'\n ) {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig['handle_' + msg_type];\n } catch (e) {\n console.log(\n \"No handler for the '\" + msg_type + \"' message type: \",\n msg\n );\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\n \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n e,\n e.stack,\n msg\n );\n }\n }\n };\n};\n\nfunction getModifiers(event) {\n var mods = [];\n if (event.ctrlKey) {\n mods.push('ctrl');\n }\n if (event.altKey) {\n mods.push('alt');\n }\n if (event.shiftKey) {\n mods.push('shift');\n }\n if (event.metaKey) {\n mods.push('meta');\n }\n return mods;\n}\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * https://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys(original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object') {\n obj[key] = original[key];\n }\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function (event, name) {\n if (name === 'button_press') {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n // from https://stackoverflow.com/q/1114465\n var boundingRect = this.canvas.getBoundingClientRect();\n var x = (event.clientX - boundingRect.left) * this.ratio;\n var y = (event.clientY - boundingRect.top) * this.ratio;\n\n this.send_message(name, {\n x: x,\n y: y,\n button: event.button,\n step: event.step,\n modifiers: getModifiers(event),\n guiEvent: simpleKeys(event),\n });\n\n return false;\n};\n\nmpl.figure.prototype._key_event_extra = function (_event, _name) {\n // Handle any extra behaviour associated with a key event\n};\n\nmpl.figure.prototype.key_event = function (event, name) {\n // Prevent repeat events\n if (name === 'key_press') {\n if (event.key === this._key) {\n return;\n } else {\n this._key = event.key;\n }\n }\n if (name === 'key_release') {\n this._key = null;\n }\n\n var value = '';\n if (event.ctrlKey && event.key !== 'Control') {\n value += 'ctrl+';\n }\n else if (event.altKey && event.key !== 'Alt') {\n value += 'alt+';\n }\n else if (event.shiftKey && event.key !== 'Shift') {\n value += 'shift+';\n }\n\n value += 'k' + event.key;\n\n this._key_event_extra(event, name);\n\n this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n return false;\n};\n\nmpl.figure.prototype.toolbar_button_onclick = function (name) {\n if (name === 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message('toolbar_button', { name: name });\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n this.message.textContent = tooltip;\n};\n\n///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n// prettier-ignore\nvar _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis\", \"fa fa-square-o\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pgf\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\", \"webp\"];\n\nmpl.default_extension = \"png\";/* global mpl */\n\nvar comm_websocket_adapter = function (comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.binaryType = comm.kernel.ws.binaryType;\n ws.readyState = comm.kernel.ws.readyState;\n function updateReadyState(_event) {\n if (comm.kernel.ws) {\n ws.readyState = comm.kernel.ws.readyState;\n } else {\n ws.readyState = 3; // Closed state.\n }\n }\n comm.kernel.ws.addEventListener('open', updateReadyState);\n comm.kernel.ws.addEventListener('close', updateReadyState);\n comm.kernel.ws.addEventListener('error', updateReadyState);\n\n ws.close = function () {\n comm.close();\n };\n ws.send = function (m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function (msg) {\n //console.log('receiving', msg['content']['data'], msg);\n var data = msg['content']['data'];\n if (data['blob'] !== undefined) {\n data = {\n data: new Blob(msg['buffers'], { type: data['blob'] }),\n };\n }\n // Pass the mpl event to the overridden (by mpl) onmessage function.\n ws.onmessage(data);\n });\n return ws;\n};\n\nmpl.mpl_figure_comm = function (comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = document.getElementById(id);\n var ws_proxy = comm_websocket_adapter(comm);\n\n function ondownload(figure, _format) {\n window.open(figure.canvas.toDataURL());\n }\n\n var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element;\n fig.cell_info = mpl.find_output_cell(\"
\");\n if (!fig.cell_info) {\n console.error('Failed to find cell for figure', id, fig);\n return;\n }\n fig.cell_info[0].output_area.element.on(\n 'cleared',\n { fig: fig },\n fig._remove_fig_handler\n );\n};\n\nmpl.figure.prototype.handle_close = function (fig, msg) {\n var width = fig.canvas.width / fig.ratio;\n fig.cell_info[0].output_area.element.off(\n 'cleared',\n fig._remove_fig_handler\n );\n fig.resizeObserverInstance.unobserve(fig.canvas_div);\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable();\n fig.parent_element.innerHTML =\n '';\n fig.close_ws(fig, msg);\n};\n\nmpl.figure.prototype.close_ws = function (fig, msg) {\n fig.send_message('closing', msg);\n // fig.ws.close()\n};\n\nmpl.figure.prototype.push_to_output = function (_remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width / this.ratio;\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] =\n '';\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message('ack', {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () {\n fig.push_to_output();\n }, 1000);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'btn-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n var button;\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n continue;\n }\n\n button = fig.buttons[name] = document.createElement('button');\n button.classList = 'btn btn-default';\n button.href = '#';\n button.title = name;\n button.innerHTML = '';\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n // Add the status bar.\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message pull-right';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n\n // Add the close button to the window.\n var buttongrp = document.createElement('div');\n buttongrp.classList = 'btn-group inline pull-right';\n button = document.createElement('button');\n button.classList = 'btn btn-mini btn-primary';\n button.href = '#';\n button.title = 'Stop Interaction';\n button.innerHTML = '';\n button.addEventListener('click', function (_evt) {\n fig.handle_close(fig, {});\n });\n button.addEventListener(\n 'mouseover',\n on_mouseover_closure('Stop Interaction')\n );\n buttongrp.appendChild(button);\n var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n titlebar.insertBefore(buttongrp, titlebar.firstChild);\n};\n\nmpl.figure.prototype._remove_fig_handler = function (event) {\n var fig = event.data.fig;\n if (event.target !== this) {\n // Ignore bubbled events from children.\n return;\n }\n fig.close_ws(fig, {});\n};\n\nmpl.figure.prototype._root_extra_style = function (el) {\n el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n};\n\nmpl.figure.prototype._canvas_extra_style = function (el) {\n // this is important to make the div 'focusable\n el.setAttribute('tabindex', 0);\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n } else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n};\n\nmpl.figure.prototype._key_event_extra = function (event, _name) {\n // Check for shift+enter\n if (event.shiftKey && event.which === 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n fig.ondownload(fig, null);\n};\n\nmpl.find_output_cell = function (html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i = 0; i < ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code') {\n for (var j = 0; j < cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] === html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n};\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel !== null) {\n IPython.notebook.kernel.comm_manager.register_target(\n 'matplotlib',\n mpl.mpl_figure_comm\n );\n}\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" }, { - "ename": "IndexError", - "evalue": "array assignment index out of range", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mIndexError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[19], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[43mrun_backtest\u001b[49m\u001b[43m(\u001b[49m\u001b[43mRsiBollingerBandsStrategy\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msymbol\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mstart_date\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mend_date\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 2\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mStarting Portfolio Value: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mresult[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mStarting Portfolio Value\u001b[39m\u001b[38;5;124m'\u001b[39m]\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 3\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mEnding Portfolio Value: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mresult[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mEnding Portfolio Value\u001b[39m\u001b[38;5;124m'\u001b[39m]\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n", - "File \u001b[1;32mc:\\Users\\dell\\Desktop\\10Academy\\crypto-trading-backtesting\\scripts\\backtest_runner.py:83\u001b[0m, in \u001b[0;36mrun_backtest\u001b[1;34m(strategy, symbol, start_date, end_date)\u001b[0m\n\u001b[0;32m 80\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mStarting Portfolio Value: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mcerebro\u001b[38;5;241m.\u001b[39mbroker\u001b[38;5;241m.\u001b[39mgetvalue()\u001b[38;5;132;01m:\u001b[39;00m\u001b[38;5;124m.2f\u001b[39m\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m'\u001b[39m)\n\u001b[0;32m 82\u001b[0m \u001b[38;5;66;03m# Run backtest\u001b[39;00m\n\u001b[1;32m---> 83\u001b[0m \u001b[43mcerebro\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrun\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 85\u001b[0m \u001b[38;5;66;03m# Print ending conditions\u001b[39;00m\n\u001b[0;32m 86\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mEnding Portfolio Value: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mcerebro\u001b[38;5;241m.\u001b[39mbroker\u001b[38;5;241m.\u001b[39mgetvalue()\u001b[38;5;132;01m:\u001b[39;00m\u001b[38;5;124m.2f\u001b[39m\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m'\u001b[39m)\n", - "File \u001b[1;32mc:\\Users\\dell\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\backtrader\\cerebro.py:1132\u001b[0m, in \u001b[0;36mCerebro.run\u001b[1;34m(self, **kwargs)\u001b[0m\n\u001b[0;32m 1128\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_dooptimize \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mp\u001b[38;5;241m.\u001b[39mmaxcpus \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m1\u001b[39m:\n\u001b[0;32m 1129\u001b[0m \u001b[38;5;66;03m# If no optimmization is wished ... or 1 core is to be used\u001b[39;00m\n\u001b[0;32m 1130\u001b[0m \u001b[38;5;66;03m# let's skip process \"spawning\"\u001b[39;00m\n\u001b[0;32m 1131\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m iterstrat \u001b[38;5;129;01min\u001b[39;00m iterstrats:\n\u001b[1;32m-> 1132\u001b[0m runstrat \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrunstrategies\u001b[49m\u001b[43m(\u001b[49m\u001b[43miterstrat\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 1133\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mrunstrats\u001b[38;5;241m.\u001b[39mappend(runstrat)\n\u001b[0;32m 1134\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_dooptimize:\n", - "File \u001b[1;32mc:\\Users\\dell\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\backtrader\\cerebro.py:1298\u001b[0m, in \u001b[0;36mCerebro.runstrategies\u001b[1;34m(self, iterstrat, predata)\u001b[0m\n\u001b[0;32m 1296\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_runonce_old(runstrats)\n\u001b[0;32m 1297\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m-> 1298\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_runonce\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrunstrats\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 1299\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 1300\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mp\u001b[38;5;241m.\u001b[39moldsync:\n", - "File \u001b[1;32mc:\\Users\\dell\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\backtrader\\cerebro.py:1657\u001b[0m, in \u001b[0;36mCerebro._runonce\u001b[1;34m(self, runstrats)\u001b[0m\n\u001b[0;32m 1650\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m'''\u001b[39;00m\n\u001b[0;32m 1651\u001b[0m \u001b[38;5;124;03mActual implementation of run in vector mode.\u001b[39;00m\n\u001b[0;32m 1652\u001b[0m \n\u001b[0;32m 1653\u001b[0m \u001b[38;5;124;03mStrategies are still invoked on a pseudo-event mode in which ``next``\u001b[39;00m\n\u001b[0;32m 1654\u001b[0m \u001b[38;5;124;03mis called for each data arrival\u001b[39;00m\n\u001b[0;32m 1655\u001b[0m \u001b[38;5;124;03m'''\u001b[39;00m\n\u001b[0;32m 1656\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m strat \u001b[38;5;129;01min\u001b[39;00m runstrats:\n\u001b[1;32m-> 1657\u001b[0m \u001b[43mstrat\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_once\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 1658\u001b[0m strat\u001b[38;5;241m.\u001b[39mreset() \u001b[38;5;66;03m# strat called next by next - reset lines\u001b[39;00m\n\u001b[0;32m 1660\u001b[0m \u001b[38;5;66;03m# The default once for strategies does nothing and therefore\u001b[39;00m\n\u001b[0;32m 1661\u001b[0m \u001b[38;5;66;03m# has not moved forward all datas/indicators/observers that\u001b[39;00m\n\u001b[0;32m 1662\u001b[0m \u001b[38;5;66;03m# were homed before calling once, Hence no \"need\" to do it\u001b[39;00m\n\u001b[0;32m 1663\u001b[0m \u001b[38;5;66;03m# here again, because pointers are at 0\u001b[39;00m\n", - "File \u001b[1;32mc:\\Users\\dell\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\backtrader\\lineiterator.py:297\u001b[0m, in \u001b[0;36mLineIterator._once\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 294\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mforward(size\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_clock\u001b[38;5;241m.\u001b[39mbuflen())\n\u001b[0;32m 296\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m indicator \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_lineiterators[LineIterator\u001b[38;5;241m.\u001b[39mIndType]:\n\u001b[1;32m--> 297\u001b[0m \u001b[43mindicator\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_once\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 299\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m observer \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_lineiterators[LineIterator\u001b[38;5;241m.\u001b[39mObsType]:\n\u001b[0;32m 300\u001b[0m observer\u001b[38;5;241m.\u001b[39mforward(size\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbuflen())\n", - "File \u001b[1;32mc:\\Users\\dell\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\backtrader\\lineiterator.py:297\u001b[0m, in \u001b[0;36mLineIterator._once\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 294\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mforward(size\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_clock\u001b[38;5;241m.\u001b[39mbuflen())\n\u001b[0;32m 296\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m indicator \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_lineiterators[LineIterator\u001b[38;5;241m.\u001b[39mIndType]:\n\u001b[1;32m--> 297\u001b[0m \u001b[43mindicator\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_once\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 299\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m observer \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_lineiterators[LineIterator\u001b[38;5;241m.\u001b[39mObsType]:\n\u001b[0;32m 300\u001b[0m observer\u001b[38;5;241m.\u001b[39mforward(size\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbuflen())\n", - "File \u001b[1;32mc:\\Users\\dell\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\backtrader\\lineiterator.py:297\u001b[0m, in \u001b[0;36mLineIterator._once\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 294\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mforward(size\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_clock\u001b[38;5;241m.\u001b[39mbuflen())\n\u001b[0;32m 296\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m indicator \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_lineiterators[LineIterator\u001b[38;5;241m.\u001b[39mIndType]:\n\u001b[1;32m--> 297\u001b[0m \u001b[43mindicator\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_once\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 299\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m observer \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_lineiterators[LineIterator\u001b[38;5;241m.\u001b[39mObsType]:\n\u001b[0;32m 300\u001b[0m observer\u001b[38;5;241m.\u001b[39mforward(size\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbuflen())\n", - "File \u001b[1;32mc:\\Users\\dell\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\backtrader\\lineiterator.py:317\u001b[0m, in \u001b[0;36mLineIterator._once\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 313\u001b[0m \u001b[38;5;66;03m# These 3 remain empty for a strategy and therefore play no role\u001b[39;00m\n\u001b[0;32m 314\u001b[0m \u001b[38;5;66;03m# because a strategy will always be executed on a next basis\u001b[39;00m\n\u001b[0;32m 315\u001b[0m \u001b[38;5;66;03m# indicators are each called with its min period\u001b[39;00m\n\u001b[0;32m 316\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpreonce(\u001b[38;5;241m0\u001b[39m, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_minperiod \u001b[38;5;241m-\u001b[39m \u001b[38;5;241m1\u001b[39m)\n\u001b[1;32m--> 317\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moncestart\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_minperiod\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_minperiod\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 318\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39monce(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_minperiod, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbuflen())\n\u001b[0;32m 320\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m line \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mlines:\n", - "File \u001b[1;32mc:\\Users\\dell\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\backtrader\\indicators\\basicops.py:401\u001b[0m, in \u001b[0;36mExponentialSmoothing.oncestart\u001b[1;34m(self, start, end)\u001b[0m\n\u001b[0;32m 399\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21moncestart\u001b[39m(\u001b[38;5;28mself\u001b[39m, start, end):\n\u001b[0;32m 400\u001b[0m \u001b[38;5;66;03m# Fetch the seed value from the base class calculation\u001b[39;00m\n\u001b[1;32m--> 401\u001b[0m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mExponentialSmoothing\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43monce\u001b[49m\u001b[43m(\u001b[49m\u001b[43mstart\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mend\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[1;32mc:\\Users\\dell\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\backtrader\\indicators\\basicops.py:364\u001b[0m, in \u001b[0;36mAverage.once\u001b[1;34m(self, start, end)\u001b[0m\n\u001b[0;32m 361\u001b[0m period \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mp\u001b[38;5;241m.\u001b[39mperiod\n\u001b[0;32m 363\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(start, end):\n\u001b[1;32m--> 364\u001b[0m \u001b[43mdst\u001b[49m\u001b[43m[\u001b[49m\u001b[43mi\u001b[49m\u001b[43m]\u001b[49m \u001b[38;5;241m=\u001b[39m math\u001b[38;5;241m.\u001b[39mfsum(src[i \u001b[38;5;241m-\u001b[39m period \u001b[38;5;241m+\u001b[39m \u001b[38;5;241m1\u001b[39m:i \u001b[38;5;241m+\u001b[39m \u001b[38;5;241m1\u001b[39m]) \u001b[38;5;241m/\u001b[39m period\n", - "\u001b[1;31mIndexError\u001b[0m: array assignment index out of range" + "name": "stdout", + "output_type": "stream", + "text": [ + "Starting Portfolio Value: 100000\n", + "Ending Portfolio Value: 100479.17268\n", + "{'Starting Portfolio Value': 100000, 'Ending Portfolio Value': 100479.17268, 'Sharpe Ratio': -3.173860663341704, 'Max Drawdown': 2.5275415753733292, 'Total Trades': 1, 'Winning Trades': 1, 'Losing Trades': 0, 'Total Return': 0.004780283019556264}\n" ] } ], "source": [ + "# Run backtest with RsiBollingerBandsStrategy\n", "result = run_backtest(RsiBollingerBandsStrategy, symbol, start_date, end_date)\n", "print(f\"Starting Portfolio Value: {result['Starting Portfolio Value']}\")\n", - "print(f\"Ending Portfolio Value: {result['Ending Portfolio Value']}\")\n" + "print(f\"Ending Portfolio Value: {result['Ending Portfolio Value']}\")\n", + "print(result)" ] }, { @@ -8854,12 +1887,12 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 18, "metadata": {}, "outputs": [ { "data": { - "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute('tabindex', '0');\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;' +\n 'z-index: 2;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key_event(event, name);\n };\n }\n\n canvas_div.addEventListener(\n 'keydown',\n on_keyboard_event_closure('key_press')\n );\n canvas_div.addEventListener(\n 'keyup',\n on_keyboard_event_closure('key_release')\n );\n\n this._canvas_extra_style(canvas_div);\n this.root.appendChild(canvas_div);\n\n var canvas = (this.canvas = document.createElement('canvas'));\n canvas.classList.add('mpl-canvas');\n canvas.setAttribute(\n 'style',\n 'box-sizing: content-box;' +\n 'pointer-events: none;' +\n 'position: relative;' +\n 'z-index: 0;'\n );\n\n this.context = canvas.getContext('2d');\n\n var backingStore =\n this.context.backingStorePixelRatio ||\n this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio ||\n 1;\n\n this.ratio = (window.devicePixelRatio || 1) / backingStore;\n\n var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n 'canvas'\n ));\n rubberband_canvas.setAttribute(\n 'style',\n 'box-sizing: content-box;' +\n 'left: 0;' +\n 'pointer-events: none;' +\n 'position: absolute;' +\n 'top: 0;' +\n 'z-index: 1;'\n );\n\n // Apply a ponyfill if ResizeObserver is not implemented by browser.\n if (this.ResizeObserver === undefined) {\n if (window.ResizeObserver !== undefined) {\n this.ResizeObserver = window.ResizeObserver;\n } else {\n var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n this.ResizeObserver = obs.ResizeObserver;\n }\n }\n\n this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n var nentries = entries.length;\n for (var i = 0; i < nentries; i++) {\n var entry = entries[i];\n var width, height;\n if (entry.contentBoxSize) {\n if (entry.contentBoxSize instanceof Array) {\n // Chrome 84 implements new version of spec.\n width = entry.contentBoxSize[0].inlineSize;\n height = entry.contentBoxSize[0].blockSize;\n } else {\n // Firefox implements old version of spec.\n width = entry.contentBoxSize.inlineSize;\n height = entry.contentBoxSize.blockSize;\n }\n } else {\n // Chrome <84 implements even older version of spec.\n width = entry.contentRect.width;\n height = entry.contentRect.height;\n }\n\n // Keep the size of the canvas and rubber band canvas in sync with\n // the canvas container.\n if (entry.devicePixelContentBoxSize) {\n // Chrome 84 implements new version of spec.\n canvas.setAttribute(\n 'width',\n entry.devicePixelContentBoxSize[0].inlineSize\n );\n canvas.setAttribute(\n 'height',\n entry.devicePixelContentBoxSize[0].blockSize\n );\n } else {\n canvas.setAttribute('width', width * fig.ratio);\n canvas.setAttribute('height', height * fig.ratio);\n }\n /* This rescales the canvas back to display pixels, so that it\n * appears correct on HiDPI screens. */\n canvas.style.width = width + 'px';\n canvas.style.height = height + 'px';\n\n rubberband_canvas.setAttribute('width', width);\n rubberband_canvas.setAttribute('height', height);\n\n // And update the size in Python. We ignore the initial 0/0 size\n // that occurs as the element is placed into the DOM, which should\n // otherwise not happen due to the minimum size styling.\n if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n fig.request_resize(width, height);\n }\n }\n });\n this.resizeObserverInstance.observe(canvas_div);\n\n function on_mouse_event_closure(name) {\n /* User Agent sniffing is bad, but WebKit is busted:\n * https://bugs.webkit.org/show_bug.cgi?id=144526\n * https://bugs.webkit.org/show_bug.cgi?id=181818\n * The worst that happens here is that they get an extra browser\n * selection when dragging, if this check fails to catch them.\n */\n var UA = navigator.userAgent;\n var isWebKit = /AppleWebKit/.test(UA) && !/Chrome/.test(UA);\n if(isWebKit) {\n return function (event) {\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We\n * want to control all of the cursor setting manually through\n * the 'cursor' event from matplotlib */\n event.preventDefault()\n return fig.mouse_event(event, name);\n };\n } else {\n return function (event) {\n return fig.mouse_event(event, name);\n };\n }\n }\n\n canvas_div.addEventListener(\n 'mousedown',\n on_mouse_event_closure('button_press')\n );\n canvas_div.addEventListener(\n 'mouseup',\n on_mouse_event_closure('button_release')\n );\n canvas_div.addEventListener(\n 'dblclick',\n on_mouse_event_closure('dblclick')\n );\n // Throttle sequential mouse events to 1 every 20ms.\n canvas_div.addEventListener(\n 'mousemove',\n on_mouse_event_closure('motion_notify')\n );\n\n canvas_div.addEventListener(\n 'mouseenter',\n on_mouse_event_closure('figure_enter')\n );\n canvas_div.addEventListener(\n 'mouseleave',\n on_mouse_event_closure('figure_leave')\n );\n\n canvas_div.addEventListener('wheel', function (event) {\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n on_mouse_event_closure('scroll')(event);\n });\n\n canvas_div.appendChild(canvas);\n canvas_div.appendChild(rubberband_canvas);\n\n this.rubberband_context = rubberband_canvas.getContext('2d');\n this.rubberband_context.strokeStyle = '#000000';\n\n this._resize_canvas = function (width, height, forward) {\n if (forward) {\n canvas_div.style.width = width + 'px';\n canvas_div.style.height = height + 'px';\n }\n };\n\n // Disable right mouse context menu.\n canvas_div.addEventListener('contextmenu', function (_e) {\n event.preventDefault();\n return false;\n });\n\n function set_focus() {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'mpl-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n continue;\n }\n\n var button = (fig.buttons[name] = document.createElement('button'));\n button.classList = 'mpl-widget';\n button.setAttribute('role', 'button');\n button.setAttribute('aria-disabled', 'false');\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n\n var icon_img = document.createElement('img');\n icon_img.src = '_images/' + image + '.png';\n icon_img.srcset = '_images/' + image + '_large.png 2x';\n icon_img.alt = tooltip;\n button.appendChild(icon_img);\n\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n var fmt_picker = document.createElement('select');\n fmt_picker.classList = 'mpl-widget';\n toolbar.appendChild(fmt_picker);\n this.format_dropdown = fmt_picker;\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = document.createElement('option');\n option.selected = fmt === mpl.default_extension;\n option.innerHTML = fmt;\n fmt_picker.appendChild(option);\n }\n\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n};\n\nmpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', { width: x_pixels, height: y_pixels });\n};\n\nmpl.figure.prototype.send_message = function (type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n};\n\nmpl.figure.prototype.send_draw_message = function () {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n};\n\nmpl.figure.prototype.handle_resize = function (fig, msg) {\n var size = msg['size'];\n if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n fig._resize_canvas(size[0], size[1], msg['forward']);\n fig.send_message('refresh', {});\n }\n};\n\nmpl.figure.prototype.handle_rubberband = function (fig, msg) {\n var x0 = msg['x0'] / fig.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n var x1 = msg['x1'] / fig.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0,\n 0,\n fig.canvas.width / fig.ratio,\n fig.canvas.height / fig.ratio\n );\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n};\n\nmpl.figure.prototype.handle_figure_label = function (fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n};\n\nmpl.figure.prototype.handle_cursor = function (fig, msg) {\n fig.canvas_div.style.cursor = msg['cursor'];\n};\n\nmpl.figure.prototype.handle_message = function (fig, msg) {\n fig.message.textContent = msg['message'];\n};\n\nmpl.figure.prototype.handle_draw = function (fig, _msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n};\n\nmpl.figure.prototype.handle_image_mode = function (fig, msg) {\n fig.image_mode = msg['mode'];\n};\n\nmpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n for (var key in msg) {\n if (!(key in fig.buttons)) {\n continue;\n }\n fig.buttons[key].disabled = !msg[key];\n fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n }\n};\n\nmpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n if (msg['mode'] === 'PAN') {\n fig.buttons['Pan'].classList.add('active');\n fig.buttons['Zoom'].classList.remove('active');\n } else if (msg['mode'] === 'ZOOM') {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.add('active');\n } else {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.remove('active');\n }\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Called whenever the canvas gets updated.\n this.send_message('ack', {});\n};\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function (fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n var img = evt.data;\n if (img.type !== 'image/png') {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n img.type = 'image/png';\n }\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src\n );\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n img\n );\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n } else if (\n typeof evt.data === 'string' &&\n evt.data.slice(0, 21) === 'data:image/png;base64'\n ) {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig['handle_' + msg_type];\n } catch (e) {\n console.log(\n \"No handler for the '\" + msg_type + \"' message type: \",\n msg\n );\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\n \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n e,\n e.stack,\n msg\n );\n }\n }\n };\n};\n\nfunction getModifiers(event) {\n var mods = [];\n if (event.ctrlKey) {\n mods.push('ctrl');\n }\n if (event.altKey) {\n mods.push('alt');\n }\n if (event.shiftKey) {\n mods.push('shift');\n }\n if (event.metaKey) {\n mods.push('meta');\n }\n return mods;\n}\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * https://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys(original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object') {\n obj[key] = original[key];\n }\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function (event, name) {\n if (name === 'button_press') {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n // from https://stackoverflow.com/q/1114465\n var boundingRect = this.canvas.getBoundingClientRect();\n var x = (event.clientX - boundingRect.left) * this.ratio;\n var y = (event.clientY - boundingRect.top) * this.ratio;\n\n this.send_message(name, {\n x: x,\n y: y,\n button: event.button,\n step: event.step,\n modifiers: getModifiers(event),\n guiEvent: simpleKeys(event),\n });\n\n return false;\n};\n\nmpl.figure.prototype._key_event_extra = function (_event, _name) {\n // Handle any extra behaviour associated with a key event\n};\n\nmpl.figure.prototype.key_event = function (event, name) {\n // Prevent repeat events\n if (name === 'key_press') {\n if (event.key === this._key) {\n return;\n } else {\n this._key = event.key;\n }\n }\n if (name === 'key_release') {\n this._key = null;\n }\n\n var value = '';\n if (event.ctrlKey && event.key !== 'Control') {\n value += 'ctrl+';\n }\n else if (event.altKey && event.key !== 'Alt') {\n value += 'alt+';\n }\n else if (event.shiftKey && event.key !== 'Shift') {\n value += 'shift+';\n }\n\n value += 'k' + event.key;\n\n this._key_event_extra(event, name);\n\n this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n return false;\n};\n\nmpl.figure.prototype.toolbar_button_onclick = function (name) {\n if (name === 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message('toolbar_button', { name: name });\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n this.message.textContent = tooltip;\n};\n\n///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n// prettier-ignore\nvar _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis\", \"fa fa-square-o\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pgf\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\", \"webp\"];\n\nmpl.default_extension = \"png\";/* global mpl */\n\nvar comm_websocket_adapter = function (comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.binaryType = comm.kernel.ws.binaryType;\n ws.readyState = comm.kernel.ws.readyState;\n function updateReadyState(_event) {\n if (comm.kernel.ws) {\n ws.readyState = comm.kernel.ws.readyState;\n } else {\n ws.readyState = 3; // Closed state.\n }\n }\n comm.kernel.ws.addEventListener('open', updateReadyState);\n comm.kernel.ws.addEventListener('close', updateReadyState);\n comm.kernel.ws.addEventListener('error', updateReadyState);\n\n ws.close = function () {\n comm.close();\n };\n ws.send = function (m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function (msg) {\n //console.log('receiving', msg['content']['data'], msg);\n var data = msg['content']['data'];\n if (data['blob'] !== undefined) {\n data = {\n data: new Blob(msg['buffers'], { type: data['blob'] }),\n };\n }\n // Pass the mpl event to the overridden (by mpl) onmessage function.\n ws.onmessage(data);\n });\n return ws;\n};\n\nmpl.mpl_figure_comm = function (comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = document.getElementById(id);\n var ws_proxy = comm_websocket_adapter(comm);\n\n function ondownload(figure, _format) {\n window.open(figure.canvas.toDataURL());\n }\n\n var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element;\n fig.cell_info = mpl.find_output_cell(\"
\");\n if (!fig.cell_info) {\n console.error('Failed to find cell for figure', id, fig);\n return;\n }\n fig.cell_info[0].output_area.element.on(\n 'cleared',\n { fig: fig },\n fig._remove_fig_handler\n );\n};\n\nmpl.figure.prototype.handle_close = function (fig, msg) {\n var width = fig.canvas.width / fig.ratio;\n fig.cell_info[0].output_area.element.off(\n 'cleared',\n fig._remove_fig_handler\n );\n fig.resizeObserverInstance.unobserve(fig.canvas_div);\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable();\n fig.parent_element.innerHTML =\n '';\n fig.close_ws(fig, msg);\n};\n\nmpl.figure.prototype.close_ws = function (fig, msg) {\n fig.send_message('closing', msg);\n // fig.ws.close()\n};\n\nmpl.figure.prototype.push_to_output = function (_remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width / this.ratio;\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] =\n '';\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message('ack', {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () {\n fig.push_to_output();\n }, 1000);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'btn-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n var button;\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n continue;\n }\n\n button = fig.buttons[name] = document.createElement('button');\n button.classList = 'btn btn-default';\n button.href = '#';\n button.title = name;\n button.innerHTML = '';\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n // Add the status bar.\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message pull-right';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n\n // Add the close button to the window.\n var buttongrp = document.createElement('div');\n buttongrp.classList = 'btn-group inline pull-right';\n button = document.createElement('button');\n button.classList = 'btn btn-mini btn-primary';\n button.href = '#';\n button.title = 'Stop Interaction';\n button.innerHTML = '';\n button.addEventListener('click', function (_evt) {\n fig.handle_close(fig, {});\n });\n button.addEventListener(\n 'mouseover',\n on_mouseover_closure('Stop Interaction')\n );\n buttongrp.appendChild(button);\n var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n titlebar.insertBefore(buttongrp, titlebar.firstChild);\n};\n\nmpl.figure.prototype._remove_fig_handler = function (event) {\n var fig = event.data.fig;\n if (event.target !== this) {\n // Ignore bubbled events from children.\n return;\n }\n fig.close_ws(fig, {});\n};\n\nmpl.figure.prototype._root_extra_style = function (el) {\n el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n};\n\nmpl.figure.prototype._canvas_extra_style = function (el) {\n // this is important to make the div 'focusable\n el.setAttribute('tabindex', 0);\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n } else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n};\n\nmpl.figure.prototype._key_event_extra = function (event, _name) {\n // Check for shift+enter\n if (event.shiftKey && event.which === 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n fig.ondownload(fig, null);\n};\n\nmpl.find_output_cell = function (html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i = 0; i < ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code') {\n for (var j = 0; j < cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] === html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n};\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel !== null) {\n IPython.notebook.kernel.comm_manager.register_target(\n 'matplotlib',\n mpl.mpl_figure_comm\n );\n}\n", + "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute('tabindex', '0');\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;' +\n 'z-index: 2;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key_event(event, name);\n };\n }\n\n canvas_div.addEventListener(\n 'keydown',\n on_keyboard_event_closure('key_press')\n );\n canvas_div.addEventListener(\n 'keyup',\n on_keyboard_event_closure('key_release')\n );\n\n this._canvas_extra_style(canvas_div);\n this.root.appendChild(canvas_div);\n\n var canvas = (this.canvas = document.createElement('canvas'));\n canvas.classList.add('mpl-canvas');\n canvas.setAttribute(\n 'style',\n 'box-sizing: content-box;' +\n 'pointer-events: none;' +\n 'position: relative;' +\n 'z-index: 0;'\n );\n\n this.context = canvas.getContext('2d');\n\n var backingStore =\n this.context.backingStorePixelRatio ||\n this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio ||\n 1;\n\n this.ratio = (window.devicePixelRatio || 1) / backingStore;\n\n var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n 'canvas'\n ));\n rubberband_canvas.setAttribute(\n 'style',\n 'box-sizing: content-box;' +\n 'left: 0;' +\n 'pointer-events: none;' +\n 'position: absolute;' +\n 'top: 0;' +\n 'z-index: 1;'\n );\n\n // Apply a ponyfill if ResizeObserver is not implemented by browser.\n if (this.ResizeObserver === undefined) {\n if (window.ResizeObserver !== undefined) {\n this.ResizeObserver = window.ResizeObserver;\n } else {\n var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n this.ResizeObserver = obs.ResizeObserver;\n }\n }\n\n this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n // There's no need to resize if the WebSocket is not connected:\n // - If it is still connecting, then we will get an initial resize from\n // Python once it connects.\n // - If it has disconnected, then resizing will clear the canvas and\n // never get anything back to refill it, so better to not resize and\n // keep something visible.\n if (fig.ws.readyState != 1) {\n return;\n }\n var nentries = entries.length;\n for (var i = 0; i < nentries; i++) {\n var entry = entries[i];\n var width, height;\n if (entry.contentBoxSize) {\n if (entry.contentBoxSize instanceof Array) {\n // Chrome 84 implements new version of spec.\n width = entry.contentBoxSize[0].inlineSize;\n height = entry.contentBoxSize[0].blockSize;\n } else {\n // Firefox implements old version of spec.\n width = entry.contentBoxSize.inlineSize;\n height = entry.contentBoxSize.blockSize;\n }\n } else {\n // Chrome <84 implements even older version of spec.\n width = entry.contentRect.width;\n height = entry.contentRect.height;\n }\n\n // Keep the size of the canvas and rubber band canvas in sync with\n // the canvas container.\n if (entry.devicePixelContentBoxSize) {\n // Chrome 84 implements new version of spec.\n canvas.setAttribute(\n 'width',\n entry.devicePixelContentBoxSize[0].inlineSize\n );\n canvas.setAttribute(\n 'height',\n entry.devicePixelContentBoxSize[0].blockSize\n );\n } else {\n canvas.setAttribute('width', width * fig.ratio);\n canvas.setAttribute('height', height * fig.ratio);\n }\n /* This rescales the canvas back to display pixels, so that it\n * appears correct on HiDPI screens. */\n canvas.style.width = width + 'px';\n canvas.style.height = height + 'px';\n\n rubberband_canvas.setAttribute('width', width);\n rubberband_canvas.setAttribute('height', height);\n\n // And update the size in Python. We ignore the initial 0/0 size\n // that occurs as the element is placed into the DOM, which should\n // otherwise not happen due to the minimum size styling.\n if (width != 0 && height != 0) {\n fig.request_resize(width, height);\n }\n }\n });\n this.resizeObserverInstance.observe(canvas_div);\n\n function on_mouse_event_closure(name) {\n /* User Agent sniffing is bad, but WebKit is busted:\n * https://bugs.webkit.org/show_bug.cgi?id=144526\n * https://bugs.webkit.org/show_bug.cgi?id=181818\n * The worst that happens here is that they get an extra browser\n * selection when dragging, if this check fails to catch them.\n */\n var UA = navigator.userAgent;\n var isWebKit = /AppleWebKit/.test(UA) && !/Chrome/.test(UA);\n if(isWebKit) {\n return function (event) {\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We\n * want to control all of the cursor setting manually through\n * the 'cursor' event from matplotlib */\n event.preventDefault()\n return fig.mouse_event(event, name);\n };\n } else {\n return function (event) {\n return fig.mouse_event(event, name);\n };\n }\n }\n\n canvas_div.addEventListener(\n 'mousedown',\n on_mouse_event_closure('button_press')\n );\n canvas_div.addEventListener(\n 'mouseup',\n on_mouse_event_closure('button_release')\n );\n canvas_div.addEventListener(\n 'dblclick',\n on_mouse_event_closure('dblclick')\n );\n // Throttle sequential mouse events to 1 every 20ms.\n canvas_div.addEventListener(\n 'mousemove',\n on_mouse_event_closure('motion_notify')\n );\n\n canvas_div.addEventListener(\n 'mouseenter',\n on_mouse_event_closure('figure_enter')\n );\n canvas_div.addEventListener(\n 'mouseleave',\n on_mouse_event_closure('figure_leave')\n );\n\n canvas_div.addEventListener('wheel', function (event) {\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n on_mouse_event_closure('scroll')(event);\n });\n\n canvas_div.appendChild(canvas);\n canvas_div.appendChild(rubberband_canvas);\n\n this.rubberband_context = rubberband_canvas.getContext('2d');\n this.rubberband_context.strokeStyle = '#000000';\n\n this._resize_canvas = function (width, height, forward) {\n if (forward) {\n canvas_div.style.width = width + 'px';\n canvas_div.style.height = height + 'px';\n }\n };\n\n // Disable right mouse context menu.\n canvas_div.addEventListener('contextmenu', function (_e) {\n event.preventDefault();\n return false;\n });\n\n function set_focus() {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'mpl-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n continue;\n }\n\n var button = (fig.buttons[name] = document.createElement('button'));\n button.classList = 'mpl-widget';\n button.setAttribute('role', 'button');\n button.setAttribute('aria-disabled', 'false');\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n\n var icon_img = document.createElement('img');\n icon_img.src = '_images/' + image + '.png';\n icon_img.srcset = '_images/' + image + '_large.png 2x';\n icon_img.alt = tooltip;\n button.appendChild(icon_img);\n\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n var fmt_picker = document.createElement('select');\n fmt_picker.classList = 'mpl-widget';\n toolbar.appendChild(fmt_picker);\n this.format_dropdown = fmt_picker;\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = document.createElement('option');\n option.selected = fmt === mpl.default_extension;\n option.innerHTML = fmt;\n fmt_picker.appendChild(option);\n }\n\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n};\n\nmpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', { width: x_pixels, height: y_pixels });\n};\n\nmpl.figure.prototype.send_message = function (type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n};\n\nmpl.figure.prototype.send_draw_message = function () {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n};\n\nmpl.figure.prototype.handle_resize = function (fig, msg) {\n var size = msg['size'];\n if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n fig._resize_canvas(size[0], size[1], msg['forward']);\n fig.send_message('refresh', {});\n }\n};\n\nmpl.figure.prototype.handle_rubberband = function (fig, msg) {\n var x0 = msg['x0'] / fig.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n var x1 = msg['x1'] / fig.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0,\n 0,\n fig.canvas.width / fig.ratio,\n fig.canvas.height / fig.ratio\n );\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n};\n\nmpl.figure.prototype.handle_figure_label = function (fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n};\n\nmpl.figure.prototype.handle_cursor = function (fig, msg) {\n fig.canvas_div.style.cursor = msg['cursor'];\n};\n\nmpl.figure.prototype.handle_message = function (fig, msg) {\n fig.message.textContent = msg['message'];\n};\n\nmpl.figure.prototype.handle_draw = function (fig, _msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n};\n\nmpl.figure.prototype.handle_image_mode = function (fig, msg) {\n fig.image_mode = msg['mode'];\n};\n\nmpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n for (var key in msg) {\n if (!(key in fig.buttons)) {\n continue;\n }\n fig.buttons[key].disabled = !msg[key];\n fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n }\n};\n\nmpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n if (msg['mode'] === 'PAN') {\n fig.buttons['Pan'].classList.add('active');\n fig.buttons['Zoom'].classList.remove('active');\n } else if (msg['mode'] === 'ZOOM') {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.add('active');\n } else {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.remove('active');\n }\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Called whenever the canvas gets updated.\n this.send_message('ack', {});\n};\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function (fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n var img = evt.data;\n if (img.type !== 'image/png') {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n img.type = 'image/png';\n }\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src\n );\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n img\n );\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n } else if (\n typeof evt.data === 'string' &&\n evt.data.slice(0, 21) === 'data:image/png;base64'\n ) {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig['handle_' + msg_type];\n } catch (e) {\n console.log(\n \"No handler for the '\" + msg_type + \"' message type: \",\n msg\n );\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\n \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n e,\n e.stack,\n msg\n );\n }\n }\n };\n};\n\nfunction getModifiers(event) {\n var mods = [];\n if (event.ctrlKey) {\n mods.push('ctrl');\n }\n if (event.altKey) {\n mods.push('alt');\n }\n if (event.shiftKey) {\n mods.push('shift');\n }\n if (event.metaKey) {\n mods.push('meta');\n }\n return mods;\n}\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * https://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys(original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object') {\n obj[key] = original[key];\n }\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function (event, name) {\n if (name === 'button_press') {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n // from https://stackoverflow.com/q/1114465\n var boundingRect = this.canvas.getBoundingClientRect();\n var x = (event.clientX - boundingRect.left) * this.ratio;\n var y = (event.clientY - boundingRect.top) * this.ratio;\n\n this.send_message(name, {\n x: x,\n y: y,\n button: event.button,\n step: event.step,\n modifiers: getModifiers(event),\n guiEvent: simpleKeys(event),\n });\n\n return false;\n};\n\nmpl.figure.prototype._key_event_extra = function (_event, _name) {\n // Handle any extra behaviour associated with a key event\n};\n\nmpl.figure.prototype.key_event = function (event, name) {\n // Prevent repeat events\n if (name === 'key_press') {\n if (event.key === this._key) {\n return;\n } else {\n this._key = event.key;\n }\n }\n if (name === 'key_release') {\n this._key = null;\n }\n\n var value = '';\n if (event.ctrlKey && event.key !== 'Control') {\n value += 'ctrl+';\n }\n else if (event.altKey && event.key !== 'Alt') {\n value += 'alt+';\n }\n else if (event.shiftKey && event.key !== 'Shift') {\n value += 'shift+';\n }\n\n value += 'k' + event.key;\n\n this._key_event_extra(event, name);\n\n this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n return false;\n};\n\nmpl.figure.prototype.toolbar_button_onclick = function (name) {\n if (name === 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message('toolbar_button', { name: name });\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n this.message.textContent = tooltip;\n};\n\n///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n// prettier-ignore\nvar _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis\", \"fa fa-square-o\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pgf\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\", \"webp\"];\n\nmpl.default_extension = \"png\";/* global mpl */\n\nvar comm_websocket_adapter = function (comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.binaryType = comm.kernel.ws.binaryType;\n ws.readyState = comm.kernel.ws.readyState;\n function updateReadyState(_event) {\n if (comm.kernel.ws) {\n ws.readyState = comm.kernel.ws.readyState;\n } else {\n ws.readyState = 3; // Closed state.\n }\n }\n comm.kernel.ws.addEventListener('open', updateReadyState);\n comm.kernel.ws.addEventListener('close', updateReadyState);\n comm.kernel.ws.addEventListener('error', updateReadyState);\n\n ws.close = function () {\n comm.close();\n };\n ws.send = function (m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function (msg) {\n //console.log('receiving', msg['content']['data'], msg);\n var data = msg['content']['data'];\n if (data['blob'] !== undefined) {\n data = {\n data: new Blob(msg['buffers'], { type: data['blob'] }),\n };\n }\n // Pass the mpl event to the overridden (by mpl) onmessage function.\n ws.onmessage(data);\n });\n return ws;\n};\n\nmpl.mpl_figure_comm = function (comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = document.getElementById(id);\n var ws_proxy = comm_websocket_adapter(comm);\n\n function ondownload(figure, _format) {\n window.open(figure.canvas.toDataURL());\n }\n\n var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element;\n fig.cell_info = mpl.find_output_cell(\"
\");\n if (!fig.cell_info) {\n console.error('Failed to find cell for figure', id, fig);\n return;\n }\n fig.cell_info[0].output_area.element.on(\n 'cleared',\n { fig: fig },\n fig._remove_fig_handler\n );\n};\n\nmpl.figure.prototype.handle_close = function (fig, msg) {\n var width = fig.canvas.width / fig.ratio;\n fig.cell_info[0].output_area.element.off(\n 'cleared',\n fig._remove_fig_handler\n );\n fig.resizeObserverInstance.unobserve(fig.canvas_div);\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable();\n fig.parent_element.innerHTML =\n '';\n fig.close_ws(fig, msg);\n};\n\nmpl.figure.prototype.close_ws = function (fig, msg) {\n fig.send_message('closing', msg);\n // fig.ws.close()\n};\n\nmpl.figure.prototype.push_to_output = function (_remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width / this.ratio;\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] =\n '';\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message('ack', {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () {\n fig.push_to_output();\n }, 1000);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'btn-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n var button;\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n continue;\n }\n\n button = fig.buttons[name] = document.createElement('button');\n button.classList = 'btn btn-default';\n button.href = '#';\n button.title = name;\n button.innerHTML = '';\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n // Add the status bar.\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message pull-right';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n\n // Add the close button to the window.\n var buttongrp = document.createElement('div');\n buttongrp.classList = 'btn-group inline pull-right';\n button = document.createElement('button');\n button.classList = 'btn btn-mini btn-primary';\n button.href = '#';\n button.title = 'Stop Interaction';\n button.innerHTML = '';\n button.addEventListener('click', function (_evt) {\n fig.handle_close(fig, {});\n });\n button.addEventListener(\n 'mouseover',\n on_mouseover_closure('Stop Interaction')\n );\n buttongrp.appendChild(button);\n var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n titlebar.insertBefore(buttongrp, titlebar.firstChild);\n};\n\nmpl.figure.prototype._remove_fig_handler = function (event) {\n var fig = event.data.fig;\n if (event.target !== this) {\n // Ignore bubbled events from children.\n return;\n }\n fig.close_ws(fig, {});\n};\n\nmpl.figure.prototype._root_extra_style = function (el) {\n el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n};\n\nmpl.figure.prototype._canvas_extra_style = function (el) {\n // this is important to make the div 'focusable\n el.setAttribute('tabindex', 0);\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n } else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n};\n\nmpl.figure.prototype._key_event_extra = function (event, _name) {\n // Check for shift+enter\n if (event.shiftKey && event.which === 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n fig.ondownload(fig, null);\n};\n\nmpl.find_output_cell = function (html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i = 0; i < ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code') {\n for (var j = 0; j < cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] === html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n};\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel !== null) {\n IPython.notebook.kernel.comm_manager.register_target(\n 'matplotlib',\n mpl.mpl_figure_comm\n );\n}\n", "text/plain": [ "" ] @@ -8870,7 +1903,7 @@ { "data": { "text/html": [ - "
" + "
" ], "text/plain": [ "" @@ -8881,7 +1914,7 @@ }, { "data": { - "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute('tabindex', '0');\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;' +\n 'z-index: 2;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key_event(event, name);\n };\n }\n\n canvas_div.addEventListener(\n 'keydown',\n on_keyboard_event_closure('key_press')\n );\n canvas_div.addEventListener(\n 'keyup',\n on_keyboard_event_closure('key_release')\n );\n\n this._canvas_extra_style(canvas_div);\n this.root.appendChild(canvas_div);\n\n var canvas = (this.canvas = document.createElement('canvas'));\n canvas.classList.add('mpl-canvas');\n canvas.setAttribute(\n 'style',\n 'box-sizing: content-box;' +\n 'pointer-events: none;' +\n 'position: relative;' +\n 'z-index: 0;'\n );\n\n this.context = canvas.getContext('2d');\n\n var backingStore =\n this.context.backingStorePixelRatio ||\n this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio ||\n 1;\n\n this.ratio = (window.devicePixelRatio || 1) / backingStore;\n\n var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n 'canvas'\n ));\n rubberband_canvas.setAttribute(\n 'style',\n 'box-sizing: content-box;' +\n 'left: 0;' +\n 'pointer-events: none;' +\n 'position: absolute;' +\n 'top: 0;' +\n 'z-index: 1;'\n );\n\n // Apply a ponyfill if ResizeObserver is not implemented by browser.\n if (this.ResizeObserver === undefined) {\n if (window.ResizeObserver !== undefined) {\n this.ResizeObserver = window.ResizeObserver;\n } else {\n var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n this.ResizeObserver = obs.ResizeObserver;\n }\n }\n\n this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n var nentries = entries.length;\n for (var i = 0; i < nentries; i++) {\n var entry = entries[i];\n var width, height;\n if (entry.contentBoxSize) {\n if (entry.contentBoxSize instanceof Array) {\n // Chrome 84 implements new version of spec.\n width = entry.contentBoxSize[0].inlineSize;\n height = entry.contentBoxSize[0].blockSize;\n } else {\n // Firefox implements old version of spec.\n width = entry.contentBoxSize.inlineSize;\n height = entry.contentBoxSize.blockSize;\n }\n } else {\n // Chrome <84 implements even older version of spec.\n width = entry.contentRect.width;\n height = entry.contentRect.height;\n }\n\n // Keep the size of the canvas and rubber band canvas in sync with\n // the canvas container.\n if (entry.devicePixelContentBoxSize) {\n // Chrome 84 implements new version of spec.\n canvas.setAttribute(\n 'width',\n entry.devicePixelContentBoxSize[0].inlineSize\n );\n canvas.setAttribute(\n 'height',\n entry.devicePixelContentBoxSize[0].blockSize\n );\n } else {\n canvas.setAttribute('width', width * fig.ratio);\n canvas.setAttribute('height', height * fig.ratio);\n }\n /* This rescales the canvas back to display pixels, so that it\n * appears correct on HiDPI screens. */\n canvas.style.width = width + 'px';\n canvas.style.height = height + 'px';\n\n rubberband_canvas.setAttribute('width', width);\n rubberband_canvas.setAttribute('height', height);\n\n // And update the size in Python. We ignore the initial 0/0 size\n // that occurs as the element is placed into the DOM, which should\n // otherwise not happen due to the minimum size styling.\n if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n fig.request_resize(width, height);\n }\n }\n });\n this.resizeObserverInstance.observe(canvas_div);\n\n function on_mouse_event_closure(name) {\n /* User Agent sniffing is bad, but WebKit is busted:\n * https://bugs.webkit.org/show_bug.cgi?id=144526\n * https://bugs.webkit.org/show_bug.cgi?id=181818\n * The worst that happens here is that they get an extra browser\n * selection when dragging, if this check fails to catch them.\n */\n var UA = navigator.userAgent;\n var isWebKit = /AppleWebKit/.test(UA) && !/Chrome/.test(UA);\n if(isWebKit) {\n return function (event) {\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We\n * want to control all of the cursor setting manually through\n * the 'cursor' event from matplotlib */\n event.preventDefault()\n return fig.mouse_event(event, name);\n };\n } else {\n return function (event) {\n return fig.mouse_event(event, name);\n };\n }\n }\n\n canvas_div.addEventListener(\n 'mousedown',\n on_mouse_event_closure('button_press')\n );\n canvas_div.addEventListener(\n 'mouseup',\n on_mouse_event_closure('button_release')\n );\n canvas_div.addEventListener(\n 'dblclick',\n on_mouse_event_closure('dblclick')\n );\n // Throttle sequential mouse events to 1 every 20ms.\n canvas_div.addEventListener(\n 'mousemove',\n on_mouse_event_closure('motion_notify')\n );\n\n canvas_div.addEventListener(\n 'mouseenter',\n on_mouse_event_closure('figure_enter')\n );\n canvas_div.addEventListener(\n 'mouseleave',\n on_mouse_event_closure('figure_leave')\n );\n\n canvas_div.addEventListener('wheel', function (event) {\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n on_mouse_event_closure('scroll')(event);\n });\n\n canvas_div.appendChild(canvas);\n canvas_div.appendChild(rubberband_canvas);\n\n this.rubberband_context = rubberband_canvas.getContext('2d');\n this.rubberband_context.strokeStyle = '#000000';\n\n this._resize_canvas = function (width, height, forward) {\n if (forward) {\n canvas_div.style.width = width + 'px';\n canvas_div.style.height = height + 'px';\n }\n };\n\n // Disable right mouse context menu.\n canvas_div.addEventListener('contextmenu', function (_e) {\n event.preventDefault();\n return false;\n });\n\n function set_focus() {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'mpl-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n continue;\n }\n\n var button = (fig.buttons[name] = document.createElement('button'));\n button.classList = 'mpl-widget';\n button.setAttribute('role', 'button');\n button.setAttribute('aria-disabled', 'false');\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n\n var icon_img = document.createElement('img');\n icon_img.src = '_images/' + image + '.png';\n icon_img.srcset = '_images/' + image + '_large.png 2x';\n icon_img.alt = tooltip;\n button.appendChild(icon_img);\n\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n var fmt_picker = document.createElement('select');\n fmt_picker.classList = 'mpl-widget';\n toolbar.appendChild(fmt_picker);\n this.format_dropdown = fmt_picker;\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = document.createElement('option');\n option.selected = fmt === mpl.default_extension;\n option.innerHTML = fmt;\n fmt_picker.appendChild(option);\n }\n\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n};\n\nmpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', { width: x_pixels, height: y_pixels });\n};\n\nmpl.figure.prototype.send_message = function (type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n};\n\nmpl.figure.prototype.send_draw_message = function () {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n};\n\nmpl.figure.prototype.handle_resize = function (fig, msg) {\n var size = msg['size'];\n if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n fig._resize_canvas(size[0], size[1], msg['forward']);\n fig.send_message('refresh', {});\n }\n};\n\nmpl.figure.prototype.handle_rubberband = function (fig, msg) {\n var x0 = msg['x0'] / fig.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n var x1 = msg['x1'] / fig.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0,\n 0,\n fig.canvas.width / fig.ratio,\n fig.canvas.height / fig.ratio\n );\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n};\n\nmpl.figure.prototype.handle_figure_label = function (fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n};\n\nmpl.figure.prototype.handle_cursor = function (fig, msg) {\n fig.canvas_div.style.cursor = msg['cursor'];\n};\n\nmpl.figure.prototype.handle_message = function (fig, msg) {\n fig.message.textContent = msg['message'];\n};\n\nmpl.figure.prototype.handle_draw = function (fig, _msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n};\n\nmpl.figure.prototype.handle_image_mode = function (fig, msg) {\n fig.image_mode = msg['mode'];\n};\n\nmpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n for (var key in msg) {\n if (!(key in fig.buttons)) {\n continue;\n }\n fig.buttons[key].disabled = !msg[key];\n fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n }\n};\n\nmpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n if (msg['mode'] === 'PAN') {\n fig.buttons['Pan'].classList.add('active');\n fig.buttons['Zoom'].classList.remove('active');\n } else if (msg['mode'] === 'ZOOM') {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.add('active');\n } else {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.remove('active');\n }\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Called whenever the canvas gets updated.\n this.send_message('ack', {});\n};\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function (fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n var img = evt.data;\n if (img.type !== 'image/png') {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n img.type = 'image/png';\n }\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src\n );\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n img\n );\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n } else if (\n typeof evt.data === 'string' &&\n evt.data.slice(0, 21) === 'data:image/png;base64'\n ) {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig['handle_' + msg_type];\n } catch (e) {\n console.log(\n \"No handler for the '\" + msg_type + \"' message type: \",\n msg\n );\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\n \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n e,\n e.stack,\n msg\n );\n }\n }\n };\n};\n\nfunction getModifiers(event) {\n var mods = [];\n if (event.ctrlKey) {\n mods.push('ctrl');\n }\n if (event.altKey) {\n mods.push('alt');\n }\n if (event.shiftKey) {\n mods.push('shift');\n }\n if (event.metaKey) {\n mods.push('meta');\n }\n return mods;\n}\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * https://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys(original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object') {\n obj[key] = original[key];\n }\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function (event, name) {\n if (name === 'button_press') {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n // from https://stackoverflow.com/q/1114465\n var boundingRect = this.canvas.getBoundingClientRect();\n var x = (event.clientX - boundingRect.left) * this.ratio;\n var y = (event.clientY - boundingRect.top) * this.ratio;\n\n this.send_message(name, {\n x: x,\n y: y,\n button: event.button,\n step: event.step,\n modifiers: getModifiers(event),\n guiEvent: simpleKeys(event),\n });\n\n return false;\n};\n\nmpl.figure.prototype._key_event_extra = function (_event, _name) {\n // Handle any extra behaviour associated with a key event\n};\n\nmpl.figure.prototype.key_event = function (event, name) {\n // Prevent repeat events\n if (name === 'key_press') {\n if (event.key === this._key) {\n return;\n } else {\n this._key = event.key;\n }\n }\n if (name === 'key_release') {\n this._key = null;\n }\n\n var value = '';\n if (event.ctrlKey && event.key !== 'Control') {\n value += 'ctrl+';\n }\n else if (event.altKey && event.key !== 'Alt') {\n value += 'alt+';\n }\n else if (event.shiftKey && event.key !== 'Shift') {\n value += 'shift+';\n }\n\n value += 'k' + event.key;\n\n this._key_event_extra(event, name);\n\n this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n return false;\n};\n\nmpl.figure.prototype.toolbar_button_onclick = function (name) {\n if (name === 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message('toolbar_button', { name: name });\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n this.message.textContent = tooltip;\n};\n\n///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n// prettier-ignore\nvar _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis\", \"fa fa-square-o\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pgf\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\", \"webp\"];\n\nmpl.default_extension = \"png\";/* global mpl */\n\nvar comm_websocket_adapter = function (comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.binaryType = comm.kernel.ws.binaryType;\n ws.readyState = comm.kernel.ws.readyState;\n function updateReadyState(_event) {\n if (comm.kernel.ws) {\n ws.readyState = comm.kernel.ws.readyState;\n } else {\n ws.readyState = 3; // Closed state.\n }\n }\n comm.kernel.ws.addEventListener('open', updateReadyState);\n comm.kernel.ws.addEventListener('close', updateReadyState);\n comm.kernel.ws.addEventListener('error', updateReadyState);\n\n ws.close = function () {\n comm.close();\n };\n ws.send = function (m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function (msg) {\n //console.log('receiving', msg['content']['data'], msg);\n var data = msg['content']['data'];\n if (data['blob'] !== undefined) {\n data = {\n data: new Blob(msg['buffers'], { type: data['blob'] }),\n };\n }\n // Pass the mpl event to the overridden (by mpl) onmessage function.\n ws.onmessage(data);\n });\n return ws;\n};\n\nmpl.mpl_figure_comm = function (comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = document.getElementById(id);\n var ws_proxy = comm_websocket_adapter(comm);\n\n function ondownload(figure, _format) {\n window.open(figure.canvas.toDataURL());\n }\n\n var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element;\n fig.cell_info = mpl.find_output_cell(\"
\");\n if (!fig.cell_info) {\n console.error('Failed to find cell for figure', id, fig);\n return;\n }\n fig.cell_info[0].output_area.element.on(\n 'cleared',\n { fig: fig },\n fig._remove_fig_handler\n );\n};\n\nmpl.figure.prototype.handle_close = function (fig, msg) {\n var width = fig.canvas.width / fig.ratio;\n fig.cell_info[0].output_area.element.off(\n 'cleared',\n fig._remove_fig_handler\n );\n fig.resizeObserverInstance.unobserve(fig.canvas_div);\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable();\n fig.parent_element.innerHTML =\n '';\n fig.close_ws(fig, msg);\n};\n\nmpl.figure.prototype.close_ws = function (fig, msg) {\n fig.send_message('closing', msg);\n // fig.ws.close()\n};\n\nmpl.figure.prototype.push_to_output = function (_remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width / this.ratio;\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] =\n '';\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message('ack', {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () {\n fig.push_to_output();\n }, 1000);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'btn-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n var button;\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n continue;\n }\n\n button = fig.buttons[name] = document.createElement('button');\n button.classList = 'btn btn-default';\n button.href = '#';\n button.title = name;\n button.innerHTML = '';\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n // Add the status bar.\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message pull-right';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n\n // Add the close button to the window.\n var buttongrp = document.createElement('div');\n buttongrp.classList = 'btn-group inline pull-right';\n button = document.createElement('button');\n button.classList = 'btn btn-mini btn-primary';\n button.href = '#';\n button.title = 'Stop Interaction';\n button.innerHTML = '';\n button.addEventListener('click', function (_evt) {\n fig.handle_close(fig, {});\n });\n button.addEventListener(\n 'mouseover',\n on_mouseover_closure('Stop Interaction')\n );\n buttongrp.appendChild(button);\n var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n titlebar.insertBefore(buttongrp, titlebar.firstChild);\n};\n\nmpl.figure.prototype._remove_fig_handler = function (event) {\n var fig = event.data.fig;\n if (event.target !== this) {\n // Ignore bubbled events from children.\n return;\n }\n fig.close_ws(fig, {});\n};\n\nmpl.figure.prototype._root_extra_style = function (el) {\n el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n};\n\nmpl.figure.prototype._canvas_extra_style = function (el) {\n // this is important to make the div 'focusable\n el.setAttribute('tabindex', 0);\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n } else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n};\n\nmpl.figure.prototype._key_event_extra = function (event, _name) {\n // Check for shift+enter\n if (event.shiftKey && event.which === 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n fig.ondownload(fig, null);\n};\n\nmpl.find_output_cell = function (html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i = 0; i < ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code') {\n for (var j = 0; j < cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] === html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n};\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel !== null) {\n IPython.notebook.kernel.comm_manager.register_target(\n 'matplotlib',\n mpl.mpl_figure_comm\n );\n}\n", + "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute('tabindex', '0');\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;' +\n 'z-index: 2;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key_event(event, name);\n };\n }\n\n canvas_div.addEventListener(\n 'keydown',\n on_keyboard_event_closure('key_press')\n );\n canvas_div.addEventListener(\n 'keyup',\n on_keyboard_event_closure('key_release')\n );\n\n this._canvas_extra_style(canvas_div);\n this.root.appendChild(canvas_div);\n\n var canvas = (this.canvas = document.createElement('canvas'));\n canvas.classList.add('mpl-canvas');\n canvas.setAttribute(\n 'style',\n 'box-sizing: content-box;' +\n 'pointer-events: none;' +\n 'position: relative;' +\n 'z-index: 0;'\n );\n\n this.context = canvas.getContext('2d');\n\n var backingStore =\n this.context.backingStorePixelRatio ||\n this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio ||\n 1;\n\n this.ratio = (window.devicePixelRatio || 1) / backingStore;\n\n var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n 'canvas'\n ));\n rubberband_canvas.setAttribute(\n 'style',\n 'box-sizing: content-box;' +\n 'left: 0;' +\n 'pointer-events: none;' +\n 'position: absolute;' +\n 'top: 0;' +\n 'z-index: 1;'\n );\n\n // Apply a ponyfill if ResizeObserver is not implemented by browser.\n if (this.ResizeObserver === undefined) {\n if (window.ResizeObserver !== undefined) {\n this.ResizeObserver = window.ResizeObserver;\n } else {\n var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n this.ResizeObserver = obs.ResizeObserver;\n }\n }\n\n this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n // There's no need to resize if the WebSocket is not connected:\n // - If it is still connecting, then we will get an initial resize from\n // Python once it connects.\n // - If it has disconnected, then resizing will clear the canvas and\n // never get anything back to refill it, so better to not resize and\n // keep something visible.\n if (fig.ws.readyState != 1) {\n return;\n }\n var nentries = entries.length;\n for (var i = 0; i < nentries; i++) {\n var entry = entries[i];\n var width, height;\n if (entry.contentBoxSize) {\n if (entry.contentBoxSize instanceof Array) {\n // Chrome 84 implements new version of spec.\n width = entry.contentBoxSize[0].inlineSize;\n height = entry.contentBoxSize[0].blockSize;\n } else {\n // Firefox implements old version of spec.\n width = entry.contentBoxSize.inlineSize;\n height = entry.contentBoxSize.blockSize;\n }\n } else {\n // Chrome <84 implements even older version of spec.\n width = entry.contentRect.width;\n height = entry.contentRect.height;\n }\n\n // Keep the size of the canvas and rubber band canvas in sync with\n // the canvas container.\n if (entry.devicePixelContentBoxSize) {\n // Chrome 84 implements new version of spec.\n canvas.setAttribute(\n 'width',\n entry.devicePixelContentBoxSize[0].inlineSize\n );\n canvas.setAttribute(\n 'height',\n entry.devicePixelContentBoxSize[0].blockSize\n );\n } else {\n canvas.setAttribute('width', width * fig.ratio);\n canvas.setAttribute('height', height * fig.ratio);\n }\n /* This rescales the canvas back to display pixels, so that it\n * appears correct on HiDPI screens. */\n canvas.style.width = width + 'px';\n canvas.style.height = height + 'px';\n\n rubberband_canvas.setAttribute('width', width);\n rubberband_canvas.setAttribute('height', height);\n\n // And update the size in Python. We ignore the initial 0/0 size\n // that occurs as the element is placed into the DOM, which should\n // otherwise not happen due to the minimum size styling.\n if (width != 0 && height != 0) {\n fig.request_resize(width, height);\n }\n }\n });\n this.resizeObserverInstance.observe(canvas_div);\n\n function on_mouse_event_closure(name) {\n /* User Agent sniffing is bad, but WebKit is busted:\n * https://bugs.webkit.org/show_bug.cgi?id=144526\n * https://bugs.webkit.org/show_bug.cgi?id=181818\n * The worst that happens here is that they get an extra browser\n * selection when dragging, if this check fails to catch them.\n */\n var UA = navigator.userAgent;\n var isWebKit = /AppleWebKit/.test(UA) && !/Chrome/.test(UA);\n if(isWebKit) {\n return function (event) {\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We\n * want to control all of the cursor setting manually through\n * the 'cursor' event from matplotlib */\n event.preventDefault()\n return fig.mouse_event(event, name);\n };\n } else {\n return function (event) {\n return fig.mouse_event(event, name);\n };\n }\n }\n\n canvas_div.addEventListener(\n 'mousedown',\n on_mouse_event_closure('button_press')\n );\n canvas_div.addEventListener(\n 'mouseup',\n on_mouse_event_closure('button_release')\n );\n canvas_div.addEventListener(\n 'dblclick',\n on_mouse_event_closure('dblclick')\n );\n // Throttle sequential mouse events to 1 every 20ms.\n canvas_div.addEventListener(\n 'mousemove',\n on_mouse_event_closure('motion_notify')\n );\n\n canvas_div.addEventListener(\n 'mouseenter',\n on_mouse_event_closure('figure_enter')\n );\n canvas_div.addEventListener(\n 'mouseleave',\n on_mouse_event_closure('figure_leave')\n );\n\n canvas_div.addEventListener('wheel', function (event) {\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n on_mouse_event_closure('scroll')(event);\n });\n\n canvas_div.appendChild(canvas);\n canvas_div.appendChild(rubberband_canvas);\n\n this.rubberband_context = rubberband_canvas.getContext('2d');\n this.rubberband_context.strokeStyle = '#000000';\n\n this._resize_canvas = function (width, height, forward) {\n if (forward) {\n canvas_div.style.width = width + 'px';\n canvas_div.style.height = height + 'px';\n }\n };\n\n // Disable right mouse context menu.\n canvas_div.addEventListener('contextmenu', function (_e) {\n event.preventDefault();\n return false;\n });\n\n function set_focus() {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'mpl-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n continue;\n }\n\n var button = (fig.buttons[name] = document.createElement('button'));\n button.classList = 'mpl-widget';\n button.setAttribute('role', 'button');\n button.setAttribute('aria-disabled', 'false');\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n\n var icon_img = document.createElement('img');\n icon_img.src = '_images/' + image + '.png';\n icon_img.srcset = '_images/' + image + '_large.png 2x';\n icon_img.alt = tooltip;\n button.appendChild(icon_img);\n\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n var fmt_picker = document.createElement('select');\n fmt_picker.classList = 'mpl-widget';\n toolbar.appendChild(fmt_picker);\n this.format_dropdown = fmt_picker;\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = document.createElement('option');\n option.selected = fmt === mpl.default_extension;\n option.innerHTML = fmt;\n fmt_picker.appendChild(option);\n }\n\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n};\n\nmpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', { width: x_pixels, height: y_pixels });\n};\n\nmpl.figure.prototype.send_message = function (type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n};\n\nmpl.figure.prototype.send_draw_message = function () {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n};\n\nmpl.figure.prototype.handle_resize = function (fig, msg) {\n var size = msg['size'];\n if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n fig._resize_canvas(size[0], size[1], msg['forward']);\n fig.send_message('refresh', {});\n }\n};\n\nmpl.figure.prototype.handle_rubberband = function (fig, msg) {\n var x0 = msg['x0'] / fig.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n var x1 = msg['x1'] / fig.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0,\n 0,\n fig.canvas.width / fig.ratio,\n fig.canvas.height / fig.ratio\n );\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n};\n\nmpl.figure.prototype.handle_figure_label = function (fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n};\n\nmpl.figure.prototype.handle_cursor = function (fig, msg) {\n fig.canvas_div.style.cursor = msg['cursor'];\n};\n\nmpl.figure.prototype.handle_message = function (fig, msg) {\n fig.message.textContent = msg['message'];\n};\n\nmpl.figure.prototype.handle_draw = function (fig, _msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n};\n\nmpl.figure.prototype.handle_image_mode = function (fig, msg) {\n fig.image_mode = msg['mode'];\n};\n\nmpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n for (var key in msg) {\n if (!(key in fig.buttons)) {\n continue;\n }\n fig.buttons[key].disabled = !msg[key];\n fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n }\n};\n\nmpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n if (msg['mode'] === 'PAN') {\n fig.buttons['Pan'].classList.add('active');\n fig.buttons['Zoom'].classList.remove('active');\n } else if (msg['mode'] === 'ZOOM') {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.add('active');\n } else {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.remove('active');\n }\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Called whenever the canvas gets updated.\n this.send_message('ack', {});\n};\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function (fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n var img = evt.data;\n if (img.type !== 'image/png') {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n img.type = 'image/png';\n }\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src\n );\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n img\n );\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n } else if (\n typeof evt.data === 'string' &&\n evt.data.slice(0, 21) === 'data:image/png;base64'\n ) {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig['handle_' + msg_type];\n } catch (e) {\n console.log(\n \"No handler for the '\" + msg_type + \"' message type: \",\n msg\n );\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\n \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n e,\n e.stack,\n msg\n );\n }\n }\n };\n};\n\nfunction getModifiers(event) {\n var mods = [];\n if (event.ctrlKey) {\n mods.push('ctrl');\n }\n if (event.altKey) {\n mods.push('alt');\n }\n if (event.shiftKey) {\n mods.push('shift');\n }\n if (event.metaKey) {\n mods.push('meta');\n }\n return mods;\n}\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * https://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys(original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object') {\n obj[key] = original[key];\n }\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function (event, name) {\n if (name === 'button_press') {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n // from https://stackoverflow.com/q/1114465\n var boundingRect = this.canvas.getBoundingClientRect();\n var x = (event.clientX - boundingRect.left) * this.ratio;\n var y = (event.clientY - boundingRect.top) * this.ratio;\n\n this.send_message(name, {\n x: x,\n y: y,\n button: event.button,\n step: event.step,\n modifiers: getModifiers(event),\n guiEvent: simpleKeys(event),\n });\n\n return false;\n};\n\nmpl.figure.prototype._key_event_extra = function (_event, _name) {\n // Handle any extra behaviour associated with a key event\n};\n\nmpl.figure.prototype.key_event = function (event, name) {\n // Prevent repeat events\n if (name === 'key_press') {\n if (event.key === this._key) {\n return;\n } else {\n this._key = event.key;\n }\n }\n if (name === 'key_release') {\n this._key = null;\n }\n\n var value = '';\n if (event.ctrlKey && event.key !== 'Control') {\n value += 'ctrl+';\n }\n else if (event.altKey && event.key !== 'Alt') {\n value += 'alt+';\n }\n else if (event.shiftKey && event.key !== 'Shift') {\n value += 'shift+';\n }\n\n value += 'k' + event.key;\n\n this._key_event_extra(event, name);\n\n this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n return false;\n};\n\nmpl.figure.prototype.toolbar_button_onclick = function (name) {\n if (name === 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message('toolbar_button', { name: name });\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n this.message.textContent = tooltip;\n};\n\n///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n// prettier-ignore\nvar _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis\", \"fa fa-square-o\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pgf\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\", \"webp\"];\n\nmpl.default_extension = \"png\";/* global mpl */\n\nvar comm_websocket_adapter = function (comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.binaryType = comm.kernel.ws.binaryType;\n ws.readyState = comm.kernel.ws.readyState;\n function updateReadyState(_event) {\n if (comm.kernel.ws) {\n ws.readyState = comm.kernel.ws.readyState;\n } else {\n ws.readyState = 3; // Closed state.\n }\n }\n comm.kernel.ws.addEventListener('open', updateReadyState);\n comm.kernel.ws.addEventListener('close', updateReadyState);\n comm.kernel.ws.addEventListener('error', updateReadyState);\n\n ws.close = function () {\n comm.close();\n };\n ws.send = function (m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function (msg) {\n //console.log('receiving', msg['content']['data'], msg);\n var data = msg['content']['data'];\n if (data['blob'] !== undefined) {\n data = {\n data: new Blob(msg['buffers'], { type: data['blob'] }),\n };\n }\n // Pass the mpl event to the overridden (by mpl) onmessage function.\n ws.onmessage(data);\n });\n return ws;\n};\n\nmpl.mpl_figure_comm = function (comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = document.getElementById(id);\n var ws_proxy = comm_websocket_adapter(comm);\n\n function ondownload(figure, _format) {\n window.open(figure.canvas.toDataURL());\n }\n\n var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element;\n fig.cell_info = mpl.find_output_cell(\"
\");\n if (!fig.cell_info) {\n console.error('Failed to find cell for figure', id, fig);\n return;\n }\n fig.cell_info[0].output_area.element.on(\n 'cleared',\n { fig: fig },\n fig._remove_fig_handler\n );\n};\n\nmpl.figure.prototype.handle_close = function (fig, msg) {\n var width = fig.canvas.width / fig.ratio;\n fig.cell_info[0].output_area.element.off(\n 'cleared',\n fig._remove_fig_handler\n );\n fig.resizeObserverInstance.unobserve(fig.canvas_div);\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable();\n fig.parent_element.innerHTML =\n '';\n fig.close_ws(fig, msg);\n};\n\nmpl.figure.prototype.close_ws = function (fig, msg) {\n fig.send_message('closing', msg);\n // fig.ws.close()\n};\n\nmpl.figure.prototype.push_to_output = function (_remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width / this.ratio;\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] =\n '';\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message('ack', {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () {\n fig.push_to_output();\n }, 1000);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'btn-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n var button;\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n continue;\n }\n\n button = fig.buttons[name] = document.createElement('button');\n button.classList = 'btn btn-default';\n button.href = '#';\n button.title = name;\n button.innerHTML = '';\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n // Add the status bar.\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message pull-right';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n\n // Add the close button to the window.\n var buttongrp = document.createElement('div');\n buttongrp.classList = 'btn-group inline pull-right';\n button = document.createElement('button');\n button.classList = 'btn btn-mini btn-primary';\n button.href = '#';\n button.title = 'Stop Interaction';\n button.innerHTML = '';\n button.addEventListener('click', function (_evt) {\n fig.handle_close(fig, {});\n });\n button.addEventListener(\n 'mouseover',\n on_mouseover_closure('Stop Interaction')\n );\n buttongrp.appendChild(button);\n var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n titlebar.insertBefore(buttongrp, titlebar.firstChild);\n};\n\nmpl.figure.prototype._remove_fig_handler = function (event) {\n var fig = event.data.fig;\n if (event.target !== this) {\n // Ignore bubbled events from children.\n return;\n }\n fig.close_ws(fig, {});\n};\n\nmpl.figure.prototype._root_extra_style = function (el) {\n el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n};\n\nmpl.figure.prototype._canvas_extra_style = function (el) {\n // this is important to make the div 'focusable\n el.setAttribute('tabindex', 0);\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n } else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n};\n\nmpl.figure.prototype._key_event_extra = function (event, _name) {\n // Check for shift+enter\n if (event.shiftKey && event.which === 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n fig.ondownload(fig, null);\n};\n\nmpl.find_output_cell = function (html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i = 0; i < ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code') {\n for (var j = 0; j < cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] === html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n};\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel !== null) {\n IPython.notebook.kernel.comm_manager.register_target(\n 'matplotlib',\n mpl.mpl_figure_comm\n );\n}\n", "text/plain": [ "" ] @@ -8892,7 +1925,7 @@ { "data": { "text/html": [ - "
" + "
" ], "text/plain": [ "" @@ -8952,8 +1985,22 @@ } ], "metadata": { + "kernelspec": { + "display_name": ".crypto", + "language": "python", + "name": "python3" + }, "language_info": { - "name": "python" + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.2" } }, "nbformat": 4, diff --git a/scripts/__init__.py b/scripts/__init__.py new file mode 100644 index 0000000..e69de29