求助,MQ如何回看数组变量? (文华财经wh9)

投资者咨询:求助,MQ如何回看数组变量? (文华财经wh9)
来源:文华财经  日期:2018-7-23 16:57
求助,在程序编写过程中,我想看回数组变量的情况,通过什么办法呢?
例如:编写一个用数组存储的,斐波那契数列程序,如果想回看数组里面每一个元素的值,有什么办法呢?
Vars
NumericArray NA;
Numeric i;
Begin
NA[1]=1;
NA[2]=1;
for i = 3 to BarPos
{
NA[i]=NA[i-1]+NA[i-2];
}
//打印出(回看)斐波那契数列:此处如何实现?
End
问题1:如题,如何回看数组变量(假设数组很长,有1000个元素)?
问题2:如果多几个数组要回看,或该数组作为中间变量想要查看,该怎么处理?
 
技术人员回复
日期:2018-7-23 17:19

 使用 NA[10]可以取到数组内10位置存入的数值,使用PlotNumeric可以输出在主图查看

 

多个数组也可以数组名称+角标的格式调用

 

Vars
    NumericArray NA;
    Numeric i;
Begin
    NA[1]=1;
    NA[2]=1;
    for i = 3 to BarPos
    {
    NA[i]=NA[i-1]+NA[i-2];
    }
  PlotNumeric("TF",NA[10]);//输出NA数组10位置的数值
end

投资者咨询:求助,MQ如何回看数组变量? (文华财经wh9)
来源:文华财经  日期:2018-7-23 16:57
老师,不是单个数值,我想要看整个数组序列(1000个数),如何处理?   
技术人员回复
日期:2018-7-23 18:55
模型保存为算法交易模型,源码如下:

Vars
    NumericArray NA;
    Numeric i;
Begin
    NA[1]=1;
    NA[2]=1;
    for i = 3 to BarPos
    {
    NA[i]=NA[i-1]+NA[i-2];
    }
    Commentary("NA[i] " + Text(NA[i]));
end

之后软件右上角》运行》算法交易运行池,将模型加载到运行运行,就可以看到整个数组了


投资者咨询:求助,MQ如何回看数组变量? (文华财经wh9)
来源:文华财经  日期:2018-7-23 16:57



不能保存到“算法交易模型”。MQ模拟板是否算法交易模型不可用?
如果可用,怎么保存呢?
(菜单里面只有“保存”选项,没有“另存为”选项。)
 

图片点击可在新窗口打开查看
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看 文件名:sketch002.jpg    

图片点击可在新窗口打开查看
 
技术人员回复
日期:2018-7-23 22:46
如下修改下:

Vars
    NumericArray NA;
    Numeric i;
Begin
    NA[1]=1;
    NA[2]=1;
    for i = 3 to 1000
    {
    NA[i]=NA[i-1]+NA[i-2];
    }
    Commentary("NA[i] " + Text(NA[i]));
end

属性,选择算法交易模型
投资者咨询:求助,MQ如何回看数组变量? (文华财经wh9)
来源:文华财经  日期:2018-7-23 16:57
老师,我需要加载在正常的K线上(如日K线,分钟K线),而不是TICK数据(或算法交易模型)上
想看看数组变量的计算结果,应该怎么做呢?

另外,上述编写的程序,在算法交易模型回撤当中所有的NA[i]都等于零

图片点击可在新窗口打开查看
技术人员回复
日期:2018-7-24 10:47

数组内个数是无限增大的K线图上无法在一根K线上输出所有数组内的每个数

 

6楼修改参考:

 

Vars
    NumericArray NA;
    Numeric i;
Begin
    NA[1]=1;
    NA[2]=1;
    for i = 3 to 1000
    {
    NA[i]=NA[i-1]+NA[i-2];
    Commentary(" NA["+Text(i)+"]:"  + Text(NA[i]));
    }
   end
 
投资者咨询:求助,MQ如何回看数组变量? (文华财经wh9)
来源:文华财经  日期:2018-7-23 16:57
 老师,我明白您的意思。
我只是想,看一看数组中的计算结果。就这么简单。
正如一开始的标题“求助,MQ如何回看数组变量?
不需要任何复杂的东西,只需能回看日K线、分钟K线上的数组变量即可
 
技术人员回复
日期:2018-7-24 11:12

 是指输出每根K选对应位置在数组内的值吗:

 

Vars
    NumericArray NA;
    Numeric i;
Begin
    NA[1]=1;
    NA[2]=1;
    for i = 3 to BarPos
    {
    NA[i]=NA[i-1]+NA[i-2];
    }
PlotLine("TF",NA[BarPos],Red,NoDraw,Precis3,0);
end