netflypsb commited on
Commit
d4f1e53
·
verified ·
1 Parent(s): 392ba8f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -1
app.py CHANGED
@@ -22,6 +22,15 @@ def identify_signals(data):
22
  data['Sell Signal'] = (data['Close'] < data['Low Short'].shift(1))
23
  return data
24
 
 
 
 
 
 
 
 
 
 
25
  # Calculate returns and metrics for backtesting
26
  def backtest_signals(data):
27
  data['Position'] = 0
@@ -52,7 +61,7 @@ def plot_data(data):
52
 
53
  # Main application function
54
  def main():
55
- st.title("Enhanced Turtle Trading Strategy with Backtesting")
56
 
57
  # Sidebar for user inputs
58
  with st.sidebar:
@@ -67,9 +76,12 @@ def main():
67
  if not data.empty:
68
  data = calculate_indicators(data, window_short, window_long)
69
  data = identify_signals(data)
 
70
  data, market_return, strategy_return = backtest_signals(data)
71
  fig = plot_data(data)
72
  st.plotly_chart(fig, use_container_width=True)
 
 
73
  st.subheader("Backtesting Results")
74
  st.write(f"Market Return: {market_return * 100:.2f}%")
75
  st.write(f"Strategy Return: {strategy_return * 100:.2f}%")
 
22
  data['Sell Signal'] = (data['Close'] < data['Low Short'].shift(1))
23
  return data
24
 
25
+ # Collect and display signals
26
+ def collect_signals(data):
27
+ signals = pd.DataFrame()
28
+ signals['Date'] = data[data['Buy Signal'] | data['Sell Signal']].index
29
+ signals['Price'] = data[data['Buy Signal'] | data['Sell Signal']]['Close']
30
+ signals['Signal'] = 'Buy'
31
+ signals.loc[data['Sell Signal'], 'Signal'] = 'Sell'
32
+ return signals
33
+
34
  # Calculate returns and metrics for backtesting
35
  def backtest_signals(data):
36
  data['Position'] = 0
 
61
 
62
  # Main application function
63
  def main():
64
+ st.title("Enhanced Turtle Trading Strategy with Backtesting and Signal Table")
65
 
66
  # Sidebar for user inputs
67
  with st.sidebar:
 
76
  if not data.empty:
77
  data = calculate_indicators(data, window_short, window_long)
78
  data = identify_signals(data)
79
+ signals = collect_signals(data)
80
  data, market_return, strategy_return = backtest_signals(data)
81
  fig = plot_data(data)
82
  st.plotly_chart(fig, use_container_width=True)
83
+ st.subheader("Trading Signals")
84
+ st.dataframe(signals)
85
  st.subheader("Backtesting Results")
86
  st.write(f"Market Return: {market_return * 100:.2f}%")
87
  st.write(f"Strategy Return: {strategy_return * 100:.2f}%")