2024 年(第12届)“泰迪杯”数据挖掘挑战赛—— A题:生产线的故障自动识别与人员配置

发布于:2024-10-13 ⋅ 阅读:(161) ⋅ 点赞:(0)

以下是一个简单的量化交易程序,使用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替换为真实的市场价格数据进行回测和交易操作。


网站公告

今日签到

点亮在社区的每一天
去签到