Pavel Nikiforov: 请解释问题出在哪里。该函数应该是查看所有未结头寸,并计算出具有给定魔法数字的头寸数量。事实上,它只从另一个具有相同票据和Magik的EA所打开的列表中挑选一个,因此计数总是=0。
我自己想明白了,选择必须通过PositionGetSymbol 来完成。
//+------------------------------------------------------------------+int OpenPositions()//проверка открытых позиций по Magic number
{
int count=0;
for(int z=PositionsTotal()-1; z>=0; z --) // Перебор всех позиций
{
if(PositionGetSymbol(z)!=_Symbol) // Найдена позиция с заданным символом
{
Print(__FUNCSIG__" позиция не выбрана ",GetLastError()); continue;
}
long ticket = PositionGetInteger(POSITION_TICKET);
Print(__FUNCSIG__" ТИКЕТ ", IntegerToString(ticket));
ulong myMN=PositionGetInteger(POSITION_MAGIC);
Print(__FUNCSIG__" МАГИК ", IntegerToString(myMN));
if(myMN==Magic)
count++;
}
return(count);
}
//+------------------------------------------------------------------+
请解释问题出在哪里。该函数应该是查看所有未结头寸,并计算出具有给定魔法数字的头寸数量。事实上,它只从另一个具有相同票据和Magik的EA所打开的列表中挑选一个,因此计数总是=0。
我自己想明白了,选择必须通过PositionGetSymbol 来完成。
我自己想明白了,必须用PositionGetSymbol 进行选择。
没有很好地想清楚。你必须使用PositionGetTicket(i)函数在hadge账户上进行选择,然后检查符号和Magik。
想明白了就不好了。你必须用PositionGetTicket(i)函数在hadge账户上进行选择,然后检查符号和Magik。
是的,这样就好了,其他功能在演示中也有故障,但现在可以了。
你好,你能就这个指标给我建议吗?https://www.mql5.com/ru/forum/94447#comment_6780067
当价格急剧变化时,即价格变化4个点或更多时,它在图表上画上红色和蓝色的圆圈。
我需要这些信号只在价格变化10个点或更多时才出现。
你好,你能就这个指标给我建议吗?https://www.mql5.com/ru/forum/94447#comment_6780067
当价格急剧变化时,即价格变化4个点或更多时,它在图表上画上红色和蓝色的圆圈。
我希望这些信号只在价格变化10点或更多时才出现。
这个指标计算的不是点数,而是西格玛或RMS(均方根偏差)。在最后N个刻度的样本上(默认为50)。它建立了一个3西格玛的通道。如果价格已经跳出了通道,它将标记这个地方。但主要问题是最初的价格序列没有正态分布,尾巴非常重。事实上,这个指标是一个玩具帮助。
你好。
我在写一个小程序。我面对的是一个完全无法理解的情况。
在我的代码中,有这两行。它们在OnTester()的最末端,不在循环中。
这里是执行这些行的一个意外结果。
以下是MatOgidanieStavk 函数的定义
你好。
我在写一个小程序。我面对的是一个完全无法理解的情况。
在我的代码中,有这两行。它们在OnTester()的最末端,不在循环中。
这里是执行这些行的一个意外结果。
以下是MatOgidanieStavk 函数的定义
Stavka在打印前被初始化?
如何确定该调用是函数中的第一个?
你期望的结果是什么?
谢谢你。我解决了这个问题。
线索原来是打印前的变量Stavka。等于-1。它的值被传递到Print函数 中,并作为副本保存。我的函数MatOgidanieStavk改变了Stavka变量本身,而不是其将打印的副本。
2795/2797将是0,因为没有进行四舍五入。要么s3 = (double)s2/s1; 要么为s2和s1选择double