using System;
using System.Drawing;
using PowerLanguage.Function;
using System.Collections; namespace PowerLanguage.Indicator
{
//[SameAsSymbol(true)]
public class Mov_Avg_1_Line : IndicatorObject
{ //1小时 24 1小时 120 private IPlotObject h1_24;
private IPlotObject h1_120;
private IPlotObject h4_120;
private IPlotObject d1_10; ArrayList h1_list = null ;
ArrayList h4_list = null ;
ArrayList d1_list = null ; public Mov_Avg_1_Line(object ctx) :
base(ctx){ } protected override void Create(){ h1_list = new ArrayList();
h4_list = new ArrayList();
d1_list = new ArrayList(); h1_24 =
AddPlot(new PlotAttributes("Avg", , Color.Yellow,
Color.Empty, , , true)); h1_120 =
AddPlot(new PlotAttributes("Avg", , Color.Cyan,
Color.Empty, , , true)); h4_120 =
AddPlot(new PlotAttributes("Avg", , Color.Red,
Color.Empty, , , true)); d1_10 =
AddPlot(new PlotAttributes("Avg", , Color.Red,
Color.Empty, , , true)); } protected override void StartCalc(){ h1_list.Clear();
h4_list.Clear();
d1_list.Clear(); }
int lasthavecal = ;
protected override void CalcBar(){ DateTime dt = Bars.Time[]; int currentbars = dt.Day*+ dt.Hour* + dt.Minute ; if(lasthavecal == currentbars) return ; lasthavecal = currentbars ; cal_h1();
cal_h4();
cal_d1(); } private void cal_h1(){ DateTime dt = Bars.Time[];
DateTime lastdt = Bars.Time[]; int currentx = dt.Day*+ dt.Hour;
int lastx = lastdt.Day*+ lastdt.Hour; if(currentx != lastx)
h1_list.Add(Bars.Close[]); Double value_h1 = MyAvg.Avg(h1_list,);
if(value_h1 > )
h1_24.Set(value_h1); Double value_h1_120 = MyAvg.Avg(h1_list,);
if(value_h1_120 > ){ h1_120.Set(value_h1_120);
} } private void cal_h4(){ DateTime dt = Bars.Time[];
DateTime lastdt = Bars.Time[]; int currentx = dt.Day*+ dt.Hour;
int lastx = lastdt.Day*+ lastdt.Hour; if(currentx != lastx && (dt.Hour== || dt.Hour== || dt.Hour== || dt.Hour== || dt.Hour== || dt.Hour==))
h4_list.Add(Bars.Close[]); Double value_h4_120 = MyAvg.Avg(h4_list,);
if(value_h4_120 > ){ h4_120.Set(value_h4_120);
} } int current_d1 = ;
private void cal_d1(){ DateTime dt = Bars.Time[];
DateTime lastdt = Bars.Time[]; int currentx = dt.Day;
int lastx = lastdt.Day; if(current_d1 != dt.Day)
{
d1_list.Add(Bars.Close[]); current_d1 = dt.Day;
}else{
//干掉 最后一条 d1_list.RemoveAt(d1_list.Count-);
d1_list.Add(Bars.Close[]); List //Output.WriteLine(" currend1= "+current_d1+" day=>"+dt.Day); Double value_d1_10 = MyAvg.Avg(d1_list,);
if(value_d1_10 > ){ d1_10.Set(value_d1_10);
} } }
}

MC 跨周期 画线的更多相关文章

  1. 画线缩放、瞳距缩放、Line延长到指定长度,内附效果,源码供应,解压就跑

    前言 公司项目需要做个画线缩放,我司称之为瞳距缩放,简而言之就是:2张图,从第一张图画一条线,再从第二个图画一条线,第二条线以第一条为基准,延长到一致的长度,并同比缩放图片:文字太枯燥,请先实例图 例 ...

  2. MFC画线功能总结

    本文仅用于学习交流,商业用途请支持正版!转载请注明:http://www.cnblogs.com/mxbs/p/6216464.html MFC画线功能要点有二:其一,鼠标按下时记录初始位置为线的起始 ...

  3. MFC消息映射机制以及画线功能实现

    ---此仅供用于学习交流,切勿用于商业用途,转载请注明http://www.cnblogs.com/mxbs/p/6213404.html. 利用VS2010创建一个单文档标准MFC工程,工程名为Dr ...

  4. CGContextRef 画线简单用法

    CGContextRef CGContextMoveToPoint(context,150,50);//圆弧的起始点 CGContextAddArcToPoint(context,100,80,130 ...

  5. Android中Path类的lineTo方法和quadTo方法画线的区别

    转载:http://blog.csdn.net/stevenhu_223/article/details/9229337 当我们需要在屏幕上形成画线时,Path类的应用是必不可少的,而Path类的li ...

  6. C#使用 DirectX SDK 9做视频播放器 并在视频画线添加文字 VMR9

    视频图像处理系列 索引 VS2013下测试通过. 在百度中搜索关键字“DirectX SDk”,或者进入微软官网https://www.microsoft.com/en-us/download/det ...

  7. iOS小画板画线总结

    一:基本画线: 使用贝赛尔曲线画: //创建路径 UIBezierPath* aPath = [UIBezierPath bezierPath]; //设置线宽 aPath.lineWidth = 5 ...

  8. [修复] Firemonkey 画线问题(Android & iOS 平台)

    问题:官方 QC 的一个 Firemonkey 移动平台画线问题: RSP-14309: [iOS & Android] Delphi 10.1 Berlin - drawing proble ...

  9. WPF画线问题,几千条以后就有明显的延迟了。

      我现在是这么画的,class A { private GeometryGroup _lines; private Path _path; public A() {    _path.Data = ...

随机推荐

  1. C# lesson2

    一.C#数据类型 1.值类型 包括数据相关(short.long.int .double.float).布尔(bool).枚举 2.引用类型 Object .对象.数组.字符串 二.存储方式 值类型 ...

  2. 开机启动遇到grub rescue,无法启动系统解决方法

    先使用ls命令,找到Ubuntu的安装在哪个分区: grub rescue>ls 会罗列出磁盘信息 (hd0)  (hd0,msdos9) (hd0,msdos8) (hd0,msdos7).. ...

  3. Servlet综述

    Servlet 是在服务器上运行的小程序.这个词是在 Java applet 的环境中创造的.虽然后者已很少被使用,但 servlet 却发展的很好.是一般面试都会常考的知识. 由来 servlet ...

  4. Node.js:模块

    概要:本篇博客主要介绍node.js的模块 1.创建模块 在node.js中创建一个模块非常简单,因为一个文件就是一个模块.我们只需要明白如何从其他文件中获取这个模块.Node.js提供了 expor ...

  5. pip 安装 lxml等 出错 解决

    x86-gnu-gcc 出错 安装如下 sudo apt-get install libffi-dev sudo apt-get install libssl-dev sudo apt-get ins ...

  6. xcb编译

    sed -i "s/pthread-stubs//" configure && ./configure $XORG_CONFIG \ --enable-xinput ...

  7. MySQL Replicationation进阶

    摘要 上一篇: MySQL Replication 基础  下一篇 MySQL Replication-MHA 一.主主复制 二.半同步复制 三.复制过滤器 四.总结 五.切分 待续 一.主主复制 M ...

  8. gcc-config: Active gcc profile is invalid解决办法

    错误描述 Gentoo软件安装错误,提示: gcc-config: Active gcc profile is invalid 解决方法: 列出可用的profile gcc-config -l gcc ...

  9. 【APP测试初体验】android测试命令----压力测试

    **以前一直做web测试,新一份工作新的开始,决定尝试新的测试,于是选择了一个从未接触的 APP测试. 怎么说呢,对于做web测试的人来说,app真的没有一点难度...测试流程一样,测试方法也差不多, ...

  10. c/c++常用的几个关键字总结

    一.volatile volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据.如果没有volatile关键字,则编 ...