量化合約及合約量化系統(tǒng)開(kāi)發(fā)成熟技術(shù)及源碼案例
量化交易也是一種交易。狹義上的量化交易指將交易條件轉(zhuǎn)化為程序,并自動(dòng)下單;廣義的量化交易是系統(tǒng)交易方式,是一種綜合交易系統(tǒng),根據(jù)一系列交易條件,智能決策系統(tǒng),將豐富的經(jīng)驗(yàn)與交易條件相結(jié)合,管理交易過(guò)程中的風(fēng)險(xiǎn)控制。 import json from web3 import Web3, HTTPProvider #from web3.contract import ConciseContract ## 獲取合約的abi def getAbi(filePath):開(kāi)發(fā)案例及源碼I35軟件7o98詳細(xì)o7I8 ??with open(filePath,'r') as abi_file: ????mpc_abi = json.load(abi_file) ??return mpc_abi ## 獲取余額 def getBalance(contractObj,accountAddr): ??return contractObj.functions.balanceOf(accountAddr).call() ## 獲取合約對(duì)象 def getContractObj(web3Obj,contractAddr,abiPath): ??con_abi = getAbi(abiPath) ??return web3Obj.eth.contract(address=contractAddr,abi=con_abi) 模式開(kāi)發(fā):mrsfu123 ## 發(fā)送ERC20 def sendErc20(web3obj,fromAddr,toAddr,value,contractAddr,abiPath): ??contractAbi = getAbi(abiPath) ??contractObj = web3obj.eth.contract(address=contractAddr,abi=contractAbi) ??tx_hash = contractObj.functions.transfer(toAddr,value).transact({'from':fromAddr}) ??tx_receipt = web3obj.eth.wait_for_transaction_receipt(tx_hash) ??if tx_receipt['status'] == 1: ????return 'send Success' ??else: ????return 'send Failed' def printBalance(web3obj,contractObj,fromAddr,toAddr,markIndex): ??balanceA = getBalance(contractObj,fromAddr) ??balanceB = getBalance(contractObj,toAddr) ??fromMark = markIndex+" balanceA=" ??toMark?= markIndex+" balanceB=" ??print(fromMark,web3obj.fromWei(balanceA,'ether')) ??print(toMark,?web3obj.fromWei(balanceB,'ether')) #####?發(fā)送ERC20 ###### # web3.py instance w3 = Web3(HTTPProvider("http://localhost:8545")) print('web3 connect:',w3.isConnected()) fromAddr = w3.eth.accounts[0] toAddr?= w3.eth.accounts[1] print('fromAddr=',fromAddr) print('toAddr?=',toAddr) value = w3.toWei(0.1,'ether') abiPath = './myabi/DPC_abi.json' contractAddr = '0xE250d901baeCb66F85D184D8aE9dA2bD4e705854' ##DPC合約地址 contractObj = getContractObj(w3,contractAddr,abiPath) ## 發(fā)送前 printBalance(w3,contractObj,fromAddr,toAddr,"#1") bRet = sendErc20(w3,fromAddr,toAddr,value,contractAddr,abiPath) print('result= ',bRet) ## 發(fā)送后 printBalance(w3,contractObj,fromAddr,toAddr,"#2") import json from web3 import Web3, HTTPProvider #from web3.contract import ConciseContract ## 獲取合約的abi def getAbi(fil