/iqoption-bot

iqoption bot to trading forex on:

Primary LanguagePythonMIT LicenseMIT

iqoption-bot [beta]

vendabaixo

iqoption bot is a simple ml realtime in training using LogisticRegression

it use bollinger bands to determinate if buy or sell

This code is initially based on Saulo Catharino's code

thanks for iqoption api to Lu-Yi-Hsun

thanks for this renko library and this brick size Optimization

NOTE:

  • it not buy or sell on iqoption yet you must pay attencion to chart and do it manually
  • Do tests on test account
  • Give a star if it helps you

Summary

Contribute with Community

Do fork
do your changes
do pull request with an explanation to be easy to understand why and what you have changed
Be happy !!!

Please send me suggestions ... feedbacks are welcome

PYTHON VERSION

I'm using anaconda with python 3.7

How to start

I'm using anaconda with python 3 to reduce time installing things

conda create -n myenviqoption
conda activate myenviqoption
pip install -r requirements.txt
pip install -U git+git://github.com/Lu-Yi-Hsun/iqoptionapi.git

rename userdata-sample.py to userdata.py

than:

python main.py -a EURUSD
Or
python main.py -a USDJPY -i 15 -f '-015'
-a : It is the asset you wanna trade
-i : the interval you wanna use [1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,'all']
-f : file sufix name

You can also use renko to better analyse tendence

python historicalrenko.py -a USDJPY -i 15

# or streaming
## this second command is under test and it may generate wrong stream

python streamrenko.py -a USDJPY -i 15

chart examples

vendabaixo

discover for assets

just change the number to identify which asset is

https://iqoption.com/traderoom/asset/1244?type=crypto&noAlternative=1

Save in database

To save iqoption data to rethinkdb:

  • install rethinkdb
  • create database called 'iqoption'
  • create table 'candles'
  • run fallowing code:
python rethinkdb.py -a EURUSD -i 5

TODO

  • Graphical interface web or desktop
  • Test other models
    • logistic regression with lbfgs
    • test different parameter to SVC
    • way to classify moviments
  • Optimize training with error function
  • Create backtest to improve tests
  • Use clean code to improve code
  • analise backtrader
  • Add function to load trained model
  • create public database to store historical data( It will need donation to server manteinance )
  • Create pipeline to deploy in a server
  • unit tests

Tips

when spread is big and asset has small changes it doesn't compensate to start bull or sell

spread < 0,30 change 0.08 %

Best strategy: buy once when there are signals and if there is many signals close just do one one buy with profit 1%

It is high risk to use just in tranament account

if you have any strategy let us know in an issue with prefix: [STRATEGY]

IMPORTANT: Don't be naivy, don't use it in real account

Support this project

I'll be really happy if you support this project.

Contribute here

It will be used to:

  • create server to historical data
  • improve code
  • create web interface
  • develop new features

DATA

New test open 3 terminals

python assets.py -a USDJPY -i 5
python assets.py -a USDJPY -i 15 -f '-015'
python assets.py -a USDJPY -i 30 -f '-30'
python assets.py -a USDJPY -i 60 -f '-60'

when boilinger hit at same time buy/sell in at least 2 charts

good spread is less then 0.020

take a profit 1%