海龟交易法--本地回测(Python)

本文介绍了海龟交易法的基本原理和应用,通过Python进行外汇交易的本地回测。详细展示了如何导入数据、设置交易参数、计算唐安奇通道和平均波幅,并对交易过程进行可视化。最后,对回测结果进行了统计分析,包括交易盈亏、总回报率、回报率分布和累积回报率曲线,证实了海龟交易法在特定时间段的有效性。
摘要由CSDN通过智能技术生成

海龟交易法是一种趋势交易法,历史上曾经取得过很大的成功,年收益率一度在80%左右。这种交易法没有任何基本面的分析,他主要通过模拟交易员的交易方式来制定一定的交易规则。它通过观察股价的变动来捕捉上升趋势,在趋势没有形成前保持谨慎,但如果一旦认为趋势已经形成则会很积极加仓。他不仅适用于股市,也适用于一切容易形成趋势的交易标的,如期货,股指,加密货币,外汇等。他的交易思想是,趋势形成后赚取的利润会高于下跌周期中损失的本金,所以从整体上看海龟交易法能通过合理设置交易参数带来可观的盈利。

下面以外汇交易为例进行海龟交易法的本地回测。我们先导入所需的module:

import datetime as dt
import matplotlib.pyplot as plt
#解决中文显示问题
plt.rcParams['font.sans-serif']=['Kaiti']
plt.rcParams['axes.unicode_minus']=False

#用于画k线及进出场位置
import mplfinance as mpf

import pandas as pd
import numpy as np

import warnings
warnings.filterwarnings("ignore")

导入所需的外汇交易数据:

df = pd.read_csv('eurusd_daily.csv', parse_dates=["Date"], index_col="Date")
df.drop(['Change'], axis=1, inplace=True)
# df

设置海龟交易法需要用到的参数,其中n1表示长周期的天数(用于判断做多和做空的进入点),n2表示短周期的天数(用于判断看多或看空趋势结束的点),atr_parameter则是观察和计算平均波幅的天数,平均波幅和每次交易量成一定比例

# 唐奇安通道参数
n1 = 30
n2 = 15

# ATR波动率参数设置
atr_parameter = 21

# 起始日期
start_date = '2020-01-01'
end_date = '2020-12-31'

对数据进一步计算,得到唐安奇长周期和短周期的上轨和下轨,后续要根据这个计算来绘制唐安奇通道

df['DonHigh_n1'] = df['High'].rolling(n1).max().shift(1)
df['DonLow_n1'] = df['Low'].rolling(n1).min().shift(1)
df['DonHigh_n2'] = df['High'].rolling(n2).max().shift(1)
df['DonLow_n2'] = df['Low'].rolling(n2).min().shift(1)
df.dropna(axis=0, inplace=True)

接着计算平均波幅ATR

# 算出三个波幅后续进行比较
df['H-L'] = abs(df['High'] - df['Low'])
df['H-PC'] = abs(df['High'] - df['Close'].shift(1))
df['L-PC'] = abs(df['L
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值