//------------------------------------------------------------------------
// 简称: mk2
// 名称: 测试mk2型-带信号
// 类别: 公式应用
// 类型: 用户应用
// 输出: Void
//------------------------------------------------------------------------
Params
//此处添加参数
Numeric d1(20); Numeric t1(120); Numeric ka(15); Numeric kb (45); Numeric kc(15);
Numeric ja(9); Numeric jb(6); Numeric jc(3); Numeric pa(120); Numeric pb(120);
Vars
//此处添加变量
Numeric mac1; Numeric mac2; Numeric mac3; Numeric mac4; Numeric mac5;
Numeric emac2; Numeric emac1;
Numeric j1; Numeric j2; Numeric j3; Numeric j;
Numeric k; Numeric k1; Numeric k2; Numeric k3;
Numeric s; Numeric s1; Numeric s2;
Numeric g; Numeric g1; Numeric g2; Numeric g3; Numeric g4; Numeric g5;
Numeric h1; Numeric h2; Numeric l1; Numeric l2;
Numeric p; Numeric p1; Numeric p2;
// --- 策略变量 ---
Numeric isShowArrow;
Defs
Events
OnInit()
{
}
OnBar(ArrayRef<Integer> indexs)
{
// --- 1. 绘制参考线 ---
PlotNumeric("0",0,0,White);
PlotNumeric("天",1,0,White);
PlotNumeric("地",-1,0,White);
// --- 2. 原有指标计算 (保持不变) ---
mac1=Average(close,d1/2);
mac2=Average(close,d1);
mac3=Average(close,d1*2);
mac4=Average(close,d1*3);
mac5=Average(close,d1*6);
emac1=average(abs(close-mac1),t1); emac2=Average(abs(close-mac2),t1);
s1=(close*5-mac1-mac2-mac3-mac4-mac5)/emac2/5;
s=Average(s1,d1);
PlotNumeric("s",s,0,red);
j1=(Close-lowest(low,9))/(Highest(high,9)-lowest(low,9));
j2=average(j1,6); j3=average(j2,3);
j=(6*j2-4*j3-1)/3*5;
PlotNumeric("j",j,0,Cyan);
k1=average(close,ka)-Average(close,kb);
k2=average(k1,kc);
k3=average((close-mac1)/emac1,5);
k=(k1-k2)/emac2+k3/2;
PlotNumeric("k",k,0,Green);
g1=(close-mac1)/average(abs(close-mac1),t1);
g2=(close-mac2)/average(abs(close-mac2),t1);
g3=(close-mac3)/average(abs(close-mac3),t1);
g4=(close-mac4)/average(abs(close-mac4),t1);
g5=(close-mac5)/average(abs(close-mac5),t1);
g=Average(g1+g2+g3+g4+g5,5)/5;
PlotNumeric("g",g,0,Yellow);
h1=highest(close,pa); h2=average(h1,pb); l1=lowest(close,pa); l2=average(l1,pb);
p1=((average(close,pa)-l2)/(h2-l2)-0.5)*2;
p2=average(abs(p1),t1*2);
p=p1/p2*2;
PlotNumeric("p",p,0,Magenta);
// --- 3. 信号逻辑 ---
isShowArrow = 0;
// 条件:k值大于1 且 拐头向下
If (k > 1 AND k < k)
{
isShowArrow = 1;
}
// --- 4. 绘制箭头 ---
If (isShowArrow == 1)
{
// 在 k 线条的位置绘制绿色向下箭头
PlotString("ArrowDown", "↓", k, Green);
}
}