资源加载中... loading...

炒单

Author: 扫地僧, Created: 2018-04-12 11:16:02, Updated: 2023-12-13 21:02:06

img

写在前面的话

围绕着上海、大连、郑州三家商品期货交易所大厦附近的写字楼里,活跃着一批批以『 低回撤高夏普 』为特征的交易团队,而且他们的队伍还在不断发展壮大。在交易室,一排排电脑井然有序。此刻正是交易时间,安静得只听见键盘的敲击声。面前的 8090 后,全神贯注盯着密密麻麻的闪电图和跳动的盘口价格,键不离手以确保每一个仓位都准确无误。

这是一群与时间赛跑的人,每人每天交易量多达几十次甚至上百次,并且每个月 90% 以上的交易日收益为正。如果以月为单位统计,几乎全年每个月都是正收益。这就是——期货人工炒单

炒单的概述

炒单其实就是抢帽子,它还有一个正统的名字——人工高频交易。最早是在上个世纪 90 年代末由郑州兴起,在股指期货上面发扬光大。大连做炒单的很多是有现货背景的人在做,上海则是套利式炒单的发源地。

img

与传统交易方法不同的是,炒单不看 K 线图,也不看技术指标。只看盘口价格或闪电图。用一种比较精细的价格结构(Tick)快进快出,抓取每天价格波动中波纹式的极小差价,追求以量取胜的一种操作模式。

炒单的先决条件

国内市场确实有一部分人靠这种交易模式赚到了不少钱,各种期货大赛和私募排排上都有炒单的身影,这个没有必要去否认。而这种盈利模式之所以存在,需要具备几个先决条件:

  • 相对低廉的手续费。
  • 相对快捷的交易通道。
  • 品种有足够的流动性。

这是很多炒单盈利的根本所在,但也不是绝对。现在由于互联网的发展,各种信息公开透明化,网上就可以全国开户,手续费已经低至只在交易所基础上加 0.1 元。这在几年前肯定是拿不到的。

img

另一方面,现在网络带宽的增加和软件的进步,使得普通散户也能享受到便捷的交易方式。但是,专业的炒单大部分还是在交易所附近使用内网交易。这保证了更低的行情和交易延迟。

炒单的方法

关于炒单的方法,爬遍 Google、Bing 很难找到一套完整的,真正的方法不会被公布出来,公布出的不一定是真的。大部分是在教你怎么去止损。止损确实是炒单的第一道关卡,但是即便学会了止损,还是不得而知。

大体上来讲,炒单的交易方法分为两类:

  • 趋势型炒单法:当价格到达关键点位的时候,关注盘口的吃单速度,一旦爆点,马上追单。止损设 0 或 1 个点。止盈则根据盘面价格走势,如果价格持续快速运动,则浮盈的单子多拿一会儿。如果盘口吃单速度明显变慢或者价格到达另一个关键点位,则主动止盈。

  • 荡型炒单法:在分时图或闪电图上,当均线走平时才开始介入,并参考前面震荡走势的高低点,也就是极限点位,如果价格急拉至均线上方极值时开空单,如果价格急砸至均线下方极值时开多单。止损设 1 或 3 个点,当价格突破震荡区,止损出场。如果价格回归到均线对方时主动止盈。

img

这两种方法,其实已经概括了炒单的开平仓和止损止盈。无非是胜率和盈亏比的不同搭配而已,趋势型炒单属于低胜率高盈亏比,而震荡型炒单法属于高胜率低盈亏比。如果有人胜率达到 80% ,其盈亏比一定是是小于 1 的,理论上 90% 的胜率也有可能,但带来可能是亏损的次数少,亏的幅度大。也就是说,一味追求胜率意义不大。

炒单的注意事项

关于止损

止损是炒单的基本功,一般要求是 0 或 1 止损。如果止损止的慢就需要反复练习,把止损当做下意识的反映。一般情况下,都是在进场之前就想好在哪止损。

关于仓位管理(1)

如果你是新手,当然是仓位越小越好。如果你是老手,就必须半仓或者重仓。作为以轻仓、分散投资的中低频隔夜交易者可能无法理解为什么要重仓,其实重仓博取小波动正是炒单的核心,这也是区别于其他交易方法的地方。

