Name
牛熊猴市判断V10_区班主
Author
区班量化
Strategy Description
我们发现,量化投资最重要的还是择时,就是判断当前市场是熊市还是牛市还是猴市。区班主这篇来讨论一下择时策略怎么做。
择时有很多种做法,均线判断、布林线、成交量和周期高低点。
均线判断就是通过均线的倾角,判断当前市场是上升还是下降。通过判断是否站上5日均线判断是否小牛,判断是否跌破120日均线判断是否进入熊市。几个因素综合起来决定当前市场强弱。
布林线是一个很好的判断方式,根据布林线中线的倾角,判断市场是上升还是下降。根据布林线的高点和低点来高抛低吸,是猴市里很好的做法。布林线如果开口加大,则是市场波动的前兆。
成交量一般是个辅助手段,一般底部和顶部都会放量。数字货币有一个好处就是,交易深度很容易获得。通过分析挂单情况,结合成交量,也能判断当前市场热度。
以上策略实现起来有一些难度,而且需要慢慢调优。周期高低点是本文讨论的重点策略,具有实现简单,效果直接的优点。周期高低点的思路很简单,就是结合短周期高低点和长周期高低点,判断当前市场是大牛,小牛还是大熊,小熊还是猴市。有了这个择时判断,我们在市场转向时,可以配合一定的策略。比如从小牛到大牛,可以加仓。大牛到猴市,可以平仓。猴市到小熊,可以初步建立空仓。进入大熊,则做空。
我们先贴部分代码,主要思想都在注释里了,有缘人自然可以看懂。长周期选择日线,5日为周期。短周期选30分钟线,10个为周期,即5小时。可以结合相关数字货币的波动率和仓位调整参数。
我们再贴一下执行结果。可见9月24日-9月25日的小熊转大熊,9月26日到10月7日的震荡猴市加小熊,以及10月9日出现小牛信号,都有正确提示。可见周期高低点策略,简约不简单。
结合数字货币选型策略和对冲策略,还可以有更多玩法。如果把前20名市值的数字货币牛熊态排列出来,每次挑选2个数字货币大熊和大牛做对冲,基本可以做到低风险套利,这将是后面可以完善的策略。
感兴趣的朋友也可以在币乎找到我。币乎是一个写文章可以赚到数字货币的地方。
Strategy Arguments
Argument | Default | Description |
---|---|---|
Interval | 60 | 轮询周期(秒) |
dnum | 5 | 日线周期 |
mnum | 10 | 30分钟线周期 |
Source (javascript)
/*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);
}
}
Detail
https://www.fmz.com/strategy/170014
Last Modified
2019-11-15 15:48:27