# 可以自己import我们平台支持的第三方python模块,比如pandas、numpy等。

from vitu import ai, log, api

import numpy as np

# 配置账户初始持仓信息

ai.create_account(name='account1', exchange='binance', account_type='digital.spot',

position_base=[{'asset': 'BTC', 'qty': 10}, {'asset': 'USDT', 'qty': 100000}])

# 在这个方法中编写任何的初始化逻辑,context对象将会在你的算法策略的任何方法之间做传递

def initialize(context):

# 设置这个策略当中会用到的参数,在策略中可以随时调用

context.account = context.get_account('account1')

context.buy_order = list()

context.sell_order = list()

context.max_order = 10

context.qty = 0.2

context.short = 3 # 短均线周期

context.long = 21 # 长均线周期

context.length = 9 # RSI参数

context.oversold = 30 # 超卖

context.overbought = 70 # 超买

context.donchain = 21 # 唐其安通道参数

# 你选择的universe crypto的数据更新将会触发此段逻辑,例如日线历史数据或者是实时数据更新

def handle_data(context):

# 开始编写你的主要的算法逻辑

data = context.history('BTC/USDT.binance', ['close','high','low'], bars=context.long, rtype='ndarray')

close_price = data.T[0]

high_price = data.T[1]

low_price = data.T[2]

# 计算长短均线

MA_short = np.mean(close_price[-context.short:])

MA_long = np.mean(close_price[-context.long:])

# 计算RSI值

rsi_price = close_price[-context.length:]

RS_up = sum([max(rsi_price[i+1]-rsi_price[i], 0) for i in range(len(rsi_price)-1)])

RS_all = sum([abs(rsi_price[i+1]-rsi_price[i]) for i in range(len(rsi_price)-1)])

RS = RS_up / RS_all

RSI = (100*RS)/(1+RS)

# 唐奇安通道上轨

donchain_up = np.max(high_price[-context.donchain:])

# 唐奇安通道下轨

donchain_down = np.min(low_price[-context.donchain:])

# 获取最新价格

current_price = context.get_price("BTC/USDT.binance")

# 短期均线在长期均线之上,RSI处于超买值,创新高,则开多单(买入)

if len(context.buy_order) < context.max_order and MA_short > MA_long and RSI < context.overbought and high_price[-1]>high_price[-2]:

context.account.buy("BTC/USDT.binance", current_price, context.qty)

context.buy_order.append([current_price,context.qty])

# 短期均线在长期均线之下、RSI高于超卖值、创新低,则开空单(卖出)

if len(context.sell_order) < context.max_order and MA_short < MA_long and RSI > context.oversold and low_price[-1]

context.account.sell("BTC/USDT.binance", current_price, context.qty)

context.sell_order.append([current_price,context.qty])

# 持有多单时小于唐奇安通道下轨,平多单(卖出)

if len(context.buy_order) > 0 and current_price < donchain_up:

qty = context.buy_order[-1][1]

context.buy_order.pop()

context.account.sell("BTC/USDT.binance", current_price, qty)

# 持有空单时大于唐奇安通道下轨,平空单(买入)

if len(context.sell_order) > 0 and current_price > donchain_down:

qty = context.sell_order[-1][1]

context.sell_order.pop()

context.account.buy("BTC/USDT.binance", current_price, qty)

# 可以直接指定universe,或者通过筛选条件选择universe池

universe = ai.create_universe(['BTC/USDT.binance'])

# 配置策略参数如:基准、回测数据级别等

my_strategy = ai.create_strategy(

initialize,

handle_data,

universe=universe,

benchmark='csi5',

freq='d',

refresh_rate=1,

)

# 配置回测参数如:回测日期、手续费率

ai.backtest(

strategy=my_strategy,

start='2018-10-10',

end='2019-10-10',

commission={'taker': 0.0002, 'maker': 0.0002}

)

