Git Product home page Git Product logo

evolving's Introduction

Evolving

Trading engine evolving. Only Mac OSX is supported.

AUTHOR

Lorenzo ©

evolving © Lorenzo, Released under the GPL 3.0 License.

Blog @Lorenzo

INSTALLATION GUIDE

  1. PROJECT STRUCTURE

    tree evolving 
        evolving
        ├── LICENSE
        ├── README.md
        ├── evolving
        │   ├── __init__.py
        │   ├── ascmds.py
        │   ├── evolving.py
        │   └── helper.py
        ├── requirements.txt
        ├── setup.py
        └── tests
            ├── __init__.py
            ├── evolving.py
            └── helper.py
    
    tree ~/.config/evolving
        ~/.config/evolving
        └── config.xml
  2. REQUIREMENTS

    • python >= 3.8.5
  3. DEPENDENCIES

    brew install cliclick
    cliclick -V             # cliclick 4.0.1, 2018-04-10
    which cliclick          # /usr/local/bin/cliclick
    
    pip install `curl -fsSL https://raw.githubusercontent.com/zetatez/evolving/main/requirements.txt`
  4. INSTALLATION

  • Building evolving from pip

    pip install evolving
  • Building evolving from source

    git clone [email protected]:zetatez/evolving.git ~/evolving; cd ~/evolving; python setup.py install; rm -rf ~/evolving
  1. CONFIGURATION
    mkdir -p ~/.config/evolving
    
    echo """
    <evolving>
        <trading>
            <userid>77777777777</userid>
            <password>123456</password>
            <broker_code>PAZQ</broker_code>
            <broker_account>66666666</broker_account>
            <broker_password>123456</broker_password>
            <bank_name>工商银行</bank_name>
            <bank_account>666666666666666666</bank_account>
            <bank_password>123456</bank_password>
        </trading>
        <mail>
            <mail_host>smtp.163.com</mail_host>
            <mail_sender>[email protected]</mail_sender>
            <mail_license>SNRRQOKFKEUNNSFT</mail_license>
            <mail_receivers>[email protected]</mail_receivers>
        </mail>
    </evolving>
    """ > ~/.config/evolving/config.xml

GET START WITH evolving

