十年回测验证:趋势突破EA交易系统年盈利率超200%

版权申诉
5星 · 超过95%的资源 5 下载量 125 浏览量 更新于2024-10-07 4 收藏 16KB ZIP 举报
资源摘要信息:"趋势突破(十年回测翻万倍)_ea_" 该资源描述了一款名为"趋势突破(十年回测翻万倍)_ea_"的智能交易系统。这款EA(Expert Advisor,专家顾问)是一种在外汇交易中使用的自动化交易脚本或程序,能够根据既定的规则在市场中自动执行交易指令。 ### 关键知识点概述: 1. **趋势加支撑和阻力**: - 在金融市场分析中,趋势是指价格在一定时间内的持续波动方向。趋势可以分为上升趋势、下降趋势和横盘趋势。 - 支撑和阻力是价格图表上的两个重要概念。支撑是指价格在下跌过程中遇到的某一水平位置,该位置具有使价格停止下跌并开始上涨的潜在能力。阻力则是价格在上涨过程中遇到的水平位置,该位置可能阻止价格上涨,并可能导致价格下跌。 2. **突破策略**: - 突破策略是交易策略中的一种,其核心思想是当价格突破了重要的支撑或阻力水平时,预示着市场力量的变化,交易者根据这种变化顺势入场。 - 这种策略通常需要设置明确的入场条件、止损和止盈点,以管理潜在的市场风险和保证收益。 3. **EA的低风险特性**: - 这款EA被强调具有低风险特性,主要体现在带有止损止盈机制上。止损(Stop Loss)是指设置一个价格水平,当市场走势与预期相反并达到这一水平时,自动平仓以防止更大的损失。止盈(Take Profit)是指设置一个价格水平,当交易达到这一水平时自动平仓以确保利润。 4. **不加仓策略**: - 加仓通常是指当原有交易方向正确,且市场有利时增加持仓的行为。不加仓策略意味着EA在任何情况下都不会通过增减仓位来调整已有交易,这有助于控制风险并简化交易决策。 5. **年盈利200%的潜力**: - 这个指标反映了EA的历史盈利能力。年盈利200%意味着,在过去的表现中,该EA能够使初始投资增长到三倍以上,这在金融交易中被视为非常高的回报率。 6. **适用于不同周期**: - 通常交易系统会根据不同的时间框架来测试其效果。不同的时间框架(如M1、M5、H1、H4、D1等)显示了市场在不同时间跨度内的价格行为。理论上,这款EA适合任何周期,但测试结果显示在日图(D1)上效果最佳。 7. **回测**: - 回测是金融交易中用来测试交易策略过去表现的常见方法。它涉及到将交易规则应用于历史数据,以评估该策略是否能够在过去的时间里产生一致的收益并控制风险。 - 十年回测表明这款EA在十年的时间跨度内,经过反复测试,显示出稳定且高效的盈利能力。 8. **文件信息**: - 提供的文件名为"趋势突破(十年回测翻万倍).ex4",这是一个由MetaQuotes公司开发的MetaTrader平台上的可执行文件。".ex4"是第四代MetaTrader平台(MT4)的文件扩展名,用于存储和执行交易策略和脚本。 综上所述,该资源描述了一款功能全面、经过长期回测验证、具备高盈利能力且风险控制较好的趋势突破EA。这样的系统适合于寻找自动化交易机会的交易者,尤其是在日图周期上表现最佳。然而,由于金融市场受多种变量影响,实际表现可能会有所不同,因此建议在真实账户中进行小规模测试后,再决定是否进行大规模投资。

import datetime today = datetime.date.today() ## 获取今天的日期 day1=datetime.date.today()-datetime.timedelta(300) ### 获取300天之前的日期 day2=datetime.datetime.strftime(today,"%Y-%m-%d" ) all_stock = get_all_securities(types=['stock'], date=day2) ### 获取所有股票代码 code=list(all_stock.index) ## 判断是否ST 并且删除st的股票代码 df_st=get_extras('is_st',code,start_date=day1,end_date=day2) for i in code: if any(df_st[i].values): code.remove(i) stock_list=[] for i in code: start_date=get_security_info(i).start_date days=(today-start_date).days if days>300: #### 选出上市满天300的股票 stock_list.append(i) data=dict() for i in stock_list: df=get_price(i,start_date=day1,end_date=day2,frequency='daily', fields=['open','close','high','low']) data[i]=df ### 将数据分成选股数据和回测数据。假设用中间的120根k线,后60根k线回测 code=[] n=45 ## n为回测k线的个数 s设为45 (可以随意调整) for i in stock_list: df=data[i] max_=max(df.high[-190:-n-1]) ### 选140=(190-45)根k线(可以随意调整) min_=min(df.low[-190:-n-1]) max_close=max(df.close[-190:-n-1]) ### 选出平台震荡期间振幅小于50%的,且,最后三天连涨,最后一天突破平台最大收盘价超过5%的所有股票 if all([max_/min_<1.5,df.close[-n-1]>df.close[-n-2]>df.close[-n-3],df.close[-n-1]/max_close>1.05]): code.append(i) ### 买入过程 ## 假设根据上面平台突破选出来的股票作为买入标的 ## 买入原则是 当天选出来的股票第二天以开盘价买入。且把选出来的每只股票以,同等资金额买入 capital=100000 ## 初始资金为 10万元 position=dict() ## 初始持仓手数为一个空字典 def handle(stock_list,capital,posttion,data,n): capital_=0 for i in code: capital_per=capital/len(code) position[i]=int(capital_per/(data[i].open[-n]*100)) capital_+=capital_per-position[i]*data[i].open[-n]*100 return ([position,capital_]) position_result=handle(get_code(),capital,position,data,n)修改上述代码,使能在jupyter里面运行

2023-06-06 上传