【策略】猛犸

import random
import time
import uuid

g.security = []
g.daycount = 0
stockstemp = get_index_stocks(‘000300.XBHS‘)
total = len(stockstemp)
g.holdstocks = []
while len(g.security) < 15 :
    stock = stockstemp[random.randint(0, total-1)]
    if stock not in g.security:
        g.security.append(stock)     

def initialize(context):
    context.universe = g.security

def handle_data(context, data):
    # 最大持仓股票支数
    maxhold = 5
    totalsize = len(context.universe)
    print(totalsize)
    # 取得当前的现金
    cash = context.portfolio.cash
    g.daycount = g.daycount + 1
    if len(g.holdstocks) == 0 : #初始状态
        count = maxhold
        singlemoney = cash / 5

        while count > 0 :
            buystock = context.universe[random.randint(0, totalsize-1)]
            if buystock not in g.holdstocks and symbol(buystock) in data:
                g.holdstocks.append(buystock)
                # 用所有 singlemoney 买入股票
                print(‘buystock=‘ +  buystock)
                print(‘singlemoney=‘ +  str(singlemoney))
                order_value(symbol(buystock), singlemoney)
                # 记录这次买入
                #log.info("Buying %s" % (buystock))
                print("Buying %s" % (buystock))
                count = count - 1
                print(‘count=‘ +  str(count))

    elif g.daycount > 7 and g.daycount % 5 == 1 : #5 days change

        print(‘g.daycount=‘ +  str(g.daycount))
        #选择过去7天表现最差的股票卖出
        weakstock = ‘‘
        WeakReturns = 10000.0
        #dfhis = history(7, unit=‘1d‘, field=‘price‘, security_list=g.holdstocks, df=False)
        dfhis = history(7, ‘1d‘, field=‘price‘)

        for stock in g.holdstocks :
            if symbol(stock) in data : #停牌票跳过
                continue
            startprice = dfhis[symbol(stock)][0]
            endprice = dfhis[symbol(stock)][-1]

            curReturns = (endprice - startprice) / startprice
            print(‘curReturns=‘ +  str(curReturns))
            if curReturns < WeakReturns :
                WeakReturns = curReturns
                weakstock = stock
        if weakstock == ‘‘ :
            weakstock = g.holdstocks[0]
        sellstock = weakstock
        print(‘weakstock=‘ +  weakstock)

        g.holdstocks.remove(weakstock)
        # 卖出所有股票,使这只股票的最终持有量为0
        order_target(symbol(sellstock), 0)
        # 记录这次卖出
        #log.info("selling %s" % (sellstock))
        print("selling %s" % (sellstock))

        while True:
            buystock = context.universe[random.randint(0, totalsize-1)]
            if buystock not in g.holdstocks and buystock != sellstock and symbol(buystock) in data:
                g.holdstocks.append(buystock)
                # 用所有 cash 买入股票
                print(‘buystock=‘ +  buystock)
                print(‘cash=‘ +  str(cash))
                order_value(symbol(buystock), cash)
                # 记录这次买入
                #log.info("Buying %s" % (buystock))
                print("Buying %s" % (buystock))
                break
时间: 2024-10-03 16:10:57

【策略】猛犸的相关文章

Maxent猛犸反欺诈入选Gartner 2018 Cool Vendors

"Maxent猛犸反欺诈SaaS服务结合被动式设备指纹和行为分析,有效提高欺诈检出能力. --Gartner" 2018年5月14日,全球知名的 IT 咨询及调研公司Gartner发布了2018年度数字颠覆与创新酷公司榜单(Cool Vendors in Digital Disruption and Innovation),Maxent猛犸反欺诈位列其中,并成为目前唯一一家人工智能反欺诈公司. 1 Maxent猛犸反欺诈的核心技术能力 Maxent猛犸反欺诈以多年积累的高性能流计算与无

win2003从组策略关闭端口(445/135/137/138/139/3389等)教程