```python
import evolving.evolving as evo
from pprint import pprint as show

s = evo.Service()
e = evo.Evolving()

status = s.loginClient()
print(status)

e.keepInformed = True

status = e.isBrokerLoggedIn()
print(status)

status = e.loginBroker()
print(status)

status = e.isBrokerLoggedIn()
print(status)

accountInfo = e.getAccountInfo()
show(accountInfo)

status = e.transfer(transferType = "bank2broker", amount = 1000)
show(status)

status = e.transfer(transferType = "broker2bank", amount = 1000)
show(status)

status = e.transfer_broker2bank(amount = 10000)
show(status)

status = e.transfer_bank2broker(amount = 10000)
show(status)

transferRecords = e.getTransferRecords(dateRange = "thisYear")
show(transferRecords)

bids = e.getBids(stockCode = "600030")
show(bids)
bids = e.getBids(stockCode = "600030", assetType = 'stock')
show(bids)

bids = e.getBids(stockCode = "688055")
show(bids)
bids = e.getBids(stockCode = "688055", assetType = 'sciTech')
show(bids)

bids = e.getBids(stockCode = "300750")
show(bids)
bids = e.getBids(stockCode = "300750", assetType = 'gem')
show(bids)

status, contractNo = e.issuingEntrust(stockCode = '002241', amount = 100, price = 37.01, tradingAction = 'buy')
show(status)
show(contractNo)
status, contractNo = e.issuingEntrust(stockCode = '002241', amount = 100, price = 40.01, tradingAction = 'sell')
show(status)
show(contractNo)
status, contractNo = e.issuingEntrust(stockCode = '002241', amount = 100, tradingAction = 'buy')
show(status)
show(contractNo)
status, contractNo = e.issuingEntrust(stockCode = '002241', amount = 100, tradingAction = 'sell')
show(status)
show(contractNo)

status, contractNo = e.issuingEntrust(stockCode = '688050', amount = 200, price = 220.01, tradingAction = 'buy')
show(status)
show(contractNo)
status, contractNo = e.issuingEntrust(stockCode = '688050', amount = 200, price = 225.01, tradingAction = 'sell')
show(status)
show(contractNo)
status, contractNo = e.issuingEntrust(stockCode = '688050', amount = 200, tradingAction = 'buy')
show(status)
show(contractNo)
status, contractNo = e.issuingEntrust(stockCode = '688050', amount = 200, tradingAction = 'sell')
show(status)
show(contractNo)

status, contractNo = e.issuingEntrust(stockCode = '300474', amount = 200, price = 72.54, tradingAction = 'buy')
show(status)
show(contractNo)
status, contractNo = e.issuingEntrust(stockCode = '300474', amount = 200, price = 78.41, tradingAction = 'sell')
show(status)
show(contractNo)
status, contractNo = e.issuingEntrust(stockCode = '300474', amount = 200, tradingAction = 'buy')
show(status)
show(contractNo)
status, contractNo = e.issuingEntrust(stockCode = '300474', amount = 200, tradingAction = 'sell')
show(status)
show(contractNo)

status, contractNo = e.buy(stockCode = '002241', amount = 100)
show(status)
show(contractNo)
status, contractNo = e.buy(stockCode = '002241', amount = 100, price = 37.01)
show(status)
show(contractNo)
status, contractNo = e.buy(stockCode = '688050', amount = 200, price = 220.01)
show(status)
show(contractNo)
status, contractNo = e.buy(stockCode = '300474', amount = 200, price = 72.54)
show(status)
show(contractNo)

status, contractNo = e.sell(stockCode = '002241', amount = 100)
show(status)
show(contractNo)
status, contractNo = e.sell(stockCode = '002241', amount = 100, price = 37.01)
show(status)
show(contractNo)
status, contractNo = e.sell(stockCode = '688050', amount = 200, price = 220.01)
show(status)
show(contractNo)
status, contractNo = e.sell(stockCode = '300474', amount = 200, price = 72.54)
show(status)
show(contractNo)

status, contractNo = e.buyStock(stockCode = '002241', amount = 100, price = 37.01)
show(status)
show(contractNo)
status, contractNo = e.sellStock(stockCode = '002241', amount = 100, price = 40.01)
show(status)
show(contractNo)
status, contractNo = e.buyStock(stockCode = '002241', amount = 100)
show(status)
show(contractNo)
status, contractNo = e.sellStock(stockCode = '002241', amount = 100)
show(status)
show(contractNo)

status, contractNo = e.buySciTech(stockCode = '688050', amount = 200, price = 225.01)
show(status)
show(contractNo)
status, contractNo = e.sellSciTech(stockCode = '688050', amount = 200, price = 220.01)
show(status)
show(contractNo)
status, contractNo = e.buySciTech(stockCode = '688050', amount = 200)
show(status)
show(contractNo)
status, contractNo = e.sellSciTech(stockCode = '688050', amount = 200)
show(status)
show(contractNo)

status, contractNo = e.buyGem(stockCode = '300474', amount = 200, price = 72.54)
show(status)
show(contractNo)
status, contractNo = e.sellGem(stockCode = '300474', amount = 200, price = 78.41)
show(status)
show(contractNo)
status, contractNo = e.buyGem(stockCode = '300474', amount = 200)
show(status)
show(contractNo)
status, contractNo = e.sellGem(stockCode = '300474', amount = 200)
show(status)
show(contractNo)

todayIPO = e.getTodayIPO()
show(todayIPO)

status = e.oneKeyIPO()
print(status)

status = e.revokeEntrust(revokeType = "allBuyAndSell", assetType = "stock", contractNo = None)
show(status)
status = e.revokeEntrust(revokeType = "allBuy", assetType = "stock", contractNo = None)
show(status)
status = e.revokeEntrust(revokeType = "allSell", assetType = "stock", contractNo = None)
show(status)

status = e.revokeContractNoEntrust(assetType = "stock",  contractNo = "N8536587")
show(status)

status = e.revokeAllEntrust()
show(status)
status = e.revokeAllBuyEntrust()
show(status)
status = e.revokeAllSellEntrust()
show(status)

holdingShares = e.getHoldingShares(assetType = 'stock')
show(holdingShares)

allholdingShares = e.getAllHoldingShares()
show(allholdingShares)

entrust = e.getEntrust(assetType = 'stock', dateRange = 'today', isRevocable = True)
show(entrust)

entrust = e.getEntrust(assetType = 'stock', dateRange = 'today', isRevocable = False)
show(entrust)

entrust = e.getEntrust(assetType = 'stock', dateRange = 'thisWeek', isRevocable = False)
show(entrust)
print(len(entrust.get('data')))

entrust = e.getEntrust(assetType = 'stock', dateRange = 'thisYear', isRevocable = False)
show(entrust)

res = e.getTodayAllRevocableEntrust()
show(res)

closedDeals = e.getClosedDeals(assetType = 'stock', dateRange = 'thisSeason')
show(closedDeals)

closedDeals = e.getClosedDeals(assetType = 'stock', dateRange = 'today')
show(closedDeals)

capitalDetails = e.getCapitalDetails(assetType = 'stock', dateRange = 'thisSeason')
show(capitalDetails)

capitalDetails = e.getCapitalDetails(assetType = 'stock', dateRange = 'today')
show(capitalDetails)

res = e.getIPO(queryType = "entrust", dateRange = "today")
show(res)

res = e.getIPO(queryType = "allotmentNo", dateRange = "thisMonth")
show(res)

res = e.getIPO(queryType = "winningLots", dateRange = "thisSeason")
show(res)

status = e.liquidating()
show(status)

StockCodeAmountPriceList = [['512290', '1000', '2.169'], ['512290', '1000', '2.171'], ['688050', '200', '225.01']]
statusList = e.entrustPortfolio(StockCodeAmountPriceList)
show(statusList)

status = e.revokeAllEntrust()
show(status)

s.logoutClient()
```

