盘口策略 | 交易中最重要的是什么?

这篇具有很好参考价值的文章主要介绍了盘口策略 | 交易中最重要的是什么?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

盘口策略 | 交易中最重要的是什么?,量化交易,量化研究,策略研究,期货交易

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

『正文』

ˇ

交易中最重要的是什么?

当然是Timing啊~~~

盘口策略 | 交易中最重要的是什么?,量化交易,量化研究,策略研究,期货交易

“时机是这个世界上最难得到,又最容易失去的东西”夫难得而易失者,时也;时至而不旋踵者,机也,故圣人常顺时而动,智者必因机而发.原文出自《九州春秋》        

被套不是最难受的,难受的是你止损后行情来了,就差一点你就见到黎明的太阳了。这叫什么?Timing啊~~~

A大架狙一分钟没人来,刚切道具人就拉出来把你秒了,这叫什么?Timing啊~~~

桓温枋头撤军,以精兵叠后,谨慎小心了一路,马上就要回到东晋了松懈了,被慕容垂8000精骑兵突袭死伤过半。这叫什么?Timing啊~~~

人生有太多timing时刻,不是你抓别人的,就是别人抓你的。这个市场何尝不是,我也想抓抓市场的timing,不知可否。

言归正传,我们想抓市场的机会需要有具体的方法和既定规则,我们是做量化的所以每一步都要能说明清楚。

几年前接触到订单流觉得很有意思,它是从微观角度来描述这个市场的,使用最小颗粒的数据计算出主动买卖的指标,找到价格的支撑,阻力,哪个K线主动买入多,哪个是主动卖出多,整个市场主动买卖力量是如何分布的等等之类,它最吸引我的地方是可以用数量描述清楚市场的多空力量。这一点儿对于做量化策略非常关键,可以编写一个完整的交易条件,而不是像某些主观理论存在模棱两可的地方。《订单流图表与普通K线的不同》

订单流不会错吗?错,会经常错。不怕它错,有对应的止损止盈,做的是一个盈亏比。

盘口策略 | 交易中最重要的是什么?,量化交易,量化研究,策略研究,期货交易

(图表来源:松鼠沙盘)

盘口策略 | 交易中最重要的是什么?,量化交易,量化研究,策略研究,期货交易

(图表来源:松鼠沙盘)

图中的红绿横线就是由多个失衡造成的堆积,分为多头堆积和空头堆积。也就是在某一个K线上出现了供需矛盾极大的情况,有一方占有绝对优势,

这是一个交易的信号。当出现信号时,可以尝试把握这种机会。止损设置在信号K线的最低价或者空头的最高价。以小的试错成本等待一个较大盈亏比的机会。也就是说你要抓主力的timing~哈哈

策略逻辑

1.开仓条件:多头堆积次数大于X做多,空头堆积次数大于X做空.互为正反手。

2.固定止损:以开仓价格的百分比计算止损价。

3.跟踪止盈:以吊灯方法跟踪价格计算出场线。

策略逻辑非常简单,没有那么多弯弯绕。这也是我非常喜欢它的地方,不用动脑子。订单流策略不同于传统技术指标策略,它无法预测信号。如果是MACD或者KDJ,你甚至可以预判到是否会交叉,但是订单流不行。它是基于最小颗粒度计算的主动买卖力量,只能等到它出现你才知道。

策略模块

1.通过tick(或逐笔)数据计算of数据

2.基于of数据计算堆积信号或其他指标

3.合成堆积信号为bar数据进行回测

4.基于CTP实时生成OF数据及信号(实盘版)

盘口策略 | 交易中最重要的是什么?,量化交易,量化研究,策略研究,期货交易

盘口策略我们分为俩个版本:回测版实盘版,今天讲的是回测版本,俱乐部里拿到源码后,群友一定会问很多的问题,策略代码实现较为复杂。我们先消化了回测版,然后7月初发布CTP实盘版。

tick生成of数据:

def orderflow_df_new(df_tick,df_min):    df_of=pd.DataFrame({})    t1 = time.time()    startArray = pd.to_datetime(df_min['starttime']).values    voluememin= df_min['volume'].values    highs=df_min['high'].values    lows=df_min['low'].values    opens=df_min['open'].values    closes=df_min['close'].values    endArray = pd.to_datetime(df_min['datetime']).values    tTickArray = pd.to_datetime(df_tick['datetime']).values    bp1TickArray = df_tick['bid_p'].values    ap1TickArray = df_tick['ask_p'].values    lastTickArray = df_tick['lastprice'].values    volumeTickArray = df_tick['volume'].values    symbolarray = df_tick['symbol'].values    indexFinal = 0    for index,tEnd in enumerate(endArray):        start = startArray[index]        bidDict = {}        askDict = {}         bar_vol=voluememin[index]        bar_close=closes[index]        bar_open=opens[index]        bar_low=lows[index]        bar_high=highs[index]        bar_symbol=symbolarray[index]        dt=endArray[index]        for indexTick in range(indexFinal,len(df_tick)):            #.........................        bidDictResult,askDictResult = process(bidDict,askDict)        bidDictResult=dict(sorted(bidDictResult.items(),key=operator.itemgetter(0)))        askDictResult=dict(sorted(askDictResult.items(),key=operator.itemgetter(0)))        prinslist=list(bidDictResult.keys())        asklist=list(askDictResult.values())        bidlist=list(bidDictResult.values())        delta=(sum(askDictResult.values()) - sum(bidDictResult.values()))        df=pd.DataFrame({'price':pd.Series([prinslist]),'Ask':pd.Series([asklist]),'Bid':pd.Series([bidlist])})        df['symbol']=bar_symbol        df['datetime']=dt        df['delta']=str(delta)        df['close']=bar_close        df['open']=bar_open        df['high']=bar_high        df['low']=bar_low        df['volume']=bar_vol        df['ticktime']=tTickArray[indexTick]        df['dj']=GetOrderFlow_dj(df)        print(df)        df_of = pd.concat([df_of, df], ignore_index=True)    print(time.time() - t1)    return df_of

计算好订单流数据后,输出是这样:

盘口策略 | 交易中最重要的是什么?,量化交易,量化研究,策略研究,期货交易

price,Ask,Bid这三列就是订单流K线里的核心数据,入下图:

盘口策略 | 交易中最重要的是什么?,量化交易,量化研究,策略研究,期货交易

有了这个脚本,你就可以源源不断的生成orderflow数据用于研究。然后我们在计算每个K线的失衡,堆积。我们的交易条件是基于堆积的,因此我们只要算出堆积列就可以实现Bar级别回测了。如下图:

盘口策略 | 交易中最重要的是什么?,量化交易,量化研究,策略研究,期货交易

sig列就是这个bar的堆积次数,正数是多头堆积,负数是空头堆积。

计算堆积的代码:

            order= {                                    "Price":price_s[i],                 "Ask":{ "Value":Bid_s[i]},                "Bid":{ "Value":Ask_s[i]}            }                             if i>=1 and i<len(price_s)-1:                if (order["Ask"]["Value"]>Ask_s[i+1]*int(Config['Value1'])):                    order["Ask"]["Color"]=itemAskBG[1]                    gxx+=1                    gj+=1                    if gj>=int(Config['Value2']) and Config['Value4']==True:                        duiji['price']=price_s[i]                        duiji['time']=dtime                        duiji['longshort']=-1                        duiji['cout']=gj                        duiji['color']='rgba(0,139,0,0.45)'#绿色                        if float(duiji['price'])>0:                            djcout+=1                else :                    gj=0                if (order["Bid"]["Value"]>Bid_s[i-1]*int(Config['Value1'])):                    xq+=1                    xxx+=1                    order["Bid"]["Color"]=itemBidBG[1]                     if xq>=int(Config['Value2']) and Config['Value4']==True:                        duiji['price']=price_s[i]                        duiji['time']=dtime                        duiji['longshort']=1                        duiji['cout']=xq                        duiji['color']='rgba(255,0,0,0.45)' #红色                        if float(duiji['price'])>0:                            djcout+=-1                else :                    xq=0