一些恶劣的病毒会从某些端口入侵计算机,因此关闭某些用不到的而又具有高风险的端口就显得很有必要,是服务器管理员要做的基本的安全防范.本文将介绍win2003系统在组策略关闭某一个端口的教程,文章以关闭445端口为例. 首先要说明的是,此方法不仅仅适用于win2003,也适用于win7,且操作方法完全相同,所以win7用户也可以按照本文教程操作. 1.打开组策略编辑器 按组合键WIN+R打开运行窗口,然后输入gpedit.msc,按回车键,即可进入组策略编辑器. 2.创建 IP 安全策略 展开选项"

NFSv3 NFSv3针对防火墙端口开通策略 生产环境实践

针对NFSv4版本需要服务官方说明: NFS version 4 (NFSv4) works throughfirewalls and on the Internet, no longer requires an rpcbind service, supportsACLs, and utilizes stateful operations. Red Hat Enterprise Linux 6 supportsNFSv2, NFSv3, and NFSv4 clients. When mount

PHP设计模式-策略模式

<?php//策略模式//将一组特定的算法或行为 封装成一个类,以适应上下文环境 //策略的接口文件 约定策略的行为 针对一种情况 产生具体的策略interface Policy{ function showAd();} class Female implements Policy{ public function showAd() { echo __CLASS__.' policy'; }} class Male implements Policy{ public function showA

PowerShell~执行策略的介绍

首先看一下无法加载ps1脚本的解决方法 事实上也是由于策略导致的  解决方法主是开启对应的策略 set-ExecutionPolicy RemoteSigned 执行策略更改 执行策略可以防止您执行不信任的脚本.更改执行策略可能会使您面临 about_Execution_Policies 帮助主题中所述的安全风险.是否要更改执行策略? [Y] 是(Y) [N] 否(N) [S] 挂起(S) [?] 帮助 (默认值为“Y”): y 回车就可以了 查看当前的策略 get-executionpolic

对设计模式的总结之简单工厂与策略模式

前言 面向对象编程追求的本质-提高扩展性.可维护性.灵活性和复用性.合理利用面向对象6个原则,能够很好的达到要求.如何利用好就是至关重要的了,前人总结了23+个设计模式能够让初学者更容易学到其中的精髓,本文就说说我对本人对简单工厂模式.策略模式的见解. 简单工厂模式与策略模式 简单工厂模式 工作中,常常遇到需要做一个功能(鸭子),这个功能中含有可控个数的子操作功能(鸭子叫,鸭子跑,鸭子飞),而且子功能在不同的情况下处理方式又不相同(成年鸭子/小鸭子叫,成年鸭子/小鸭子跑,成年鸭子/小鸭子飞).我

[廖雪峰] Git 分支管理策略

通常,合并分支时,如果可能,Git 会用 Fast forward 模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制 禁用 Fast forward 模式,Git 就会在 merge 时生成一个新的 commit,这样,从分支历史上就可以看出分支信息. 下面我们实战一下 --no-ff 方式的 git merge: 首先,仍然创建并切换 dev 分支: $ git checkout -b dev Switched to a new branch 'dev' 修改 readme.txt

再见!春节红包大战隐退是策略转移

对于近两三年的春节来说,大众印象最深刻的不是美酒佳肴.无聊春晚.鞭炮礼花啥的,而是以排山倒海之势袭来的红包雨.支付宝.微信支付都在春节时刻不断发力,以发红包的方式承包了大众春节的大部分娱乐时间.但在今年,支付宝和微信似乎是有了心灵感应一般,都表示不会再在春节期间展开红包大战,这是否就意味着以后我们就要与其说再见了? 但细细看支付宝.微信支付近来的动作却不难发现,春节红包大战的隐退实际上只是一种策略上的转移.春节红包对它们来说已经完成了既定的开拓移动支付应用场景的任务,但这并不意味着春节红包就真地

组策略 之 驱动器映射

目的:用户登陆自动挂载预设的网络驱动器. 可以根据不同的用户组来分类,例如:财务的共享文件夹,人资的共享文件夹. 在文件服务器共享设置好权限的文件夹然后使用策略发布给相应的用户或者组. 策略位置:用户配置---首选项---windows设置----驱动器映射 一.选择 "驱动器映射"  "新建" 说明:1."操作"选择:"更新",正常情况下选择此选项. 2.位置    :可直接属于共享文件夹的位置,例如:\\dc01\shar