首页游戏攻略如何调教ChatGPT成为你的策略助手

如何调教ChatGPT成为你的策略助手

misa2 03-13 3次浏览 0条评论

量化策略开发,高质量社群,交易构思分享等相关内容

往年12月的时候我们初次体验ChatGPT,《ChatGPT生成量化交易策略》.

当时还是很惊喜的,可以辅助写代码,写注释,给出一些示例。使用的时间长了发现写一些基础的东西还行,太复杂的内容BUG会比较多吧,有时候也是答非所问。学习了github,给出的很多示例都可以在github找到。当然了,你不能对现阶段的公开版Ai要求太苛刻了。这几个月白嫖下来,我个人是非常称心的,帮我解决了不少问题,真的是一个非常不错的效率工具。

经过几个月的时间Chat也出了付费的版本,一个月20刀的价格我觉的相当良心了,更快的响应速度,更长的字数。这要是国内的厂商,路子就比较广泛了,分模块付费,SVIP,免费版植进广告等等,老生常谈了。

OK,言回正传。Chat新增了多个线程保存的功能,这样我们逐步练习自己的Ai助手,这个功能免费太良心了确实方便了很多。我的目的是让它帮我写一个基于国内Tbquant平台的代码,Chat并不了解它。因此,我们需要喂一些源码让它学习。需要不断校正Chat的回答,费了很多时间重新来过,总之就像教诲子女一样,要有耐烦,天天教诲一点,有问题就纠错。不要急躁,不要生气。。。。

展开全文

这是一个Tbquant自带的布林策略,我们先让它学习。

Chat:

以下是您提供的布林强盗_多策略的TBQUANT代码:

scss

Copy code

// 策略参数

Params

Numeric bollingerLengths(50);

Numeric Offset(1.25);

Numeric rocCalcLength(30);

Numeric liqLength(50);

Numeric Lots(1);

// 策略变量

Vars

SeriesNumeric MidLine(0);

Numeric Band(0);

SeriesNumeric upBand(0);

SeriesNumeric rocCalc(0);

SeriesNumeric liqDays(50);

SeriesNumeric liqPoint(0);

// 策略事件

Events

OnBar(ArrayRefinteger const indexes)

MidLine = AverageFC(Close,bollingerLengths);

Band = StandardDev(Close,bollingerLengths,2);

upBand = MidLine + Offset*Band;

rocCalc = Close - Close[rocCalcLength - 1];

If (MarketPosition != 1 And rocCalc[1] 0 And High = upBand[1]) Buy(Lots, Max(Open,upBand[1]));

If (MarketPosition == 0)

liqDays = liqLength;

Else

liqDays = liqDays - 1;

liqDays = Max(liqDays,10);

liqPoint = Average(Close, liqDays);

If (MarketPosition == 1 And BarsSinceEntry = 1 And liqPoint[1] upBand[1] And Low = liqPoint[1]) Sell(0, Min(Open,liqPoint[1]));

这是符合TBQUANT格式的代码,可以在TBQUANT平台上运行。

Chat:

好的,以下是一个简单的双均线策略代码,使用15分钟周期,在中国期货市场:

scssCopy code

// 双均线策略

// 时间周期: 15分钟

// 市场: 中国期货市场

Params

Numeric FastLength(5);

Numeric SlowLength(20);

Numeric Lots(1);

Vars

SeriesNumeric FastMA(0);

SeriesNumeric SlowMA(0);

Events

OnBar(ArrayRefInteger const inIndexes)

// 计算均线

FastMA = SMA(Close, FastLength);

SlowMA = SMA(Close, SlowLength);

// 没有仓位,金叉买进

