GithubHelp home page GithubHelp logo

henryzhongsc / half_tael_dqn Goto Github PK

View Code? Open in Web Editor NEW
29.0 6.0 16.0 14.77 MB

A (very amateur) foreign exchange trading bot utilizing CNN + DQN.

License: Other

Python 100.00%
forex forex-trading dqn dqn-tensorflow cnn cnn-tensorflow personality-traits

half_tael_dqn's Issues

VISION of this project.

To list out the future direction(s) of this project.

  • Improving CNN:

    • More layers.
    • Tuning parameters regarding strides, filter, etc.
  • Different model before DQN:

    • RNN.
    • LSTM (essentially DRQN).
    • Rainbow.
  • Improve Anita:

    • Make another psy metrics on personalty which actually suits the role of reward indicator.
    • Apply reward shaping.
    • Dynamic weight adjustment between traits and persona-avatar.
      • Supervised learning?
      • NN for dynamic categorization rather than hardcored weight?
  • Improve OANDA communication:

    • Submit trade request.
    • Read real time data.
  • Deploy:

    • Train with local Linux server.
    • Train on cloud.

Replace hardcore setting in half_tael_v3.0 model to accept dynamic input.

Mostly regarding the 3 * 3200 output in CNN with 889 rows of trial data (300 rows for train and 300 rows for test for fast debug). To reproduce:

    _account_name = 'DQN_v3.0_trial_data_899_line'
    _currency_balance = {'USD': 0, 'EUR': 100000, 'GBP': 0}
    _from = "2018-04-13T18:30:00Z"
    # _to = "2018-04-19T03:27:00Z" # 4800 rows.
    _to = "2018-04-16T09:30:00Z" # 904 rows
    _interval = "M1"
    TI_train = TI.Trade_Interface(_account_name, _currency_balance, _from, _to, _interval)

Build anita_interface.py, the reward influencing framework.

Develop a set of evaluation functions to evaluate the status (weight) of certain metrics introduced in Anita folder.

Such functions should take _time, _currency_pair, _volume, trade_action (long, short, hold) and any other necessary parameters (e.g. historical trade_log and market info from oanda_interface.py) as inputs and return a float number between -1 to 1 as a reflection of the status of such metrics at this particular position.


closed due to contributor exited the program, task will be handled

Update CONTRIBUTING.md.

  • Update rebase pull request guideline with example.
  • Add branch checkout comment guideline with example.
  • Add usage guideline for pin with example.

Refactor train_interface.py into multiple files for higher cohesion.

Separate as:

  • model_interface.py: for the main loop and FX, DQN, and Trade_Interface instance building.
  • train_interace.py: a clean entry point of the program.
  • model_config.py: configuration for run_model(), FX, DQN, Trade_Interface input.
  • oanda_config.py (originally config.py): configuration for Oanda API connection.

Develop persona metrics evaluation functions.

Develop a set of evaluation functions to evaluate the status (weight) of certain metrics introduced in Anita folder.

Such functions should take _time, _currency_pair, _volume, trade_action (long, short, hold) and any other necessary parameters (e.g. historical trade_log) as inputs and return a float number between -1 to 1 as a reflection of the status of such metrics at this particular position.

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.