什么是量化交易机器人?
从本质上说,交易机器人是一种软件程序,它直接与金融交易所进行交互(通常使用API获取和解释相关信息),并根据市场数据的解释发出买卖订单。这些机器人通过监测市场价格走势,并根据一套预先设定和编程的规则做出反应,I8O量化2857交易8624系统开发从而做出这些决定。通常,一个交易机器人会分析市场行为,例如交易量、订单、价格和时间,它们通常可以根据您自己的喜好进行编程。
完整策略代码
-- coding: utf-8 --
import time
import json
try:
import md5
import urllib2
from urllib import urlencode
except:
import hashlib as md5
import urllib.request as urllib2
from urllib.parse import urlencode
def api(method, *args):
d = {
'version': '1.0',
'access_key': accessKey,
'method': method,
'args': json.dumps(list(args)),
'nonce': int(time.time() * 1000),
}
d['sign'] = md5.md5(('%s|%s|%s|%d|%s' % (d['version'], d['method'], d['args'], d['nonce'], secretKey)).encode('utf-8')).hexdigest()
return json.loads(urllib2.urlopen('https://www.fmz.com/api/v1', urlencode(d).encode('utf-8')).read().decode('utf-8'))
RobotParams = json.loads(strRobotParams)
def main():
一旦我们创建了一个合约,我们必须编译并且创建源代码,这样我们才能够在我们的应用中部署合约并调用它的函数。有关 Solidity 编译器的相关信息,可以查阅官方网站:https://remix.ethereum.org。
编译合约并创建源代码
Solidity 为编译器提供了最新的 Docker 镜像,正式版本标记为stable,来自于开发分支的不稳定版本标记为nightly。但是,Docker 镜像只包含编译器可执行文件,因此我们必须将 Solidity 合约输入文件进行持久化卷挂载。假设这些文件在我们运行 Docker 容器机器的目录 /home/docker 下,我们可以使用以下命令进行编译。这个命令创建了两个文件:一个二进制文件 .bin,是 EVM 可以解释的智能合约代码,另外一个是应用程序二进制接口文件.abi,里面定义了智能合约方法。
$ docker run --rm -v /home/docker:/build ethereum/solc:stable /build/TransactionFee.sol --bin --abi --optimize -o /build
编译输出文件在容器的/build目录下,并且持久化存储在/home/docker目录下。在编译结束后,该容器被删除,因为现在不需要它。我们可以使用 web3j 库来从编译后的智能合约文件中创建源代码。web3j 的可执行文件在${WEB3J_HOME}/bin目录下,在创建源代码时,需要指定.bin 和 .abi文件的路径,并且设定目标包名和目录。
$ web3j solidity generate /build/transactionfee.bin /build/transactionfee.abi -p pl.piomin.services.contract.model -o src/main/java/
Web3j 可执行文件在给定的包名下创建了 Java 源文件,该类名为 Solidity 智能合约名,下面是我们创建出来的源代码。
public class Transactionfee extends Contract {
private static final String BINARY = "608060405234801561..."
public static final String FUNC_GETRECEIVERBALANCE = "getReceiverB
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70016646/viewspace-2935981/ ,如需转载,请注明出处,否则将追究法律责任。