为回馈FMZ平台与社区,进行策略&代码&思路&模板的分享
简介: 封包好的函数指标,可直接调用 逐根K线分析 通过比较K线自身收盘位置与最近两根K线关系衡量市场多空强弱。
大多数情况下我们观察价格运动只会注意收盘价或者本根K线的形态,如何以一种更好的方式阅读K线和理解多空的强弱是更深入研究的方向,本研究提出一种解决思路,将K线自身类型与本根K线和上跟K线位置比较进行多空力量编码,如图所示,本研究将K线定义为18种类型。其分类方式主要有两个,一是收盘位置(帮助确定单根K线观点),二是收盘比较(帮助确定联系的K线观点)。收盘位置可以帮助确定单根K线的观点,我们根据一条K线的收盘价在其最高价到最低价的区间内所处的位置,把它定义为高位收盘K线、中位收盘K线和低位收盘K线。每种位置收盘的K线又分为强势K线(收盘价>开盘价)与弱势K线(收盘价<开盘价),因此单根K线的类别总共有6种,分别为:高位收盘的强势K线;高位收盘的弱势K线;中位收盘的强势K线;中位收盘的弱势K线;低位收盘的强势K线;低位收盘的弱势K线。 综上所述,将6种K线收盘关系与3种K线收盘比较相结合,总共产生18种K线强弱关系,将多头最强的K线编码为9将最弱的K线编码为-9,其余依次按强弱关系递进编码,结果如图
欢迎合作交流,共同学习进步~ v:haiyanyydss
$.getClosezhubang = function(rds){ var arrclose = []; var arropen = []; var arrhigh = []; var arrlow = []; var arrzhubang = []; for(var i in rds){ arrclose[i] = rds[i].Close; arropen[i] = rds[i].Open; arrhigh[i] = rds[i].High; arrlow[i] = rds[i].Low; if(i>1){ if(arrclose[i] >= arrhigh[i-1]){ if(arrclose[i] >= (arrhigh[i]-(arrhigh[i]-arrlow[i])/3) && arrclose[i] >= arropen[i]){ arrzhubang[i] = arrclose[i]*1.09; }else if(arrclose[i] >= (arrhigh[i]-(arrhigh[i]-arrlow[i])/3) && arrclose[i] < arropen[i]){ arrzhubang[i] = arrclose[i]*1.08; }else if(arrclose[i] > (arrlow[i]+(arrhigh[i]-arrlow[i])/3) && arrclose[i] < (arrhigh[i]-(arrhigh[i]-arrlow[i])/3) && arrclose[i] >= arropen[i]){ arrzhubang[i] = arrclose[i]*1.07; }else if(arrclose[i] > (arrlow[i]+(arrhigh[i]-arrlow[i])/3) && arrclose[i] < (arrhigh[i]-(arrhigh[i]-arrlow[i])/3) && arrclose[i] < arropen[i]){ arrzhubang[i] = arrclose[i]*1.06; }else if(arrclose[i] <= (arrlow[i]+(arrhigh[i]-arrlow[i])/3) && arrclose[i] >= arropen[i]){ arrzhubang[i] = arrclose[i]*1.05; }else if(arrclose[i] <= (arrlow[i]+(arrhigh[i]-arrlow[i])/3) && arrclose[i] < arropen[i]){ arrzhubang[i] = arrclose[i]*1.04; } } else if(arrclose[i] < arrhigh[i-1] && arrclose[i] > arrlow[i-1]){ if(arrclose[i] >= (arrhigh[i]-(arrhigh[i]-arrlow[i])/3) && arrclose[i] >= arropen[i]){ arrzhubang[i] = arrclose[i]*1.03; }else if(arrclose[i] >= (arrhigh[i]-(arrhigh[i]-arrlow[i])/3) && arrclose[i] < arropen[i]){ arrzhubang[i] = arrclose[i]*1.02; }else if(arrclose[i] > (arrlow[i]+(arrhigh[i]-arrlow[i])/3) && arrclose[i] < (arrhigh[i]-(arrhigh[i]-arrlow[i])/3) && arrclose[i] >= arropen[i]){ arrzhubang[i] = arrclose[i]*1.01; }else if(arrclose[i] > (arrlow[i]+(arrhigh[i]-arrlow[i])/3) && arrclose[i] < (arrhigh[i]-(arrhigh[i]-arrlow[i])/3) && arrclose[i] < arropen[i]){ arrzhubang[i] = arrclose[i]*0.99; }else if(arrclose[i] <= (arrlow[i]+(arrhigh[i]-arrlow[i])/3) && arrclose[i] >= arropen[i]){ arrzhubang[i] = arrclose[i]*0.98; }else if(arrclose[i] <= (arrlow[i]+(arrhigh[i]-arrlow[i])/3) && arrclose[i] < arropen[i]){ arrzhubang[i] = arrclose[i]*0.97; } } else if(arrclose[i] <= arrlow[i-1]){ if(arrclose[i] >= (arrhigh[i]-(arrhigh[i]-arrlow[i])/3) && arrclose[i] >= arropen[i]){ arrzhubang[i] = arrclose[i]*0.96; }else if(arrclose[i] >= (arrhigh[i]-(arrhigh[i]-arrlow[i])/3) && arrclose[i] < arropen[i]){ arrzhubang[i] = arrclose[i]*0.95; }else if(arrclose[i] > (arrlow[i]+(arrhigh[i]-arrlow[i])/3) && arrclose[i] < (arrhigh[i]-(arrhigh[i]-arrlow[i])/3) && arrclose[i] >= arropen[i]){ arrzhubang[i] = arrclose[i]*0.94; }else if(arrclose[i] > (arrlow[i]+(arrhigh[i]-arrlow[i])/3) && arrclose[i] < (arrhigh[i]-(arrhigh[i]-arrlow[i])/3) && arrclose[i] < arropen[i]){ arrzhubang[i] = arrclose[i]*0.93; }else if(arrclose[i] <= (arrlow[i]+(arrhigh[i]-arrlow[i])/3) && arrclose[i] >= arropen[i]){ arrzhubang[i] = arrclose[i]*0.92; }else if(arrclose[i] <= (arrlow[i]+(arrhigh[i]-arrlow[i])/3) && arrclose[i] < arropen[i]){ arrzhubang[i] = arrclose[i]*0.91; } } }else{ arrzhubang[i] = arrclose[i]; } } return arrzhubang; }template: strategy.tpl:40:21: executing "strategy.tpl" at <.api.GetStrategyListByName>: wrong number of args for GetStrategyListByName: want 7 got 6