在聚寬平台上編寫的布林帶策略


import jqdata

def initialize(context):
    set_option('use_real_price', True)
    set_order_cost(OrderCost(close_tax=0.001, open_commission=0.0003, close_commission=0.0003, min_commission=5), type='stock')
    set_benchmark('000300.XSHG')
    
    g.security = ['600036.XSHG']
    
    g.N = 2
    g.ma_days = 20
    
def handle_data(context, data):
    for stock in g.security:
        df = attribute_history(stock, g.ma_days)
        middle = df['close'].mean()
        upper = middle + g.N * df['close'].std()
        lower = middle - g.N * df['close'].std()
        
        p = get_current_data()[stock].day_open
        # 如果價格突破阻力線
        if p >= upper and stock in context.portfolio.positions:
            order_target(stock, 0)
    
    cash = context.portfolio.available_cash / len(g.security)
    
    for stock in g.security:
        df = attribute_history(stock, g.ma_days)
        middle = df['close'].mean()
        upper = middle + g.N * df['close'].std()
        lower = middle - g.N * df['close'].std()
        
        p = get_current_data()[stock].day_open
        # 如果價格跌破支撐線
        
        if p <= lower and stock not in context.portfolio.positions:
            order_target(stock, cash)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM