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()
'''