Python 2.7 Mt4概率脚本

Python 2.7 Mt4概率脚本,python-2.7,probability,forecasting,metatrader4,forex,algorithmic-trading,Python 2.7,Probability,Forecasting,Metatrader4,Forex,Algorithmic Trading,我对python 我制作了一个简单的脚本,从mt4导入price提要 我的想法/项目是将其转化为某种概率指标,即给出概率,除了出价和出价, 例如: TIME/ BID ASK USD/CADD 22:19 1.30451 60%^ 1.30D39 40%v 概率在特定的时间段内变化,例如1小时,所以每小时它会给出一个新的方向概率 它在寻找两种模式:A,B 模式A代表看涨模式 模式B代表熊市模式 基本上看A或B再次发生的概率

我对
python

我制作了一个简单的脚本,从mt4导入price提要

我的想法/项目是将其转化为某种概率指标,即给出概率,除了出价和出价, 例如:

TIME/                BID             ASK
USD/CADD     22:19   1.30451 60%^    1.30D39 40%v
概率在特定的时间段内变化,例如1小时,所以每小时它会给出一个新的方向概率

它在寻找两种模式:A,B

模式A代表看涨模式

模式B代表熊市模式

基本上看A或B再次发生的概率有多大 在两个复发率较高的病例中

这就是我被困的地方

我不知道怎么把它组合起来

以下是我到目前为止的情况:

导入日期时间
将numpy作为np导入
作为pd进口熊猫
导入sklearn
从pandas.io.data导入数据读取器
从sklearn.employ导入随机林分类器
从sklearn.linear_模型导入逻辑回归
从sklearn.lda导入lda
从sklearn.metrics导入混淆矩阵
从sklearn.qda导入qda
从sklearn.svm导入线性SVC、SVC
将dde_客户端作为ddec导入
导入时间
QUOTE_client=ddec.DDEClient('MT4','QUOTE')
符号=['USDCAD'、'GOLD'、'EURUSD'、'SILVER'、'US30现金',]
对于符号中的i:
客户建议报价(一)
def Get_quote():
而1:
时间。睡眠(1)
打印“Symbol\tDATE\t\tTIME\tBID\tASK”
对于符号中的i:
当前客户请求(i)拆分(“”)
日期、时间、出价、出价=(当前报价[0],当前报价[1],
当前报价[2],当前报价[3])
打印i+“:\t”+天+“\t”+\u时间+“\t”+出价+“\t”+询问
打破
时间。睡眠(1)
返回Get_quote()
持续
def创建滞后系列(cuurent报价、开始时间、结束时间、滞后=1):
ts=数据读取器(引用、符号、,
start_time-datetime.timedelta(小时=1),
结束时间
)
tslag=pd.DataFrame(index=ts.index)
ts['Today']=ts['Adj Close']
tslag[“卷”]=ts[“卷”]
对于X范围内的i(0,滞后):
tslag[“滞后%s”%str(i+1)]=ts[“调整关闭”]。移位(i+1)
tsret=pd.DataFrame(index=tslag.index)
tsret[“卷”]=tslag[“卷”]
tsret[“今天”]=tslag[“今天”].pct_change()*100.0
对于X范围内的i(0,滞后):
如果(abs(x)<0.0001):
tsret[“今天”][i]=0.0001
对于X范围内的i(0,滞后):
tsret[“滞后%s”%str(i+1)]=\
tslag[“滞后%s”%str(i+1)]。pct_更改()*100.0
tsret[“方向”]=np.符号(tsret[“今天”])
tsret=tsret[tsret.index>=开始时间]
返回tsret
如果名称=“\uuuuu main\uuuuuuuu”:
snpert=create_lagged_series(len('GOLD',Get_quote(),1))
X=snpret[[“Lag1”,“Lag2”]]
y=snpret[“方向”]
开始测试=cuurernt报价
X\u列车=X[X.指数<启动试验]
X_测试=X[X.index>=开始测试]
y\u列车=y[y.指数<启动试验]
y_测试=y[y.index>=开始测试]
打印“命中率/混淆矩阵:\n”
模型=[(“LR”,LogisticRegression()),
(“LDA”,LDA()),
(“QDA”,QDA()),
(“LSVC”,LinearSVC()),
(“RSVM”,SVC(C=1000000.0,
缓存大小=200,
等级重量=无,
coef0=0.0,
度=3,
伽马=0.0001,
内核='rbf',
max_iter=-1,
概率=假,
随机状态=无,
收缩=真,
tol=0.001,
冗长=错误
)
),
(“RF”,随机森林分类器(n_估计器=1000,
标准=‘基尼’,
最大深度=无,
最小样本分割=2,
最小样本叶=1,
最大功能='自动',
bootstrap=True,
oob_分数=假,
n_jobs=1,
随机状态=无,
详细=0
)
)
]
#迭代模型
对于m in型号:
#在培训集中培训每个模型
m[1].拟合(X_列,y_列)
pred=m[1]。预测(X_检验)
打印“%s:\n%0.3f%”(m[0],m[1]。分数(X\u测试,y\u测试))

打印“%s\n”%composition\u matrix(pred,y\u test)
至于修复算法,我建议不要从头开始,将各种库一起破解,而是从一个工作示例开始,根据您的喜好修改它。你不必完全理解它,但你需要一些东西开始

我甚至会抽象出MT4和引号读取逻辑,并在CSV或TXT文件中包含一些测试编号(伪造或采样)。从一个工作示例开始,可以识别