//------------------------------------------------------------------------
// 简称: hl999
// 名称: 红绿999
// 类别: 策略应用
// 类型: 用户应用
// 输出: Void
//------------------------------------------------------------------------
Params
Vars
Plot plt_line5;
Series<Bool> dtpl;
Series<Bool> ktpl;
Defs
//此处添加策略函数
Events
//此处实现事件函数
//初始化事件函数,策略运行期间,首先运行且只有一次,应用在订阅数据等操作
OnInit()
{plt_line5.figure(0);
}
OnBar(ArrayRef<Integer> indexs)
{
dtpl= ma(c,10)<ma(c,20) and ma(c,5)<ma(c,10) and ma(c,20)<ma(c,30) ;
if(dtpl==True )
{ plt_line5.icon("多投下", 40, "ICO4");
}
if( ma(c,5)<ma(c,10) )
{ plt_line5.icon("多投下1", 10, "you");
}
if( ma(c,10)<ma(c,20) )
{ plt_line5.icon("多投下2", 20, "you");
}
if( ma(c,20)<ma(c,30) )
{ plt_line5.icon("多投下3", 30, "you");
}
ktpl= (ma(c,5)>ma(c,10) and ma(c,10)>ma(c,20) and ma(c,20)>ma(c,30) );
if( ktpl==True )
{ plt_line5.icon("空投上", 70, "ICO5");
}
if( ma(c,5)>ma(c,10) )
{ plt_line5.icon("空投上1", 100, "youshou");
}
if( ma(c,10)>ma(c,20) )
{ plt_line5.icon("空投上2", 90, "youshou");
}
if( ma(c,20)>ma(c,30) )
{ plt_line5.icon("空投上3", 80, "youshou");
}
}
正确情况下 上面的要都都有图才会出现绿色箭头 下面的也是需要3层都有图才出现红色箭头 但是 上面有的不满足条件就出现绿色箭头 下面满足条件却没有出现红色箭头
您好,上代码吧,否则想帮也帮不了啊。
感觉这种花里胡哨的策略,夏普也高不到哪里去
代码模式有啊点开就有
//------------------------------------------------------------------------ // 简称: hl999 // 名称: 红绿999 // 类别: 策略应用 // 类型: 用户应用 // 输出: Void //------------------------------------------------------------------------ Params Vars Plot plt_line5; Series<Bool> dtpl; Series<Bool> ktpl; Defs //此处添加策略函数 Events //此处实现事件函数 //初始化事件函数,策略运行期间,首先运行且只有一次,应用在订阅数据等操作 OnInit() {plt_line5.figure(0); } OnBar(ArrayRef<Integer> indexs) { dtpl= ma(c,10)<ma(c,20) and ma(c,5)<ma(c,10) and ma(c,20)<ma(c,30) ; if(dtpl==True ) { plt_line5.icon("多投下", 40, "ICO4"); } if( ma(c,5)<ma(c,10) ) { plt_line5.icon("多投下1", 10, "you"); } if( ma(c,10)<ma(c,20) ) { plt_line5.icon("多投下2", 20, "you"); } if( ma(c,20)<ma(c,30) ) { plt_line5.icon("多投下3", 30, "you"); } ktpl= (ma(c,5)>ma(c,10) and ma(c,10)>ma(c,20) and ma(c,20)>ma(c,30) ); if( ktpl==True ) { plt_line5.icon("空投上", 70, "ICO5"); } if( ma(c,5)>ma(c,10) ) { plt_line5.icon("空投上1", 100, "youshou"); } if( ma(c,10)>ma(c,20) ) { plt_line5.icon("空投上2", 90, "youshou"); } if( ma(c,20)>ma(c,30) ) { plt_line5.icon("空投上3", 80, "youshou"); } }
我写的是均线多头排列 ma(c,5)>ma(c,10) and (ma(c,10)>ma(c,20) and ma(c,20)>ma(c,30) 这个很简单 但是无法正确显示出来图案 出现很多错误
Params
Vars
Plot plt_line5;
Series<Bool> dtpl;
Series<Bool> dtpl1;
Series<Bool> dtpl2;
Series<Bool> dtpl3;
Series<Bool> ktpl;
Series<Bool> ktpl1;
Series<Bool> ktpl2;
Series<Bool> ktpl3;
Defs
//此处添加策略函数
Events
//此处实现事件函数
//初始化事件函数,策略运行期间,首先运行且只有一次,应用在订阅数据等操作
OnInit()
{plt_line5.figure(0);
}
OnBar(ArrayRef<Integer> indexs)
{
dtpl= ma(c,10)<ma(c,20) and ma(c,5)<ma(c,10) and ma(c,20)<ma(c,30) ;
if(dtpl==True )
{ plt_line5.icon("多投下", 40, "ICO4");
}
if( ma(c,5)<ma(c,10) )
{ plt_line5.icon("多投下1", 10, "you");
}
if( ma(c,10)<ma(c,20) )
{ plt_line5.icon("多投下2", 20, "you");
}
if( ma(c,20)<ma(c,30) )
{ plt_line5.icon("多投下3", 30, "you");
}
ktpl1=ma(c,5)>ma(c,10);
ktpl2=ma(c,10)>ma(c,20) ;
ktpl3= ma(c,20)>ma(c,30);
ktpl= (ma(c,5)>ma(c,10) and ma(c,10)>ma(c,20) and ma(c,20)>ma(c,30) );
if( ktpl1==True and ktpl2==true and ktpl3==True )
{ plt_line5.icon("空投上", 70, "ICO5");
}
if( ma(c,5)>ma(c,10) )
{ plt_line5.icon("空投上1", 100, "youshou");
}
if( ma(c,10)>ma(c,20) )
{ plt_line5.icon("空投上2", 90, "youshou");
}
if( ma(c,20)>ma(c,30) )
{ plt_line5.icon("空投上3", 80, "youshou");
}
}
ma0510=ma(c,5)<ma(c,10);
ma1020=ma(c,10)<ma(c,20);
ma2030=ma(c,20)<ma(c,30);
//dtpl= ma(c,10)<ma(c,20) and ma(c,5)<ma(c,10) and ma(c,20)<ma(c,30) ;
dtpl= ma0510 and ma1020 and ma2030;
....打完答案不小心全删了....
序列函数的问题
dtpl= ma(c,10)<ma(c,20) and ma(c,5)<ma(c,10) and ma(c,20)<ma(c,30) ;
这里面三个条件
只要第一个算出来是false ,后面就不计算了
导致后面几个函数的序列数据不全
算出来的结果就不是你想要的
这句改成下面这种写法就是你想要的输出了
ma0510=ma(c,5)<ma(c,10);
ma1020=ma(c,10)<ma(c,20);
ma2030=ma(c,20)<ma(c,30);
//dtpl= ma(c,10)<ma(c,20) and ma(c,5)<ma(c,10) and ma(c,20)<ma(c,30) ;
dtpl= ma0510 and ma1020 and ma2030;好的我试试
好了谢谢