//--- при таком методе мы будет сюда попадать на каждом тике.for(int i=PositionsTotal()-1;i>=0;i--)
if(m_position.SelectByIndex(i))
if(m_position.Symbol()==Symbol() && m_position.Magic()==m_magic)
{
//--- TrailingStop -> подтягивание StopLoss у ПРИБЫЛЬНОЙ позицииif(m_position.PositionType()==POSITION_TYPE_BUY)
{
//--- когда у позиции ещё нет StopLossif(m_position.StopLoss()==0)
{
//--- пока StopLoss равен 0.0, TrailingStep не учитываемif(m_symbol.Bid()-ExtTrailingStop>m_position.PriceOpen())
{
//--- модификация позиции
m_trade.PositionModify(m_position.Ticket(),m_position.PriceOpen(),0.0);
}
}
2022.02.2613:56:48.489 test (NZDUSD,H4) 0000000891001213131313001302022.02.2613:56:48.489 test (NZDUSD,H4) 12345678910111213131313131313132022.02.2613:56:48.489 test (NZDUSD,H4) 123456711
预期的。
2022.02.2613:56:48.489 test (NZDUSD,H4) 0000000891001213131313001302022.02.2613:56:48.489 test (NZDUSD,H4) 12345678910111213131313131313132022.02.2613:56:48.489 test (NZDUSD,H4) 123456711131313
int k=0; // объявляем до цикла - чтобы использовать послеfor(int i=0; i<ArraySize(ArrayI); i++) // после предыдущего кода (1) размеры ArrayI и ArrayJ равныif(ArrayI[i]!=ArrayJ[i])
{
ArrayJ[k++]=ArrayI[i];
}
ArrayResize(ArrayJ,k);
谢谢你的提示,阿列克谢!首先我会在这个主题中等待答案,但如果没有结果,我将转向错误、缺陷、问题 主题。
真诚的,弗拉基米尔。
在这个问题上,你不会从开发者那里得到任何答案。如果你发现了一个错误,确定它真的是一个错误,请向阿列克谢所代言的分支报告。没有必要指望版主在这方面采取行动--我们也是人,我们也有时没有时间。
你不太可能从这个主题的开发者那里得到任何答案。如果你发现一个错误,确保它真的是一个错误,向Alexey的分支机构报告。在这种情况下,没有必要期待版主的行动,我们也是人,我们也没有时间。
嗨,Artem!
一切都很清楚。
真诚的,弗拉基米尔。
下午好!!!!
这里有两个网格顾问的功能,第一个功能是利润计算,考虑到部分亏损订单的平仓。
第二个功能是关闭订单,部分关闭无利可图的订单
情况如下:如果我关闭一格订单,同时考虑到部分亏损订单的关闭,我得到的损失是由于一些需要关闭的手的四舍五入的结果
问题是,你是否可以用这两个函数来写一个计算亏损订单的函数,或者说是一个要平仓的订单的一部分。
如果是这样,请帮我写一下
谢谢你
下午好!!!!
如果是这样,请帮助我写。
这不是一个好时机。
你是说为你写吗?
这不是一个好时代。
你是说为你写作?
不要把自己撕碎,亚历山大
迷失在初级的东西里。
我如何组织一个拖网姿势--共同指导,由于某些原因,它拖网一个姿势,即它不拖网...MT5
我可以用一个简单的代码部分来列举HEDGE市场头寸的拖网 - 谢谢你。
问题解决了!再次祝贺弗拉基米尔-卡尔普托夫!!。
与他的拖网!
https://www.mql5.com/ru/code/17263
关键的诀窍是看循环中的索引,然后用票据选项修改它!!。
一个简单的任务:你需要从ArrayJ中撞出所有与ArrayI的元素 具有相同索引和值的元素。
关键字符串被高亮显示。结果。
预期的。
ArrayJ是动态的,似乎有什么问题......。但我也不需要一个静态的。
打破了我的想法。怎么了?或者说,这相当于那首老歌。
https://www.mql5.com/ru/forum/1111/page3141#comment_27152680
и
https://www.mql5.com/ru/forum/1111/page3142#comment_27371998
关于命名的常数?
关键字符串被高亮显示。结果。
预期的。
ArrayJ是动态的,似乎有什么问题......。但我也不需要一个静态的。
1.ArrayResize最好移出循环。
2.ArrayRemove不会使一个数组元素变 "空",而是将后续元素 "移 "到它的位置上。因此,后续索引中元素的匹配被打破。
1.ArrayResize应该被移出循环。
2.ArrayRemove不会使一个数组元素变 "空",而是在其位置上 "转移 "后续元素。因此,后续索引中元素的匹配被打破。
对2没有疑问,我只是把间隔放在那里,使之更清晰。此外,在Help中提到了静态数组:"如果该函数用于固定大小的数组,那么数组大小本身不会改变:剩余的 "尾巴 "被物理复制到 起始位置 。" 帮助中的例子也使用了一个固定大小的数组,而我有一个动态数组。
Re 1.我们不能把它放在循环之外,因为在一个真正的任务中,我们事先不知道ArrayJ或ArrayI的大小,更不知道CommonArray的大小,因为它们都不重合。
我还有一个例子,元素洗牌并没有像上面的例子那样在中途中断。
结果是好的。
但你需要那个变体来工作。如果在右边的尾巴上有相同值的元素(见前文),显然会出现这种阻碍--这与我上面提到的问题类似。
关于2没有问题,我把间隔放在这里是为了明确。此外,在《帮助》中提到了静态数组:"如果该函数用于固定大小的数组,那么数组本身的大小不会改变:它将剩余的 "尾巴 "物理性地复制到 起始位置 。" 帮助中的例子也使用了一个固定大小的数组,而我有一个动态数组。
关于1.我们不能把它放在循环之外,因为在一个真正的任务中,我们事先不知道ArrayJ或ArrayI的大小,更不知道CommonArray的大小,因为它们都不重合。
我还有一个例子,元素洗牌并没有像上面的例子那样在中途中断。
结果是好的。
但我需要那个变体来工作。如果在右边的尾巴上有相同值的元素,显然会出现这种阻碍(见前文)--这与我上面提到的问题类似。
1.你可以而且应该把它从循环中取出来,就像我所展示的方式。除非ArrayI的大小在循环中发生变化。
2.那么像这样的事情