来函数检测结果如下:
该公式没有未来函数

指标源码:

原理解析:
基准值赋值:5
投入金额赋值:15
KS赋值:C的有效数据周期数+1

NF赋值: YEAR

NFB:= MOD(NF,2)

HD赋值:IF(1日前的NF<>NF,1,0)
{IF(1日前的NFB>0 AND NFB=0,1,0)
}

KS1:=IF(统计KS日满足HD=1的天数=0,KS,HD累加至1的天数)

{注意KS与KS1的区别,股票用年画段,期货用月画段}

K2A:= IF(MOD(KS1,2)=1 OR KS1=1,1,0)

K2H赋值: K2A累加至1的天数日内H最高值

K2L赋值: K2A累加至1的天数日内L最低值

K2RSV赋值: (C-K2A累加至9的天数日内L最低值)/(K2A累加至9的天数日内H最高值-K2A累加至9的天数日内L最低值)*100

K2FK赋值:(K2A累加至1的天数日前的K2RSV+2*K2A累加至2的天数日前的K2RSV)/3

K2K赋值:(K2RSV+2*K2FK)/3

K2FD赋值:(K2A累加至1的天数日前的K2K+2*K2A累加至2的天数日前的K2K)/3

K2D赋值:(K2K+2*K2FD)/3

K2KD:= INTPART(100*(K2K+K2D*2)/3)/100

K2KDQ:= K2A累加至1的天数日前的K2KD

K4A赋值: IF(MOD(KS1,4)=1 OR KS1=1,1,0)

K4H赋值: K4A累加至1的天数日内H最高值

K4L赋值: K4A累加至1的天数日内L最低值

K4RSV赋值: (C-K4A累加至9的天数日内L最低值)/(K4A累加至9的天数日内H最高值-K4A累加至9的天数日内L最低值)*100

K4FK赋值:(K4A累加至1的天数日前的K4RSV+2*K4A累加至2的天数日前的K4RSV)/3

K4K赋值:(K4RSV+2*K4FK)/3

K4FD赋值:(K4A累加至1的天数日前的K4K+2*K4A累加至2的天数日前的K4K)/3

K4D赋值:(K4K+2*K4FD)/3

K4KD:= INTPART(100*(K4K+K4D*2)/3)/100

K4KDQ:= K4A累加至1的天数日前的K4KD

K8A赋值: IF(MOD(KS1,8)=1 OR KS1=1,1,0)

K8H赋值: K8A累加至1的天数日内H最高值

K8L赋值: K8A累加至1的天数日内L最低值

K8RSV赋值: (C-K8A累加至9的天数日内L最低值)/(K8A累加至9的天数日内H最高值-K8A累加至9的天数日内L最低值)*100

K8FK赋值:(K8A累加至1的天数日前的K8RSV+2*K8A累加至2的天数日前的K8RSV)/3

K8K赋值:(K8RSV+2*K8FK)/3

K8FD赋值:(K8A累加至1的天数日前的K8K+2*K8A累加至2的天数日前的K8K)/3

K8D赋值:(K8K+2*K8FD)/3

K8KD:= INTPART(100*(K8K+K8D*2)/3)/100

K8KDQ:= K8A累加至1的天数日前的K8KD
如果K2KDQ<=20返回1否则返回0
如果K4KDQ<=20返回1否则返回0
如果K8KDQ<=20返回1否则返回0
{开盘确认}

JQ1D赋值:IF((JQ1A+JQ1B+JQ1C)>=2,1,0)
{开盘确认-建仓区域框架}

{以上为笔者个人经验认为高胜率建仓区域}

{策略计算基准模块}

JX1赋值:INTPART(C的基准值日简单移动平均*100)/100

JX2赋值:INTPART(C的基准值*2日简单移动平均*100)/100

JX3赋值:INTPART(C的基准值*4日简单移动平均*100)/100
如果JX1

JA2B赋值:IF(1日前的JA2A=1 AND JA2A=0,1,0)
如果JX1>JX2 AND JX2>JX3返回1否则返回0

JA3B赋值:IF(1日前的JA3A=0 AND JA3A=1,1,0)

JX1A赋值:C的基准值日指数移动平均

JX2A:=C的基准值*2日指数移动平均

JX3A:=C的基准值*4日指数移动平均

