给MQL行家的一个问题 - 页 10

 
Rita:

哦,我还在想:)

如果

if (NumberOfPositions(NULL, OP_BUY,Magic)>=2 && NumberOfPositions(NULL,OP_SELL,Magic)>=2) {
 for{
// а сюда счетчик, по которому 2 раза пройдет
                    ClosePosFirstProfit(NULL,OP_BUY, Magic);
                    ClosePosFirstProfit(NULL,OP_SELL, Magic);
}
}
不是吗?

 
谢谢你Abzasc,我会试一试。
 
你好!我最近刚开始学习如何在MQL4中写作,我不明白如何(用哪条命令)可以不连接一个内置的指标,而是连接一个来自代码库的指标?能否请你告诉我!?
 
savage_pinguin:
你好!我最近刚开始学习如何在MQL4中写作,我不明白如何(用哪条命令)可以不连接一个内置的指标,而是连接一个来自代码库的指标?能否请你告诉我!?

iCustom()来帮助
 

下午。

 if  ( Accumulation2MA_1<=MA_1  &&    Accumulation2MA_0>MA_0 )   {
// если линии пересеклись - открываем позицию
   ticket=OrderSend(Symbol(),0,Lot,Ask,Slippage,Bid-SL*Point,Ask+TP*Point,
                                             "Хи-Хи",MagicNum,0,CLR_NONE);
     if(ticket < 0) { Print("Ошибка открытия ордера BUY #", GetLastError()); 
               Sleep(10000);   return (0); }
   }

专家顾问使用一个自定义指标 Accumulation2MA,在iMAOnArray 模式下,MA指标被附加在其上。

进入/离开信号是越线!"。

我不明白这是什么问题。但有一半的出入信号被 "公然 "忽略了!没有理由!

关闭时也是如此。

 for (int v=0; v<OrdersTotal(); v++)                             {//сортируем       
      if (OrderSelect(v, SELECT_BY_POS, MODE_TRADES))               {//перебираем           
        if (OrderSymbol()==Symbol()&& OrderMagicNumber()==MagicNum)   {//выбираем 
//-----------------------------------------------------                  
if (OrderType() == OP_SELL) {//если линии пересеклись, то закрываем: 
      if( Accumulation2MA_1<=MA_1  &&    Accumulation2MA_0>MA_0 )   {
                 OrderClose(OrderTicket(),OrderLots(),Ask,3,Green); // закрываем позицию
                 return(0); // выходим
                }   
......

几乎有一半的交易是以这种方式错过的。你能告诉我什么是错的吗?

条件是最简单的! 线条显然是在移动!但是,职位并不总是开放/关闭的! 该杂志是 "沉默的"。

我用箭头给他们看。

//------заполняем массив значениями Accumulation2MA -----------------
double Accumulation2MA[50];
int    i=0;  while (i<50)  {
Accumulation2MA[i]= iCustom(NULL, 0,"Accumulation2MA_v03",SMA,FMA,0, i);
                  i++;     }
//------Вешаем на Accumulation2MA - линию МА ---------------
ArraySetAsSeries(Accumulation2MA,true);
double MA_0 = iMAOnArray(Accumulation2MA,0,MA_Period,0,MODE_SMA,0);
double MA_1 = iMAOnArray(Accumulation2MA,0,MA_Period,0,MODE_SMA,1);
double Accumulation2MA_0=iCustom(NULL, 0,"Accumulation2MA_v03",SMA,FMA,0,0);
double Accumulation2MA_1=iCustom(NULL, 0,"Accumulation2MA_v03",SMA,FMA,0,1);
 
Rita:

下午。

专家顾问使用一个自定义指标Accumulation2MA,在iMAOnArray 模式下,MA指标被附加在其上。

进入/离开信号是越线!"。

我不明白这是什么问题。但有一半的出入口信号是 "明目张胆 "地隐瞒的!没有理由!

关闭时也是如此。

几乎有一半的交易是以这种方式错过的。你能告诉我什么是错的吗?

条件是最简单的! 线条显然是在移动!但是,职位并不总是开放/关闭的! 该杂志是 "沉默的"。

用箭头示意他们。

也许这可能发生在跳过蜱虫的时候。也就是说,当Start()运行时,有一个新的tick到达(其中的条件将被满足),但在Start()运行时,它被忽略了。

在下一次打勾时,条件没有得到满足--它们已经消失。

事实上,跨越指标线 是一个非常不舒服的信号,我已经很久没有使用它了。最好是用一个指标减去另一个指标,然后追踪零点交叉点。然而,这是一个品味的问题。

 
Rita:

下午。

专家顾问使用一个自定义指标Accumulation2MA,在iMAOnArray 模式下,MA指标被附加在其上。

进入/离开信号是越线!"。

我不明白这是什么问题。但有一半的出入口信号是 "明目张胆 "地隐瞒的!没有理由!

关闭时也是如此。

几乎有一半的交易是以这种方式错过的。你能告诉我什么是错的吗?

条件是最简单的! 线条显然是在移动!但是,职位并不总是开放/关闭的! 该杂志是 "沉默的"。

也许计算指标中的第二行更容易。然后问题就会消失

 
MetaDriver:

这种情况可能发生在跳过蜱虫的时候。也就是说,当Start()运行时,一个新的tick到达(其中的条件会被满足),但在Start()运行时,它被忽略了。

在下一个勾中,条件没有得到满足--它就完成了。

事实上,跨越指标线是一个非常不舒服的信号,我已经很久没有使用它了。最好是用一个指标减去另一个指标并监测过零情况。这是一个品味的问题。

减法和追踪过零点实际上不是和上面的例子一样吗?

//если линии пересеклись, то закрываем: 
      if( Accumulation2MA_1<=MA_1  &&    Accumulation2MA_0>MA_0 )   {

乍一看,这似乎是一记耳光!

你为什么认为 "过零点 "的效果会更好?

 
VINAR:

计算指标中的第二行可能更容易。然后问题就会消失

我不太明白 "计算指标中的第二行 "是什么意思?你能解释一下吗?

============================

我现在再次测试专家顾问(顺便说一下,它是通过打开价格来工作的),我惊讶地看到,它目前工作得很完美!我想这是一个很好的例子。信号跳频几乎消失了

而昨天,它在同一个mt4中错过了一半的信号!某种形式的奇迹....

 
Rita:

减法和追踪零点交叉点实际上不是和以下一样吗?

乍一看,它是迎面而来的,也是迎面而来的!

你为什么认为 "过零点 "的效果会更好?

在理论上,不管怎样。在实践中。

1)我们可以很容易地检查指标所推荐的市场位置和订单中的实际位置之间的差异。也就是说,所产生的指标将显示一个现成的曲线,可以解释为 "正/负"=="上升/下降"。这对反转系统来说非常方便。

2)有可能对信号进行方便的细化(乘以系数,与其他标准线交叉,等等)。

所以,就像我说的,这是一个品味的问题。:)