为什么要用Bar级别去回测订单流策略?

我们之前开发过很多orderflow策略脚本,详情可以查看orderflow系列。都是逐Tick回测,说实话太慢了,6个月的逐tick回测要好几个小时,这么慢的速度很难做研究,如果你的机器内存小,还有中途崩溃的问题。于是我们改变思路,在数据生成时讲信号计算好,我们只要回测含有信号的Bar就可以了。数据生成+回测用时有了质的飞跃,不到2分钟就可以完成这些工作,如下图:

盘口策略 | 交易中最重要的是什么?,量化交易,量化研究,策略研究,期货交易

用时78秒生成了orderflow数据+信号。

然后我们在用10秒回测一下:

盘口策略 | 交易中最重要的是什么?,量化交易,量化研究,策略研究,期货交易

回测已经调整好了手续费和滑点,具体品种要针对设置,这也是BackTrader麻烦的地方。为了避免偷价,我们用上一个Bar固定的信号判断,用本根bar的开盘价进行交易。这个回测是沪镍1分钟,回测的时间是2023年1月-6月。

盘口策略 | 交易中最重要的是什么?,量化交易,量化研究,策略研究,期货交易

条件设置是:堆积大于5次,正反手,固定止损0.005,固定止盈0.01

还有螺纹5M:

盘口策略 | 交易中最重要的是什么?,量化交易,量化研究,策略研究,期货交易

盘口策略 | 交易中最重要的是什么?,量化交易,量化研究,策略研究,期货交易

条件设置是:堆积大于0次,正反手,固定止损0.005,固定止盈0.01

关于收益率为什么这么少,因为我下单是1手,初始资金设置的是100W。

我回测了不同品种在同周期参数下的情况,数据较多我就不一一发了,我传到俱乐部后台了,可以下载慢慢看。

盘口策略 | 交易中最重要的是什么?,量化交易,量化研究,策略研究,期货交易

盘口策略 | 交易中最重要的是什么?,量化交易,量化研究,策略研究,期货交易

另外,要着重说一下,我目前回测没有参数寻优,这种策略逻辑非常特别,不能硬套CTA逻辑。需要针对具体的品种设置参数,如下图:

盘口策略 | 交易中最重要的是什么?,量化交易,量化研究,策略研究,期货交易

这是镍的1分钟。

盘口策略 | 交易中最重要的是什么?,量化交易,量化研究,策略研究,期货交易

这是螺纹1分钟的信号图,为什么信号数量差距这么大?因为每个品种的盘口特征,活跃度有本质的区别。要对症下药,别动不动就一个套参数打天下,一招鲜吃遍天,你以为是青霉素还是板蓝根?

生成订单流的脚本是基于国内商品的,也可以生成股票,BTC,外盘等标的数据,反正脚本是通用的,关于用什么数据没有要求,只要表头修改好就行。

我们盘口策略会在7月实盘测试,其实群里早就有朋友开始手动操作了,只是今天我们把它做成了全自动。订单流的方方面面还有很大的研究空间,我们提供了最素的版本,大家拿到源码后可以自己玩耍,比传统CTA策略更有意思。

OK,如何使用及完整代码我会录制视频讲解,大家拿到源码后可以在群里发问,想必会有很多问题,我在俱乐部群里等大家。

最后问一句:

你知木知咩叫timing啊?

本策略仅作学习交流使用,实盘交易盈亏投资者个人负责。文章来源地址https://www.toymoban.com/news/detail-627848.html

