当前位置:   article > 正文

【《深入浅出python量化交易交易实战》Python复现(第二章:(三)海龟策略+小结)】_交易策略 海龟 唐奇安

交易策略 海龟 唐奇安

第二章 回测与经典策略

2.3 海龟策略

       海龟策略的完整描述还是推荐柯蒂斯·费思的《海龟交易法则》,这是一个趋势交易法则,本章只是介绍了其入市和退出指标,其还有包括ATR,仓位控制,止损的一整套完整的交易逻辑值得去学习
       海龟策略的其核心要点是:在股价超过过去N个交易日的股价最高点时买入,在股价低于过去N个交易日的股价最低点时卖出。上述的若干个最高点和最低点会组成一个通道,称为“唐奇安通道”

2.3.1 使用海龟策略生成交易信号

       海龟策略的一个重点是,使用过去N天的股价最高点和过去N天的股价最低点生成唐奇安通道。一般来说,N会设置为20。不过因为我们下载的股票数据时间范围跨度比较小,所以选择了使用过去5日的股价最高点和最低点来进行演示
输入代码如下:

#codeing=utf-8
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import mplfinance as mpf
from utils import wz_data


def gen_turtle_strategy(data):
    # 创建一个turtle的数据表,使用原始数据的日期序列
    turtle = pd.DataFrame(index=data.index)
    print("----------------turtle------------------")
    # 为什么要用shift(1)要向后移1?
    # 因为要让第六天才能用前5天最高点和最低点
    turtle['price'] = data['Close']
    # 唐其安通道上界=过去5日内的最高价
    turtle['high'] = data['Close'].shift(1).rolling(5).max()
    # 唐其安通道下界=过去5日内的最低价
    turtle['low'] = data['Close'].shift(1).rolling(5).min()
    # 中轨道=0.5*(通道上界+通道下界)
    turtle['mid'] = (turtle['high'] + turtle['low']) / 2
    # 当股价突破下沿时卖出,发出卖出信号,反之买入
    turtle['buy'] = turtle['price'] > turtle['high']
    turtle['sell'] = turtle['price'] < turtle['low']
    return turtle

if __name__ == '__main__':
    #单独实现了去wz网获取数据的接口
    wz = wz_data()
    #股票代码,起始日期,结束日期,这里走的是前复权
    data = wz.get_stock_data_online('601318', '2020-01-01','2020-03-20')
    #返回的直接是一个DataFrame对象
    data.rename(columns={
   
        '交易时间': 'Date',
        '开盘价': 'Open',
        '最高价'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/836150
推荐阅读
相关标签
  

闽ICP备14008679号