JX4A赋值:IF(FRACPART(基准值/2)>=0.5,INTPART(基准值/2)+1,INTPART(基准值/2))

YA赋值:INTPART((JX1A-JX2A)*1000)

LA赋值:INTPART(YA的JX4A日指数移动平均)

YB赋值:INTPART((JX1A-JX3A)*1000)

LB赋值:INTPART(YB的JX4A日指数移动平均)
如果YA>LA返回1否则返回0

JG1B赋值:IF(统计JG1A累加至1的天数日满足YA

JG1C赋值:IF(1日前的JG1B=0 AND JG1B=1,1,0)

JG1D赋值:IF(1日前的JG1B=1 AND JG1B=0,1,0)
如果YB>LB返回1否则返回0

JG2B赋值:IF(统计JG1A累加至1的天数日满足YB

JG2C赋值:IF(1日前的JG2B=0 AND JG2B=1,1,0)

JG2D赋值:IF(1日前的JG2B=1 AND JG2B=0,1,0)

CSH赋值:IF((统计KS日满足JG2C=1的天数+统计KS日满足JG2D=1的天数)>=3 AND 统计KS日满足JA2B=1的天数>=2 AND 统计KS日满足JA3B=1的天数>=2,1,0)

JG3A赋值:IF(CSH=1,IF(JG1B=1 AND JG2B=1 AND LA<=0 AND LB<=0,1,0),0)
{实盘监控区}

JG3B赋值:IF(CSH=1,IF(1日前的JG3A=0 AND JG3A=1,1,0),0)
{实盘监控区-起点}

JG3C赋值:IF(CSH=1,IF(1日前的JG3A=1,1,0),0)
{实盘挂单区}

JG3D赋值:IF(CSH=1,IF(1日前的JG3C=0 AND JG3C=1,1,0),0)
{实盘挂单区起点}

JG4A赋值:O和C的较小值
{预计止损价}

JG4B赋值:IF(JG3A=1,JG3B累加至1的天数+基准值-1日内H最低值,0)
{预计建仓价}

JG5A赋值:IF(JG3C=1,IF(L<=1日前的JG4B,1,0),0)
{挂单成交信号}

JG5B赋值:IF(JG3C=1,IF(统计JG3D累加至1的天数日满足JG5A=1的天数>=1,1,0),0)
{实盘挂单区有持仓信号-包含卖出/止损信号}
如果YA>0 OR YB>0返回1否则返回0

JG6B赋值:IF(1日前的JG6A=1 AND JG6A=0,1,0)

JG6C赋值:IF(JG6B=1,基准值日内JG4A最低值,0)

JG6D赋值:IF(COUNT(C如果JG6A=1 OR JG6D=1返回1否则返回0

JG6F赋值:IF(1日前的JG6E=0 AND JG6E=1,1,0)

JG6G赋值:IF(统计KS日满足JG6F=1的天数>=1,IF(统计JG6F累加至1的天数日满足JG6E=0的天数=0,1,0),0)

JG6H赋值:IF(1日前的JG6G=0 AND JG6G=1,1,0)

JG6I赋值:IF(JG6G=1,IF(统计JG6H累加至1的天数日满足JG5B=1的天数>=1,1,0),0)
{从左侧买入顺利过渡到右侧趋势持仓区}

JG7A赋值:IF(JG5B=1 OR JG6I=1 OR (1日前的JG6I=1 AND JG6I=0),1,0)
{整体实盘持仓区}

JG7B赋值:IF(1日前的JG7A=0 AND JG7A=1 AND JG5A=1,1,0)
{实盘唯一成交信号}

JG7C赋值:IF(JG7B=1,IF(O<=1日前的JG4B,O,1日前的JG4B),0)
{实盘成交价}

JG7D赋值:IF(统计KS日满足JG7B=1的天数>=1,IF(统计JG7B累加至1的天数日满足JG7A=0的天数=0,1,0),0)

JG7E赋值:IF(1日前的JG7D=1 AND JG7D=0,1,0)
{左侧-实盘持仓区-开盘卖出}

{右侧主体核心: 建仓区域监控-买入-持仓-卖出模块}

JB1A:=IF(CSH=1,IF(统计JA3B累加至1的天数日满足JX1{延续基础建仓监控区}

JB1B赋值:IF(CSH=1,IF(JA3A=1 OR JB1A=1,1,0),0)
{通用基础建仓监控区}

JB1C赋值:IF(1日前的JB1B=0 AND JB1B=1,1,0)
如果JX1>JX2返回1否则返回0

JB2B赋值:IF(统计JB2A累加至1的天数日满足JX1{通用持仓区域}

JB2C赋值:IF(1日前的JB2B=1 AND JB2B=0,1,0)

JB2D赋值:IF(JB2C=1,3日内L最低值,0)

JB2E赋值:IF(统计KS日满足JB2C=1的天数>=1,IF(COUNT(C如果JB2B=1 OR JB2E=1返回1否则返回0
{通用持仓区域}

JC1A赋值:IF(JB1B=1,IF(JB1C累加至1的天数<=基准值 AND JA2B累加至1的天数<=2*基准值,1,0),0)

JC1B赋值:IF(1日前的JC1A=1,1,0)
{实盘建仓监控区-开盘确认}

JC1C赋值:IF(1日前的JC1B=0 AND JC1B=1,1,0)
如果JC1A=1返回JX2否则返回0
{监控区-设定预计买入价格}

JC3A赋值:IF(JC1B=1,IF(L<=1日前的JC2A,1,0),0)
{实盘建仓区有买入成交信号}

JC3B赋值:IF(JC1B=1,IF(JC3A=1,IF(O<1日前的JC2A,O,1日前的JC2A),0),0)
{实盘建仓区有买入成交信号-实盘成交价}

JC3C赋值:IF(JC1B=1,IF(JC3A=1,IF(统计JC1C累加至1的天数日满足JC3A=1的天数=1,1,0),0),0)
{设计成实盘只买入一次,实盘本次建仓区唯一买入信号}

JC4A赋值:IF(统计KS日满足JC3C=1的天数>=1,IF(统计JC3C累加至1的天数日满足JB2F=0的天数=0,1,0),0)
{唯一建仓后-持仓区持仓区}

JC4B赋值:IF(JC4A=1 OR (1日前的JC4A=1 AND JC4A=0),1,0)

JC4C赋值:IF(1日前的JC4B=1 AND JC4B=0,1,0)
{右侧持仓卖出-开盘卖出}

{右侧趋势与左侧抄底融合模块}

JM1A赋值:IF(JC4B=1,2,IF(JG7D,1,0))
{左侧+右侧融合持仓区域持仓等级}

JM1B赋值:IF(1日前的JM1A=0 AND JM1A>=1,1,0)
{融合持仓区起点}

JM1C赋值:IF(统计KS日满足JM1B=1的天数>=1,IF(统计JM1B累加至1的天数日满足JM1A=0的天数=0,1,0),0)

JM2A赋值:IF(JM1B=1,IF(JG7B=1 AND JQ1D=1,1,0),0)
{重要注释:融合持仓-初次买入点--注意只要在这行代码增减“ AND JQ1D=1”即可实现策略4和策略5的无缝切换}

JM2B赋值:IF(统计KS日满足JM2A=1的天数>=1,IF(统计JM2A累加至1的天数日满足JM1C=0的天数=0,1,0),0)

TRE赋值:投入金额*10000
{个股预计投入资金}

TRE1:=INTPART(TRE/3*100)/100
{单次投入三层仓位}
如果JM2A=1返回JG7C否则返回0
{三层底仓成交价}

JP1B赋值:IF(JM2A=1,INTPART(TRE1/JP1A/100)*100,0)
如果JM2A=1返回JP1A*JP1B否则返回0
{三层底仓实际占用资金}

JP1D赋值:IF(JM2A=1,IF((JP1C*2.5/10000)<5,5,JP1C*2.5/10000)+JP1C/100000,0)

JP2A赋值:IF(JM2B=1,IF(JC3C=1,IF(统计JM2A累加至1的天数日满足JC3C的天数=1,1,0),0),0)
如果JP2A=1返回JC3B否则返回0
{初次右侧趋势加仓成交价}

JP2C赋值:IF(JP2A=1,INTPART((TRE-JM2A累加至1的天数-1日前的JP1C)/JP2B/100)*100,0)
如果JP2A=1返回JP2B*JP2C否则返回0
{初次右侧趋势加仓成交金额}

JP2E赋值:IF(JP2A=1,IF((JP2D*2.5/10000)<5,5,JP2D*2.5/10000)+JP2D/100000,0)

JP3A赋值:IF(JM2B=1,IF((JG7E=1 AND 统计JG7B累加至1的天数日满足JM2B=0的天数=0) OR (JC4C=1 AND 统计JC3C累加至1的天数日满足JM2B=0的天数=0),1,0),0)
{融合持仓区-有卖出减仓}

JP3B赋值:IF(JM2B=1,IF(JP3A=1,IF(统计JM2A累加至1的天数日满足JP3A=1的天数=1,1,0),0),0)

JP3C赋值:IF(JM2B=1,IF(JP3B=1,O,0),0)
{融合持仓区-首次减仓卖出成交价}

JP3D赋值:IF(JM2B=1,IF(JP3B=1,JM2A累加至1的天数-1日前的JP1B,0),0)
{融合持仓区-首次减仓卖出成交数量-卖出底仓成交数量}

JP3E赋值:IF(JM2B=1,IF(JP3B=1,JP3C*JP3D,0),0)
{融合持仓区-首次减仓卖出成交金额}

JP3F赋值:IF(JM2B=1,IF(JP3B=1,IF((JP3E*2.5/10000)<5,5,JP3E*2.5/10000)+JP3E/1000+JP3E/100000,0),0)
{卖出成交成本}

JP4A赋值:IF(JM2B=1,IF(JG7B=1 OR JC3C=1,1,0),0)
{融合区-通用买入信号}

JP4B赋值:IF(JM2B=1,IF(JP4A=1,IF(统计JM2A累加至1的天数日满足JP2A=1的天数>=1,IF(JP2A累加至1的天数>1 AND 统计JP2A累加至1的天数日满足JP3B=1的天数>=1,1,0),0),0),0)

JP4C赋值:IF(JM2B=1,IF(JP4B=1,JG7C和JC3B较大值,0),0)
{循环买入-成交价}

JP4D赋值:IF(JM2B=1,IF(JP4B=1,INTPART(TRE1/JP4C/100)*100,0),0)
{循环买入-成交数量}

JP4E赋值:IF(JM2B=1,IF(JP4B=1,JP4C*JP4D,0),0)
{循环买入-成交额}

JP4F赋值:IF(JM2B=1,IF(JP4B=1,IF((JP4E*2.5/10000)<5,5,JP4E*2.5/10000)+JP4E/100000,0),0)
{循环买入-成交成本}

JP5A赋值:IF(JM2B=1,IF(统计JM2A累加至1的天数日满足JP4B=1的天数>=1,IF(JP3A=1,1,0),0),0)
{循环区-减仓卖出信号}

JP5B赋值:IF(JM2B=1,IF(JP5A=1,O,0),0)
{循环区-减仓卖出-价格}

JP5C赋值:IF(JM2B=1,IF(JP5A=1,JP4B累加至1的天数-1日前的JP4D,0),0)
{循环区-减仓卖出-数量}

JP5D赋值:IF(JM2B=1,IF(JP5A=1,JP5B*JP5C,0),0)
{循环区-减仓卖出-金额}

JP5E赋值:IF(JM2B=1,IF(JP5A=1,IF((JP5D*2.5/10000)<5,5,JP5D*2.5/10000)+JP5D/1000+JP5D/100000,0),0)

JP6A赋值:IF(JM2B=1,JM2A累加至1的天数的JP1D日累和+JM2A累加至1的天数的JP2E日累和+JM2A累加至1的天数的JP3F日累和+JM2A累加至1的天数的JP4F日累和+JM2A累加至1的天数的JP5E日累和,0)
{融合持仓区-所有交易成本}

JP6B赋值:IF(JM2B=1,JM2A累加至1的天数的JP1C日累和+JM2A累加至1的天数的JP2D日累和+JM2A累加至1的天数的JP4E日累和,0)
{融合持仓区-所有投入金额}

JP6C赋值:IF(JM2B=1,JM2A累加至1的天数的JP3E日累和+JM2A累加至1的天数的JP5D日累和,0)
如果JM2B=1返回JP6B-JP6C否则返回0
{融合持仓区-实际投入金额-用于计算持仓成本}

JP6E:=IF(JM2B=1,JM2A累加至1的天数的JP1B日累和+JM2A累加至1的天数的JP2C日累和+JM2A累加至1的天数的JP4D日累和,0)
{融合持仓区-所有买入数量}

JP6F赋值:IF(JM2B=1,JM2A累加至1的天数的JP3D日累和+JM2A累加至1的天数的JP5C日累和,0)
如果JM2B=1返回JP6E-JP6F否则返回0
{融合持仓区-实际持仓数量-用于计算持仓成本}

JP6H赋值:IF(JM2B=1,(JP6D+JP6A)/JP6G,0)
{融合区综合持仓实际成本}

JP6I赋值:IF(JM2B=1,(C-JP6H)*JP6G,0)
如果JM2B=1返回JP6I/JP6D*100否则返回0
{融合持仓区-浮盈率}
如果JM2B=1返回JP6H否则返回0
如果JM2B=1返回JP6G否则返回0
如果JM2B=1返回JP6D否则返回0

输出持仓浮盈:IF(JM2B=1,JP6I,IF(1日前的JM2B=1 AND JM2B=0,(O-1日前的JP6H)*1日前的JP6G,0)),画红色

持仓浮盈率:IF(JM2B=1,JP6J,IF(1日前的JM2B=1 AND JM2B=0,(O-1日前的JP6H)*1日前的JP6G/1日前的JP6D*100,0))

输出交易成本:IF(JM2B=1,JP6A,IF(1日前的JM2B=1 AND JM2B=0,1日前的JP6A+O*1日前的JP6G*12.6/10000,0))
当满足条件JM2A=1 OR JP2A=1 OR JP4B=1时,在JP6D和1之间画图标

DRAWICON(JP3B=1 OR JP5A=1 OR (1日前的JM2B=1 AND JM2B=0),1日前的JP6D,2)

输出{以下12行代码为输出-具体交易信号的交易情况}

底仓买价:JP1A

输出底仓买量:JP1B

输出底仓买额:JP1C

输出加仓买价:JP2B

输出加仓买量:JP2C

输出加仓买额:JP2D

输出循环买价:JP4C

输出循环买量:JP4D

输出循环买额:JP4E

输出减仓卖价:JP3C和JP5B较大值

输出减仓卖量:JP3D和JP5C较大值

输出减仓卖额:JP3E和JP5D较大值

{以下代码为赚取策略4的超额收益卖出点提示-仅作为提示用,是否觉定清仓/建仓卖出,还需要结合个人经验综合判断}

MA1L赋值:L的5日简单移动平均

MA1H赋值:H的5日简单移动平均

MA2L赋值:L的10日简单移动平均

MA2H赋值:H的10日简单移动平均

K1U5赋值:INTPART((MA1H+2*H的5估算标准差)*100)/100

K1L5赋值:INTPART((MA1L-2*L的5估算标准差)*100)/100

K1U10赋值:INTPART((MA2H+2*H的10估算标准差)*100)/100

K1L10赋值:INTPART((MA2L-2*L的10估算标准差)*100)/100

JV1A赋值:K1U5和K1U10较大值

JV1B赋值:1日前的JV1A

JV1C赋值:IF(JM2B=1,JM2A累加至1的天数日内JV1B最高值,0)
{设计超额收益卖出挂单价-开盘确认}

JV1D赋值:IF(JM2B=1,IF(H>=JV1C,1,0),0)

JV1E赋值:IF(JM2B=1,IF(JV1D=1,IF(统计JM2A累加至1的天数日满足JV1D=1的天数>=3,1,0),0),0)

JV1F赋值:IF(JV1E=1,INTPART(IF(O<=JV1C,JV1C,O)*100)/100,0)
当满足条件JV1E=1时,在JP6D-5000和26之间画图标
{超额收益清仓/减仓/降成本T+0 卖出信号提示}

DRAWNUMBER(JV1E=1,JP6D+25000,JV1F) 画红色

{超额收益清仓/减仓/降成本T+0 卖出信号提示-策略计算可成交价}

声明:本站所有指标公式及文章仅供学习研究,并不构成投资建议,请勿以此为依据进行股票交易,由此引起的投资亏损与本站无关。指标公式网均来源互联网收集整理,如不慎侵犯了你的权益,请联系我们告知,我们将做删除处理。