以下是一个简单的量化交易程序,使用Python实现了一个顺势加仓的交易策略。程序根据设定的条件,自动进行交易操作并进行盈利出局。
import random
class Order:
def __init__(self, symbol, side, price, quantity):
self.symbol = symbol
self.side = side
self.price = price
self.quantity = quantity
class Position:
def __init__(self, symbol, side, price, quantity):
self.symbol = symbol
self.side = side
self.price = price
self.quantity = quantity
class TrendFollowingStrategy:
def __init__(self):
self.positions = []
self.profit_target = 0.1 # 盈利出局的目标百分比
def execute_trade(self, price):
if len(self.positions) == 0:
self.positions.append(Position("BTC/USD", "BUY", price, 1))
self.positions.append(Position("BTC/USD", "SELL", price, 1))
else:
for position in self.positions:
if position.side == "BUY":
position.price = price
if (position.price - position.price) / position.price >= self.profit_target:
self.positions.remove(position)
else:
position.price = price
def run_backtest(self, data):
for price in data:
self.execute_trade(price)
# 生成随机价格数据作为示例
data = [random.uniform(50, 100) for _ in range(100)]
# 创建策略实例并运行回测
strategy = TrendFollowingStrategy()
strategy.run_backtest(data)
在这个程序中,我们创建了一个Order
类表示交易订单,包含了交易的标的物、买卖方向、价格和数量。我们还创建了一个Position
类表示持仓信息,包括标的物、买卖方向、入场价格和数量。
TrendFollowingStrategy
类是我们的交易策略类。在execute_trade
方法中,我们根据设定的条件执行交易操作。如果当前没有持仓,我们就买入一个多单和一个空单;如果已经有持仓,我们根据价格涨跌对持仓进行更新,并在多单盈利达到设定目标时出局。
最后,我们生成了随机价格数据作为示例,创建了一个策略实例并运行回测。在实际交易中,我们可以将data
替换为真实的市场价格数据进行回测和交易操作。