# -*- coding: utf-8 -*-
"""
Created on Mon Feb 11 08:11:25 2019

@author: cpace
"""

from Modules.pnp import pnp as pnp
from Modules.dataseries import dataseries as ds
from Modules.pnpstdev import pnpstdev as pnpstdev
from Modules.contractmonths import contractmonths as months
import numpy as np
#import matplotlib.pyplot as plt 
 
#crop = 'Corn'
#month = 'Jul'
#year = 2006


signal = []

for crop in ['Corn']:
    contractmonths = months(crop)
    monthlist = contractmonths.months
    for month in monthlist:
        for year in range(1970,2018):
            a = pnp(crop, month, year)
            dataseries = ds(crop, month, year, 'pnp')
            data = dataseries.dataseries
            stdev = pnpstdev(a)
            lines = [['himinusstd',stdev.besthighminusstd], \
                     ['lowplusstd',stdev.bestlowplusstd], \
                     ['downhighminusstd',stdev.downhighminusstd], \
                     ['uplowplusstd',stdev.uplowplusstd], \
                     ['downhi',a.downBestFitHigh], \
                     ['besthi',a.maxBestFit], \
                     ['bestlo',a.minBestFit], \
                     ['uplo',a.upBestFitLow]]
            for line in lines:
                count = 0
                for i in range(len(data)-6):
                    if count == 0 :
                        if data['Open'][i] > line[1] and data['Close'][i] < line[1]:
                            count = 1
                    elif count < 3:
                        if data['Close'][i] < line[1]:
                            count = count + 1
                        else:
                            count = 0
                    elif count == 3:
                        if data['Open'][i] < line[1] and data['High'][i] >= line[1]:
                            signal.append([line[0], data['Date'][i], crop, month, year, \
                                           round(data['High'][i]-line[1]), \
                                           round(data['Close'][i+1]/line[1],2), \
                                           round(data['Close'][i+2]/line[1],2), \
                                           round(data['Close'][i+3]/line[1],2), \
                                           round(data['Close'][i+4]/line[1],2), \
                                           round(data['Close'][i+5]/line[1],2)])
                        else:
                            count = 0
                    else:
                        count = 0
    
signal1 = np.asarray(signal)
signal1 = np.array(signal1[:,5:], dtype=float)
a.closeconn()
dataseries.closeconn()

#fig,axs = plt.subplots(1,2,sharey=True,tight_layout=True)
#axs[0].hist(signal[:,0],bins=10)
#axs[1].hist(signal[:,1],bins=10)

