外汇算法模型
2015-10-16 16:19:55 12 举报
AI智能生成
外汇算法交易模型是一种基于数学公式和计算机技术的自动化交易系统,旨在通过分析历史数据和市场趋势来预测未来汇率变动,从而制定交易策略并自动执行。这种模型通常采用多种技术指标和量化方法,如移动平均线、相对强弱指数(RSI)、布林带等,以确定买入或卖出时机。外汇算法交易模型的优势在于能够快速识别潜在机会,降低人为错误风险,提高交易效率。然而,由于金融市场的不确定性和复杂性,这些模型也存在一定的局限性,需要不断优化和完善。总之,外汇算法交易模型为投资者提供了一个有效的工具,帮助他们在竞争激烈的外汇市场中实现盈利目标。
作者其他创作
大纲/内容
算法A-等回归
盈利率
成交单数*平均单笔盈利率-单天资金使用成本*天数
平均单笔盈利率
∑(平仓价-建仓价)/成交单数
回调单
建仓价
概率【pearson变量A[变量A需要大于常量A](priceA,priceB)>变量B】情况下--->概率【买入normdist变量A[变量A需要大于常量A](变量C)】情况下--->概率【卖出normdist动态常量(变量C)】情况下---->概率【(priceAsell-priceBsell-priceAsell+priceBsell-建仓手续费-平仓手续费)/(priceAbuy+priceBbuy)<-变量E or >变量E】 priceAsell-priceBsell-priceAsell+priceBsell-建仓手续费-平仓手续费 -变量F
两种产品的一元相关性
前一次一元相关性变量A,变量A>0.9
本次一元相关性变量B,变量B<0.9
两种产品的ln(A)-LN(A1)+LN(B)-Ln(B1)符合正态分布
偏离程度?变量C
判断正态分布的样本值多少合适?是否应该与一元相关的样本数一样?变量A
监控参数A-正态符合程度
做ln的时候,加进手续费参数 commission
平仓价
正态分布回归到什么点位可以平仓?变量C
是否随着持仓时间,而降低成交利润率? 变量H
增加止盈止损线 变量E
突破单
建仓价
相关性第一次将低于0.9,之后相关性连续降低n次,正态分布连续提高n次,买入
做ln的时候,加进手续费参数commission
平仓价
正态落回的时候,卖出
单天资金使用成本
0.013%
天数--常量B
成交单数 -变量J
统计量
研发结构
确定试验品,只在MT4做,不采用python
用模拟账户
整体结构
循环获取数据
写入外部接口文件的方法
数组存量符合的时候时候触发计算
读取数据文件
插入到实时数据库
计算满足判断
及时计算
判断当前价格对数,是否相关是否超出正态分布
下订单,ABname,ABopen ln,AB close ln
离线计算
计算所有过去100笔的交易对数差
计算过去100笔的交易相关性
两两相关产品过去3个ln值,过去3个正态分布值
流程
接文件
判断价格
下订单,记录日志,回传文件
写入stock
删除releation,写出releation
写入交易文件
期望交易内容写入数据库备份
数据库定期同步到历史库
循环满足判断卖出
按价格交易
nameA 多
nameB 空
对数差
交易信号日期
计算手续费交易
now- 交易信号日期 * 仓费,返回手续费
止盈止损判断
输入多A 空B 、对比现价,返回是否1 or 0
读文件接口
日志记录
埋点函数
定时扫描未配对进程
监控运行效果
监控函数
问题
正态分布计算在MT4是否可执行
对儿交易是否可行
手续费计算
逻辑过程
1.每个第1、14、31、46分钟,将所有数据写文件
2、python判断文件有,读文件
3、python对比历史数据,决策的过程
如果 价格正态>0.9 <0.99 and 价差分布< 0.99 and 前1价格,前2价格<0.9 开空仓
如果 价格正态<0.1 >0.01 and 价差分布> 0.01 and 前1价格,前2价格>0.1 开多仓
4、python写入交易文件
写入 开仓价格、开仓mysqlorderid,补仓差位
3.5、python将很次数据写入历史数据
计算正态分布、计算当前补仓价位、计算价格差,计算价格差的正态分布
5、每秒判断是否有需要交易的文件
读走文件,判断是否有开仓
5.5、每次更新交易数据的时候,判断是否有满足平仓的条件
正态平仓
止盈平仓
子主题
6、交易并且记录日志
7、另一台机器开统一账号,每秒监控是否有单品、是否有交易失败、程序是否运行等
如何稳定实时运转
订单数据分析,自动生成higcharts图
历史数据测算模块
1、准备工作:载入大量历史数据入库
2、进行指标计算和补充
3、轮训买函数
4、根据每个买的时间向后轮训卖函数
5、统计相关数据
历史数据积累模块
能够定期积累1分钟和15分钟数据
算法B-追趋势
当持续偏离的时候,就说明已经突破了,需要追变
追变到什么时候平仓
如何确认偏离,是突破了
持续多久没回头
持续多大力度没回头
相关度已经变化到什么程度?
如何计算进来正态分布对应的损失
在确认突破了之后是否要平仓正态分布
历史效果分析
问题列表
平均持仓时间?
什么样的止盈损控制和周期控制是合理的?
什么样的才会买突破?
如何模拟大量数据计算?
模拟计算功能
混乱思维
实验基础一定要有数学依据
基于箱体期没有大能量的突破,一定回调
之前都有正态分布瞬间拉高
0.99变为0.9,使得放出了更多盈利的单子,但是降低了盈利单子的盈利率,并不会缩减太多赔钱单子
只做0.9到0.99的单子,同时连续3次突破的不做
连续3次突破一下,0.9到0.99之间,相关性0.9以上,加上手续费超过0.9的,开单
基于箱体期有大能量的突破,一定跟趋势
会不会箱体时间太短的、突然变盘的,会突破
变盘力度过大的,0.8以上的基本都短期回不来了
连续小突破的单子,可能会一去不复返,时间拉的太长
子主题
基于任何三者平衡货币对儿的差值均等
等回归整体记录
策略猜想
1、任意两组数据过去N时间内对数一元相关,认为出现箱体
2、一元相关的对数差,的偏差+手续费超过>0.9,<0.99、认为是高斯分布的上部,但是量不够大,所以会回归正常
3、计算出手续费的空间,既可以买入
4、增加止盈止损
策略模型
见excel
程序过程逻辑
数据准备
1、下载所有数据
2、运行stock.py,执行数据入库、删除过早的数据、计算第一次相关性表
逻辑运行
1、运行process.py
2、运行C端程序
1.每个第1、14、31、46分钟,将所有数据写文件
2、python判断文件有,读文件
2.5计算当下这次数据的相关性
3、python对比历史数据,决策的过程
如果ln(A)-ln(B+commisson)>0.9<0.99、前两次<0.9,---->多B空A,传递ln是lnA-B,太大,希望lnA-B小于某一固定值
如果ln(A)-ln(B-commisson)<0.1>0.01.前两次>0.1--->多A空B,传递ln是A-B,太小,希望lnA-B大于某个固定值
3.5、python将本次数据写入历史数据
4、python写入交易文件
4.5计算相关性、正态分布情况等写入相关表
5、每秒判断是否有需要交易的文件
读走文件,判断是否有开仓
记录开仓订单号
未平仓的都记录balance文档
5.5、每次更新交易数据的时候,判断是否有满足平仓的条件
6、交易并且记录日志
订单跟踪
平仓自动记录excel
发现report.csv有内容,就读取并且删除
自动分析
对比订单开仓、平仓正确性
计算应开仓订单是否开仓
统计整体效果
运行效果监控
监控数据库运转情况
监控是否有重复入库
监控是否有漏入库数据
监控相关性表是否读出
监控c端tick是否执行
执行效果数据记录
成功目标
开仓成功率》88%
遗留问题
大量历史数据的测算分析功能,数据量太大分析时间太长
文章中的条件----向一个方向运动很长时间?出现减速和徘徊
研发模块记录
P端process模块
C端运行模块
P端统计模块
mysql数据库
后续计划
邮件被拒绝的问题
迁移到云端
统计能记录变化趋势
切换嘉盛虚拟盘实验
0 条评论
下一页