关于仓位管理(2)

需要注意的是,这里说的重仓并不是根据你的资金量,而是根据当前品种的盘口厚度。也就是说你的仓位要根据当前的盘口变化而变化。举一个例子,当你想买进的时候,你的仓位就是当前的卖一平均挂单量。

关于滑点

炒单进出场一般用限价单、对手价,极端行情可能会用到超价。除了限价单,遇到滑点是不可避免的。有条件可以在交易所附近使用内网,能用网线就不要用 WiFi。

img

关于心态

一旦掌握交易方法,决定从量变到质变的就是心态了。就炒单而言,学到底大家手法其实都差不多,所以这时候心态往往比方法更重要,坏的心态不会对交易有任何帮助。因为方法好而心态不好,价格达到关键位置,就可能因为心态原因拿不住单子。

炒单的优劣

炒单的优势

  • 炒单起步不需要太多的资金,一手玉米几千块钱就可以做。
  • 日内交易,没有隔夜风险,最大连续回撤很小,不会高于 10%。
  • 炒单有更多的交易机会,方法得当,炒单赚钱速度很快。
  • 快进快出,对的单子就拿着,错的单子就砍掉,不会套牢更多。
  • 学习成本低,做趋势达到稳定盈利真的是十年磨一剑,但炒单因为职业生命周期短,成型很快。

img

炒单的劣势

  • 大资金无法复利,由于炒单基本上重仓进出,当资金到一定程度后,盘口厚度无法容纳的情况下,资金总体的收益会逐步下降。
  • 由于炒单严格控制亏损,这也就限制了盈利空间,当行情来的时候,不能让利润充分增长。
  • 职业声明周期短,炒单对于人的反映速度和手速要求特别高,所以年纪大了就做不来了。

炒单的亏损原因

手续费提高

炒单者最敏感的就是手续费,因为手续费关乎一个品种的投入和收益比。股指期货管制后,炒单者不得不转到商品期货上面。2016 年商品期货火爆行情,使得部分品种大幅度提高了手续费,因此死了一大批水平不高的炒单者。

心态失控

无论多好的方法、多好的心态,都不可避免会亏钱,因为行情不是你决定的。偶尔几次、几天亏损是再正常不过的事情,这就是考验心态的时候了。炒单者也经常会碰到极端行情,但这种是预测不了的,如果与炒单者的方向相反,很多人的第一反应是无从下手,就会把整个交易计划打乱,心存侥幸不止损,那么将是惨痛的代价——死扛单。

品种性质变化

每个品种都有自己的性格,有的酣畅豪爽,走势波澜壮阔;有的优柔寡断,走走停停,没有方向。一般而言,做炒单的都有自己熟悉的品种进行固定操作,但一旦原本熟悉的品种,因为种种原因成交量低迷,炒手就只能转做其他品种,就会非常不适应。

img

方法不行

这个就不用多说了,很多人都认为自己执行力不行,执行力不行,是因为心态不行。其实不然,是方法不行。自己找个借口回避罢了。

市场参与者结构的变化

早期市场参与者结构简单,那个时候,只有价格没有图形,所有图形都在脑子里。但是现在市场参与者种类太多了,交易方式跟以前也复杂了。各种套利、现货套保、宏观对冲、等等,近几年还出现了程序化交易,炒手面临更为复杂的生存环境。

炒单 FAQ

1、炒单能够赚钱背后的原理是什么?

通过闪电图和盘口变化特征,识别出短期波动的突破点或转折点,并捕捉每一轮价格的短期波动。

2、为什么炒单一定要这么高的交易频率?

交易是概率游戏,炒单的模式就是少量多次,在胜率和盈亏比一定的前提下,保持较高的交易频率才能体现出概率优势。

3、我是新手,如何练习炒单的方法?

首先你要学会观察,通过盘面感受买卖盘的报价、报量的变化及其后价格变化的规律,然后归纳出符合你个性的炒单模式。比如:趋势型炒单、震荡型炒单、套利炒单等等。在没有经过半年的模拟盘之前,先不要实盘。

