Why my python socketserver can not connect to MT5?

Viewed 24

I have a socket server in python. it can not connect to MT5(error 5272 in MT5).why? it was working till yesterday but it can not now. i do not know really why? plz help me
i am really confused!!! ########################################################################################################################################################

import socket, numpy as np
from sklearn.linear_model import LinearRegression
import pandas as pd
import sqlite3
from io import StringIO
from m5m10controler import *
import csv
from functionsif import *
firstmsg = ""
firstmsg = StringIO(firstmsg)
mergeddf=pd.DataFrame()
global factorglist
global factorrlist
factorglist=[0]
factorrlist=[0]

class socketserver:
    def __init__(self, address='', port=9090):
        self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.address = address
        self.port = port
        self.sock.bind((self.address, self.port))
        self.cummdata = ''

    def recvmsg(self):
        self.sock.listen(1)
        self.conn, self.addr = self.sock.accept()
        print('connected to', self.addr)
        self.cummdata = ''

        while True:
            data = self.conn.recv(100000)
            self.cummdata += data.decode("utf-8")
            if not data:
                break
                # self.conn.send(bytes(calcregr(self.cummdata), "utf-8"))
            mainsignal = sendsignal(self.cummdata)
            print(mainsignal)
            self.conn.send(bytes(mainsignal, "utf-8"))

            return self.cummdata

    def __del__(self):
        self.sock.close()


def sendsignal(msg=''):
    ticks = StringIO(msg)
    df = pd.read_csv(ticks, index_col=False, names=["DateTime", "Open", "High",
                                                    "Low", "Close","RSI","MACD1","MACD2", "TimeFrame", "Symbol_Name"])
    df["DateTime"] = pd.to_datetime(df["DateTime"])
    # df.index = pd.to_datetime(df.index)
    global mergeddf
    global mergeddfm1
    global mergeddfm5
    global mergeddfm10
    global factorg
    global factorr
    global factorglist
    global factorrlist
    global position
    factorg=''
    factorr=''
    position=''
    
   
    mergeddf=pd.concat([mergeddf, df]).drop_duplicates().reset_index(drop=True)
    mergeddfgrouped = mergeddf.groupby(mergeddf['TimeFrame'])
    mergeddfm1 = mergeddfgrouped.get_group("M1")
    mergeddfm5 = mergeddfgrouped.get_group("M5")
    mergeddfm10 = mergeddfgrouped.get_group("M10")
    print(mergeddfm5.tail(2))
    print(mergeddfm10.tail(2))
    print(mergeddfm1.tail(3))
    
    def write_to_csv(listt):
            with open('log.csv', 'a') as f:
                writer = csv.writer(f)
                writer.writerow(listt)
                
    #if (mergeddfm1['Open'].iloc[-1]<=mergeddfm1['Close'].iloc[-1]) and\
    #(mergeddfm1['Open'].iloc[-2]>mergeddfm1['Close'].iloc[-2]):
    try:
        if (mergeddfm1['Open'].iloc[-1]<=mergeddfm1['Close'].iloc[-1]):
            [factorg,factorglist]=m1m5m10controlercodeg(mergeddfm1,mergeddfm5,mergeddfm10,factorg,factorglist)
            #functionsifscde(mergeddfm1)
            #print(f'factorg=={factorg},factorrlist={factorrlist[-1]}')
    
            if (factorg==1):
                position='buy'

            lst=[mergeddfm1['DateTime'].iloc[-1],factorg,factorrlist[-1],'G',position]
            write_to_csv(lst)


        #elif (mergeddfm1['Open'].iloc[-1]>mergeddfm1['Close'].iloc[-1]) and\
        #(mergeddfm1['Open'].iloc[-2]<=mergeddfm1['Close'].iloc[-2]):
        elif (mergeddfm1['Open'].iloc[-1]>mergeddfm1['Close'].iloc[-1]):
            [factorr,factorrlist]=m1m5m10controlercoder(mergeddfm1,mergeddfm5,mergeddfm10,factorr,factorrlist)
            #functionsifscde(mergeddfm1)
            #print(f'factorr=={factorr},factorglist={factorglist[-1]}')

            if (factorr==1):
                position='sell'

            lst=[mergeddfm1['DateTime'].iloc[-1],factorr,factorglist[-1],'R',position]
            write_to_csv(lst)
    except:
        print(f'An Error Occured At {(mergeddfm1["DateTime"].iloc[-1])}')
        pass
    
        
        #elif (positionkahtrue=='') and (positionkahfalse==''):
         #   position='sell'
    
    

    print(f'position==========={position}')  
    position=position
    positions=[[position,"0","0","EURUSD"]]
    position=''
    

    #position = "buy"
    #takeprofit = "250"
    #stoploss = "70"
    #symbol_name = "EURUSD"

    # signal=position+","+takeprofit+","+stoploss+","+symbol_name   

    
    signal = ""
    
    if len(positions[0][0])>0:      
        for i in range(len(positions)):
            signal = signal + positions[i][0] + " " + positions[i][1] + " " + positions[i][2] + " " + positions[i][3] + " "
    else:
        signal=""
    return signal

    

serv = socketserver('127.0.0.1', 9090)

while True:
    msg = serv.recvmsg()

'''

0 Answers
Related