基于艾略特波浪理论的交易策略 - 页 296

 
Andre69

你是否尝试过对小波变换系数进行额外操作。
最后的结果是这样的。
 
伙计们,为了祖国的利益而工作,做科学,拿出有用的东西,最终展示你们的雄心壮志。
 
同事们,有一个小问题。我应该怎么说才对呢--是否可以动态地扩展数组中的元素数量。例如,我正在寻找从零条开始的某个区域的稳定通道。我不知道他们的数量,因为开始搜索后,有可能找不到任何。从我读过的文档中,我想我已经明白了,你不能这样做。这是真的吗,还是有更巧妙的方法?

PS:到目前为止,我在MT中想出了几个变种(MathCAD没有这样的问题)。

(1).我创建了一个参数(int count=0;),我循环查看范围和检查标准;如果它符合这些标准,count=count+1。接下来,我用获得的计数创建一个数组,并再次重复一切:我将计算的参数写入数组,并选择最佳通道。

(2) 根据原始范围的长度,为通道参数创建一个数组。
 
grasn
...我怎么说才正确呢--是否可以动态地扩展数组中的元素数量。例如,我正在寻找从零条开始的某个区域的稳定通道。我从一开始就不知道他们的号码,我可能找不到。

坦率地说,这个问题并不十分清楚。一个数组中的元素数量(大小)是通过ArrayResize动态改变的。如果你真的想创建结构,它们只在MT5中被承诺。纯粹是通过文字的谐音--我在解决
订单的 额外属性 问题,而且我事先也不知道确切的属性数量(那40个指标)。使用了三个函数,但必须手动向每个函数添加新的属性,随后重新编译。我不知道这样做是对是错,但为了以防万一,以下是最后一个版本的代码
//+------------------------------------------------------------------+
//| Изменение размеров массивов свойств ордера                       |
//+------------------------------------------------------------------+
int ResizeOrdArrays() {
  ArrayResize(OrdID,OrdArrSize);
  ArrayResize(OrdTicket,OrdArrSize);
//  ArrayResize(OrdData1,OrdArrSize);
//  ArrayResize(OrdData2,OrdArrSize);
//  ArrayResize(OrdData3,OrdArrSize);
//  ArrayResize(OrdData4,OrdArrSize);
  return(0);
}
//+------------------------------------------------------------------+
//| Добавление ордера в список ордеров                               |
//+------------------------------------------------------------------+
int AddOrder(int ID) {
  OrdInd=OrdNum;
  OrdNum++;
  if (OrdNum > OrdArrSize) {
    OrdArrSize = OrdNum;
    ResizeOrdArrays();
  }
  OrdID[OrdInd] = ID;
  OrdTicket[OrdInd] = ticket;
//  OrdData1[OrdInd] = 123.45;
//  OrdData2[OrdInd] = 123.45;
//  OrdData3[OrdInd] = 123.45;
//  OrdData4[OrdInd] = 123.45;
  return(0);
}
//+------------------------------------------------------------------+
//| Исключение ордера из списка ордеров                              |
//+------------------------------------------------------------------+
int CutOrder() {
  OrdNum--;
  if (OrdInd < OrdNum) {
    OrdID[OrdInd] = OrdID[OrdNum];
    OrdTicket[OrdInd] = OrdTicket[OrdNum];
//    OrdData1[OrdInd] = OrdData1[OrdNum];
//    OrdData2[OrdInd] = OrdData2[OrdNum];
//    OrdData3[OrdInd] = OrdData3[OrdNum];
//    OrdData4[OrdInd] = OrdData4[OrdNum];
  }
  return(0);
}



P.S. 顺便说一下,我对我的频道使用了同样的 "结构"。

 
<br / translate="no"> ...数组中的元素数量(大小)是通过ArrayResize动态改变的。


改变一个已经创建的数组的大小,不是把它的大小调整为零吗?
 
不,这是用打印的方式来检查。
 
不,这是用打印的方式来检查。<br / translate="no">


谢谢你。我一定是在某种程度上写错了打印的内容。:о)
 
嗯,我已经很久没有自己检查过了,但首先它似乎工作得很好,其次Renat 已经明确保证这个属性可以被认为是文件化的,即在所有的新版本中都支持。
 
已确认。如果你把数组的大小 增加1,就会在数组的末端增加一个新的空元素。其他要素保持不变。
当矩阵被调整大小时,一个空行被添加到矩阵中。
 
谢谢你。可以说,我把代码搞乱了。好的,这个功能使它变得更容易。
原因: