KimIV的有用功能 - 页 108

 
坦率地说,我非常高兴看到一个具有自己特色的传奇人物回到活跃的论坛,尽管由于我对这种语言的编程基础知识的无知,我个人并不了解这些。但事实本身是惊人的,我全身心地欢迎 KimIV!
 
 

你好,我想找一个函数,你有准备好的吗?

我需要在测试结束后创建一个文件,其中包含每个订单的缩减数据。最好不要在测试期间创建这个文件,而是在交易历史 的一次性处理结束后创建。

 
我没有这样的功能,但在不久的将来,我计划发布一个功能,计算当前未平仓头寸 的最大缩水点数。该函数分析了条形的订单传递。时间框架是其中一个参数。时间框架越小,最大跌幅的计算就越准确。我认为你将能够根据这个功能做你需要的事情。
 
KimIV:
我没有这样的功能,但我计划在最近的将来发布计算当前未结头寸 的最大缩减的功能。该函数分析条形的订单传递。时间框架是其中一个参数。时间框架越小,最大跌幅的计算就越准确。我认为你将能够根据这个功能做你需要的事情

如果该函数在文件中 也有记录- 那就太好了...

但我看不出有什么特别的需要来计算当前头寸的缩水。我认为这个功能对测试人员更有用(分析系统的工作) ....

 
renoshnik:

如果函数中也有写入文件的功能,那就更好了...

但我不认为有什么特别的需要来计算当前头寸的缩水。我认为这个功能对测试人员(系统分析)更有用 ....

在 "实时计算每个订单的缩减并将所有数据发送到一个文件 "和 "在测试结束时计算每个订单的缩减并将数据发送到一个文件 "之间没有任何区别。除了第一个选项很容易做到非常准确之外,第二个选项只有在我们记住每个订单的勾股历史 时才会准确。
 
renoshnik:

你好,我想找一个函数,你有准备好的吗?

我需要在测试结束后创建一个文件,其中包含每个订单的缩减数据。 最好是不在测试期间创建这个文件,而是在交易历史的一次性处理结束后创建。

尤里,我只是从一个旧的专家顾问中翻出了代码...
检查了一下,似乎工作正常。
将deinit()的代码添加到你的猫头鹰中,并在deinit下面复制三个函数,其中一个是Igor的))
.......
代码是松散的...但只要伊戈尔把它做得漂亮,我想你就有足够的能力来进行试验。
附加的文件:
 
lasso:
尤里,我匆忙地从一个旧的EA中提取了代码...
检查了一下,似乎工作正常。
将deinit()的代码添加到你的猫头鹰中,并在deinit下面复制三个函数,其中一个是Igor的))
.......
代码是松散的...但只要伊戈尔把它做得漂亮,我想你就有足够的能力来进行试验。

很好,谢谢!!!!!!!!!! 我将研究一下....
 

伊戈尔,下午好!

我把你的函数CrossPointOfLines(计算两条线的交点坐标)放入我的专家顾问。结果,它一直在评论中写道:它没能找到交点!这是不可能的。而无法找到交点。

也许是因为我的图表上有其他趋势线形式的对象?或者你或这个主题的某个常客能告诉我我的问题是什么?

提前感谢!

代码 - 在所附文件中。

附加的文件:
 

欢呼吧!我自己也想明白了)是其他的趋势性的东西阻碍了......

由于我不太擅长和数组交朋友,所以我做了一个最大限度简化的函数。到目前为止,它似乎是有效的)。

//+------------------------------------------------------------------+
double Middle(string nm1,string nm2)
  {
  double M;
  double x0, x1, y1, x2, y2, x3, y3, x4, y4;
  double k1, k3;
  
  if(ObjectFind(nm1)==0 && ObjectFind(nm2)==0)
    {
    x1=ObjectGet(nm1, OBJPROP_TIME1);
    x2=ObjectGet(nm1, OBJPROP_TIME2);
    y1=ObjectGet(nm1, OBJPROP_PRICE1);
    y2=ObjectGet(nm1, OBJPROP_PRICE2);
    
    x3=ObjectGet(nm2, OBJPROP_TIME1);
    x4=ObjectGet(nm2, OBJPROP_TIME2);
    y3=ObjectGet(nm2, OBJPROP_PRICE1);
    y4=ObjectGet(nm2, OBJPROP_PRICE2);
    
    k1=(y2-y1)/(x2-x1); 
    k3=(y4-y3)/(x4-x3);
    
    if(k1 != k3)
      {
      x0 = (y1 - y3 + k3*x3 - k1*x1)/(k3 - k1);
      M = y1 + k1*(x0 - x1);
      }
    }
  return(M);
  }
//+----------------------------------------------------------------------------+