In recent years,the tendency of the number of financial institutions to include crypto-currencies in their portfolios has accelerated.Cryptocurrencies are the first pure digital assets to be included by asset managers...In recent years,the tendency of the number of financial institutions to include crypto-currencies in their portfolios has accelerated.Cryptocurrencies are the first pure digital assets to be included by asset managers.Although they have some commonalities with more traditional assets,they have their own separate nature and their behaviour as an asset is still in the process of being understood.It is therefore important to summarise existing research papers and results on cryptocurrency trading,including available trading platforms,trading signals,trading strategy research and risk management.This paper provides a comprehensive survey of cryptocurrency trading research,by covering 146 research papers on various aspects of cryptocurrency trading(e.g.,cryptocurrency trading systems,bubble and extreme condition,prediction of volatility and return,crypto-assets portfolio construction and crypto-assets,technical trading and others).This paper also analyses datasets,research trends and distribution among research objects(contents/properties)and technologies,concluding with some promising opportunities that remain open in cryptocurrency trading.展开更多
For the rapid development of internetware, functional programming languages, such as Haskell and Scala, can be used to implement complex domain-specific applications. In functional programming languages, a higher-orde...For the rapid development of internetware, functional programming languages, such as Haskell and Scala, can be used to implement complex domain-specific applications. In functional programming languages, a higher-order function is a function that takes functions as parameters or returns a function. Using higher-order functions in programs can increase the generality and reduce the redundancy of source code. To test a higher-order function, a tester needs to check the requirements and write another function as the test input. However, due to the complex structure of higher-order functions, testing higher-order functions is a time-consuming and labor-intensive task. Testers have to spend an amount of manual effort in testing all higher-order functions. Such testing is infeasible if the time budget is limited, such as a period before a project release. In practice, not every higher-order function is actually called. We refer to higher-order functions that are about to be called as calling-prone ones. Calling-prone higher-order functions should be tested first. In this paper, we propose an automatic approach, namely PHOF, which predicts whether a higher-order function of Scala programs will be called in the future, i.e., identifying calling-prone higher-order functions. Our approach can assist testers to reduce the number of higher-order functions of Scala programs under test. In PHOF, we extracted 24 features from source code and logs to train a predictive model based on known higher-order function calls. We empirically evaluated our approach on 4832 higher-order functions from 27 real-world Scala projects. Experimental results show that PHOF based on the random forest algorithm and the Synthetic Minority Oversampling Technique Processing strategy (SMOTE) performs well in the prediction of calls of higher-order functions. Our work can be used to support the scheduling of limited test resources.展开更多
文摘In recent years,the tendency of the number of financial institutions to include crypto-currencies in their portfolios has accelerated.Cryptocurrencies are the first pure digital assets to be included by asset managers.Although they have some commonalities with more traditional assets,they have their own separate nature and their behaviour as an asset is still in the process of being understood.It is therefore important to summarise existing research papers and results on cryptocurrency trading,including available trading platforms,trading signals,trading strategy research and risk management.This paper provides a comprehensive survey of cryptocurrency trading research,by covering 146 research papers on various aspects of cryptocurrency trading(e.g.,cryptocurrency trading systems,bubble and extreme condition,prediction of volatility and return,crypto-assets portfolio construction and crypto-assets,technical trading and others).This paper also analyses datasets,research trends and distribution among research objects(contents/properties)and technologies,concluding with some promising opportunities that remain open in cryptocurrency trading.
基金This work is supported by the National Key Research and Development Program of China under Grant No.2018YFB1003901the National Natural Science Foundation of China under Grant No.61872273Advanced Research Projects of the 13th Five-Year Plan of Civil Aerospace Technology,Intelligent Distribution Technology of Domestic Satellite Information under Grant No.B0301.
文摘For the rapid development of internetware, functional programming languages, such as Haskell and Scala, can be used to implement complex domain-specific applications. In functional programming languages, a higher-order function is a function that takes functions as parameters or returns a function. Using higher-order functions in programs can increase the generality and reduce the redundancy of source code. To test a higher-order function, a tester needs to check the requirements and write another function as the test input. However, due to the complex structure of higher-order functions, testing higher-order functions is a time-consuming and labor-intensive task. Testers have to spend an amount of manual effort in testing all higher-order functions. Such testing is infeasible if the time budget is limited, such as a period before a project release. In practice, not every higher-order function is actually called. We refer to higher-order functions that are about to be called as calling-prone ones. Calling-prone higher-order functions should be tested first. In this paper, we propose an automatic approach, namely PHOF, which predicts whether a higher-order function of Scala programs will be called in the future, i.e., identifying calling-prone higher-order functions. Our approach can assist testers to reduce the number of higher-order functions of Scala programs under test. In PHOF, we extracted 24 features from source code and logs to train a predictive model based on known higher-order function calls. We empirically evaluated our approach on 4832 higher-order functions from 27 real-world Scala projects. Experimental results show that PHOF based on the random forest algorithm and the Synthetic Minority Oversampling Technique Processing strategy (SMOTE) performs well in the prediction of calls of higher-order functions. Our work can be used to support the scheduling of limited test resources.