以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  策略编写求助区  (http://222.73.7.161/bbs/list.asp?boardid=11)
----  [原创]新人,请老师帮助写一下策略,谢谢。  (http://222.73.7.161/bbs/dispbbs.asp?boardid=11&id=188316)

--  作者:涨停忍者828
--  发布时间:2021/5/16 15:09:21
--  [原创]新人,请老师帮助写一下策略,谢谢。

我是新人,想要购买入手金字塔,目前学习回测,请老师帮忙写一下,谢谢。

 

下面是股票的策略\\

 

 

策略一。

1.沪深A股主板的股票(去除创业板和科创板),二连板及以上的股票。

2.早盘9:31分后,第1个触及跌停板的股票。(第2个及后面不计算入内),立即买入。

3.跌停价买入,计算第二天“收盘价”的收益率。

 

策略二。

1. 沪深A股主板(去除创业板和科创板),三连板及以上的股票。

2.上午9:40分后,第1个触及“涨停板-1分钱”的股票。(第2个及后面不计算入内),即时打板买入。

3. 买入价为“涨停价减去1分钱”,计算第二天"上午最高价"的收益率.

 

策略三。

1. 创业板的股票(去除主板和科创板),昨天没涨停。

2.上午最高价小于14%,下午第1个冲过14%的股票,回落准备买入(第2个及后面不计算入内)。

3.买入价是“下午最高价”减去"昨收盘价*4%",计算第二天“下午最高价”的收益率。

 

 

 


--  作者:无为剑
--  发布时间:2021/5/18 12:44:57
--  

只做了策略1,其他2个策略你可自行改造一下即可,代码是python编写,在金字塔上测试请补充好整个沪深市场的1分钟和日线数据。

from PythonApi import *
import pandas as pd


def init(context):
    context.days = 0
    pass

# before_trading此函数会在每天基准合约的策略交易开始前被调用,当天只会被调用一次。--(选择实现)
def before_trading(context):
    pass


# 你选择的品种的数据更新将会触发此段逻辑,例如日或分钟历史数据切片或者是实时数据切片更新。--(必须实现)
def handle_bar(context):
    
    # 平仓部分
    for i in get_portfolio_book(2, ""):
        portfolio = get_portfolio (i, 2)

        # 开盘就平
        if portfolio.buy_today_quantity>0:
            sell_close(i, "Market",0 ,portfolio.buy_today_quantity,serial_id = 1)
            
            
            
    #开仓部分        
    hour = context.now.hour
    minute = context.now.minute
    days = context.now.day
    
    if hour >= 9 and minute >= 31 and context.days != days:
        code_list = context.universe
        dic = {}
        for i in code_list:
            close = history_bars(i,2,\'1d\',\'close\')
            close_1m = history_bars(i,2,\'1m\',\'close\')
            if len(close) < 2 or len(close_1m) < 2:
                continue
            zf = close_1m[-1]/close[-1]
            
            if zf < 0.91:
                continue
                
            if zf > 0.93:
                continue
            
                
            portfolio = get_portfolio (i, 2)
            if portfolio.buy_quantity==0  and context.days != days :    
                buy_open(i, "Market",0 ,amount=10*10000,serial_id = 2)
                context.days = days
                
                break


def after_trading(context):
    pass

--  作者:涨停忍者828
--  发布时间:2021/5/19 13:14:23
--  谢谢
谢谢帮助