- 精华
- 1
- 在线时间
- 84 小时
- UID
- 714
- 积分
- 581
- 帖子
- 126
- 阅读权限
- 50
- 注册时间
- 2007-11-10
- 最后登录
- 2015-12-1
- 精华
- 1
- UID
- 714
- 积分
- 581
- 帖子
- 126
- 主题
- 23
- 阅读权限
- 50
- 注册时间
- 2007-11-10
- 最后登录
- 2015-12-1
|
原帖由 nopain 于 2008-8-20 15:55 发表
仔细看了您的需求,看来用一个指标来实现是可行的。
指标比较各个合约的成交量和持仓量,选取当时的主力合约的高开低收等数据输出。
试了一下,没有头绪,请问nopain具体该如何写?
我的初步设想是比较持仓量的5天平均,最大的那个作为主力合约
下面是准备用在RU上的面的指标:但是没有编译通过:(
- Vars
- Numeric MAJOR(0);
- Numeric N(0);
- NumericSeries CON0;
- NumericSeries CON1;
- NumericSeries CON2;
- NumericSeries CON3;
- NumericSeries CON4;
- NumericSeries CON5;
- NumericSeries CON6;
- NumericSeries CON7;
- NumericSeries CON8;
- NumericSeries CON9;
- NumericSeries CON10;
- BEGIN
- CON0=AverageFC(DATA0.OPENINT(),5);
- CON1=AVERAGEFC(DATA1.OPENINT(),5);
- CON2=AVERAGEFC(DATA2.OPENINT(),5);
- CON3=AVERAGEFC(DATA3.OPENINT(),5);
- CON4=AVERAGEFC(DATA4.OPENINT(),5);
- CON5=AVERAGEFC(DATA5.OPENINT(),5);
- CON6=AVERAGEFC(DATA6.OPENINT(),5);
- CON7=AVERAGEFC(DATA7.OPENINT(),5);
- CON8=AVERAGEFC(DATA8.OPENINT(),5);
- CON9=AVERAGEFC(DATA9.OPENINT(),5);
- CON10=AVERAGEFC(DATA10.OPENINT(),5);
- FOR N=0 TO 10 -1;
- MAJOR=MAX("CON"+"N","CON"+"N+1");
- RETURN;
-
- IF (MAJOR==CON0)
- {
- PLOTNUMERIC("High",DATA0.High());
- PlotNumeric("Open",DATA0.Open());
- PlotNumeric("Low",DATA0.Low());
- PlotNumeric("Close",DATA0.Close());
- }ELSE IF (MAJOR==CON1)
- { PLOTNUMERIC("High",DATA1.High());
- PlotNumeric("Open",DATA1.Open());
- PlotNumeric("Low",DATA1.Low());
- PlotNumeric("Close",DATA1.Close());
- }
- ELSE IF (MAJOR==CON2)
- { PLOTNUMERIC("High",DATA2.High());
- PlotNumeric("Open",DATA2.Open());
- PlotNumeric("Low",DATA2.Low());
- PlotNumeric("Close",DATA2.Close());
- }
- ELSE IF (MAJOR==CON3)
- { PLOTNUMERIC("High",DATA3.High());
- PlotNumeric("Open",DATA3.Open());
- PlotNumeric("Low",DATA3.Low());
- PlotNumeric("Close",DATA3.Close());
- }
- ELSE IF (MAJOR==CON4)
- { PLOTNUMERIC("High",DATA4.High());
- PlotNumeric("Open",DATA4.Open());
- PlotNumeric("Low",DATA4.Low());
- PlotNumeric("Close",DATA4.Close());
- }
- ELSE IF (MAJOR==CON5)
- { PLOTNUMERIC("High",DATA5.High());
- PlotNumeric("Open",DATA5.Open());
- PlotNumeric("Low",DATA5.Low());
- PlotNumeric("Close",DATA5.Close());
- }
- ELSE IF (MAJOR==CON6)
- { PLOTNUMERIC("High",DATA6.High());
- PlotNumeric("Open",DATA6.Open());
- PlotNumeric("Low",DATA6.Low());
- PlotNumeric("Close",DATA6.Close());
- }
- ELSE IF (MAJOR==CON7)
- { PLOTNUMERIC("High",DATA7.High());
- PlotNumeric("Open",DATA7.Open());
- PlotNumeric("Low",DATA7.Low());
- PlotNumeric("Close",DATA7.Close());
- }
- ELSE IF (MAJOR==CON8)
- { PLOTNUMERIC("High",DATA8.High());
- PlotNumeric("Open",DATA8.Open());
- PlotNumeric("Low",DATA8.Low());
- PlotNumeric("Close",DATA8.Close());
- }
- ELSE IF (MAJOR==CON9)
- { PLOTNUMERIC("High",DATA9.High());
- PlotNumeric("Open",DATA9.Open());
- PlotNumeric("Low",DATA9.Low());
- PlotNumeric("Close",DATA9.Close());
- }
- ELSE IF (MAJOR==CON10)
- { PLOTNUMERIC("High",DATA10.High());
- PlotNumeric("Open",DATA10.Open());
- PlotNumeric("Low",DATA10.Low());
- PlotNumeric("Close",DATA10.Close());
- }
- END
复制代码
主要是这里不大清楚怎么处理……
- FOR N=0 TO 10 -1;
- MAJOR=MAX("CON"+"N","CON"+"N+1");
- RETURN;
复制代码 |
|