if (MarketPosition == 0 and FastMA[1] SlowMA[1] and FastMA[0] SlowMA[0]) {

Buy(Lots, Open);

// 有多头仓位,死叉平仓

else if (MarketPosition == 1 and FastMA[1] SlowMA[1] and FastMA[0] SlowMA[0]) {

Sell(0, Open);

该策略使用两个简单移动平均线 (SMA),一个较短的均线 FastMA 和一个较长的均线 SlowMA。在每个15分钟周期结束时,计算两个均线的值,当短期均线上穿长期均线时,阐明市场上涨势头强劲,会买进开多头仓位;反之,当短期均线下穿长期均线时,阐明市场下跌势头强劲,会卖出平多头仓位。

需要注重的是,这只是一个简单的双均线策略,仅供参考和学习。在实际使用中,还需要依据市场情状、风险偏好等因素进行调整和优化。

它帮我写一个双均线的tbquant源码,代码里有一个地方偷价了。这个我需要手动修改一下,这是第一次练习,后面会逐步练习它修正细节。这里有一个细节需要注重,需要命名你们的代码格式,我和Chat约定这种代码格式是TB,以后我让它写代码,就只要说TB即可。假如不约定,它可能就往github或者pypi里找Python包了,而Tbquant是有python包的。情状如下:

你看,这就不是Tbquant的C++格式了,所以要再次和Chat明确代码格式,同时命名你们的之间的代码交流的格式。

Chat:

好的,这是一个基于tbquant实现的双均线策略的代码,你可以依据需要进行调整和优化:

scss

Copy code

// 简称: DualMA

// 名称: 双均线策略

// 类别: 公式使用

// 类型: 内建使用

// 输出:

策略阐明:

该策略基于两条均线(短期均线和长期均线)进行交易决策。

当短期均线上穿长期均线时,开多单。

当短期均线下穿长期均线时,平多单。

当短期均线下穿长期均线时,开空单。

当短期均线上穿长期均线时,平空单。

系统要素:

1、短期均线长度

2、长期均线长度

3、交易手数

进场条件:

1、短期均线上穿长期均线时,开多单。

2、短期均线下穿长期均线时,开空单。

出场条件:

1、持有多单时,短期均线下穿长期均线时,平多单。

2、持有空单时,短期均线上穿长期均线时,平空单。

Params

Numeric FastMA_Length(20); // 短期均线长度

Numeric SlowMA_Length(50); // 长期均线长度

Numeric Lots(1); // 交易手数

Vars

SeriesNumeric FastMA(0); // 短期均线

SeriesNumeric SlowMA(0); // 长期均线

Events

OnBar(ArrayRefInteger const bars)

// 计算短期均线和长期均线

FastMA = MA(Close, FastMA_Length);

SlowMA = MA(Close, SlowMA_Length);

// 当短期均线上穿长期均线时,开多单

if (MarketPosition != 1 CrossOver(FastMA, SlowMA))

Buy(Lots, Open);

// 当短期均线下穿长期均线时,平多单

if (MarketPosition == 1 CrossUnder(FastMA, SlowMA))

Sell(0, Open);

// 当短期均线下穿长期均线时,开空单

if (MarketPosition != -1 CrossUnder(SlowMA, FastMA))

SellShort(Lots, Open);

// 当短期均线上穿长期均线时,平空单

if (MarketPosition == -1 CrossOver(SlowMA, FastMA))

BuyToCover(0, Open);

你看,Chat的学习速度很快,经过多次错误,修正调教后。它的回答越来越贴近我的目的了。

Chat:

// 简称: MACD

// 名称: 移动平均线散点图

// 类别: 公式使用

// 类型: 内建使用

// 输出:

Params

Numeric FastLength(12); // 快线周期

Numeric SlowLength(26); // 慢线周期

Numeric SignalLength(9); // 信号线周期

Numeric Lots(1); // 交易手数

Vars

SeriesNumeric MACD(0); // MACD 线

SeriesNumeric Signal(0); // 信号线

SeriesNumeric Histogram(0); // MACD 柱状图

Events

OnBar(ArrayRefInteger const bars)

// 计算 MACD 线和信号线

MACD = MACD(Close, FastLength, SlowLength);

Signal = SMA(MACD, SignalLength);

Histogram = MACD - Signal;

// 当 MACD 线上穿信号线时,开多单

if (MarketPosition != 1 CrossOver(MACD, Signal))

Buy(Lots, Open);

// 当 MACD 线下穿信号线时,平多单

if (MarketPosition == 1 CrossUnder(MACD, Signal))

Sell(0, Open);

// 当 MACD 线下穿信号线时,开空单

if (MarketPosition != -1 CrossUnder(Signal, MACD))

SellShort(Lots, Open);

// 当 MACD 线上穿信号线时,平空单

if (MarketPosition == -1 CrossOver(Signal, MACD))

BuyToCover(0, Open);

//这段代码使用 TB 语言编写了一个 MACD 策略。

我:对就是这样的格式,请帮我用TB编写一个RSI交易策略

Chat:好的,以下是基于TB的RSI交易策略的代码:

// 简称: RSI

// 名称: 相对强弱指标交易策略

// 类别: 公式使用

// 类型: 内建使用

// 输出:

策略阐明:

该策略基于相对强弱指标(RSI)进行交易决策。

当RSI指标上穿20时,开多单。

当RSI指标下穿80时,开空单。

系统要素:

1、RSI长度

2、交易手数

进场条件:

1、RSI指标上穿20时,开多单。

2、RSI指标下穿80时,开空单。

出场条件:

1、持有多单时,RSI指标下穿70时,平多单。

2、持有空单时,RSI指标上穿30时,平空单。

Params

Numeric RSI_Length(14); // RSI指标长度

Numeric Lots(1); // 交易手数

Vars

SeriesNumeric RSI(0); // RSI指标

Events

OnBar(ArrayRefInteger const bars)

// 计算RSI指标

RSI = RSI(Close, RSI_Length);

// 当RSI指标上穿20时,开多单

if (MarketPosition != 1 CrossOver(RSI, 20))

Buy(Lots, Open);

// 当RSI指标下穿80时,开空单

if (MarketPosition != -1 CrossUnder(RSI, 80))

SellShort(Lots, Open);

// 当持有多单且RSI指标下穿70时,平多单

if (MarketPosition == 1 CrossUnder(RSI, 70))

Sell(Lots, Open);

// 当持有空单且RSI指标上穿30时,平空单

if (MarketPosition == -1 CrossOver(RSI, 30))

BuyToCover(Lots, Open);

总结:

总之,我现在坚持天天喂它一些源码让它往学习。我试试一年下来它会达到什么水平。有兴致的朋友可以往试试,就当养孩子了,chatgpt是一个养成类游戏,哈哈哈哈。

饿狼辅助免费版
企业如何做好岗前培训,让新员工快速发扬作用 IntelliJ IDEA终于支持对Redis 的可视化窗口操作了,真香!
相关内容
发表评论

游客 回复需填写必要信息