- refactored
git-svn-id: http://moon:8086/svn/projects/Stock@326 fda53097-d464-4ada-af97-ba876c37ca34
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
import numpy as np
|
||||
|
||||
|
||||
def buy_BTFD(name, data, range_days, cand_window, marker_key='close_n', thresh_max=-10, thresh_min=1, buy_callback=None):
|
||||
N = len(data['index'])
|
||||
key = 'BTFD'
|
||||
buy_list = {'index' : np.array([None]*N), key : np.array([None]*N)}
|
||||
cand = None
|
||||
do_buy = False
|
||||
for n in range(N-range_days, N):
|
||||
vmax = data['Qmax'][n]
|
||||
vmin = data['Qmin'][n]
|
||||
trend = data['macd_fdd'][n]
|
||||
index = data['index'][n]
|
||||
value = data[marker_key][n]
|
||||
if vmin <= thresh_min:
|
||||
if vmax <= thresh_max:
|
||||
cand = n
|
||||
if trend >= 0:
|
||||
do_buy = True
|
||||
print ("{}: Buy on {} at {:0.2f}".format(name, index, value))
|
||||
cand = None
|
||||
|
||||
if cand is not None:
|
||||
if n - cand <= cand_window:
|
||||
if trend >= 0:
|
||||
do_buy = True
|
||||
former = data[marker_key][cand]
|
||||
print("{}: Delayed buy on {} at {:0.2f} ({:0.2f})".format(name, index, value, former-value))
|
||||
cand = None
|
||||
else:
|
||||
cand = None
|
||||
|
||||
if do_buy:
|
||||
do_buy = False
|
||||
buy_list['index'][n] = index
|
||||
buy_list[key][n] = value
|
||||
if buy_callback is not None:
|
||||
buy_callback({'name': name, 'item': {'value': value, 'date': index}})
|
||||
|
||||
return buy_list
|
||||
|
||||
Reference in New Issue
Block a user