检查两种不同货币的汇率中的套利机会

时间:2018-02-15 14:43:48

标签: r datatable

我想检查几种货币之间的套利机会。

然而,当我们从X-> Y和Y-> X时,汇率是不同的,其中X,Y是两种不同的货币。

enter image description here

假设f是从X到Y的汇率,那么(f ^ -1)^ - 1!= f

我正在取消不同交易者为网站上的每种货币提供的汇率。因此,X-Y交易有大约50-100种不同的利率,我想采用前10种利率来更好地了解市场。

所以,目前我有一个货币矢量,我能够生成所有必需的网络链接以废弃相应的费率(X-> Y,Y-> X,X-> Z,Z- > X,Y-> Z,Z-> Y等)

因此我有enter image description here个网站链接要废弃。

接下来,我想我想把所有内容放在像这样的数据框中:

enter image description here

然而,每个X-> Y将按降序具有至少10个汇率。最后,我将在数据帧的每个单元格中有一个数据框,其中包含10个列表。

如何以智能且易于使用的方式检索和显示每种货币兑换的前10个费率?

以下代码适用于网站上提供的单一最优惠价格。所以我在" ratestable"中只有最优惠的价格。我正在寻找一种方法,每种方式都有十大价格。我应该生成10" ratestables"或者我应该以另一种方式工作?

#loading libraries
library(rvest)
library(xlsx)

currency_names  <- list(fusing=2,alchemy=3,chaos=4)
currency<-unlist(currency_names)

want<-currency
have<-currency

#table of links

linkstable<-table(want,have)



for (i in 1:length(currency)){
  for (j in 1:length(currency)){
    if (i == j) {
      next
    } else {
      a<-sub("WANTED",currency[i],base_link)
      linkstable[i,j]<-sub("POSSESSED",currency[j],a)
    }
  }
}
linkstable


#data from web

ratestable<-table(want,have)

for (i in 1:length(currency)){
  for (j in 1:length(currency)){
    if (i == j) {
      next
    } else {

      url <- read_html(linkstable[i,j])
      rate <- html_nodes(url,".offer-desc+ .displayoffer .columns+ .displayoffer-centered small")
      a <- html_text(rate)
      #cleanup of rate format
      b<- sub("1 ⨯  → ","",a)
      c<-sub(" ⨯ ","",b)
      #fill table
      ratestable[i,j]<-c
    }
  }
}
ratestable

示例输出:

> ratestable
    have
want 2      3      4     
   2 1      0.8    3     
   3 0.8333 1      3.0909
   4 0.3333 0.3101 1  

0 个答案:

没有答案