[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 649

 
7sintez:
非常感谢大家的帮助!我还没有用过的代码--把它们复制到记事本里了!当我有时间时,我会研究一下它们的。再三感谢,再三感谢,朋友们!


你可以使用Igor Kim的库


//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает номер бара открытия последней позиции или -1.       |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ("" или NULL - текущий символ)          |
//|    tf - таймфрейм                  (    0       - текущий таймфрейм)       |
//|    op - операция                   (   -1       - любая позиция)           |
//|    mn - MagicNumber                (   -1       - любой магик)             |
//+----------------------------------------------------------------------------+
int NumberOfBarOpenLastPos(string sy="0", int tf=0, int op=-1, int mn=-1) {
  datetime t;
  int      i, k=OrdersTotal();

  if (sy=="" || sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderOpenTime()) t=OrderOpenTime();
            }
          }
        }
      }
    }
  }
  return(iBarShift(sy, tf, t, True));
}

 

比这更复杂一点。

 
r772ra:


你可以使用Igor Kim的库

比这更复杂一点。


我已经用过你的代码了!一切都很好!"。谢谢你!

 
如何修补mtqs的报价漏洞或如何重新计算所有TF的全分钟报价?
 
Qwertee: 好的,我的EA中的另一件事是这个分支:

if(period=="M15")
{
//检查打开买入
Alert(buyysell);

if(buysell=="buy")

警报(1)。

.............

}

基本上,嵌套的if。但是,条件if(period=="M15")得到满足,Alert给出了一个结果,并且买入,但是条件if(buysell=="buy")没有得到满足,Alert(1)命令甚至没有执行。 该死,但是两个条件甚至在语法上是一样的,但是为什么一个被执行而另一个没有?

技术上很简单:buysell !="buy" - 所以下一个Alert(1)不被执行。

buysel 变量在那一刻包含了什么,可以通过打印出来Print(buyysell); 在第一个Alert之后。

------------------------------------------------------------------------------------------------------------------------------------------------

这就是问题所在,如果我在代码中加入Print(buysell)而不是Alert(1),buysell将返回买入值,那么问题出在哪里?

 

有一个函数,其中一个参数是一个数组:FunctionTest(double OneDimensionalArray[7]) ...

有一个三维数组:double Three-dimensionalArray[1][2][7]。

任务是将三维数组的最后一个维度作为参数插入一个函数中。我正在尝试这样做,但编译器却皱起眉头。

我是这样做的:FunctionTest(ThreeDimensionalArray[0][0]) .

你能告诉我,我做错了什么,如何解决这个问题?

预先感谢你。

 
artem179:

有一个函数,其中一个参数是一个数组:FunctionTest(double OneDimensionalArray[7]) ...

有一个三维数组:double Three-dimensionalArray[1][2][7]。

任务是将三维数组的最后一个维度作为参数插入一个函数中。我正在尝试这样做,但编译器却皱起眉头。

我是这样做的:FunctionTest(ThreeDimensionalArray[0][0]) .

你能告诉我,我做错了什么,如何解决这个问题?

预先感谢你。

他们说凯瑟琳大帝在一个3个字母的单词中最多犯了4个错误。

先不要解决这样的问题。找到一个更容易的解决方案...

 
tara:

据说凯瑟琳大帝在一个3个字母的单词中最多犯了四个错误。

先不要解决这样的问题。找到一个更容易的解决方案...


原则上,我已经用另一种方式解决了这个问题。但它仍然很有趣,至少纯粹是理论上的。毕竟,一个三维数组[0][0]应该是一个一维数组,对吗?如果是这样,我怎样才能从一个三维数组中得到一个一维数组?
 
artem179:

原则上,已经用另一种方式解决了。但它仍然很有趣,至少纯粹是理论上的。毕竟,三维Array[0][0]应该是一个一维数组?如果是这样,我怎样才能从一个三维数组中得到一个一维数组?

在看买吗?
1.数组始终是静态的

2.你不需要从3D中得到它,只要正确地创造它。

 
artem179:

原则上,我已经用另一种方式解决了这个问题。但它仍然很有趣,至少纯粹是理论上的。毕竟,一个三维数组[0][0]应该是一个一维数组,对吗?如果是这样,如何从一个三维数组中得到一个一维数组?
一个N维的数组就是一个一维的数组。它只是为了方便而被划分为不同的尺寸。
 
那你怎么看,瓦迪姆?在*测量中导航的舒适度如何?)))然而,我认识的人可以在脑子里数出魔方的切面。但我不确定这与我们的问题有什么关系。
问题是问题的表述。在这里,你不需要它。当然,是一维的。