牛熊猴市判断V1.0_区班主

Author: 区班量化, Date: 2019-10-14 17:05:12
Tags: Bollinger

我们发现,量化投资最重要的还是择时,就是判断当前市场是熊市还是牛市还是猴市。区班主这篇来讨论一下择时策略怎么做。

择时有很多种做法,均线判断、布林线、成交量和周期高低点。

均线判断就是通过均线的倾角,判断当前市场是上升还是下降。通过判断是否站上5日均线判断是否小牛,判断是否跌破120日均线判断是否进入熊市。几个因素综合起来决定当前市场强弱。

布林线是一个很好的判断方式,根据布林线中线的倾角,判断市场是上升还是下降。根据布林线的高点和低点来高抛低吸,是猴市里很好的做法。布林线如果开口加大,则是市场波动的前兆。

成交量一般是个辅助手段,一般底部和顶部都会放量。数字货币有一个好处就是,交易深度很容易获得。通过分析挂单情况,结合成交量,也能判断当前市场热度。

以上策略实现起来有一些难度,而且需要慢慢调优。周期高低点是本文讨论的重点策略,具有实现简单,效果直接的优点。周期高低点的思路很简单,就是结合短周期高低点和长周期高低点,判断当前市场是大牛,小牛还是大熊,小熊还是猴市。有了这个择时判断,我们在市场转向时,可以配合一定的策略。比如从小牛到大牛,可以加仓。大牛到猴市,可以平仓。猴市到小熊,可以初步建立空仓。进入大熊,则做空。

我们先贴部分代码,主要思想都在注释里了,有缘人自然可以看懂。长周期选择日线,5日为周期。短周期选30分钟线,10个为周期,即5小时。可以结合相关数字货币的波动率和仓位调整参数。 img img

我们再贴一下执行结果。可见9月24日-9月25日的小熊转大熊,9月26日到10月7日的震荡猴市加小熊,以及10月9日出现小牛信号,都有正确提示。可见周期高低点策略,简约不简单。  img  img

结合数字货币选型策略和对冲策略,还可以有更多玩法。如果把前20名市值的数字货币牛熊态排列出来,每次挑选2个数字货币大熊和大牛做对冲,基本可以做到低风险套利,这将是后面可以完善的策略。

感兴趣的朋友也可以在币乎找到我。币乎是一个写文章可以赚到数字货币的地方。 ![img


/*backtest
start: 2019-01-01 00:00:00
end: 2019-10-10 00:00:00
period: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
*/
//通过快慢周期的高低点判断当前处于什么市场
//注册币乎后https://m.bihu.com/signup?i=1ewtKO&s=4&c=4
//搜索 物联网区块链 可以联系到作者区班主
function main() {
    var dhigh;
    var dlow;
    var mhigh;
    var mlow;
    var status_name=["猴市","大牛","小牛","大熊","小熊"];  //定义并赋值
    var before_status=0;
    var now_status=0;
    while (true) {
        var drecords = exchange.GetRecords(PERIOD_D1);
        var mrecords = exchange.GetRecords(PERIOD_M30);
        //日线5天内的高低点(不包含当前Bar)
        dhigh=TA.Highest(drecords, dnum, 'High');
        dlow=TA.Lowest(drecords, dnum, 'Low');
       
        //30分钟线10个周期内的高低点(不包含当前Bar)
        mhigh=TA.Highest(mrecords, mnum, 'High');
        mlow=TA.Lowest(mrecords, mnum, 'Low');
        
        if(mlow>dhigh){ //分钟低点突破日高点,大牛开始
            now_status=1;
            //Log("大牛");
        }else if(mhigh>dhigh&&mlow<=dhigh){ //分钟高点突破日高点,但是分钟低点还没突破日高点,小牛开始
            now_status=2;
            //Log("小牛");
        }else if(mhigh<dlow){  //分钟低点跌破日低点,大熊开始
            now_status=3;
            //Log("大熊");
        }else if(mlow<dlow&&mhigh>dlow){  //分钟低点跌破日低点,但是分钟高点还没跌破日低点,小熊开始
            now_status=4;
            //Log("小熊");
        }else{  //没有方向,猴市
            now_status=0;
            //Log("猴市");
        }
        if(now_status!=before_status){
            Log("日线高点",dhigh," 日线低点",dlow,"30分钟线高点",mhigh," 30分钟线低点",mlow);
            Log(status_name[before_status],"转",status_name[now_status]);
            before_status=now_status;
        }
        Sleep(Interval*1000);
    }
}

Related

More

Vust 班主的量化思路值得学习,很棒

dsaidasi 这种连人眼都比不过的量化还是算了。

P. | Algo-Beats 猴市哈哈哈哈啊哈哈哈哈