4、如何识别虚假突破?

这个问题的答案价值千金,可惜没有人能答出来,因为没有人能识别真假突破。客观的说,是否是假突破,只有事后才能看出来。炒单就是不断的用小的止损来试错。

5、什么叫盘感?

盘感是长期大量交易次数,堆砌起来的条件反射。可以将盘感理解成一种唯手熟尔的本能。盘感是真实存在的,并不是玄学,而是类似于第六感。

总结

世界上的很多事情,有些看似不可能,但确实有人能够做到,并非这些人又什么特殊的能力,而是将一些简单的事情做得极致了。炒单只是众多交易方法中的一种,我们没必要过份的夸大任何一种交易方法,也没必要一棒子打死任何一种方法。任何方法都有自己的缺陷和存在的合理性,关键的问题是我们如何认知它的缺陷和合理性。

炒单这种交易方法之所以存在,自有它存在的道理。随着时间的推移,一部分炒单的方法会随着市场的进化而淘汰,就如同这个世界没有永动机一样。所以永远对市场抱有敬畏之心。

最后,附上一个真实的高频策略源码(基于优宽量化交易平台):

/*
就是我刚开始编写机器人的源代码,几乎没有改动,参数也是原来的参数。这个版本的程序有许多
需要改进的地方,但即使如此,它也当时表现除了惊人的盈利能力,在我本金不多时,不加杠杆平
均每天盈利在5%左右。当然无论从哪一方面,它都不适应今天的市场。
我同时也发了一篇文章在社区,大家可以看看。
by 小草
*/

//稍微改了一下,用了平台的容错函数_C(),和精度函数_N().
//取消全部订单
function CancelPendingOrders() {
    var orders = _C(exchange.GetOrders);
    for (var j = 0; j < orders.length; j++) {
          exchange.CancelOrder(orders[j].Id, orders[j]);}
}

//计算将要下单的价格
function GetPrice(Type,depth) {
    var amountBids=0;
    var amountAsks=0;
    //计算买价,获取累计深度达到预设的价格
    if(Type=="Buy"){
       for(var i=0;i<20;i++){
           amountBids+=depth.Bids[i].Amount;
           //floatamountbuy就是预设的累计买单深度
           if (amountBids>floatamountbuy){
               //稍微加0.01,使得订单排在前面
              return depth.Bids[i].Price+0.01;}
        }
    }
    //同理计算卖价
    if(Type=="Sell"){
       for(var j=0; j<20; j++){
           amountAsks+=depth.Asks[j].Amount;
            if (amountAsks>floatamountsell){
            return depth.Asks[j].Price-0.01;}
        }
    }
    //遍历了全部深度仍未满足需求,就返回一个价格,以免出现bug
    return depth.Asks[0].Price
}
 
function onTick() {
    var depth=_C(exchange.GetDepth);
    var buyPrice = GetPrice("Buy",depth);
    var sellPrice= GetPrice("Sell",depth);
    //买卖价差如果小于预设值diffprice,就会挂一个相对更深的价格
    if ((sellPrice - buyPrice) <= diffprice){
            buyPrice-=10;
            sellPrice+=10;}
    //把原有的单子全部撤销,实际上经常出现新的价格和已挂单价格相同的情况,此时不需要撤销
    CancelPendingOrders() 
    //获取账户信息,确定目前账户存在多少钱和多少币
    var account=_C(exchange.GetAccount);
    //可买的比特币量
    var amountBuy = _N((account.Balance / buyPrice-0.1),2); 
    //可卖的比特币量,注意到没有仓位的限制,有多少就买卖多少,因为我当时的钱很少
    var amountSell = _N((account.Stocks),2); 
    if (amountSell > 0.02) {
        exchange.Sell(sellPrice,amountSell);}
    if (amountBuy > 0.02) {
        exchange.Buy(buyPrice, amountBuy);}
    //休眠,进入下一轮循环
    Sleep(sleeptime);
}
    
function main() {
    while (true) {
        onTick();
    }
}

策略参数配置表: img

与君共勉!(全文完)


更多内容

lkljlj 高频策略源码(基于 BotVS 量化交易平台)yun