现货期权交易所系统丨现货期权交易所系统开发(方案及详细)丨现货期权交易所源码功能及案例

简介:  As a new information and network technology,blockchain uses encryption technology,distributed network and consensus mechanism to ensure that the information recorded by each node in the network is true and effective.Blockchain is constantly penetrating into all walks of life and has shown a good de

  The development technology of digital currency exchange is a decentralized consensus mechanism to maintain a complete,distributed and tamper-proof ledger database.It enables participants in the blockchain to achieve a unified ledger system without establishing trust relationships.

  As a new information and network technology,blockchain uses encryption technology,distributed network and consensus mechanism to ensure that the information recorded by each node in the network is true and effective.Blockchain is constantly penetrating into all walks of life and has shown a good development trend.

  huobipro=ccxt.huobipro({

  'apiKey':'',

  'secret':'',

  })

  先使用ccxt获取交易所的实例,然后获取历史k线,得到的数据使用dataframe格式接受

  huobipro.fetch_ohlcv(symbol=symbol,limit=limit_num,timeframe=timeframe)

  然后利用pandas提供的函数计算MA,

  df['median_short']=df['close'].rolling(n_short,min_periods=1).mean()

  df['median_long']=df['close'].rolling(n_long,min_periods=1).mean()

  然后再找出买入卖出信号,

  #找出买入信号

  condition1=df['median_short']>df['median_long']#短均线上穿长均线

  condition2=df['median_short'].shift(1)<=df['median_long'].shift(1)

  df.loc[condition1&condition2,'signal']=1#产生买入信号的k线标记为1

  #找出卖出信号

  condition1=df['median_short']<df['median_long']#短均线上穿长均线

  condition2=df['median_short'].shift(1)>=df['median_long'].shift(1)

  df.loc[condition1&condition2,'signal']=0#产生卖出信号的k线标记为0

  有了交易信号,就可以获取信号,再判断进行下单(huobipro.create_limit_buy/sell_order()了)

  第五步:其实第四步就可以交易了,第五步是回测,一般来说先回测再根据回测结果选用策略,最后才进行实盘

  回测分析的相关有很多种,在这方面我也不是很懂,目前我还是习惯用累计利润来进行分析,

  #由signal计算出实际的每天持仓

  df['pos']=df['signal'].shift()

  df['pos'].fillna(method='ffill',inplace=True)

  df['pos'].fillna(value=0,inplace=True)

  到这里持仓信号就有了,就可以根据持仓和历史k线的价格计算累计利润了,

  df['change']=df['close'].pct_change(1)#根据收盘价计算涨跌幅

  df['by_at_open_change']=df['close']/df['open']-1#开盘买入到收盘的涨跌幅

  df['sell_next_open_change']=df['open'].shift(-1)/df['close']-1#这根收盘到下根开盘的涨跌幅

  df.at[len(df)-1,'sell_next_open_change']=0#补全空值df.at[4,'B']

  condition1=df['pos']==1

  condition2=df['pos']!=df['pos'].shift(1)

  open_pos_condition=condition1&condition2

  #选取平仓条件

  condition1=df['pos']==0

  condition2=df['pos']!=df['pos'].shift(1)

  close_pos_condition=condition1&condition2

  #对每次交易进行分组

  df.loc[open_pos_condition,'start_time']=df['open_time']

  df['start_time'].fillna(method='ffill',inplace=True)

  df.loc[df['pos']==0,'start_time']=pd.NaT

  init_cash=1000#初始资金

  #计算仓位变动

  #开仓时仓位

  df.loc[open_pos_condition,'position']=init_cash*(1+df['by_at_open_change'])

  group_num=len(df.groupby('start_time'))

  if group_num>1:

  temp=df.groupby('start_time').apply(lambda x:x['close']/x.iloc0*x.iloc0)

  temp=temp.reset_index(level=[0])

  df['position']=temp['close']

  df['position_max']=df['position']*df['high']/df['close']

  df['position_min']=df['position']*df['low']/df['close']

  ##平仓时的仓位

  #df.loc[close_pos_condition,'position']*=(1+df.loc[close_pos_condition,'sell_next_open_change'])

  #计算持仓利润

  df['porfit']=(df['position']-init_cash)*df['pos']#持仓利润或亏损

  #df.loc[df['pos']==1,'porfit_min']=(df['position_min']-init_cash)*df['pos']#最小持仓盈利或亏损

  #df.loc[df['pos']==0,'porfit_max']=(df['position_max']-init_cash)*df['pos']

  #计算实际资金量

  df['cash']=init_cash+df['porfit']#实际资金

  #计算资金曲线

  df['equity_change']=df['cash'].pct_change()

  #开仓日收益率

  df.loc[open_pos_condition,'equity_change']=df.loc[open_pos_condition,'cash']/init_cash-1

  df['equity_change'].fillna(value=0,inplace=True)

  df['equity_curve']=(1+df['equity_change']).cumprod()

  df['equity_curve']=df['equity_curve']*init_cash

相关文章
|
11天前
|
监控 安全 前端开发
现货期权交易所开发技术规则及案例说明
现货期权交易所开发源码包含交易、行情、结算、风险控制和信息安全五大功能。支持交易品种上市、实时行情发布、资金结算、异常交易监测等,确保交易的公平性、高效性和安全性。案例中采用Spring Boot、Vue.js等技术,实现期权合约买卖、行情展示等功能,经过全面测试和优化后上线运营。
|
6月前
|
安全 区块链
现货期权交易所系统开发详细步骤/方案设计
智能合约的运行记录都将被记录在区块链上,任何人都不能篡改这些记录
|
6月前
|
人工智能 供应链 安全
现货期权交易|秒合约系统开发技术方案
使用智能合约还可以保护和安全地与区块链和传统的业务主体的数据链接
|
6月前
|
人工智能 搜索推荐 大数据
秒合约跟单系统开发源码|现货期权交易系统案例
Web 3.0的时代,我们将看到一个完全去中心化的互联网环境,这将彻底改变互联网的面貌。
|
存储 安全 区块链
现货期权合约系统开发(成熟案例)|现货期权合约系统开发方案
在Web3.0中,区块链将发挥其去中心化、不变性等优点,成为互联网上所有数据的底层架构
|
安全 分布式数据库 区块链
期权现货合约系统开发方案丨成熟技术
区块链本质上是一种去中心化的分布式数据库
|
算法 分布式数据库 区块链
现货期权/秒合约交易所系统开发规则与方案
区块链数据库具备的特点包括:数据仅可通过共识算法以块的形式增加
|
人工智能 大数据 云计算
ippswap兑换底池质押项目系统开发|ippswap交易质押流程分析
Web3.0的核心应该是“用户自主”,并不一定非要“去中心化”
|
Kubernetes Shell Docker
Uinswap交易所项目系统开发技术方案(买卖涨模式)
Uinswap交易所项目系统开发技术方案(买卖涨模式)
113 0
|
安全 Java 数据库连接
现货期权交易所系统开发功能设计 | 现货期权交易所系统开发源码示例(java版)
现货期权交易所系统的开发需要考虑到系统的设计、功能实现、交易策略、风险控制等方面。通常,现货期权交易所系统需要具备以下功能: