diff --git a/placedOrderBot.ipynb b/placedOrderBot.ipynb index a6cd455..969fbf1 100644 --- a/placedOrderBot.ipynb +++ b/placedOrderBot.ipynb @@ -16,7 +16,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 172, "metadata": {}, "outputs": [], "source": [ @@ -35,9 +35,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 173, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 173, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# login to your Trading Account - sign up in the description\n", "mt.initialize()\n", @@ -58,7 +69,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 174, "metadata": {}, "outputs": [], "source": [ @@ -81,7 +92,7 @@ }, { "cell_type": "code", - "execution_count": 665, + "execution_count": 267, "metadata": {}, "outputs": [ { @@ -118,28 +129,6 @@ " \n", " \n", " 0\n", - " 2025-01-29\n", - " 2763.28\n", - " 2766.15\n", - " 2744.83\n", - " 2759.46\n", - " 163594\n", - " 18\n", - " 0\n", - " \n", - " \n", - " 1\n", - " 2025-01-30\n", - " 2759.43\n", - " 2798.40\n", - " 2758.21\n", - " 2793.09\n", - " 162479\n", - " 18\n", - " 0\n", - " \n", - " \n", - " 2\n", " 2025-01-31\n", " 2796.26\n", " 2817.07\n", @@ -150,7 +139,7 @@ " 0\n", " \n", " \n", - " 3\n", + " 1\n", " 2025-02-03\n", " 2800.67\n", " 2830.72\n", @@ -161,7 +150,7 @@ " 0\n", " \n", " \n", - " 4\n", + " 2\n", " 2025-02-04\n", " 2814.23\n", " 2845.34\n", @@ -172,7 +161,7 @@ " 0\n", " \n", " \n", - " 5\n", + " 3\n", " 2025-02-05\n", " 2842.57\n", " 2882.22\n", @@ -183,7 +172,7 @@ " 0\n", " \n", " \n", - " 6\n", + " 4\n", " 2025-02-06\n", " 2865.36\n", " 2873.34\n", @@ -194,7 +183,7 @@ " 0\n", " \n", " \n", - " 7\n", + " 5\n", " 2025-02-07\n", " 2855.96\n", " 2886.76\n", @@ -205,7 +194,7 @@ " 0\n", " \n", " \n", - " 8\n", + " 6\n", " 2025-02-10\n", " 2858.80\n", " 2911.71\n", @@ -216,7 +205,7 @@ " 0\n", " \n", " \n", - " 9\n", + " 7\n", " 2025-02-11\n", " 2907.84\n", " 2942.67\n", @@ -227,7 +216,7 @@ " 0\n", " \n", " \n", - " 10\n", + " 8\n", " 2025-02-12\n", " 2898.02\n", " 2909.09\n", @@ -238,7 +227,7 @@ " 0\n", " \n", " \n", - " 11\n", + " 9\n", " 2025-02-13\n", " 2904.02\n", " 2929.41\n", @@ -249,7 +238,7 @@ " 0\n", " \n", " \n", - " 12\n", + " 10\n", " 2025-02-14\n", " 2927.85\n", " 2939.99\n", @@ -260,7 +249,7 @@ " 0\n", " \n", " \n", - " 13\n", + " 11\n", " 2025-02-17\n", " 2884.84\n", " 2906.38\n", @@ -271,7 +260,7 @@ " 0\n", " \n", " \n", - " 14\n", + " 12\n", " 2025-02-18\n", " 2898.40\n", " 2936.88\n", @@ -282,7 +271,7 @@ " 0\n", " \n", " \n", - " 15\n", + " 13\n", " 2025-02-19\n", " 2935.71\n", " 2946.87\n", @@ -293,7 +282,7 @@ " 0\n", " \n", " \n", - " 16\n", + " 14\n", " 2025-02-20\n", " 2933.47\n", " 2954.83\n", @@ -304,7 +293,7 @@ " 0\n", " \n", " \n", - " 17\n", + " 15\n", " 2025-02-21\n", " 2938.70\n", " 2949.74\n", @@ -315,7 +304,7 @@ " 0\n", " \n", " \n", - " 18\n", + " 16\n", " 2025-02-24\n", " 2935.19\n", " 2956.22\n", @@ -326,7 +315,7 @@ " 0\n", " \n", " \n", - " 19\n", + " 17\n", " 2025-02-25\n", " 2952.42\n", " 2953.75\n", @@ -337,7 +326,7 @@ " 0\n", " \n", " \n", - " 20\n", + " 18\n", " 2025-02-26\n", " 2915.06\n", " 2930.16\n", @@ -348,7 +337,7 @@ " 0\n", " \n", " \n", - " 21\n", + " 19\n", " 2025-02-27\n", " 2916.73\n", " 2920.82\n", @@ -359,7 +348,7 @@ " 0\n", " \n", " \n", - " 22\n", + " 20\n", " 2025-02-28\n", " 2877.31\n", " 2885.07\n", @@ -370,7 +359,7 @@ " 0\n", " \n", " \n", - " 23\n", + " 21\n", " 2025-03-03\n", " 2856.18\n", " 2895.21\n", @@ -381,7 +370,7 @@ " 0\n", " \n", " \n", - " 24\n", + " 22\n", " 2025-03-04\n", " 2892.77\n", " 2927.81\n", @@ -392,7 +381,7 @@ " 0\n", " \n", " \n", - " 25\n", + " 23\n", " 2025-03-05\n", " 2917.84\n", " 2929.88\n", @@ -403,7 +392,7 @@ " 0\n", " \n", " \n", - " 26\n", + " 24\n", " 2025-03-06\n", " 2919.52\n", " 2926.51\n", @@ -414,7 +403,7 @@ " 0\n", " \n", " \n", - " 27\n", + " 25\n", " 2025-03-07\n", " 2911.39\n", " 2930.42\n", @@ -425,7 +414,7 @@ " 0\n", " \n", " \n", - " 28\n", + " 26\n", " 2025-03-10\n", " 2911.25\n", " 2918.22\n", @@ -436,7 +425,7 @@ " 0\n", " \n", " \n", - " 29\n", + " 27\n", " 2025-03-11\n", " 2888.82\n", " 2922.13\n", @@ -447,7 +436,7 @@ " 0\n", " \n", " \n", - " 30\n", + " 28\n", " 2025-03-12\n", " 2915.66\n", " 2940.48\n", @@ -458,7 +447,7 @@ " 0\n", " \n", " \n", - " 31\n", + " 29\n", " 2025-03-13\n", " 2934.10\n", " 2989.05\n", @@ -469,7 +458,7 @@ " 0\n", " \n", " \n", - " 32\n", + " 30\n", " 2025-03-14\n", " 2989.31\n", " 3004.93\n", @@ -480,7 +469,7 @@ " 0\n", " \n", " \n", - " 33\n", + " 31\n", " 2025-03-17\n", " 2984.83\n", " 3001.86\n", @@ -491,7 +480,7 @@ " 0\n", " \n", " \n", - " 34\n", + " 32\n", " 2025-03-18\n", " 3001.16\n", " 3038.25\n", @@ -502,7 +491,7 @@ " 0\n", " \n", " \n", - " 35\n", + " 33\n", " 2025-03-19\n", " 3033.89\n", " 3051.96\n", @@ -513,7 +502,7 @@ " 0\n", " \n", " \n", - " 36\n", + " 34\n", " 2025-03-20\n", " 3047.96\n", " 3057.46\n", @@ -524,7 +513,7 @@ " 0\n", " \n", " \n", - " 37\n", + " 35\n", " 2025-03-21\n", " 3044.55\n", " 3047.43\n", @@ -535,7 +524,7 @@ " 0\n", " \n", " \n", - " 38\n", + " 36\n", " 2025-03-24\n", " 3021.99\n", " 3033.33\n", @@ -546,7 +535,7 @@ " 0\n", " \n", " \n", - " 39\n", + " 37\n", " 2025-03-25\n", " 3011.62\n", " 3035.94\n", @@ -557,7 +546,7 @@ " 0\n", " \n", " \n", - " 40\n", + " 38\n", " 2025-03-26\n", " 3019.39\n", " 3032.03\n", @@ -568,7 +557,7 @@ " 0\n", " \n", " \n", - " 41\n", + " 39\n", " 2025-03-27\n", " 3019.37\n", " 3059.67\n", @@ -579,7 +568,7 @@ " 0\n", " \n", " \n", - " 42\n", + " 40\n", " 2025-03-28\n", " 3056.57\n", " 3086.76\n", @@ -590,7 +579,7 @@ " 0\n", " \n", " \n", - " 43\n", + " 41\n", " 2025-03-31\n", " 3086.34\n", " 3127.96\n", @@ -601,7 +590,7 @@ " 0\n", " \n", " \n", - " 44\n", + " 42\n", " 2025-04-01\n", " 3122.98\n", " 3148.96\n", @@ -612,7 +601,7 @@ " 0\n", " \n", " \n", - " 45\n", + " 43\n", " 2025-04-02\n", " 3113.80\n", " 3143.32\n", @@ -623,7 +612,7 @@ " 0\n", " \n", " \n", - " 46\n", + " 44\n", " 2025-04-03\n", " 3142.25\n", " 3167.64\n", @@ -634,7 +623,7 @@ " 0\n", " \n", " \n", - " 47\n", + " 45\n", " 2025-04-04\n", " 3114.54\n", " 3136.61\n", @@ -645,7 +634,7 @@ " 0\n", " \n", " \n", - " 48\n", + " 46\n", " 2025-04-07\n", " 3008.62\n", " 3055.38\n", @@ -656,7 +645,7 @@ " 0\n", " \n", " \n", - " 49\n", + " 47\n", " 2025-04-08\n", " 2983.16\n", " 3022.64\n", @@ -667,7 +656,7 @@ " 0\n", " \n", " \n", - " 50\n", + " 48\n", " 2025-04-09\n", " 2983.48\n", " 3099.46\n", @@ -678,7 +667,7 @@ " 0\n", " \n", " \n", - " 51\n", + " 49\n", " 2025-04-10\n", " 3083.53\n", " 3176.29\n", @@ -689,7 +678,7 @@ " 0\n", " \n", " \n", - " 52\n", + " 50\n", " 2025-04-11\n", " 3175.72\n", " 3245.34\n", @@ -700,7 +689,7 @@ " 0\n", " \n", " \n", - " 53\n", + " 51\n", " 2025-04-14\n", " 3226.90\n", " 3245.72\n", @@ -711,7 +700,7 @@ " 0\n", " \n", " \n", - " 54\n", + " 52\n", " 2025-04-15\n", " 3211.18\n", " 3233.55\n", @@ -722,7 +711,7 @@ " 0\n", " \n", " \n", - " 55\n", + " 53\n", " 2025-04-16\n", " 3231.04\n", " 3342.39\n", @@ -733,7 +722,7 @@ " 0\n", " \n", " \n", - " 56\n", + " 54\n", " 2025-04-17\n", " 3343.13\n", " 3357.71\n", @@ -744,7 +733,7 @@ " 0\n", " \n", " \n", - " 57\n", + " 55\n", " 2025-04-21\n", " 3332.68\n", " 3430.48\n", @@ -755,7 +744,7 @@ " 0\n", " \n", " \n", - " 58\n", + " 56\n", " 2025-04-22\n", " 3424.07\n", " 3500.04\n", @@ -766,13 +755,35 @@ " 0\n", " \n", " \n", - " 59\n", + " 57\n", " 2025-04-23\n", " 3353.28\n", " 3386.63\n", " 3260.21\n", - " 3284.89\n", - " 184866\n", + " 3288.34\n", + " 193560\n", + " 18\n", + " 0\n", + " \n", + " \n", + " 58\n", + " 2025-04-24\n", + " 3288.51\n", + " 3367.41\n", + " 3288.45\n", + " 3349.38\n", + " 160771\n", + " 18\n", + " 0\n", + " \n", + " \n", + " 59\n", + " 2025-04-25\n", + " 3350.42\n", + " 3370.71\n", + " 3265.04\n", + " 3318.69\n", + " 240555\n", " 18\n", " 0\n", " \n", @@ -782,66 +793,66 @@ ], "text/plain": [ " time open high low close tick_volume spread \\\n", - "0 2025-01-29 2763.28 2766.15 2744.83 2759.46 163594 18 \n", - "1 2025-01-30 2759.43 2798.40 2758.21 2793.09 162479 18 \n", - "2 2025-01-31 2796.26 2817.07 2791.03 2799.25 176088 18 \n", - "3 2025-02-03 2800.67 2830.72 2772.09 2814.76 222780 18 \n", - "4 2025-02-04 2814.23 2845.34 2807.33 2842.09 190207 18 \n", - "5 2025-02-05 2842.57 2882.22 2839.76 2867.22 144079 18 \n", - "6 2025-02-06 2865.36 2873.34 2834.23 2855.99 136634 18 \n", - "7 2025-02-07 2855.96 2886.76 2852.55 2861.36 174549 18 \n", - "8 2025-02-10 2858.80 2911.71 2854.73 2907.97 174533 18 \n", - "9 2025-02-11 2907.84 2942.67 2881.61 2897.68 221876 18 \n", - "10 2025-02-12 2898.02 2909.09 2864.20 2904.11 185547 18 \n", - "11 2025-02-13 2904.02 2929.41 2900.54 2928.40 152063 18 \n", - "12 2025-02-14 2927.85 2939.99 2876.94 2882.55 180610 18 \n", - "13 2025-02-17 2884.84 2906.38 2878.83 2897.46 129712 18 \n", - "14 2025-02-18 2898.40 2936.88 2891.99 2935.23 139030 18 \n", - "15 2025-02-19 2935.71 2946.87 2918.54 2932.76 160944 18 \n", - "16 2025-02-20 2933.47 2954.83 2924.08 2938.61 155405 18 \n", - "17 2025-02-21 2938.70 2949.74 2916.75 2935.95 159274 18 \n", - "18 2025-02-24 2935.19 2956.22 2921.30 2952.46 171870 18 \n", - "19 2025-02-25 2952.42 2953.75 2888.18 2914.93 198402 18 \n", - "20 2025-02-26 2915.06 2930.16 2890.77 2916.36 158179 18 \n", - "21 2025-02-27 2916.73 2920.82 2867.77 2877.15 207221 18 \n", - "22 2025-02-28 2877.31 2885.07 2832.62 2859.03 224045 18 \n", - "23 2025-03-03 2856.18 2895.21 2855.57 2893.66 205740 18 \n", - "24 2025-03-04 2892.77 2927.81 2881.92 2917.65 214258 18 \n", - "25 2025-03-05 2917.84 2929.88 2894.34 2919.11 231043 18 \n", - "26 2025-03-06 2919.52 2926.51 2891.20 2911.01 219058 18 \n", - "27 2025-03-07 2911.39 2930.42 2896.78 2912.06 225312 18 \n", - "28 2025-03-10 2911.25 2918.22 2880.22 2889.02 220535 18 \n", - "29 2025-03-11 2888.82 2922.13 2880.30 2916.08 175258 18 \n", - "30 2025-03-12 2915.66 2940.48 2906.11 2933.24 170540 18 \n", - "31 2025-03-13 2934.10 2989.05 2932.89 2989.01 177969 18 \n", - "32 2025-03-14 2989.31 3004.93 2978.46 2986.39 197059 18 \n", - "33 2025-03-17 2984.83 3001.86 2982.13 3001.42 155946 18 \n", - "34 2025-03-18 3001.16 3038.25 2999.39 3034.08 179165 18 \n", - "35 2025-03-19 3033.89 3051.96 3022.79 3047.26 174636 18 \n", - "36 2025-03-20 3047.96 3057.46 3025.69 3044.64 200333 18 \n", - "37 2025-03-21 3044.55 3047.43 2999.46 3023.15 185542 18 \n", - "38 2025-03-24 3021.99 3033.33 3002.46 3011.81 193224 18 \n", - "39 2025-03-25 3011.62 3035.94 3007.55 3020.34 153347 18 \n", - "40 2025-03-26 3019.39 3032.03 3012.34 3018.96 162718 18 \n", - "41 2025-03-27 3019.37 3059.67 3017.60 3056.73 196828 18 \n", - "42 2025-03-28 3056.57 3086.76 3054.19 3084.56 187584 18 \n", - "43 2025-03-31 3086.34 3127.96 3076.77 3124.07 209942 18 \n", - "44 2025-04-01 3122.98 3148.96 3100.79 3114.26 206537 18 \n", - "45 2025-04-02 3113.80 3143.32 3105.20 3133.56 188846 18 \n", - "46 2025-04-03 3142.25 3167.64 3054.21 3113.32 313074 0 \n", - "47 2025-04-04 3114.54 3136.61 3015.79 3038.42 252778 18 \n", - "48 2025-04-07 3008.62 3055.38 2956.52 2982.60 212668 0 \n", - "49 2025-04-08 2983.16 3022.64 2974.72 2982.34 185173 18 \n", - "50 2025-04-09 2983.48 3099.46 2969.98 3082.91 253727 18 \n", - "51 2025-04-10 3083.53 3176.29 3071.39 3175.77 184496 18 \n", - "52 2025-04-11 3175.72 3245.34 3175.71 3237.59 187568 18 \n", - "53 2025-04-14 3226.90 3245.72 3193.72 3210.36 157467 18 \n", - "54 2025-04-15 3211.18 3233.55 3210.02 3229.79 115741 18 \n", - "55 2025-04-16 3231.04 3342.39 3229.80 3342.26 172558 18 \n", - "56 2025-04-17 3343.13 3357.71 3283.98 3327.48 162159 18 \n", - "57 2025-04-21 3332.68 3430.48 3328.90 3424.67 165503 18 \n", - "58 2025-04-22 3424.07 3500.04 3366.85 3381.28 205173 18 \n", - "59 2025-04-23 3353.28 3386.63 3260.21 3284.89 184866 18 \n", + "0 2025-01-31 2796.26 2817.07 2791.03 2799.25 176088 18 \n", + "1 2025-02-03 2800.67 2830.72 2772.09 2814.76 222780 18 \n", + "2 2025-02-04 2814.23 2845.34 2807.33 2842.09 190207 18 \n", + "3 2025-02-05 2842.57 2882.22 2839.76 2867.22 144079 18 \n", + "4 2025-02-06 2865.36 2873.34 2834.23 2855.99 136634 18 \n", + "5 2025-02-07 2855.96 2886.76 2852.55 2861.36 174549 18 \n", + "6 2025-02-10 2858.80 2911.71 2854.73 2907.97 174533 18 \n", + "7 2025-02-11 2907.84 2942.67 2881.61 2897.68 221876 18 \n", + "8 2025-02-12 2898.02 2909.09 2864.20 2904.11 185547 18 \n", + "9 2025-02-13 2904.02 2929.41 2900.54 2928.40 152063 18 \n", + "10 2025-02-14 2927.85 2939.99 2876.94 2882.55 180610 18 \n", + "11 2025-02-17 2884.84 2906.38 2878.83 2897.46 129712 18 \n", + "12 2025-02-18 2898.40 2936.88 2891.99 2935.23 139030 18 \n", + "13 2025-02-19 2935.71 2946.87 2918.54 2932.76 160944 18 \n", + "14 2025-02-20 2933.47 2954.83 2924.08 2938.61 155405 18 \n", + "15 2025-02-21 2938.70 2949.74 2916.75 2935.95 159274 18 \n", + "16 2025-02-24 2935.19 2956.22 2921.30 2952.46 171870 18 \n", + "17 2025-02-25 2952.42 2953.75 2888.18 2914.93 198402 18 \n", + "18 2025-02-26 2915.06 2930.16 2890.77 2916.36 158179 18 \n", + "19 2025-02-27 2916.73 2920.82 2867.77 2877.15 207221 18 \n", + "20 2025-02-28 2877.31 2885.07 2832.62 2859.03 224045 18 \n", + "21 2025-03-03 2856.18 2895.21 2855.57 2893.66 205740 18 \n", + "22 2025-03-04 2892.77 2927.81 2881.92 2917.65 214258 18 \n", + "23 2025-03-05 2917.84 2929.88 2894.34 2919.11 231043 18 \n", + "24 2025-03-06 2919.52 2926.51 2891.20 2911.01 219058 18 \n", + "25 2025-03-07 2911.39 2930.42 2896.78 2912.06 225312 18 \n", + "26 2025-03-10 2911.25 2918.22 2880.22 2889.02 220535 18 \n", + "27 2025-03-11 2888.82 2922.13 2880.30 2916.08 175258 18 \n", + "28 2025-03-12 2915.66 2940.48 2906.11 2933.24 170540 18 \n", + "29 2025-03-13 2934.10 2989.05 2932.89 2989.01 177969 18 \n", + "30 2025-03-14 2989.31 3004.93 2978.46 2986.39 197059 18 \n", + "31 2025-03-17 2984.83 3001.86 2982.13 3001.42 155946 18 \n", + "32 2025-03-18 3001.16 3038.25 2999.39 3034.08 179165 18 \n", + "33 2025-03-19 3033.89 3051.96 3022.79 3047.26 174636 18 \n", + "34 2025-03-20 3047.96 3057.46 3025.69 3044.64 200333 18 \n", + "35 2025-03-21 3044.55 3047.43 2999.46 3023.15 185542 18 \n", + "36 2025-03-24 3021.99 3033.33 3002.46 3011.81 193224 18 \n", + "37 2025-03-25 3011.62 3035.94 3007.55 3020.34 153347 18 \n", + "38 2025-03-26 3019.39 3032.03 3012.34 3018.96 162718 18 \n", + "39 2025-03-27 3019.37 3059.67 3017.60 3056.73 196828 18 \n", + "40 2025-03-28 3056.57 3086.76 3054.19 3084.56 187584 18 \n", + "41 2025-03-31 3086.34 3127.96 3076.77 3124.07 209942 18 \n", + "42 2025-04-01 3122.98 3148.96 3100.79 3114.26 206537 18 \n", + "43 2025-04-02 3113.80 3143.32 3105.20 3133.56 188846 18 \n", + "44 2025-04-03 3142.25 3167.64 3054.21 3113.32 313074 0 \n", + "45 2025-04-04 3114.54 3136.61 3015.79 3038.42 252778 18 \n", + "46 2025-04-07 3008.62 3055.38 2956.52 2982.60 212668 0 \n", + "47 2025-04-08 2983.16 3022.64 2974.72 2982.34 185173 18 \n", + "48 2025-04-09 2983.48 3099.46 2969.98 3082.91 253727 18 \n", + "49 2025-04-10 3083.53 3176.29 3071.39 3175.77 184496 18 \n", + "50 2025-04-11 3175.72 3245.34 3175.71 3237.59 187568 18 \n", + "51 2025-04-14 3226.90 3245.72 3193.72 3210.36 157467 18 \n", + "52 2025-04-15 3211.18 3233.55 3210.02 3229.79 115741 18 \n", + "53 2025-04-16 3231.04 3342.39 3229.80 3342.26 172558 18 \n", + "54 2025-04-17 3343.13 3357.71 3283.98 3327.48 162159 18 \n", + "55 2025-04-21 3332.68 3430.48 3328.90 3424.67 165503 18 \n", + "56 2025-04-22 3424.07 3500.04 3366.85 3381.28 205173 18 \n", + "57 2025-04-23 3353.28 3386.63 3260.21 3288.34 193560 18 \n", + "58 2025-04-24 3288.51 3367.41 3288.45 3349.38 160771 18 \n", + "59 2025-04-25 3350.42 3370.71 3265.04 3318.69 240555 18 \n", "\n", " real_volume \n", "0 0 \n", @@ -906,7 +917,7 @@ "59 0 " ] }, - "execution_count": 665, + "execution_count": 267, "metadata": {}, "output_type": "execute_result" } @@ -920,7 +931,7 @@ }, { "cell_type": "code", - "execution_count": 666, + "execution_count": 268, "metadata": {}, "outputs": [ { @@ -929,7 +940,7 @@ "(3500.0, 3367.0)" ] }, - "execution_count": 666, + "execution_count": 268, "metadata": {}, "output_type": "execute_result" } @@ -944,16 +955,16 @@ }, { "cell_type": "code", - "execution_count": 667, + "execution_count": 269, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(3500.04, 3366.85)" + "(3367.41, 3288.45)" ] }, - "execution_count": 667, + "execution_count": 269, "metadata": {}, "output_type": "execute_result" } @@ -967,16 +978,16 @@ }, { "cell_type": "code", - "execution_count": 668, + "execution_count": 270, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(3386.63, 3260.21)" + "(3370.71, 3265.04)" ] }, - "execution_count": 668, + "execution_count": 270, "metadata": {}, "output_type": "execute_result" } @@ -992,28 +1003,28 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Get High and Low last 25 Minutes" + "## Get High and Low last 5 Minutes intervall - 75 candles" ] }, { "cell_type": "code", - "execution_count": 669, + "execution_count": 271, "metadata": {}, "outputs": [], "source": [ "def tp_sl():\n", - " ohlc = mt.copy_rates_from_pos('XAUUSD', mt.TIMEFRAME_M1, 1, 25)\n", + " ohlc = mt.copy_rates_from_pos('XAUUSD', mt.TIMEFRAME_M5, 1, 75)\n", " ohlc_df = pd.DataFrame(ohlc)\n", " ohlc_df['time']=pd.to_datetime(ohlc_df['time'], unit='s')\n", "\n", "\n", " # Create a column to mark the start of 5-minute intervals\n", - " ohlc_df['box_start'] = (ohlc_df['time'].dt.minute % 5 == 0).astype(int)\n", + " ohlc_df['box_start'] = (ohlc_df['time'].dt.minute % 15 == 0).astype(int)\n", " # Create columns for rolling maximum and minimum over the last 5 candles, excluding the current candle\n", - " ohlc_df['max_box'] = ohlc_df['high'].shift(1).rolling(window=5).max()\n", - " ohlc_df['min_box'] = ohlc_df['low'].shift(1).rolling(window=5).min()\n", + " ohlc_df['max_box'] = ohlc_df['high'].shift(1).rolling(window=15).max()\n", + " ohlc_df['min_box'] = ohlc_df['low'].shift(1).rolling(window=15).min()\n", " # Breaking signal\n", - " ohlc_df[\"Break_signal\"] = (ohlc_df[\"close\"] > ohlc_df[\"max_box\"]).astype(int) * 2 + (ohlc_df[\"close\"] < ohlc_df[\"min_box\"]).astype(int)\n", + " #ohlc_df[\"Break_signal\"] = (ohlc_df[\"close\"] > ohlc_df[\"max_box\"]).astype(int) * 2 + (ohlc_df[\"close\"] < ohlc_df[\"min_box\"]).astype(int)\n", " #print(ohlc_df['max_box'][14].astype(int)*2)\n", "\n", " return ohlc_df\n" @@ -1021,7 +1032,7 @@ }, { "cell_type": "code", - "execution_count": 670, + "execution_count": 272, "metadata": {}, "outputs": [ { @@ -1056,384 +1067,358 @@ " box_start\n", " max_box\n", " min_box\n", - " Break_signal\n", " \n", " \n", " \n", " \n", - " 0\n", - " 2025-04-23 21:36:00\n", - " 3279.67\n", - " 3279.72\n", - " 3279.11\n", - " 3279.27\n", - " 78\n", - " 18\n", - " 0\n", - " 0\n", - " NaN\n", - " NaN\n", - " 0\n", - " \n", - " \n", " 1\n", - " 2025-04-23 21:37:00\n", - " 3279.31\n", - " 3281.24\n", - " 3279.25\n", - " 3280.81\n", - " 95\n", + " 2025-04-25 17:45:00\n", + " 3282.20\n", + " 3282.66\n", + " 3279.63\n", + " 3280.86\n", + " 1373\n", " 18\n", " 0\n", - " 0\n", + " 1\n", " NaN\n", " NaN\n", - " 0\n", - " \n", - " \n", - " 2\n", - " 2025-04-23 21:38:00\n", - " 3280.81\n", - " 3281.40\n", - " 3280.45\n", - " 3281.20\n", - " 86\n", - " 18\n", - " 0\n", - " 0\n", - " NaN\n", - " NaN\n", - " 0\n", - " \n", - " \n", - " 3\n", - " 2025-04-23 21:39:00\n", - " 3281.31\n", - " 3281.52\n", - " 3280.10\n", - " 3280.12\n", - " 88\n", - " 18\n", - " 0\n", - " 0\n", - " NaN\n", - " NaN\n", - " 0\n", " \n", " \n", " 4\n", - " 2025-04-23 21:40:00\n", - " 3280.12\n", - " 3280.55\n", - " 3279.80\n", - " 3280.10\n", - " 77\n", + " 2025-04-25 18:00:00\n", + " 3277.96\n", + " 3280.87\n", + " 3276.92\n", + " 3280.03\n", + " 1236\n", " 18\n", " 0\n", " 1\n", " NaN\n", " NaN\n", - " 0\n", - " \n", - " \n", - " 5\n", - " 2025-04-23 21:41:00\n", - " 3280.10\n", - " 3280.10\n", - " 3279.05\n", - " 3279.15\n", - " 65\n", - " 18\n", - " 0\n", - " 0\n", - " 3281.52\n", - " 3279.11\n", - " 0\n", - " \n", - " \n", - " 6\n", - " 2025-04-23 21:42:00\n", - " 3278.98\n", - " 3279.07\n", - " 3277.92\n", - " 3278.37\n", - " 102\n", - " 18\n", - " 0\n", - " 0\n", - " 3281.52\n", - " 3279.05\n", - " 1\n", " \n", " \n", " 7\n", - " 2025-04-23 21:43:00\n", - " 3278.37\n", - " 3280.35\n", - " 3277.78\n", - " 3280.08\n", - " 108\n", - " 18\n", - " 0\n", - " 0\n", - " 3281.52\n", - " 3277.92\n", - " 0\n", - " \n", - " \n", - " 8\n", - " 2025-04-23 21:44:00\n", - " 3280.05\n", - " 3280.44\n", - " 3279.93\n", - " 3280.33\n", - " 64\n", - " 18\n", - " 0\n", - " 0\n", - " 3281.52\n", - " 3277.78\n", - " 0\n", - " \n", - " \n", - " 9\n", - " 2025-04-23 21:45:00\n", - " 3280.33\n", - " 3281.34\n", - " 3280.31\n", - " 3280.31\n", - " 78\n", + " 2025-04-25 18:15:00\n", + " 3272.39\n", + " 3275.33\n", + " 3272.39\n", + " 3273.67\n", + " 1204\n", " 18\n", " 0\n", " 1\n", - " 3280.55\n", - " 3277.78\n", - " 0\n", + " NaN\n", + " NaN\n", " \n", " \n", " 10\n", - " 2025-04-23 21:46:00\n", - " 3280.31\n", - " 3280.71\n", - " 3280.13\n", - " 3280.32\n", - " 73\n", + " 2025-04-25 18:30:00\n", + " 3272.36\n", + " 3275.36\n", + " 3272.02\n", + " 3274.25\n", + " 1014\n", " 18\n", " 0\n", - " 0\n", - " 3281.34\n", - " 3277.78\n", - " 0\n", - " \n", - " \n", - " 11\n", - " 2025-04-23 21:47:00\n", - " 3280.32\n", - " 3282.19\n", - " 3280.15\n", - " 3282.19\n", - " 81\n", - " 18\n", - " 0\n", - " 0\n", - " 3281.34\n", - " 3277.78\n", - " 2\n", - " \n", - " \n", - " 12\n", - " 2025-04-23 21:48:00\n", - " 3282.22\n", - " 3282.51\n", - " 3282.01\n", - " 3282.13\n", - " 63\n", - " 18\n", - " 0\n", - " 0\n", - " 3282.19\n", - " 3277.78\n", - " 0\n", + " 1\n", + " NaN\n", + " NaN\n", " \n", " \n", " 13\n", - " 2025-04-23 21:49:00\n", - " 3282.13\n", - " 3282.43\n", - " 3281.90\n", - " 3282.35\n", - " 60\n", - " 18\n", - " 0\n", - " 0\n", - " 3282.51\n", - " 3279.93\n", - " 0\n", - " \n", - " \n", - " 14\n", - " 2025-04-23 21:50:00\n", - " 3282.35\n", - " 3283.04\n", - " 3282.25\n", - " 3282.92\n", - " 71\n", + " 2025-04-25 18:45:00\n", + " 3280.15\n", + " 3281.25\n", + " 3278.42\n", + " 3280.74\n", + " 771\n", " 18\n", " 0\n", " 1\n", - " 3282.51\n", - " 3280.13\n", - " 2\n", - " \n", - " \n", - " 15\n", - " 2025-04-23 21:51:00\n", - " 3282.92\n", - " 3283.81\n", - " 3282.83\n", - " 3282.90\n", - " 69\n", - " 18\n", - " 0\n", - " 0\n", - " 3283.04\n", - " 3280.13\n", - " 0\n", + " NaN\n", + " NaN\n", " \n", " \n", " 16\n", - " 2025-04-23 21:52:00\n", - " 3282.89\n", - " 3283.26\n", - " 3282.35\n", - " 3282.97\n", - " 61\n", + " 2025-04-25 19:00:00\n", + " 3282.96\n", + " 3284.49\n", + " 3281.25\n", + " 3284.49\n", + " 839\n", " 18\n", " 0\n", - " 0\n", - " 3283.81\n", - " 3280.15\n", - " 0\n", - " \n", - " \n", - " 17\n", - " 2025-04-23 21:53:00\n", - " 3282.97\n", - " 3282.98\n", - " 3281.79\n", - " 3281.84\n", - " 53\n", - " 18\n", - " 0\n", - " 0\n", - " 3283.81\n", - " 3281.90\n", - " 1\n", - " \n", - " \n", - " 18\n", - " 2025-04-23 21:54:00\n", - " 3281.84\n", - " 3281.94\n", - " 3281.05\n", - " 3281.09\n", - " 69\n", - " 18\n", - " 0\n", - " 0\n", - " 3283.81\n", - " 3281.79\n", " 1\n", + " 3285.59\n", + " 3270.06\n", " \n", " \n", " 19\n", - " 2025-04-23 21:55:00\n", - " 3281.11\n", - " 3281.85\n", - " 3281.10\n", - " 3281.53\n", - " 91\n", + " 2025-04-25 19:15:00\n", + " 3283.87\n", + " 3284.03\n", + " 3282.06\n", + " 3283.46\n", + " 503\n", " 18\n", " 0\n", " 1\n", - " 3283.81\n", - " 3281.05\n", - " 0\n", - " \n", - " \n", - " 20\n", - " 2025-04-23 21:56:00\n", - " 3281.53\n", - " 3282.34\n", - " 3281.45\n", - " 3282.32\n", - " 102\n", - " 18\n", - " 0\n", - " 0\n", - " 3283.81\n", - " 3281.05\n", - " 0\n", - " \n", - " \n", - " 21\n", - " 2025-04-23 21:57:00\n", - " 3282.32\n", - " 3282.32\n", - " 3281.54\n", - " 3281.82\n", - " 81\n", - " 18\n", - " 0\n", - " 0\n", - " 3283.26\n", - " 3281.05\n", - " 0\n", + " 3285.71\n", + " 3270.06\n", " \n", " \n", " 22\n", - " 2025-04-23 21:58:00\n", - " 3281.75\n", - " 3282.78\n", - " 3281.74\n", - " 3282.74\n", - " 124\n", - " 18\n", - " 0\n", - " 0\n", - " 3282.98\n", - " 3281.05\n", - " 0\n", - " \n", - " \n", - " 23\n", - " 2025-04-23 21:59:00\n", - " 3282.75\n", - " 3282.94\n", - " 3282.40\n", - " 3282.80\n", - " 113\n", - " 18\n", - " 0\n", - " 0\n", - " 3282.78\n", - " 3281.05\n", - " 2\n", - " \n", - " \n", - " 24\n", - " 2025-04-23 22:00:00\n", - " 3282.78\n", - " 3284.32\n", - " 3282.64\n", - " 3284.16\n", - " 120\n", + " 2025-04-25 19:30:00\n", + " 3283.25\n", + " 3285.59\n", + " 3283.12\n", + " 3284.71\n", + " 647\n", " 18\n", " 0\n", " 1\n", - " 3282.94\n", - " 3281.10\n", - " 2\n", + " 3285.71\n", + " 3270.06\n", + " \n", + " \n", + " 25\n", + " 2025-04-25 19:45:00\n", + " 3280.78\n", + " 3283.15\n", + " 3280.31\n", + " 3283.07\n", + " 696\n", + " 18\n", + " 0\n", + " 1\n", + " 3285.71\n", + " 3272.02\n", + " \n", + " \n", + " 28\n", + " 2025-04-25 20:00:00\n", + " 3285.31\n", + " 3285.49\n", + " 3281.97\n", + " 3282.23\n", + " 935\n", + " 18\n", + " 0\n", + " 1\n", + " 3287.48\n", + " 3278.42\n", + " \n", + " \n", + " 31\n", + " 2025-04-25 20:15:00\n", + " 3287.70\n", + " 3290.24\n", + " 3286.50\n", + " 3289.91\n", + " 888\n", + " 18\n", + " 0\n", + " 1\n", + " 3288.42\n", + " 3280.31\n", + " \n", + " \n", + " 34\n", + " 2025-04-25 20:30:00\n", + " 3286.99\n", + " 3289.14\n", + " 3286.15\n", + " 3289.08\n", + " 754\n", + " 18\n", + " 0\n", + " 1\n", + " 3291.22\n", + " 3280.31\n", + " \n", + " \n", + " 37\n", + " 2025-04-25 20:45:00\n", + " 3291.99\n", + " 3292.61\n", + " 3289.81\n", + " 3291.86\n", + " 746\n", + " 18\n", + " 0\n", + " 1\n", + " 3294.64\n", + " 3280.31\n", + " \n", + " \n", + " 40\n", + " 2025-04-25 21:00:00\n", + " 3293.22\n", + " 3295.00\n", + " 3291.48\n", + " 3293.64\n", + " 558\n", + " 18\n", + " 0\n", + " 1\n", + " 3295.10\n", + " 3280.31\n", + " \n", + " \n", + " 43\n", + " 2025-04-25 21:15:00\n", + " 3293.62\n", + " 3294.76\n", + " 3292.44\n", + " 3294.53\n", + " 424\n", + " 18\n", + " 0\n", + " 1\n", + " 3297.03\n", + " 3281.78\n", + " \n", + " \n", + " 46\n", + " 2025-04-25 21:30:00\n", + " 3293.21\n", + " 3294.49\n", + " 3292.38\n", + " 3292.54\n", + " 307\n", + " 18\n", + " 0\n", + " 1\n", + " 3297.03\n", + " 3286.15\n", + " \n", + " \n", + " 49\n", + " 2025-04-25 21:45:00\n", + " 3291.28\n", + " 3291.98\n", + " 3290.34\n", + " 3290.69\n", + " 350\n", + " 18\n", + " 0\n", + " 1\n", + " 3297.03\n", + " 3286.15\n", + " \n", + " \n", + " 52\n", + " 2025-04-25 22:00:00\n", + " 3288.37\n", + " 3290.12\n", + " 3288.15\n", + " 3289.65\n", + " 522\n", + " 18\n", + " 0\n", + " 1\n", + " 3297.03\n", + " 3288.33\n", + " \n", + " \n", + " 55\n", + " 2025-04-25 22:15:00\n", + " 3289.72\n", + " 3292.76\n", + " 3289.64\n", + " 3291.62\n", + " 402\n", + " 18\n", + " 0\n", + " 1\n", + " 3297.03\n", + " 3287.78\n", + " \n", + " \n", + " 58\n", + " 2025-04-25 22:30:00\n", + " 3294.65\n", + " 3298.99\n", + " 3294.65\n", + " 3298.55\n", + " 443\n", + " 18\n", + " 0\n", + " 1\n", + " 3295.21\n", + " 3287.78\n", + " \n", + " \n", + " 61\n", + " 2025-04-25 22:45:00\n", + " 3308.50\n", + " 3308.56\n", + " 3304.18\n", + " 3308.00\n", + " 699\n", + " 18\n", + " 0\n", + " 1\n", + " 3308.72\n", + " 3287.78\n", + " \n", + " \n", + " 64\n", + " 2025-04-25 23:00:00\n", + " 3304.77\n", + " 3306.93\n", + " 3304.77\n", + " 3305.68\n", + " 426\n", + " 18\n", + " 0\n", + " 1\n", + " 3312.45\n", + " 3287.78\n", + " \n", + " \n", + " 67\n", + " 2025-04-25 23:15:00\n", + " 3305.48\n", + " 3307.01\n", + " 3305.44\n", + " 3306.68\n", + " 231\n", + " 18\n", + " 0\n", + " 1\n", + " 3312.45\n", + " 3287.78\n", + " \n", + " \n", + " 70\n", + " 2025-04-25 23:30:00\n", + " 3308.53\n", + " 3309.31\n", + " 3308.05\n", + " 3308.78\n", + " 172\n", + " 18\n", + " 0\n", + " 1\n", + " 3312.45\n", + " 3289.64\n", + " \n", + " \n", + " 73\n", + " 2025-04-25 23:45:00\n", + " 3314.35\n", + " 3315.61\n", + " 3313.61\n", + " 3314.07\n", + " 353\n", + " 28\n", + " 0\n", + " 1\n", + " 3314.33\n", + " 3294.65\n", " \n", " \n", "\n", @@ -1441,82 +1426,110 @@ ], "text/plain": [ " time open high low close tick_volume \\\n", - "0 2025-04-23 21:36:00 3279.67 3279.72 3279.11 3279.27 78 \n", - "1 2025-04-23 21:37:00 3279.31 3281.24 3279.25 3280.81 95 \n", - "2 2025-04-23 21:38:00 3280.81 3281.40 3280.45 3281.20 86 \n", - "3 2025-04-23 21:39:00 3281.31 3281.52 3280.10 3280.12 88 \n", - "4 2025-04-23 21:40:00 3280.12 3280.55 3279.80 3280.10 77 \n", - "5 2025-04-23 21:41:00 3280.10 3280.10 3279.05 3279.15 65 \n", - "6 2025-04-23 21:42:00 3278.98 3279.07 3277.92 3278.37 102 \n", - "7 2025-04-23 21:43:00 3278.37 3280.35 3277.78 3280.08 108 \n", - "8 2025-04-23 21:44:00 3280.05 3280.44 3279.93 3280.33 64 \n", - "9 2025-04-23 21:45:00 3280.33 3281.34 3280.31 3280.31 78 \n", - "10 2025-04-23 21:46:00 3280.31 3280.71 3280.13 3280.32 73 \n", - "11 2025-04-23 21:47:00 3280.32 3282.19 3280.15 3282.19 81 \n", - "12 2025-04-23 21:48:00 3282.22 3282.51 3282.01 3282.13 63 \n", - "13 2025-04-23 21:49:00 3282.13 3282.43 3281.90 3282.35 60 \n", - "14 2025-04-23 21:50:00 3282.35 3283.04 3282.25 3282.92 71 \n", - "15 2025-04-23 21:51:00 3282.92 3283.81 3282.83 3282.90 69 \n", - "16 2025-04-23 21:52:00 3282.89 3283.26 3282.35 3282.97 61 \n", - "17 2025-04-23 21:53:00 3282.97 3282.98 3281.79 3281.84 53 \n", - "18 2025-04-23 21:54:00 3281.84 3281.94 3281.05 3281.09 69 \n", - "19 2025-04-23 21:55:00 3281.11 3281.85 3281.10 3281.53 91 \n", - "20 2025-04-23 21:56:00 3281.53 3282.34 3281.45 3282.32 102 \n", - "21 2025-04-23 21:57:00 3282.32 3282.32 3281.54 3281.82 81 \n", - "22 2025-04-23 21:58:00 3281.75 3282.78 3281.74 3282.74 124 \n", - "23 2025-04-23 21:59:00 3282.75 3282.94 3282.40 3282.80 113 \n", - "24 2025-04-23 22:00:00 3282.78 3284.32 3282.64 3284.16 120 \n", + "1 2025-04-25 17:45:00 3282.20 3282.66 3279.63 3280.86 1373 \n", + "4 2025-04-25 18:00:00 3277.96 3280.87 3276.92 3280.03 1236 \n", + "7 2025-04-25 18:15:00 3272.39 3275.33 3272.39 3273.67 1204 \n", + "10 2025-04-25 18:30:00 3272.36 3275.36 3272.02 3274.25 1014 \n", + "13 2025-04-25 18:45:00 3280.15 3281.25 3278.42 3280.74 771 \n", + "16 2025-04-25 19:00:00 3282.96 3284.49 3281.25 3284.49 839 \n", + "19 2025-04-25 19:15:00 3283.87 3284.03 3282.06 3283.46 503 \n", + "22 2025-04-25 19:30:00 3283.25 3285.59 3283.12 3284.71 647 \n", + "25 2025-04-25 19:45:00 3280.78 3283.15 3280.31 3283.07 696 \n", + "28 2025-04-25 20:00:00 3285.31 3285.49 3281.97 3282.23 935 \n", + "31 2025-04-25 20:15:00 3287.70 3290.24 3286.50 3289.91 888 \n", + "34 2025-04-25 20:30:00 3286.99 3289.14 3286.15 3289.08 754 \n", + "37 2025-04-25 20:45:00 3291.99 3292.61 3289.81 3291.86 746 \n", + "40 2025-04-25 21:00:00 3293.22 3295.00 3291.48 3293.64 558 \n", + "43 2025-04-25 21:15:00 3293.62 3294.76 3292.44 3294.53 424 \n", + "46 2025-04-25 21:30:00 3293.21 3294.49 3292.38 3292.54 307 \n", + "49 2025-04-25 21:45:00 3291.28 3291.98 3290.34 3290.69 350 \n", + "52 2025-04-25 22:00:00 3288.37 3290.12 3288.15 3289.65 522 \n", + "55 2025-04-25 22:15:00 3289.72 3292.76 3289.64 3291.62 402 \n", + "58 2025-04-25 22:30:00 3294.65 3298.99 3294.65 3298.55 443 \n", + "61 2025-04-25 22:45:00 3308.50 3308.56 3304.18 3308.00 699 \n", + "64 2025-04-25 23:00:00 3304.77 3306.93 3304.77 3305.68 426 \n", + "67 2025-04-25 23:15:00 3305.48 3307.01 3305.44 3306.68 231 \n", + "70 2025-04-25 23:30:00 3308.53 3309.31 3308.05 3308.78 172 \n", + "73 2025-04-25 23:45:00 3314.35 3315.61 3313.61 3314.07 353 \n", "\n", - " spread real_volume box_start max_box min_box Break_signal \n", - "0 18 0 0 NaN NaN 0 \n", - "1 18 0 0 NaN NaN 0 \n", - "2 18 0 0 NaN NaN 0 \n", - "3 18 0 0 NaN NaN 0 \n", - "4 18 0 1 NaN NaN 0 \n", - "5 18 0 0 3281.52 3279.11 0 \n", - "6 18 0 0 3281.52 3279.05 1 \n", - "7 18 0 0 3281.52 3277.92 0 \n", - "8 18 0 0 3281.52 3277.78 0 \n", - "9 18 0 1 3280.55 3277.78 0 \n", - "10 18 0 0 3281.34 3277.78 0 \n", - "11 18 0 0 3281.34 3277.78 2 \n", - "12 18 0 0 3282.19 3277.78 0 \n", - "13 18 0 0 3282.51 3279.93 0 \n", - "14 18 0 1 3282.51 3280.13 2 \n", - "15 18 0 0 3283.04 3280.13 0 \n", - "16 18 0 0 3283.81 3280.15 0 \n", - "17 18 0 0 3283.81 3281.90 1 \n", - "18 18 0 0 3283.81 3281.79 1 \n", - "19 18 0 1 3283.81 3281.05 0 \n", - "20 18 0 0 3283.81 3281.05 0 \n", - "21 18 0 0 3283.26 3281.05 0 \n", - "22 18 0 0 3282.98 3281.05 0 \n", - "23 18 0 0 3282.78 3281.05 2 \n", - "24 18 0 1 3282.94 3281.10 2 " + " spread real_volume box_start max_box min_box \n", + "1 18 0 1 NaN NaN \n", + "4 18 0 1 NaN NaN \n", + "7 18 0 1 NaN NaN \n", + "10 18 0 1 NaN NaN \n", + "13 18 0 1 NaN NaN \n", + "16 18 0 1 3285.59 3270.06 \n", + "19 18 0 1 3285.71 3270.06 \n", + "22 18 0 1 3285.71 3270.06 \n", + "25 18 0 1 3285.71 3272.02 \n", + "28 18 0 1 3287.48 3278.42 \n", + "31 18 0 1 3288.42 3280.31 \n", + "34 18 0 1 3291.22 3280.31 \n", + "37 18 0 1 3294.64 3280.31 \n", + "40 18 0 1 3295.10 3280.31 \n", + "43 18 0 1 3297.03 3281.78 \n", + "46 18 0 1 3297.03 3286.15 \n", + "49 18 0 1 3297.03 3286.15 \n", + "52 18 0 1 3297.03 3288.33 \n", + "55 18 0 1 3297.03 3287.78 \n", + "58 18 0 1 3295.21 3287.78 \n", + "61 18 0 1 3308.72 3287.78 \n", + "64 18 0 1 3312.45 3287.78 \n", + "67 18 0 1 3312.45 3287.78 \n", + "70 18 0 1 3312.45 3289.64 \n", + "73 28 0 1 3314.33 3294.65 " ] }, - "execution_count": 670, + "execution_count": 272, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lastchart = tp_sl()\n", + "lastchart = lastchart.drop(lastchart[lastchart.box_start != 1].index)\n", "lastchart" ] }, { "cell_type": "code", - "execution_count": 671, + "execution_count": 285, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(3427.52, 3337.87, 3282.5284999999994, 3279.768)" + "44.26999999999998" ] }, - "execution_count": 671, + "execution_count": 285, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "current_high = lastchart['high'][73]\n", + "current_close = lastchart['close'][73]\n", + "#sl = lastchart['min_box'][23] - tp_sl_ratio * (current_high - current_close) # SL at the high of the current candle\n", + "#tp = lastchart['max_box'][23] + tp_sl_ratio * (current_high - current_close)\n", + "current_diff = lastchart.max_box.max() - lastchart.min_box.min()\n", + "lastchart.max_box.max() - lastchart.min_box.min()\n", + "\n", + "#current_close, current_high" + ] + }, + { + "cell_type": "code", + "execution_count": 274, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(3383.78, 3300.72, 3297.017, 3282.3729999999996)" + ] + }, + "execution_count": 274, "metadata": {}, "output_type": "execute_result" } @@ -1524,8 +1537,8 @@ "source": [ "last_max = lastchart.max_box.mean()\n", "last_min = lastchart.min_box.mean()\n", - "mean_high = round((ath + ldh + last_max) / 3,2)\n", - "mean_low = round((atl + ldl + last_min) / 3,2)\n", + "mean_high = round((ath + tdh + ldh + last_max) / 4, 2)\n", + "mean_low = round((atl + tdl + ldl + last_min) / 4, 2)\n", "mean_high, mean_low, last_max, last_min" ] }, @@ -1571,28 +1584,28 @@ }, { "cell_type": "code", - "execution_count": 672, + "execution_count": 275, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(3443.41, 3408.4, 3336.7, 3311.53)" + "(3355.76, 3338.42, 3302.92, 3290.45)" ] }, - "execution_count": 672, + "execution_count": 275, "metadata": {}, "output_type": "execute_result" } ], "source": [ "res = ath - ldl\n", - "res = ath - tdl\n", - "#res = mean_high - tdl\n", - "fb1 = round(ath - (res * 0.236),2)\n", - "fb2 = round(ath - (res * 0.382),2)\n", - "fb3 = round(ath - (res * 0.681),2)\n", - "fb4 = round(ath - (res * 0.786),2)\n", + "res = ldh - tdl\n", + "res = mean_high - tdl\n", + "fb1 = round(mean_high - (res * 0.236),2)\n", + "fb2 = round(mean_high - (res * 0.382),2)\n", + "fb3 = round(mean_high - (res * 0.681),2)\n", + "fb4 = round(mean_high - (res * 0.786),2)\n", "fb1, fb2, fb3, fb4" ] }, @@ -1605,16 +1618,16 @@ }, { "cell_type": "code", - "execution_count": 673, + "execution_count": 276, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(3443.37, 3500.08)" + "(3488.3500000000004, 3234.8199999999997)" ] }, - "execution_count": 673, + "execution_count": 276, "metadata": {}, "output_type": "execute_result" } @@ -1634,26 +1647,26 @@ }, { "cell_type": "code", - "execution_count": 674, + "execution_count": 277, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Aktueller Preis 3285.06 ist kleiner als FB1 3443.41, trading ist BuyStop\n", - "Aktueller Preis 3285.06 ist kleiner als FB2 3408.4, trading ist BuyStop\n", - "Aktueller Preis 3285.06 ist kleiner als FB3 3336.7, trading ist BuyStop\n", - "Aktueller Preis 3285.06 ist kleiner als FB4 3311.53, trading ist BuyStop\n" + "Aktueller Preis 3318.69 ist kleiner als FB1 3355.76, trading ist BuyStop\n", + "Aktueller Preis 3318.69 ist kleiner als FB2 3338.42, trading ist BuyStop\n", + "Aktueller Preis 3318.69 ist größer als FB3 3302.92, trading type ist BuyLimit\n", + "Aktueller Preis 3318.69 ist größer als FB4 3290.45, trading type ist BuyLimit\n" ] }, { "data": { "text/plain": [ - "['BuyStop', 'BuyStop', 'BuyStop', 'BuyStop']" + "['BuyStop', 'BuyStop', 'BuyLimit', 'BuyLimit']" ] }, - "execution_count": 674, + "execution_count": 277, "metadata": {}, "output_type": "execute_result" } @@ -1680,23 +1693,35 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 278, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "83.0600000000004" + ] + }, + "execution_count": 278, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "ldh - tdl" + "ldh - tdl\n", + "mean_high - mean_low" ] }, { "cell_type": "code", - "execution_count": 675, + "execution_count": 286, "metadata": {}, "outputs": [], "source": [ "tp_factor = ath-ldh\n", - "tp_fachtor = ath - tdh\n", + "tp_factor = ath - tdh\n", "#tp_factor = ath - mean_low\n", - "tp_factor = mean_high - tdl\n", + "tp_factor = mean_high - mean_low - current_diff\n", "sl_factor = [tp - fb1, tp - fb2, tp - fb3, tp - fb4]\n", "\n", "\n", @@ -1714,7 +1739,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 280, "metadata": {}, "outputs": [], "source": [ @@ -1734,7 +1759,7 @@ }, { "cell_type": "code", - "execution_count": 676, + "execution_count": 288, "metadata": {}, "outputs": [ { @@ -1769,48 +1794,48 @@ " \n", " 0\n", " BuyStop01\n", - " 3443.41\n", + " 3355.76\n", " 0.1\n", - " 3276.10\n", - " 3610.72\n", + " 3316.97\n", + " 3394.55\n", " \n", " \n", " 1\n", " BuyStop02\n", - " 3408.40\n", + " 3338.42\n", " 0.2\n", - " 3241.09\n", - " 3575.71\n", + " 3299.63\n", + " 3377.21\n", " \n", " \n", " 2\n", - " BuyStop03\n", - " 3336.70\n", + " BuyLimit03\n", + " 3302.92\n", " 0.3\n", - " 3169.39\n", - " 3504.01\n", + " 3264.13\n", + " 3341.71\n", " \n", " \n", " 3\n", - " BuyStop04\n", - " 3311.53\n", + " BuyLimit04\n", + " 3290.45\n", " 0.4\n", - " 3144.22\n", - " 3478.84\n", + " 3251.66\n", + " 3329.24\n", " \n", " \n", "\n", "" ], "text/plain": [ - " trade_type trade_price trade_volume trade_sl trade_tp\n", - "0 BuyStop01 3443.41 0.1 3276.10 3610.72\n", - "1 BuyStop02 3408.40 0.2 3241.09 3575.71\n", - "2 BuyStop03 3336.70 0.3 3169.39 3504.01\n", - "3 BuyStop04 3311.53 0.4 3144.22 3478.84" + " trade_type trade_price trade_volume trade_sl trade_tp\n", + "0 BuyStop01 3355.76 0.1 3316.97 3394.55\n", + "1 BuyStop02 3338.42 0.2 3299.63 3377.21\n", + "2 BuyLimit03 3302.92 0.3 3264.13 3341.71\n", + "3 BuyLimit04 3290.45 0.4 3251.66 3329.24" ] }, - "execution_count": 676, + "execution_count": 288, "metadata": {}, "output_type": "execute_result" } @@ -1829,30 +1854,31 @@ }, { "cell_type": "code", - "execution_count": 677, + "execution_count": 282, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "BuyStop01 0\n", - "BuyStop02 1\n", - "BuyStop03 2\n", - "BuyStop04 3\n" + "BuyStop01 0.1 0\n", + "BuyStop02 0.2 1\n", + "BuyLimit03 0.3 2\n", + "BuyLimit04 0.4 3\n" ] } ], "source": [ "for index, row in df.iterrows():\n", - " print(row.trade_type, index)\n", " if bool(re.search('^BuyStop[0-9]{2}', row.trade_type)):\n", - " df.loc[index, ['trade_volume']] = 0.1" + " df.loc[index, ['trade_volume']] = 0.1\n", + " print(row.trade_type, row.trade_volume, index)\n", + " " ] }, { "cell_type": "code", - "execution_count": 678, + "execution_count": 283, "metadata": {}, "outputs": [ { @@ -1887,48 +1913,48 @@ " \n", " 0\n", " BuyStop01\n", - " 3443.41\n", + " 3355.76\n", " 0.1\n", - " 3276.10\n", - " 3610.72\n", + " 3272.70\n", + " 3438.82\n", " \n", " \n", " 1\n", " BuyStop02\n", - " 3408.40\n", + " 3338.42\n", " 0.1\n", - " 3241.09\n", - " 3575.71\n", + " 3255.36\n", + " 3421.48\n", " \n", " \n", " 2\n", - " BuyStop03\n", - " 3336.70\n", - " 0.1\n", - " 3169.39\n", - " 3504.01\n", + " BuyLimit03\n", + " 3302.92\n", + " 0.3\n", + " 3219.86\n", + " 3385.98\n", " \n", " \n", " 3\n", - " BuyStop04\n", - " 3311.53\n", - " 0.1\n", - " 3144.22\n", - " 3478.84\n", + " BuyLimit04\n", + " 3290.45\n", + " 0.4\n", + " 3207.39\n", + " 3373.51\n", " \n", " \n", "\n", "" ], "text/plain": [ - " trade_type trade_price trade_volume trade_sl trade_tp\n", - "0 BuyStop01 3443.41 0.1 3276.10 3610.72\n", - "1 BuyStop02 3408.40 0.1 3241.09 3575.71\n", - "2 BuyStop03 3336.70 0.1 3169.39 3504.01\n", - "3 BuyStop04 3311.53 0.1 3144.22 3478.84" + " trade_type trade_price trade_volume trade_sl trade_tp\n", + "0 BuyStop01 3355.76 0.1 3272.70 3438.82\n", + "1 BuyStop02 3338.42 0.1 3255.36 3421.48\n", + "2 BuyLimit03 3302.92 0.3 3219.86 3385.98\n", + "3 BuyLimit04 3290.45 0.4 3207.39 3373.51" ] }, - "execution_count": 678, + "execution_count": 283, "metadata": {}, "output_type": "execute_result" } @@ -1937,11 +1963,26 @@ "df" ] }, + { + "cell_type": "code", + "execution_count": 284, + "metadata": {}, + "outputs": [], + "source": [ + "#if bool(re.search('^BuyLimit[0-9]{2}', df.trade_type[1])) and df.trade_volume[0] == 0.1 and df.trade_volume[1] != 0.1:\n", + "# df.at[2, 'trade_volume'] = df.trade_volume[1] + 0.1\n", + "\n", + "#if df.trade_volume[2] != 0.1 and df.trade_volume[2] != 0.1:\n", + "# df.at[2, 'trade_volume'] = df.trade_volume[1] + 0.1\n", + "\n", + "#df" + ] + }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Place Order" + "# Place Order" ] }, { @@ -1963,9 +2004,17 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 168, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Falsch\n" + ] + } + ], "source": [ "if bool(re.search('^StopLimit[0-9]{2}', 'BuyLimit01')):\n", " print('Wahr')\n", @@ -1975,7 +2024,7 @@ }, { "cell_type": "code", - "execution_count": 679, + "execution_count": 169, "metadata": {}, "outputs": [], "source": [ @@ -2026,17 +2075,17 @@ }, { "cell_type": "code", - "execution_count": 680, + "execution_count": 292, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "BuyStop01 3443.41 0.1 3276.1 3610.72 XAUUSD\n", - "BuyStop02 3408.4 0.1 3241.09 3575.71 XAUUSD\n", - "BuyStop03 3336.7 0.1 3169.39 3504.0099999999998 XAUUSD\n", - "BuyStop04 3311.53 0.1 3144.2200000000003 3478.84 XAUUSD\n" + "BuyStop01 3355.76 0.1 3316.97 3394.5500000000006 XAUUSD\n", + "BuyStop02 3338.42 0.2 3299.6299999999997 3377.2100000000005 XAUUSD\n", + "BuyLimit03 3302.92 0.3 3264.1299999999997 3341.7100000000005 XAUUSD\n", + "BuyLimit04 3290.45 0.4 3251.6599999999994 3329.2400000000002 XAUUSD\n" ] } ], @@ -2058,7 +2107,7 @@ }, { "cell_type": "code", - "execution_count": 681, + "execution_count": 289, "metadata": {}, "outputs": [], "source": [ @@ -2078,9 +2127,22 @@ }, { "cell_type": "code", - "execution_count": 682, + "execution_count": 291, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[291], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m rm_pending_orders()\n", + "Cell \u001b[1;32mIn[289], line 5\u001b[0m, in \u001b[0;36mrm_pending_orders\u001b[1;34m()\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mrm_pending_orders\u001b[39m():\n\u001b[1;32m----> 5\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m mt\u001b[38;5;241m.\u001b[39morders_total() \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[0;32m 6\u001b[0m pending_orders \u001b[38;5;241m=\u001b[39m mt\u001b[38;5;241m.\u001b[39morders_get()\n\u001b[0;32m 7\u001b[0m order1 \u001b[38;5;241m=\u001b[39m pending_orders[\u001b[38;5;241m0\u001b[39m]\n", + "\u001b[1;31mKeyboardInterrupt\u001b[0m: " + ] + } + ], "source": [ "rm_pending_orders()" ] @@ -2133,6 +2195,30 @@ "df" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3366.26" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tp_price = 30\n", + "\n", + "pos = mt.positions_get()\n", + "pos[0].profit\n", + "pos[0].price_open + tp_price" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -2142,9 +2228,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 48, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "TradePosition(ticket=238422628, time=1745410731, time_msc=1745410731060, time_update=1745410731, time_update_msc=1745410731060, type=0, magic=0, identifier=238422628, reason=3, volume=0.1, price_open=3336.26, sl=3190.17, tp=3482.35, price_current=3303.56, swap=-18.48, profit=-327.0, symbol='XAUUSD', comment='BuyStop04', external_id='')\n", + "BuyStop04 -327.0\n", + "TradePosition(ticket=239454126, time=1745465427, time_msc=1745465427533, time_update=1745465427, time_update_msc=1745465427533, type=0, magic=0, identifier=239454126, reason=3, volume=0.1, price_open=3336.7, sl=3169.39, tp=3504.01, price_current=3303.56, swap=-4.62, profit=-331.4, symbol='XAUUSD', comment='BuyStop03', external_id='')\n", + "BuyStop03 -331.4\n", + "TradePosition(ticket=239454136, time=1745456864, time_msc=1745456864432, time_update=1745456864, time_update_msc=1745456864432, type=0, magic=0, identifier=239454136, reason=3, volume=0.1, price_open=3311.53, sl=3144.22, tp=3478.84, price_current=3303.56, swap=-4.62, profit=-79.7, symbol='XAUUSD', comment='BuyStop04', external_id='')\n", + "BuyStop04 -79.7\n" + ] + } + ], "source": [ "pos = mt.positions_get()\n", "for i in pos:\n", @@ -2157,10 +2256,98 @@ ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": {}, - "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [ + { + "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", + "
trade_typetrade_pricetrade_volumetrade_sltrade_tpopen_trades
0BuyStop013450.070.13331.673568.470.0
1BuyStop023419.190.13300.793537.590.0
2BuyStop033355.930.13237.533474.331.0
3BuyLimit043333.720.43215.323452.120.0
\n", + "
" + ], + "text/plain": [ + " trade_type trade_price trade_volume trade_sl trade_tp open_trades\n", + "0 BuyStop01 3450.07 0.1 3331.67 3568.47 0.0\n", + "1 BuyStop02 3419.19 0.1 3300.79 3537.59 0.0\n", + "2 BuyStop03 3355.93 0.1 3237.53 3474.33 1.0\n", + "3 BuyLimit04 3333.72 0.4 3215.32 3452.12 0.0" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "df" ]