Skip to main content

A package for predicting buy and sell signals

Project description

Machine Learning MlEvx

This is a simplified version of regpredict package used to generate buy and sell signals for crypto and conventional stock markets based on the excess volume indicator(EVX). EVX is a concept where the bid-ask spread is estimated inherently from current market prices.

You can read more about Evx in the whitepaper here

Installation

Install mlevx with python3 -m pip install mlevx

Usage

In your python script simply import the module and use as follows:

from mlevx.regbot import signal
print(signal(20,65,utcdatetime,'long'))

The above methods take an assets opening and closing prices of the asset based on the time interval you have chosen. The third option is the datetime in utc as a string, and the last option is the decision to long or short the trade. A zero classification output would instruct the user to sell, while one output means don't sell or buy if the asset is not already present in the orders.

NB: The arguments can only be one between 'long' or 'short'.

Testing an entire dataframe

Testing of a dataframe for correct buy, sell signals is as simple as applying the function as follows:

import pandas as pd
from regbot import signal, Regbot

df = pd.read_csv('../jupyter/mlevx_train.csv')

y_pred = []
def getSignal(open,close,utcdatetime,dir):
    return signal(open,close,utcdatetime,dir)




# select short profitable trades
df1 = df[df['close_profit_abs'] > 0]
df1 = df1[df1['is_short'] == 1]
print(df1.head())
# select long profitable trades
df2 = df[df['close_profit_abs'] > 0]
df2 = df2[df2['is_short'] == 0]
print(df2.head())


# Run all predictions
df['enter_short_pred'] = df.apply(lambda row: getSignal(row['open'], row['close'], row['date'],'short'), axis=1)
df['enter_long_pred'] = df.apply(lambda row: getSignal(row['open'], row['close'], row['date'],'long'), axis=1)


print(len(df[df['enter_short_pred'] == df['is_short']]), len(df) )
print(len(df[df['enter_long_pred'] == df['is_short']]), len(df2) )

print(df[df['is_short']==1].head(15))
print(df[df['is_short']==0].head(15))

Your original data must already have some presumed 'long' or 'short' signal.

Warning

This is not financial advise. MlEVX is entirely on its preliminary stages. Use it at your own risk.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mlevx-0.0.7.tar.gz (105.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mlevx-0.0.7-py3-none-any.whl (104.1 kB view details)

Uploaded Python 3

File details

Details for the file mlevx-0.0.7.tar.gz.

File metadata

  • Download URL: mlevx-0.0.7.tar.gz
  • Upload date:
  • Size: 105.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.4

File hashes

Hashes for mlevx-0.0.7.tar.gz
Algorithm Hash digest
SHA256 ebe52207239b946d553040a1f8441eb89f2f811a4bc31a8476f9dabe1e05449b
MD5 5b14f27830866d200dffdbdfb22a4867
BLAKE2b-256 e976b74a321ec550f9a897987e708f8a687e11245700643006b04b1365570bd5

See more details on using hashes here.

File details

Details for the file mlevx-0.0.7-py3-none-any.whl.

File metadata

  • Download URL: mlevx-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 104.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.4

File hashes

Hashes for mlevx-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 b1557144d294440d4666b021f12411110764ba008822e06c905b6ea393952523
MD5 bfab6223863ff36bc81fe52a81c934d5
BLAKE2b-256 1e832edd24cd562745731e612a40771d658bf17e9c7da3ab53acaf6b973d1bb6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page