并让我们把它做成一个 "卡通"(多货币)。 - 页 4

 
rid писал(а)>>

也许这其中的一个会做, -

函数PriceOpenLastPos()。
该函数返回最后一次开仓的开仓价。要考虑的位置的选择是由外部参数指定的。
sy - 市场工具的名称。如果设置了这个参数,函数将只考虑指定符号的位置。默认值-""意味着任何市场工具。NULL值表示当前的仪器。
op - 贸易操作,职位类型。有效值:OP_BUY、OP_SELL或-1。默认值-1意味着任何位置。
mn - 位置标识符,MagicNumber。默认值-1表示任何标识符。

https://forum.mql4.com/ru/11287/page24

谢谢你,我会试试的,这个功能在指标中也有作用吗?

 

我说不上来。毕竟,该指标并没有开仓。为什么该指标需要开仓或平仓 的价格?

它还有其他任务。

我想它在指标中也会起作用。

 
rid писал(а)>>

我说不上来。毕竟,该指标并没有开仓。为什么该指标需要开仓或平仓的价格?

它还有其他任务。

我想它在指标中也会起作用。

你知道如何在指标中正确插入这个函数吗?

编译时,编辑器在第一个括号和下一个变量上产生了一个错误。

double PriceOpenLastPos( string sy="", int op=-1, int mn=-1) {
datetime t;
双重r=0。
int k=OrdersTotal()。

如果(sy=="0")sy=符号()。
for (i=0; i<k; i++) {
如果(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
如果(OrderSymbol()==sy || sy=="){
如果(OrderType()==OP_BUY || OrderType()==OP_SELL) {
如果(op<0 || OrderType()==op){
如果(mn<0 || OrderMagicNumber()==mn) {
如果(t<OrderOpenTime()){
t=OrderOpenTime()。
r=OrderOpenPrice()。
}
}
}
}
}
}
}
return(r)。
}
}

'(' - 函数定义出乎意料 D:\MT4\experts\indicators\Astrea.mq4(627,24)。
'sy' - 未定义变量 D:MT4/experts/indicators/Astrea.mq4 (632, 7)
等。

 

这很难讲。我不是指数方面的专家。

我不明白为什么在指标中要考虑订单的开盘价

你确定你的目的需要这个特定的指标吗?

也许,在一个单独的考虑到订单的EA中实现你所需要的功能会比较容易?

 
rid писал(а)>>

这很难讲。我不是指数方面的专家。

我不明白为什么在指标中要考虑订单的开盘价。

你确定你的目的需要这个特定的指标吗?

也许,在一个单独的EA中实现必要的功能会更容易,该EA将考虑订单?

我在一个指标中实现了交易信号的生成逻辑,并通过一个全局变量将生成的信号发送给EA,以打开/关闭订单。

我需要一个订单的开盘价来做一些决定,这就是我试图解决这个问题的原因。我有一个动态指标,你只能在演示中或在可视化模式下的测试器中调试它。

 

我现在把这个函数插入我遇到的第一个火鸡(ATR)中,它都遵守了。

(仅有1次警告,应该如此)。

那么你在代码的哪一部分插入这个函数?它应该插在代码的最后,在START函数的外面。

然后,在START函数中调用它来计算你的

 
rid писал(а)>>
我只是把这个函数粘贴到第一个可用的火鸡(ATR)上,它都遵守了。

它是如何被插入的?以上所有文字都是一对一的,还是作为一个无效的子函数?

 
一对一。
 
rid писал(а)>>
>> 一对一。

很奇怪,我在编译时得到了错误。

 
rid писал(а)>>

我现在把这个函数插入我遇到的第一个火鸡(ATR)中,它都遵守了。

(仅有1次警告,应该如此)。

那么你在代码的哪一部分插入这个函数?它应该插在代码的最后,在START函数的外面。

你应该在START函数中调用它来进行计算。

我做到了,我把它插入了启动功能之外,而且编译也通过了。

>> 谢谢你。