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

简介:  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

相关文章
|
7月前
|
存储 安全 分布式数据库
现货期权交易/秒合约/量化交易系统开发模式案例
区块链技术是一种分布式数据库技术,它通过去中心化的方式记录数据
|
1月前
|
监控 安全 前端开发
现货期权交易所开发技术规则及案例说明
现货期权交易所开发源码包含交易、行情、结算、风险控制和信息安全五大功能。支持交易品种上市、实时行情发布、资金结算、异常交易监测等,确保交易的公平性、高效性和安全性。案例中采用Spring Boot、Vue.js等技术,实现期权合约买卖、行情展示等功能,经过全面测试和优化后上线运营。
|
7月前
|
人工智能 安全 搜索推荐
现货期权交易所系统开发|详情模式|原理分析
Web3.0概念混淆,其实他们的思想是不一样的:数字孪生强调的是虚实融合,虚实映射的思想。
|
7月前
|
安全 区块链
现货期权交易所系统开发详细步骤/方案设计
智能合约的运行记录都将被记录在区块链上,任何人都不能篡改这些记录
|
7月前
|
人工智能 供应链 安全
现货期权交易|秒合约系统开发技术方案
使用智能合约还可以保护和安全地与区块链和传统的业务主体的数据链接
|
7月前
|
人工智能 搜索推荐 大数据
秒合约跟单系统开发源码|现货期权交易系统案例
Web 3.0的时代,我们将看到一个完全去中心化的互联网环境,这将彻底改变互联网的面貌。
|
存储 安全 区块链
现货期权合约系统开发(成熟案例)|现货期权合约系统开发方案
在Web3.0中,区块链将发挥其去中心化、不变性等优点,成为互联网上所有数据的底层架构
|
安全 分布式数据库 区块链
期权现货合约系统开发方案丨成熟技术
区块链本质上是一种去中心化的分布式数据库
|
算法 分布式数据库 区块链
现货期权/秒合约交易所系统开发规则与方案
区块链数据库具备的特点包括:数据仅可通过共识算法以块的形式增加
|
JSON 监控 机器人
合约现货对冲跟单量化交易系统开发(开发案例)丨现货合约跟单对冲量化交易系统开发(逻辑及方案)/成熟技术/源码运营版
  量化合约指的是目标或任务具体明确,可以清晰度量。根据不同情况,表现为数量多少,具体的统计数字,范围衡量,时间长度等等。所谓量化就是把经过抽样得到的瞬时值将其幅度离散,即用一组规定的电平,把瞬时抽样值用最接近的电平值来表示。经过抽样的图像,只是在空间上被离散成为像素(样本)的阵列。而每个样本灰度值还是一个由无穷多个取值的连续变化量,必须将其转化为有限个离散值,赋予不同码字才能真正成为数字图像。这种转化称为量化