到了这里,关于盘口策略 | 交易中最重要的是什么?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【量化交易01】CTA策略 菲阿里四价+空中花园策略

    CTA策略(Commodity Trading Advisor Strategy),称为商品交易顾问策略,又称管理期货策略(Managed Futures),简单理解——CTA策略是指投资于期货市场的策略,这是与投资于股票市场的投资策略的最大不同。它是指由专业管理人投资于期货市场,利用期货市场上升或者下降的趋势获利

    2024年02月02日
    浏览(51)
  • 国金QMT量化交易系统的Bug及应对策略

    国金QMT量化交易系统中的 账号成交状态变化主推 deal_callback() , 当账号成交状态有变化时,这个函数被客户端调用。 我的策略是,在handlebar()里面挂单,等待成交,而判断成交的方式是根据系统主推deal_callback()通知。收到系统通知后,经过一系列的计算再次挂单,把成交反向

    2024年02月11日
    浏览(52)
  • 量化交易策略的未来:如何融合人工智能与金融

    量化交易策略的未来:如何融合人工智能与金融 量化交易策略已经成为金融市场中最受关注的话题之一。随着大数据、人工智能和机器学习技术的快速发展,量化交易策略的应用范围和深度得到了显著提高。这篇文章将探讨量化交易策略的未来趋势,以及如何将人工智能与金

    2024年02月20日
    浏览(133)
  • 高频交易与量化交易到底有什么区别?

      高频交易 也可以说是量化 交易,但 是 量化 交易可不 仅仅是高频交易。 或者说,高频交易是量化交易中的一个部分,一种形式 。 都 是 资本市场和计算机领域快速发展 的必然产物 。 近些年来国内

    2024年02月16日
    浏览(41)
  • qmt和ptrade有什么区别?国内免费量化交易软件精选:让你轻松上手量化交易!

    QMT 和 PTrade 是两个不同的平台,具有不同的功能和特点。 QMT(Quantitative Market Trading)是一种量化交易平台,主要面向专业的量化交易员和机构交易员。它提供了一系列的工具和功能,帮助交易员进行定量分析、模型开发和策略测试。QMT 通常具有复杂的算法和数据分析功能,

    2024年04月16日
    浏览(62)
  • 国内有什么比较好用的量化交易接口?

    国内量化交易接口好的是迅投QMT和恒生Ptrade,多数券商支持。这2个软件针对不同的投资者开发了不同的权限,不会编写程序的可以使用普通版本的,支持篮子交易,网格交易,条件单等等,相对来说不需要编写程序,只需要在软件上做出相应的设置即可操作。 如果是会编写

    2024年02月05日
    浏览(40)
  • (9-3)基于深度强化学习的量化交易策略(OpenAI Baselines +FinRL+DRL+PyPortfolioOpt):数据预处理

    1.1.6  数据预处理 数据预处理是训练高质量机器学习模型的关键步骤,在这一步需要检查缺失数据并进行特征工程,以将数据转换为适合模型训练的状态。本项目的数据预处理江湾城以下工作: 添加技术指标:在实际交易中,需要考虑各种信息,例如历史股价、当前持仓股票

    2024年01月25日
    浏览(48)
  • (9-5)基于深度强化学习的量化交易策略(OpenAI Baselines +FinRL+DRL+PyPortfolioOpt):深度强化学习算法模型

    本项目的深度强化学习算法的是基于Stable Baselines实现的,Stable Baselines是OpenAI Baselines的一个分支,经过了重大的结构重构和代码清理工作。另外,在库FinRL中包含了经过调优的标准深度强化学习算法,如DQN、DDPG、多智能体DDPG、PPO、SAC、A2C和TD3,并且允许用户通过调整这些深度

    2024年01月25日
    浏览(54)
  • (9-8)基于深度强化学习的量化交易策略(OpenAI Baselines +FinRL+DRL+PyPortfolioOpt):最小方差投资组合分配

    1.1.11  最小方差投资组合分配 最小方差投资组合分配是一种通过优化投资组合权重,以最小化整个投资组合的方差(波动性)的方法。这种方法旨在构建一个投资组合,使其在给定一组资产的情况下,具有最小的风险。通过调整不同资产在投资组合中的权重,以达到整体风险

    2024年02月22日
    浏览(62)
  • 聚宽量化是什么?提供什么策略?

    聚宽量化目前主要产品是指数增强系列(其中,全市场增强策略的底层选股逻辑,与普通指增是相通的),指数增强的目标是长期跑赢指数,不断积累超额收益,所谓超额收益就是超越指数的收益。 (1)多因子选股: 采用一系列的因子作为选股标准,将多个具有逻辑背景的

    2024年01月18日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包