| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -145,6 +145,7 @@ def login_post(): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        session['update_freq'] = 100 | 
					 | 
					 | 
					 | 
					        session['update_freq'] = 100 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        session['lastCreateTime'] = time.time() | 
					 | 
					 | 
					 | 
					        session['lastCreateTime'] = time.time() | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        session['tw'] = 1 | 
					 | 
					 | 
					 | 
					        session['tw'] = 1 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        session['currStockList'] = [] | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        return redirect(url_for('index')) | 
					 | 
					 | 
					 | 
					        return redirect(url_for('index')) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    else: | 
					 | 
					 | 
					 | 
					    else: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        flash('使用者代號不對或密碼不對,請再試一次。', 'danger') | 
					 | 
					 | 
					 | 
					        flash('使用者代號不對或密碼不對,請再試一次。', 'danger') | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -515,8 +516,9 @@ def result_view(): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    fig = px.bar(ret_hist) | 
					 | 
					 | 
					 | 
					    fig = px.bar(ret_hist) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    fig['layout'] = {} | 
					 | 
					 | 
					 | 
					    fig['layout'] = {} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    data['bar'] = json.dumps(fig, cls=plotly.utils.PlotlyJSONEncoder) | 
					 | 
					 | 
					 | 
					    data['bar'] = json.dumps(fig, cls=plotly.utils.PlotlyJSONEncoder) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    session['currStockList'] = data['assets'] | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    return render_template('result_view.html', data=data) | 
					 | 
					 | 
					 | 
					    return render_template('result_view.html', data=data) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					@app.route('/copyPort', methods=['POST']) | 
					 | 
					 | 
					 | 
					@app.route('/copy_portfolio') | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					def copy_portfolio(): | 
					 | 
					 | 
					 | 
					def copy_portfolio(): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    if login_required(): | 
					 | 
					 | 
					 | 
					    if login_required(): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        pass | 
					 | 
					 | 
					 | 
					        pass | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -525,10 +527,8 @@ def copy_portfolio(): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        return redirect(url_for('login')) | 
					 | 
					 | 
					 | 
					        return redirect(url_for('login')) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    if not 'tw' in session: | 
					 | 
					 | 
					 | 
					    if not 'tw' in session: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        return redirect(url_for('index')) | 
					 | 
					 | 
					 | 
					        return redirect(url_for('index')) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    stock_list = request.form.get('stockList') | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    stock_list = json.loads(stock_list) | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    session['tw'] = 0 | 
					 | 
					 | 
					 | 
					    session['tw'] = 0 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    return render_template('strategy_tw.html', data_us = data_us, data_tw=data_tw, stock=stock_list) | 
					 | 
					 | 
					 | 
					    return render_template('strategy_tw.html', data_us = data_us, data_tw=data_tw, stock=session['currStockList']) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					     | 
					 | 
					 | 
					 | 
					     | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					@app.errorhandler(404) | 
					 | 
					 | 
					 | 
					@app.errorhandler(404) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					def page_not_found(e): | 
					 | 
					 | 
					 | 
					def page_not_found(e): | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |