用DeepSeek结合顺T倒T原则编写分时做T本质的程序

以下是一个基于分时做T本质的策略程序框架,结合顺T(先买后卖)和倒T(先卖后买)原则,使用Python实现核心逻辑:

“`python

import pandas as pd

import numpy as np

import talib

class IntradayTSolver:

def __init__(self, data, initial_cash=100000):

self.data = data # 分时数据(DataFrame,含时间、价格、成交量)

self.cash = initial_cash

self.position = 0

self.trades = []

self.strategy_type = ‘both’ # ‘顺T’/’倒T’/’both’

def calculate_indicators(self):

“””计算技术指标”””

# 示例指标:5分钟均线、MACD、RSI

self.data[‘ma5’] = talib.SMA(self.data[‘price’], timeperiod=5)

self.data[‘macd’], _, _ = talib.MACD(self.data[‘price’])

self.data[‘rsi’] = talib.RSI(self.data[‘price’], timeperiod=14)

# 波动率计算

self.data[‘returns’] = self.data[‘price’].pct_change()

self.data[‘volatility’] = self.data[‘returns’].rolling(10).std()

def generate_signals(self):

“””生成交易信号”””

signals = []

for i in range(1, len(self.data)):

# 顺T条件(多头策略)

long_cond = (self.data[‘price’][i] > self.data[‘ma5’][i]) & \

(self.data[‘rsi’][i] < 30) & \

(self.data[‘volatility’][i] > 0.01)

# 倒T条件(空头策略)

short_cond = (self.data[‘price’][i] < self.data[‘ma5’][i]) & \

(self.data[‘rsi’][i] > 70) & \

(self.data[‘volatility’][i] > 0.01

# 信号记录(1:顺T买入,-1:顺T卖出,2:倒T卖出,-2:倒T买入)

if long_cond and self.strategy_type in [‘顺T’, ‘both’]:

signals.append(1)

elif short_cond and self.strategy_type in [‘倒T’, ‘both’]:

signals.append(2)

else:

signals.append(0)

return signals

def execute_trades(self, signals):

“””执行交易逻辑”””

for i, signal in enumerate(signals):

current_price = self.data.iloc[i][‘price’]

# 顺T操作

if signal == 1: # 买入

if self.cash > current_price * 100:

buy_qty = self.cash // (current_price * 100)

self.position += buy_qty

self.cash -= buy_qty * current_price * 100

self.trades.append((‘顺T买入’, current_price, buy_qty))

elif signal == -1: # 卖出

if self.position > 0:

self.cash += self.position * current_price * 100

self.trades.append((‘顺T卖出’, current_price, self.position))

self.position = 0

# 倒T操作

if signal == 2: # 卖出

if self.position > 0:

self.cash += self.position * current_price * 100

self.trades.append((‘倒T卖出’, current_price, self.position))

self.position = 0

elif signal == -2: # 买入

if self.cash > current_price * 100:

buy_qty = self.cash // (current_price * 100)

self.position += buy_qty

self.cash -= buy_qty * current_price * 100

self.trades.append((‘倒T买入’, current_price, buy_qty))

def run_strategy(self):

“””运行策略”””

self.calculate_indicators()

signals = self.generate_signals()

self.execute_trades(signals)

return self.trades, self.cash + self.position * self.data[‘price’].iloc[-1] * 100

# 示例数据加载(需替换为实际分时数据)

data = pd.DataFrame({

‘price’: np.random.normal(10, 0.5, 1000),

‘volume’: np.random.randint(100, 1000, 1000)

})

# 策略执行

solver = IntradayTSolver(data)

trades, total_value = solver.run_strategy()

# 输出结果

print(f”最终资产: {total_value:.2f}”)

print(“交易记录:”)

for trade in trades[-10:]: # 显示最后10笔交易

print(trade)

“`

**策略原理说明:**

1. **指标系统**:

– 5周期均线(MA5)判断短期趋势

– RSI识别超买超卖(参数14周期)

– MACD辅助判断趋势强度

– 波动率过滤无效信号

2. **顺T逻辑**:

– 当价格低于MA5且RSI<30时买入

– 当价格高于MA5且RSI>70时卖出

– 要求波动率>1%确保有操作空间

3. **倒T逻辑**:

– 当价格高于MA5且RSI>70时卖出

– 当价格低于MA5且RSI<30时买回

– 同样需要波动率过滤

4. **风险控制**:

– 每次交易全额操作(可根据需求改为比例操作)

– 自动计算可交易数量

– 防止现金/持仓不足的交易

**优化方向**:

1. **参数优化**:

“`python

# 在类初始化时添加参数配置

def __init__(self, data, params={

‘ma_period’: 5,

‘rsi_overbought’: 70,

‘rsi_oversold’: 30,

‘volatility_threshold’: 0.01

}):

self.params = params

“`

2. **动态仓位管理**:

“`python

# 在execute_trades中添加仓位控制

risk_ratio = 0.2 # 单次交易风险比例

available_cash = self.cash * risk_ratio

buy_qty = available_cash // (current_price * 100)

“`

3. **止盈止损机制**:

“`python

# 在类中添加跟踪持仓成本

self.hold_cost = 0

# 在买卖时更新成本

if signal == 1:

self.hold_cost = current_price

# 添加止盈止损检查

if self.position > 0 and (current_price > self.hold_cost * 1.01 or

current_price < self.hold_cost * 0.995):

self.execute_sell()

“`

4. **成交量验证**:

“`python

# 在信号生成中添加成交量条件

volume_ma = talib.SMA(self.data[‘volume’], timeperiod=5)

valid_signal = self.data[‘volume’][i] > volume_ma[i] * 1.2

“`

**使用建议**:

1. 需要接入实时分时数据源(如证券API)

2. 建议先进行历史回测验证策略有效性

3. 实际交易需考虑手续费和滑点成本

4. 参数应根据不同标的特性进行优化

5. 可结合大盘状态动态调整策略类型

该程序体现了分时做T的核心本质:利用短期波动,通过双向操作降低成本。实际应用中需结合市场微观结构特征进行深度优化。

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/1227412
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 5分钟前
下一篇 2分钟前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注