Create SignalB_B_1.py
This commit is contained in:
parent
f8e0ab8ff1
commit
424f416e17
138
Siganls/SignalB_B_1.py
Normal file
138
Siganls/SignalB_B_1.py
Normal file
@ -0,0 +1,138 @@
|
||||
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
|
||||
import Ind_bollingerBands
|
||||
import coreSignal
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class SignalB_B_1(coreSignal.coreSignal):
|
||||
def __init__(self,
|
||||
IndDict={},
|
||||
mode='retro',
|
||||
):
|
||||
super().__init__(name='1.1',mode=mode,target='nextBar',valeType='price')
|
||||
self.IndDict=IndDict
|
||||
self.BB=Ind_bollingerBands.BB(
|
||||
IndDict['BB']['df'],
|
||||
IndDict['BB']['params'],
|
||||
IndDict['BB']['needFig'],
|
||||
IndDict['BB']['showOnlyIndex'],
|
||||
IndDict['BB']['drawFig']
|
||||
)
|
||||
self.getAns()
|
||||
if mode=='retro':
|
||||
self.analiz=self.analiz()
|
||||
|
||||
def getAns(self):
|
||||
if self.mode=='retro':
|
||||
df=self.BB.base_df#.set_index('date')
|
||||
#print (df)
|
||||
df_ind=pd.DataFrame.from_dict({
|
||||
'date': self.BB.ans['x'],
|
||||
'BB': self.BB.ans['BB'],
|
||||
'pSTD': self.BB.ans['pSTD'],
|
||||
'mSTD': self.BB.ans['mSTD'],
|
||||
})
|
||||
self.df_ind=df_ind
|
||||
#df_ind=df_ind.set_index('date')
|
||||
#print(df_ind)
|
||||
dictSig={}
|
||||
ans_sig=[]
|
||||
analizLst=[]
|
||||
difSize=len(df)-len(df_ind)
|
||||
for i in range(len(df_ind)):
|
||||
#print(df.iloc[i+dif]['date'],df_ind.iloc[i]['date'])
|
||||
if df.iloc[i+difSize]['close'] >df_ind.iloc[i]['pSTD']:
|
||||
ans_sig.append(1)
|
||||
elif df.iloc[i+difSize]['close'] <df_ind.iloc[i]['mSTD']:
|
||||
ans_sig.append(-1)
|
||||
else:
|
||||
ans_sig.append(0)
|
||||
|
||||
self.ans={
|
||||
'signal':ans_sig,
|
||||
'dttm':self.BB.ans['x']
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return self.ans
|
||||
|
||||
def analiz(self):
|
||||
df=self.BB.base_df
|
||||
dictSig={}
|
||||
ans_sig=self.ans['signal']
|
||||
difSize=len(df)-len(self.df_ind)
|
||||
analizLst=[]
|
||||
for i in range(len(self.df_ind)-1):
|
||||
if ans_sig[i]==1 and df.iloc[i+difSize]['close']<df.iloc[i+difSize+1]['high']:
|
||||
analizLst.append(1)
|
||||
elif ans_sig[i]==1 and df.iloc[i+difSize]['close']>=df.iloc[i+difSize+1]['low']:
|
||||
analizLst.append(-1)
|
||||
elif ans_sig[i]==-1 and df.iloc[i+difSize]['close']>df.iloc[i+difSize+1]['low']:
|
||||
analizLst.append(1)
|
||||
elif ans_sig[i]==-1 and df.iloc[i+difSize]['close']<=df.iloc[i+difSize+1]['high']:
|
||||
analizLst.append(-1)
|
||||
else:
|
||||
analizLst.append(0)
|
||||
|
||||
self.analizLst=analizLst
|
||||
|
||||
t=0
|
||||
f=0
|
||||
zeroNum=0
|
||||
for i in self.analizLst:
|
||||
if i==1:
|
||||
t=t+1
|
||||
if i==-1:
|
||||
f=f+1
|
||||
if i==0:
|
||||
zeroNum=zeroNum+1
|
||||
|
||||
ans={}
|
||||
ans['chstota']=sum(self.analizLst)/len(self.analizLst)
|
||||
ans['zeroNum %']=zeroNum/len(self.analizLst)
|
||||
ans['t %']=t/len(self.analizLst)
|
||||
ans['f %']=f/len(self.analizLst)
|
||||
try:
|
||||
ans['toch']=t/(t+f)
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
|
||||
|
||||
return ans
|
||||
Loading…
x
Reference in New Issue
Block a user