['   \n  \n [\'ਡੇਟਟਾਈਮ ਇੰਪੋਰਟ ਡੇਟਟਾਈਮ ਤੋਂ, ਟਾਈਮਡੇਲਟਾ\\ਨਿੰਪੋਰਟ ਪਾਂਡਾ ਨੂੰ pd\\ਨਿਮਪੋਰਟ ccxt\\ਨਿੰਪੋਰਟ ਪਾਂਡਾ ਨੂੰ ਟਾ\\ਨਿੰਪੋਰਟ ਪਾਇਓਡਬੀਸੀ\\ਨ ਦੇ ਰੂਪ ਵਿੱਚ ਸੁੰਦਰ ਆਯਾਤ ਤੋਂਪ੍ਰੀਟੀਟੇਬਲ\\ਨਿੰਪੋਰਟ os\\nfrom concurrent.futures ਇੰਪੋਰਟ ਥ੍ਰੈੱਡਪੂਲਐਕਸਕਿਊਟਰ\\ਨਿੰਪੋਰਟ ਪਾਈਟਜ਼\\ਨਿੰਪੋਰਟ ਨੰਪੀ np\\ਨਿੰਪੋਰਟ ਲੌਗਿੰਗ\\nਟਾਇਮਫ੍ਰੇਮ ="15m" \\ncorrect _ ਸੋਰਸ = "BTC/USDT: USDT" \\nexchange = ccxt.kucoinfutures ()\\nlogging.basicConfig (ਪੱਧਰ = logging.ERROR, ਫਾਰਮੈਟ =\\\'% (ਅਸਕਟਾਈਮ) s -% (ਲੈਵਲਨਾਮ) s-% (ਸੁਨੇਹਾ) s\\ \') \\n\\ndef ਗਣਨਾ _ macd (df, ema _ s = 12, ema _ l = 26, ਸਿਗਨਲ _ mw = 9): \\n df [\\\' EMA _ S\\ \'] = df.Close.ewm (ਸਪੈਨ = ema _ s,ਘੱਟੋ-ਘੱਟ ਪੀਰੀਅਡ = ਈ. ਐੱਮ. ਏ. ਐੱਸ.). ਮਤਲਬ () \\ndf [\\\'ਈ. ਐੱਮ. ਏ. ਐੱਲ.\\\'] = df.Close.ewm (ਸਪੈਨ = ਈ. ਐੱਮ. ਏ. ਐੱਲ., ਘੱਟੋ-ਘੱਟ ਪੀਰੀਅਡ = ਈ. ਐੱਮ. ਏ. ਐੱਲ.). ਮਤਲਬ () \\n. ਡੀ. ਐੱਫ. [\\\'ਐੱਮ. ਏ. ਸੀ. ਡੀ.\\\'] = df.EMA_S-df.EMA_L \\ndf [\\\'MACD _ ਸਿਗਨਲ\\\'] = df.MACD. ਈਯੂਐਮ (ਸਪੈਨ = ਸਿਗਨਲ _ ਐੱਮਡਬਲਿਊ, ਮਿੰਟ _ ਪੀਰੀਅਡ = ਸਿਗਨਲ _ ਐੱਮਡਬਲਿਊ). ਮਤਲਬ () \\n df [\\\'ਹਿਸਟੋਗਰਾਮ\\\'] = df.MACD-df.MACD _ ਸਿਗਨਲ \\ndf.dropna (ਇਨਪਲੇਸ = ਟਰੂ) \\n ਰਿਟਰਨ df\\n\\ndef ਗੇਟ _ ਪਾਈਵਟਸ (df, ਕਾਲਮ, ਪਾਈਵੋਟ _ ਟਾਈਪ): \\n ਪਾਈਵਟਸ = [] \\n ਮਿਤੀਆਂ = [] \\n ਵੱਧ ਤੋਂ ਵੱਧ = df [ਕਾਲਮ]. ਵੱਧ ਤੋਂ ਵੱਧ () + 1 ਜੇਕਰdf.index ਵਿੱਚ i ਲਈ pivot _ ਟਾਈਪ = =\\\'ਲੋਅ\' ਨਹੀਂ ਤਾਂ 0\\n ਜੇਕਰ df ["HISTOGRAM"] [i] <= 0 ਜੇਕਰ pivot _ ਟਾਈਪ = =\\\'ਲੋਅ\' ਨਹੀਂ ਤਾਂ df ["HISTOGRAM"] [i]> = 0: \\n ਜੇਕਰdf [ਕਾਲਮ] [i] <ਵੱਧ ਤੋਂ ਵੱਧ ਜੇਕਰ ਪਿਵੋਟ _ ਟਾਈਪ = =\\\'ਘੱਟ\' ਨਹੀਂ ਤਾਂ df [ਕਾਲਮ] [i]> ਵੱਧ ਤੋਂ ਵੱਧਃ \\n ਵੱਧ ਤੋਂ ਵੱਧ = df [ਕਾਲਮ] [i] \\n ਮਿਤੀ = i\\n ਨਹੀਂ ਤਾਂਃ \\n ਜਾਰੀ ਰਹੇਗਾ ਨਹੀਂ ਤਾਂਃ \\n ਜੇਕਰਵੱਧ ਤੋਂ ਵੱਧ <df [ਕਾਲਮ]. ਵੱਧ ਤੋਂ ਵੱਧ () ਜੇਕਰ ਪਿਵੋਟ _ ਟਾਈਪ = =\\\'ਘੱਟ\' ਨਹੀਂ ਤਾਂ ਵੱਧ ਤੋਂ ਵੱਧ! = 0: \\n pivots.append (ਵੱਧ ਤੋਂ ਵੱਧ) \\n dates.append (ਮਿਤੀ) \\n ਵੱਧ ਤੋਂ ਵੱਧ = df [ਕਾਲਮ]. ਵੱਧ ਤੋਂ ਵੱਧ () + 1ਜੇਕਰ pivot _ ਟਾਈਪ = =\\\'ਲੋਅ\' ਨਹੀਂ ਤਾਂ 0\\n ਜਾਰੀ ਰਹਿੰਦਾ ਹੈ \\n\\n pivot _ df = pd.DataFrame (ਪਾਈਵਟਸ, ਇੰਡੈਕਸ = ਮਿਤੀਆਂ, ਕਾਲਮ = [f\\ \'{pivot_type.capitalize ()} s\\\']) \\n ਰਿਟਰਨpivot _ df\\n\\ndef ਚੈੱਕ _ ਲਾਈਨ _ ਬਰੇਕ (df, p1, p2, ਕਾਲਮ _ ਨਾਮ, ਆਖਰੀ _ ਕੀਮਤ): \\n ਢਲਾਨ = (p2 [ਕਾਲਮ _ ਨਾਮ]-p1 [ਕਾਲਮ _ ਨਾਮ])/(p2.name -p1.name). ਟੋਟਲ _ ਸਕਿੰਟ () \\n ਇੰਟਰਸੈਪਟ = p1 [ਕਾਲਮ _ ਨਾਮ]-ਢਲਾਨ * p1.name. ਟਾਈਮ ਸਟੈਂਪ () \\n\\n ਚੈੱਕ _ ਪ੍ਰਾਈਸ _ 1 = df.loc [df.index [-2],\\\'ਬੰਦ ਕਰੋ\\\'] \\nਚੈੱਕ _ ਟਾਈਮ _ 1 = df.index [-2]. ਟਾਈਮ ਸਟੈਂਪ () \\n ਲਾਈਨ _ ਪ੍ਰਾਈਸ _ 1 = ਢਲਾਨ * ਚੈੱਕ _ ਟਾਈਮ _ 1 + ਇੰਟਰਸੈਪਟ \\n\\n ਚੈੱਕ _ ਪ੍ਰਾਈਸ _ 2 = ਆਖਰੀ _ ਪ੍ਰਾਈਸ [ਕਾਲਮ _ ਨਾਮ] \\n ਚੈੱਕ _ ਟਾਈਮ _ 2 =last_price.name.timestamp () \\n ਲਾਈਨ _ ਪ੍ਰਾਈਸ _ 2 = ਢਲਾਨ * ਚੈੱਕ _ ਟਾਈਮ _ 2 + ਇੰਟਰਸੈਪਟ \\n\\n ਨਤੀਜਾ = {} \\n ਜੇਕਰ ਕਾਲਮ _ ਨਾਮ = =\\\'ਉੱਚ\': \\n ਨਤੀਜਾ [\\\'ਹੈ _ ਟੁੱਟਿਆ ਹੋਇਆ\'] =ਚੈੱਕ _ ਪ੍ਰਾਈਸ _ 1> ਲਾਈਨ _ ਪ੍ਰਾਈਸ _ 1 ਅਤੇ ਚੈੱਕ _ ਪ੍ਰਾਈਸ _ 2> ਲਾਈਨ _ ਪ੍ਰਾਈਸ _ 2 ਹੋਰਃ \\n ਨਤੀਜਾ [\\\'ਇਸ _ ਬ੍ਰੋਕਨ\'] = ਚੈੱਕ _ ਪ੍ਰਾਈਸ _ 1 <ਲਾਈਨ _ ਪ੍ਰਾਈਸ _ 1 ਅਤੇ ਚੈੱਕ _ ਪ੍ਰਾਈਸ _ 2 <ਲਾਈਨ _ ਪ੍ਰਾਈਸ _ 2 \\n\\n ਨਤੀਜਾ [\\\'ਕਰੰਟ _ ਪ੍ਰਾਈਸ\\\'] = ਚੈੱਕ _ ਪ੍ਰਾਈਸ _ 1\\n ਨਤੀਜਾ [\\\'ਲਾਈਨ _ ਪ੍ਰਾਈਸ\\\'] = ਲਾਈਨ _ ਪ੍ਰਾਈਸ _ 1\\ਨ ਰਿਟਰਨ ਨਤੀਜਾ \\ndef fetch _ pair _ ਡਾਟਾ (ਪੇਅਰ,btc _ usdt _ df): \\n ਕੋਸ਼ਿਸ਼ਃ \\n \'] ', 'ਡੇਟਟਾਈਮ ਇੰਪੋਰਟ ਡੇਟਟਾਈਮ ਤੋਂ, ਟਾਈਮਡੇਲਟਾ ਇੰਪੋਰਟ ਪਾਂਡਾ ਨੂੰ ਪੀ. ਡੀ. ਇੰਪੋਰਟ ਸੀ. ਸੀ. ਐੱਸ. ਟੀ. ਇੰਪੋਰਟ ਪਾਂਡਾ _ ਟਾ ਨੂੰ ਸੁੰਦਰ ਆਯਾਤ ਪ੍ਰਿਟੀਟੇਬਲ ਤੋਂ ਇੰਪੋਰਟ ਪਾਈਓਡੀਬੀਸੀconcurrent.futures ਇੰਪੋਰਟ ਥ੍ਰੈੱਡਪੂਲਐਕਸਕਿਊਟਰ ਇੰਪੋਰਟ ਪਾਈਟਜ਼ ਇੰਪੋਰਟ ਨੰਪੀ ਨੂੰ np ਇੰਪੋਰਟ ਲੌਗਿੰਗ ਟਾਈਮਫ੍ਰੇਮ = "15m" ਸਹੀ _ ਸਰੋਤ = ਵਜੋਂ ਆਯਾਤ ਕਰੋ"ਬੀ. ਟੀ. ਸੀ./ਯੂ. ਐੱਸ. ਡੀ. ਟੀ.: ਯੂ. ਐੱਸ. ਡੀ. ਟੀ". ਐਕਸਚੇਂਜ = ccxt.kucoinfutures () logging.basicConfig (ਪੱਧਰ = logging.ERROR, ਫਾਰਮੈਟ = \'% (ਅਸਕਟਾਈਮ) s-% (ਪੱਧਰਨਾਮ) s-% (ਸੁਨੇਹਾ) s\') ਡਿਫਗਣਨਾ ਕਰੋ _ macd (df, ema _ s = 12, ema _ l = 26, ਸਿਗਨਲ _ mw = 9): df [\'EMA _ S\'] = df.Close.ewm (ਸਪੈਨ = ema _ s, ਮਿੰਟ _ ਪੀਰੀਅਡ = ema _ s). ਮਤਲਬ () df [\'EMA _ L\'] =df.Close.ewm (ਸਪੈਨ = ਈ. ਐੱਮ. ਏ. ਐੱਲ., ਮਿੰਟ _ ਪੀਰੀਅਡ = ਈ. ਐੱਮ. ਏ. ਐੱਲ.). ਮਤਲਬ () ਡੀ. ਐੱਫ. [\'ਐੱਮ. ਏ. ਸੀ. ਡੀ.\'] = df.EMA_S-df.EMA_L ਡੀ. ਐੱਫ. [\'ਐੱਮ. ਏ. ਸੀ. ਡੀ. _ ਸਿਗਨਲ\'] = df.MACD.ewm (ਸਪੈਨ = ਸਿਗਨਲ _ ਐੱਮ. ਡਬਲਿਊ.,ਮਤਲਬ () df [\'HISTOGRAM\'] = df.MACD-df.MACD _ ਸਿਗਨਲ df.dropna (ਜਗ੍ਹਾ = ਸੱਚ) ਰਿਟਰਨ df ਡਿਫ ਗੇਟ _ ਪਾਈਵਟਸ (df, ਕਾਲਮ, ਪਾਈਵੋਟ _ ਟਾਈਪ):ਪਿਵੋਟਸ = [] ਮਿਤੀਆਂ = [] ਵੱਧ ਤੋਂ ਵੱਧ = df [ਕਾਲਮ]. ਵੱਧ ਤੋਂ ਵੱਧ () + 1 ਜੇਕਰ ਪਿਵੋਟ _ ਟਾਈਪ = = \'ਘੱਟ\' ਤਾਂ df.index ਵਿੱਚ i ਲਈ 0: ਜੇਕਰ df ["ਹਿਸਟੋਗਰਾਮ"] [i] <= 0 ਜੇਕਰ ਪਿਵੋਟ _ ਟਾਈਪ = = =\'ਨੀਵਾਂ\' ਹੋਰ df ["HISTOGRAM"] [i]> = 0: ਜੇਕਰ df [ਕਾਲਮ] [i] <ਵੱਧ ਤੋਂ ਵੱਧ ਜੇਕਰ ਪਿਵੋਟ _ ਟਾਈਪ = = \'ਨੀਵਾਂ\' ਹੋਰ df [ਕਾਲਮ] [i]> ਵੱਧ ਤੋਂ ਵੱਧਃ ਵੱਧ ਤੋਂ ਵੱਧ = df [ਕਾਲਮ] [i] ਮਿਤੀ = iਹੋਰਃ ਜਾਰੀ ਰੱਖੋ ਹੋਰਃ ਜੇਕਰ ਵੱਧ ਤੋਂ ਵੱਧ <df [ਕਾਲਮ]. ਵੱਧ ਤੋਂ ਵੱਧ () ਜੇਕਰ ਪਿਵੋਟ _ ਟਾਈਪ = = \'ਘੱਟ\' ਨਹੀਂ ਤਾਂ ਵੱਧ ਤੋਂ ਵੱਧ! = 0: pivots.append (ਵੱਧ ਤੋਂ ਵੱਧ) dates.append (ਮਿਤੀ) ਵੱਧ ਤੋਂ ਵੱਧ =df [ਕਾਲਮ]. ਵੱਧ ਤੋਂ ਵੱਧ () + 1 ਜੇਕਰ ਪਿਵੋਟ _ ਟਾਈਪ = = \'ਘੱਟ\' ਨਹੀਂ ਤਾਂ 0 ਜਾਰੀ ਰਹੇ ਪਿਵੋਟ _ df = pd.DataFrame (ਪਿਵੋਟਸ, ਇੰਡੈਕਸ = ਮਿਤੀਆਂ, ਕਾਲਮ = [f \'{pivot_type.capitalize ()} s\'])ਰਿਟਰਨ ਪਿਵੋਟ _ ਡੀ. ਐੱਫ. ਡਿਫ ਚੈੱਕ _ ਲਾਈਨ _ ਬਰੇਕ (ਡੀ. ਐੱਫ., ਪੀ1, ਪੀ2, ਕਾਲਮ _ ਨਾਮ, ਆਖਰੀ _ ਕੀਮਤ): ਢਲਾਨ = (ਪੀ2 [ਕਾਲਮ _ ਨਾਮ]-ਪੀ1 [ਕਾਲਮ _ ਨਾਮ])/(p2.name -p1.name). ਟੋਟਲ _ ਸਕਿੰਟ () ਇੰਟਰਸੈਪਟ = p1 [ਕਾਲਮ _ ਨਾਮ]-ਸਲੋਪ * p1.name. ਟਾਈਮ ਸਟੈਂਪ () ਚੈੱਕ _ ਪ੍ਰਾਈਸ _ 1 = df.loc [df.index [-2], \'ਕਲੋਜ਼\'] ਚੈੱਕ _ ਟਾਈਮ _ 1 =df.index [-2]. ਟਾਈਮ ਸਟੈਂਪ () ਲਾਈਨ _ ਪ੍ਰਾਈਸ _ 1 = ਢਲਾਨ * ਚੈੱਕ _ ਟਾਈਮ _ 1 + ਇੰਟਰਸੈਪਟ ਚੈੱਕ _ ਪ੍ਰਾਈਸ _ 2 = ਆਖਰੀ _ ਪ੍ਰਾਈਸ [ਕਾਲਮ _ ਨਾਮ] ਚੈੱਕ _ ਟਾਈਮ _ 2 =last_price.name.timestamp () ਲਾਈਨ _ ਪ੍ਰਾਈਸ _ 2 = ਢਲਾਨ * ਚੈੱਕ _ ਟਾਈਮ _ 2 + ਇੰਟਰਸੈਪਟ ਨਤੀਜਾ = {} ਜੇਕਰ ਕਾਲਮ _ ਨਾਮ = = \'ਉੱਚਾ\': ਨਤੀਜਾ [\'ਟੁੱਟਿਆ ਹੋਇਆ ਹੈ\'] = ਚੈੱਕ _ ਪ੍ਰਾਈਸ _ 1> ਲਾਈਨ _ ਪ੍ਰਾਈਸ _ 1 ਅਤੇ ਚੈੱਕ _ ਪ੍ਰਾਈਸ _ 2> ਲਾਈਨ _ ਪ੍ਰਾਈਸ _ 2 ਹੋਰਃ ਨਤੀਜਾ [\'ਇਸ _ ਬ੍ਰੋਕਨ\'] = ਚੈੱਕ _ ਪ੍ਰਾਈਸ _ 1 <ਲਾਈਨ _ ਪ੍ਰਾਈਸ _ 1 ਅਤੇ ਚੈੱਕ _ ਪ੍ਰਾਈਸ _ 2 <ਲਾਈਨ _ ਪ੍ਰਾਈਸ _ 2ਨਤੀਜਾ [\'ਕਰੰਟ _ ਪ੍ਰਾਈਸ\'] = ਚੈੱਕ _ ਪ੍ਰਾਈਸ _ 1 ਨਤੀਜਾ [\'ਲਾਈਨ _ ਪ੍ਰਾਈਸ\'] = ਲਾਈਨ _ ਪ੍ਰਾਈਸ _ 1 ਰਿਟਰਨ ਨਤੀਜਾ ਡਿਫ ਫੈਚ _ ਪੇਅਰ _ ਡਾਟਾ (ਪੇਅਰ, btc _ usdt _ df): ਅਜ਼ਮਾਓਃ p \n ']