KimIV的有用功能 - 页 60

 

亲爱的Kim,非常感谢你的工作,你所写的功能使我的生活更轻松。

你的武器库中是否有一个函数可以返回所有连续亏损交易的总损失。假设最后三笔交易以亏损收场,我想知道它们在存款货币 中的总损失。要澄清的是--恰恰是最后的连续亏损交易。

我将感谢你的帮助。 我想其他人可能需要这个功能。

 

KimIV

我试着将你的函数插入到专家顾问中,编译器写下了以下废话:函数"ClosePositions "没有被引用,将从exp-file中删除。

函数 "ExistPositions "未被引用,将从exp-file中删除。

函数 "ManagePositions "没有被引用,将从exp-file中删除 ...........................

可能是什么问题?




 
WroC писал(а)>>
编译器写道:函数 "ClosePositions "没有被引用,将从exp-file中删除。

会有什么错呢?

这不是一个错误。这是一个警告,说明该函数没有被使用,因此编译其代码没有意义。

 

伊戈尔!

是否有任何发展或只是对时间过滤器 功能的想法?

如:对于当前的月、日、周...

或:前一个月,一天,一周,一个季度...

理想情况下,它应该是这样的。

// FuncStPeriod(int Per, int Val)
// Где:
// Per = 0-день, 1-неделя, и т.д...
// Val = 0-текущие, 1-прошедший

// пример использования для выбора ордеров за период
if(FuncStPeriod(1, 0)) ...

对不起,但我可以看到,这并不奏效...

或者,也许我选择了错误的过滤模式......

我处于停滞状态......在任何意义上都是如此...:)))

 

你,瓦西里,在政治上是不正确的!入口已经指明,但出口在哪里?

 

我知道在我的直觉中,0.5+0.5将是一升。

但我无法解决这个问题......(с) )))

如果能按他们的时间安排从历史中获得订单样本,我将非常感激。

而这些是。

// FuncStPeriod(int Per, int Val)
// 其中:
// Per = 0天,1周,等等。
// Val = 0-当前,1-过去


// 用来选择一个时期的订单的例子
if(FuncStPeriod(1, 0)) ...

我写得不对,更确切地说,没有解释...

标记的参数只是函数可能有的参数。

下面是一个关于如何使用该功能的例子...

如果订单的时间也是(在)过滤期内

...

 

瓦西里,你又在说输入的问题了。你在输出端想要什么,以什么形式?

 

啊啊啊...

对,呃...这就是我的逻辑错误所在......

该函数将返回 THAT,例如数字 123456。

它所需要的C和PO过滤器是...

一般来说,它与MT4的账户历史过滤器相同。

可能,这个列表是由一个周期形成的,例如。

for( ...

如果(Value1 >OrderCloseTime() > Value2)

...

这个函数必须返回一个字符串(?)值,以替换到if()过滤器中。

for( ...

如果(FuncStPeriod(1, 0))

...

废话。在描述中很复杂...

我把自己搞混了,而你却陷入了困境。

:(

 

好吧,你几乎已经自己做了!你不需要任何过滤器。只需准备两个日期时间 值,例如dt1和dt2。组织一个封闭式交易的循环。通过选择器选择订单,并检查其关闭时间,以。

if (OrderCloseTime()> dt1 && OrderCloseTime()< dt2) {
  // что-то делаете с выбранным ордером
}
 

伊戈尔 "我理解...

我就是这样开始琢磨的。

然而,任务是在这些相同的dt1和dt2中 "填入 "正确的 数值!

例如,季度,当前。在概念上,该函数应该返回类似这样的东西。

OrderCloseTime()>"01.10.2008" && OrderCloseTime()<"04.12.2008"

今天 为起始日期。

我看到FuncStPeriod(int Per, int Val) 函数的结尾,如下所示。

FuncStPeriod(int Per, int Val)
{
string fsp;

//...
fsp="OrderCloseTime()>"+"dt1+" && OrderCloseTime()<"+dt2;
return(fsp);
}

***

例如,"计算 "相对于当前月数的前几个月。

int KM()
{
int kolm;
kolm=(TimeLocal()-StrToTime("2007.10.01"))/2592000;
return( kolm-1);
} 

但这种简单化的方法有其缺陷。

这将表现为,有可能误认

在随后的几个月的开始...