mac系统vnpy如何快速入门且编写一个交易策略和自动化下单
要在Mac系统上快速入门vnpy,您可以按照以下步骤操作:
步骤1:安装Python环境
在Mac上安装Python环境,可以使用Homebrew来安装Python。在终端中输入以下命令:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install python
步骤2:安装vnpy
在终端中输入以下命令来安装vnpy:
pip install vnpy
步骤3:运行vnpy
在终端中输入以下命令来启动vnpy:
cd ~/vnpy
python vn.trader/main.py
步骤4:编写交易策略和自动化下单
vnpy提供了非常详细的文档和示例代码,您可以按照文档和示例代码来编写自己的交易策略和自动化下单功能。
以下是一个简单的交易策略示例代码:
from vnpy.app.cta_strategy import (
CtaTemplate,
BarGenerator,
ArrayManager
)
class MyStrategy(CtaTemplate):
""""""
author = "vnpy"
boll_window = 20
boll_dev = 2.0
fixed_size = 1
boll_up = 0
boll_down = 0
parameters = [
"boll_window",
"boll_dev",
"fixed_size"
]
variables = [
"boll_up",
"boll_down"
]
def __init__(self, cta_engine, strategy_name, vt_symbol, setting):
""""""
super().__init__(cta_engine, strategy_name, vt_symbol, setting)
self.bg = BarGenerator(self.on_bar)
self.am = ArrayManager()
self.bg.add_bar(self.vt_symbol)
def on_init(self):
"""
Callback when strategy is inited.
"""
self.write_log("策略初始化")
self.load_bar(10)
def on_start(self):
"""
Callback when strategy is started.
"""
self.write_log("策略启动")
def on_stop(self):
"""
Callback when strategy is stopped.
"""
self.write_log("策略停止")
def on_tick(self, tick):
"""
Callback of new tick data update.
"""
self.bg.update_tick(tick)
def on_bar(self, bar):
"""
Callback of new bar data update.
"""
self.am.update_bar(bar)
if not self.am.inited:
return
self.boll_up, self.boll_down = self.am.boll(self.boll_window, self.boll_dev)
if self.pos == 0:
if bar.close_price > self.boll_up:
self.buy(bar.close_price + 5, self.fixed_size)
elif self.pos > 0:
if bar.close_price < self.boll_down:
self.sell(bar.close_price - 5, self.fixed_size)
def on_order(self, order):
"""
Callback of new order data update.
"""
pass
def on_trade(self, trade):
"""
Callback of new trade data update.
"""
self.put_event()
这个策略简单地使用布林带指标来进行交易,当价格突破上轨时买入,价格突破下轨时卖出。
您可以按照这个示例代码来编写自己的交易策略。然后,您可以使用vnpy提供的API来实现自动化下单功能。以下是一个简单的下单示例代码:
from vnpy.trader.constant import Direction, OrderType
order = self.buy(price, volume, order_type=OrderType.LIMIT, direction=Direction.LONG)
这个示例代码简单地使用限价单来买入,您可以按照自己的需求来选择下单方式。
总的来说,要在Mac系统上快速入门vnpy,您需要先安装Python环境和vnpy,然后按照文档和示例代码来编写自己的交易策略和自动化下单功能。
原文地址: https://www.cveoy.top/t/topic/bP5i 著作权归作者所有。请勿转载和采集!