python小项目推荐项目-Python 的练手项目有哪些值得推荐?相关推荐

  1. python画画需要什么模块_python实战练手项目---使用turtle模块画奥运五环

    python实战练手项目---使用turtle模块画奥运五环 2020年将举办东京奥运会,本篇实践文章将带你使用turtle模块画一个五环图,先来看效果图 1. 定义一个类继承Turtle class ...

  2. 微信小程序初体验,入门练手项目--通讯录,后台是阿里云服务器(一)

    内容: 一.前言 二.相关概念 三.开始工作 四.启动项目起来 五.项目结构 六.设计理念 七.路由 八.部署线上后端服务 同步交流学习社区: https://www.mwcxs.top/page/4 ...

  3. Java黄金矿工小游戏,适合新手入门练手项目

    Java初学者的小伙伴们,相信大家肯定缺少很多的练手项目吧!今天就给大家推荐一款特别好上手的一个Java小游戏--黄金矿工. 大家听到这个名字的时候,童年的回忆肯定一下子,涌上心头,那如果让大家制作一 ...

  4. python做什么生意好找_Python 的练手项目有哪些值得推荐?

    注:下面分享的练习项目面向刚入门的Python学习者,项目的代码地址见结尾. Python 是一门虽然简单却很强大的编程语言.可能有些刚入门 Python 的朋友,虽然已经掌握了 Python 的基础 ...

  5. 学前端编程还没有做过项目?30个入门练手项目,你get了么?

    不管我们要学习什么其实都是希望让自己做出"实际的东西"出,这个实际"实际的东西"其实说的就是做个项目,这不用多说大家都懂得. 这里小编我整理了30个web前端实 ...

  6. python爬取酒店信息_Python 爬虫练手项目—酒店信息爬取

    from bs4 import BeautifulSoup import requests import time import re url = 'http://search.qyer.com/ho ...

  7. 有什么值得推荐的Java Web练手项目?

    https://www.zhihu.com/question/29444491 转载于:https://www.cnblogs.com/jrsflak/p/7880849.html

  8. 10个相见恨晚的 Java 在线练手项目

    前一篇:?[清单]37个超棒的 Web 数据可视化工具 Java 开发简单的计算器 难度为一般,适合具有 Java 基础和 Swing 组件编程知识的用户学习 推荐指数:????? 在线实操链接 制作 ...

  9. [C++练手项目] DocAnalysis

    [C++练手项目] DocAnalysis 文章目录 [C++练手项目] DocAnalysis 任务分析 编码 转换DOC文件到TXT 分词 停止词 两文档相同和不同字符数统计 总体实现思路 一.分 ...

  10. python新手小项目-推荐:一个适合于Python新手的入门练手项目

    随着人工智能的兴起,国内掀起了一股Python学习热潮,入门级编程语言,大多选择Python,有经验的程序员,也开始学习Python,正所谓是人生苦短,我用Python 有个Python入门练手项目, ...

最新文章

  1. [BUUCTF-pwn]——others_shellcode
  2. php-fpm backlog 项的调整
  3. cgcs2000高斯平面直角坐标_8年级开学第一课:数系扩充到实数,几何模型搬到直角坐标系...
  4. Netty in action—ChannelHandler和ChannelPipeline
  5. vs 2005應用2003框架
  6. 软件基本功:以视频通话为例,交叉测试表格
  7. 湖南大学应用经济学考研考情与难度、参考书及上岸前辈备考经验
  8. 一个宝爸对孩子幼儿园成长的思考,我写了6000字的总结
  9. 山东理工oj答案java_山东理工大学ACM程序设计竞赛-山东理工ACM主页.DOC
  10. 存根类 Stub详解
  11. 嵌入式系统 ---> 程序存储器和数据存储器
  12. python 爬取数据(CBA所有球队数据) -爬虫
  13. “蔚来杯“2022牛客暑期多校训练营5-A Don‘t Starve
  14. Spring boot集成RabbitMQ
  15. 每日一犬 · 猴头梗
  16. RK3588 AP6398RS3之WIFI调试(一)
  17. 【初篇】DHT11连接STM32、One wire单总线原理、GPIO代码详解
  18. 最新最全的校园跳蚤小程序,二手商城小程序,二手书城小程序,带五星评分功能,发布商品,模糊搜索,评论,校园论坛功能
  19. 麦克风阵列技术 三 ( 声源定位 波束形成 去混响 麦克风阵列结构设计 声学结构确认流程)
  20. Python可视化数据分析02、Scrapy框架-强化测试Scrapy-CSS

热门文章

  1. git版本分支和分支、分支和主分支切换
  2. Git CMD - show: Show various types of objects
  3. JAVA线程本地变量ThreadLocal和私有变量的区别
  4. 自学python找工作难吗-大四应届毕业生,学了两个月Python,找工作感觉好难啊?...
  5. python在财务上的应用-财会人必看:这个工具,30分钟可以把人家一天的工作都给干完!...
  6. 自学python可以做什么兼职-一行生财:毕业100天,通过副业赚(挣)到我的第一个10w...
  7. python怎么读取txt文件内容然后保存到excel-Python实现读取txt文件并转换为excel的方法示例...
  8. python使用界面-(八)Python 图形化界面设计
  9. python主要用来开发什么-python主要用于什么开发
  10. python手机版怎么用-QPython,一个在手机上运行Python的神器