Add files via upload
SMA only
This commit is contained in:
parent
c33e65cd83
commit
cc7f347dd3
124
Core/Ind_Envelopes.py
Normal file
124
Core/Ind_Envelopes.py
Normal file
@ -0,0 +1,124 @@
|
||||
import pandas as pd
|
||||
import datetime
|
||||
import numpy as np
|
||||
import plotly as pl
|
||||
import plotly.graph_objs as go
|
||||
import matplotlib.pyplot as plt
|
||||
import math
|
||||
import scipy
|
||||
import random
|
||||
import statistics
|
||||
|
||||
|
||||
import datetime
|
||||
import matplotlib.dates as mdates
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
import mplfinance as mpf
|
||||
|
||||
import plotly
|
||||
#import plotly.plotly as py
|
||||
import plotly.graph_objs as go
|
||||
# these two lines allow your code to show up in a notebook
|
||||
from plotly.offline import init_notebook_mode, iplot
|
||||
from plotly.subplots import make_subplots
|
||||
init_notebook_mode()
|
||||
|
||||
import CoreTraidMath
|
||||
import CoreDraw
|
||||
|
||||
class Envelopes:
|
||||
|
||||
def __init__(self, base_df,options={}, needFig=False,showOnlyIndex=True,drawFig=False):
|
||||
self.base_df=base_df.reset_index(drop=True)
|
||||
self.options=options
|
||||
self.ans=self.getAns()
|
||||
if needFig:
|
||||
self.fig=self.pltShow(showOnlyIndex,drawFig)
|
||||
|
||||
|
||||
|
||||
def getAns(self):
|
||||
ans={
|
||||
'MainEnv':[],
|
||||
'PlusEnv':[],
|
||||
'MinusEnv':[],
|
||||
'x':[]
|
||||
}
|
||||
dictResp={}
|
||||
dictResp['MeanType']=self.options['MeanType']
|
||||
dictResp['valueType']=self.options['valueType']
|
||||
|
||||
try:
|
||||
dictResp['window'] = self.options['window']
|
||||
dictResp['span'] = self.options['window']
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
|
||||
|
||||
op={'dataType':'ohcl',
|
||||
'action':'findMean',
|
||||
'actionOptions':dictResp
|
||||
}
|
||||
if dictResp['MeanType']=='SMA':
|
||||
|
||||
y=CoreTraidMath.CoreMath(self.base_df,op).ans
|
||||
ans['MainEnv']=y[:len(y)-self.options['shift']]
|
||||
ans['PlusEnv']=ans['MainEnv']*(1+self.options['kProc']/100)
|
||||
ans['MinusEnv']=ans['MainEnv']*(1-self.options['kProc']/100)
|
||||
ans['x']=self.base_df['date'][self.options['window']-1+self.options['shift']:]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return ans
|
||||
|
||||
def pltShow(self,showOnlyIndex,drawFig):
|
||||
ans=None
|
||||
req=[]
|
||||
row=1
|
||||
if not showOnlyIndex:
|
||||
|
||||
#row=2
|
||||
req.append({
|
||||
'vtype':'OCHL',
|
||||
'df':self.base_df,
|
||||
'row':1,
|
||||
'col':1,
|
||||
'name':'OHCL'
|
||||
|
||||
})
|
||||
req.append({
|
||||
'vtype':'Scatter',
|
||||
'df':pd.DataFrame(
|
||||
{'value':self.ans['MainEnv'],'date':self.ans['x']}) ,
|
||||
'row':row,
|
||||
'col':1,
|
||||
'name':'MainEnv'
|
||||
|
||||
})
|
||||
req.append({
|
||||
'vtype':'Scatter',
|
||||
'df':pd.DataFrame(
|
||||
{'value':self.ans['PlusEnv'],'date':self.ans['x']}) ,
|
||||
'row':row,
|
||||
'col':1,
|
||||
'name':'PlusEnv'
|
||||
|
||||
})
|
||||
req.append({
|
||||
'vtype':'Scatter',
|
||||
'df':pd.DataFrame(
|
||||
{'value':self.ans['MinusEnv'],'date':self.ans['x']}) ,
|
||||
'row':row,
|
||||
'col':1,
|
||||
'name':'MinusEnv'
|
||||
|
||||
})
|
||||
|
||||
self.figDict=req
|
||||
ans = CoreDraw.coreDraw(req,drawFig)
|
||||
return ans
|
||||
Loading…
x
Reference in New Issue
Block a user