API

  • Service

    • isClientLoggedIn()
    • loginClient()
    • logoutClient()
    • reLoginClient()
  • Evolving

    • isBrokerLoggedIn()
    • loginBroker()
    • logoutBroker()
    • getAccountInfo()
    • transfer(transferType = "bank2broker", amount = 100000)
    • transfer_bank2broker(amount = 100000)
    • transfer_broker2bank(amount = 100000)
    • getTransferRecords(dateRange = "thisWeek")
    • getAssetType(stockCode)
    • getBids(stockCode = "600030", assetType = None)
    • issuingEntrust(stockCode, amount, price = None, tradingAction = 'buy', assetType = None)
    • buy(stockCode, amount, price = None)
    • sell(stockCode, amount, price = None)
    • buyStock(stockCode, amount, price = None)
    • sellStock(stockCode, amount, price = None)
    • buySciTech(stockCode, amount, price = None)
    • sellSciTech(stockCode, amount, price = None)
    • buyGem(stockCode, amount, price = None)
    • sellGem(stockCode, amount, price = None)
    • getTodayIPO()
    • oneKeyIPO()
    • revokeEntrust(revokeType = "allBuyAndSell", assetType = "stock", contractNo = None)
    • revokeAllBuyEntrust()
    • revokeAllSellEntrust()
    • revokeAllEntrust()
    • revokeContractNoEntrust(assetType = "stock", contractNo = "N8743678")
    • getHoldingShares(assetType = 'stock')
    • getAllHoldingShares()
    • getEntrust(assetType = 'stock', dateRange = 'today', isRevocable = True)
    • getTodayAllRevocableEntrust()
    • getClosedDeals(assetType = 'stock', dateRange = 'today')
    • getCapitalDetails(assetType = 'stock', dateRange = 'thisSeason')
    • getIPO(queryType = "entrust", dateRange = "today")
    • getIPOentrust(dateRange = "today")
    • getIPOallotmentNo(dateRange = "today")
    • getIPOwinningLots(dateRange = "today")
    • liquidating()
    • entrustPortfolio(StockCodeAmountPriceList = [])
  • EvolvingSim

    • getAccountInfo()
    • issuingEntrust(stockCode, amount, price = None, tradingAction = 'buy')
    • buy(stockCode, amount, price = None)
    • sell(stockCode, amount, price = None)
    • revokeEntrust(revokeType = "allBuyAndSell", contractNo = None)
    • getHoldingShares()
    • getEntrust(dateRange = 'today', isRevocable = True)
    • getClosedDeals(dateRange = 'today')
    • getCapitalDetails(dateRange = 'thisSeason')
    • liquidating()
    • entrustPortfolio(stockCodeAmountPriceList = [])

evolving's People

Contributors

zetatez avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.