#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sat Jun  5 12:03:53 2021

@author: wupeipei
"""
data1 = data1.iloc[21:,:]
def implement_sma_strategy(data1, ema_55, ema_21 ):
    buy_price = []
    sell_price = []
    sma_signal = []
    tickers_ret =[]
    data1 = df.copy()
    
    mul= 3.5
    signal = 0
    for i in range(len(data1 )):
          if signal !=1:
                if (ema_21[i] > ema_55[i]):
                   buy_price.append(data1['Close'][i])
                   sell_price.append(np.nan)
                   signal = 1
                   sma_signal.append(signal)
                elif (ema_21[i] > ema_55[i]):
                   buy_price.append(np.nan)
                   sell_price.append(data1['Close'][i])
                   signal = -1
                   sma_signal.append(-1)
                   
                else:
                   buy_price.append(np.nan)
                   sell_price.append(np.nan)
                   signal = 0
                   sma_signal.append(0)
                   
                 
                     
          elif signal == 1:
               if data1['Close'][i] < data1['atr_ts1'][i]:
                   sell_price.append(data1['atr_ts2'][i])
                   buy_price.append(np.nan)
                   signal = -1
                   sma_signal.append(signal)
    
               # else:
                  #   buy_price.append(np.nan)
                  #   sell_price.append(np.nan)
                  #   sma_signal.append(0)  
                              
        
    return buy_price, sell_price, sma_signal

               
              

# identifying signals and calculating daily return (stop loss factored in)

ema_1 = stocks['ema_1']
ema_8 = stocks['ema_8']
ema_21= stocks['ema_21']
ema_5 = stocks['ema_5']
ema_34 = stocks['ema_34']
ema_55 = stocks['ema_55']
ema_3 = stocks['ema_3']
buy_price, sell_price, signal = implement_sma_strategy(df, ema_1,  ema_3,ema_5,ema_8,ema_34,  ema_55, ema_21) 
position = []
def implement_sma_strategy(data, ema_1, ema_3,ema_5,ema_8,ema_34,  ema_55, ema_21 ):
    buy_price = []
    sell_price = []
    sma_signal = []
    signal = 0
    for i in range(len(stocks)):
        if( ema_1[i] < ema_3[i]) or (ema_21[i] < ema_55[i]):
          #print("Good")
               if signal != 1:
                   buy_price.append(data[i])
                   sell_price.append(np.nan)
                   signal = 1
                   sma_signal.append(signal)
                   print("Entry price update "+str(buy_price[-1]))
               else:
                    buy_price.append(np.nan)
                    sell_price.append(np.nan)
                    sma_signal.append(0)  
                    
        elif(ema_1[i]>ema_21[i]) or (ema_1[i] > ema_8[i]) or (ema_21[i] > ema_34[i]):
            if signal != -1:
                    buy_price.append(np.nan)
                    sell_price.append(data[i])
                    signal = -1
                    sma_signal.append(-1)
                    print("Exit price update "+str(sell_price[-1]))
                    
            else:
                    buy_price.append(np.nan)
                    sell_price.append(np.nan)
                    sma_signal.append(0)
                    
        else:
                buy_price.append(np.nan)
                sell_price.append(np.nan)
                sma_signal.append(0)
    return buy_price, sell_price, sma_signal

ema_1 = stocks['ema_1']
ema_8 = stocks['ema_8']
ema_21= stocks['ema_21']
ema_5 = stocks['ema_5']
ema_34 = stocks['ema_34']
ema_55 = stocks['ema_55']
ema_3 = stocks['ema_3']

buy_price, sell_price, signal = implement_sma_strategy(stocks['close'], ema_1,  ema_3,ema_5,ema_8,ema_34,  ema_55, ema_21) 
  
