[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 149

 

这是我最近回答一个类似的问题。

https://www.mql5.com/ru/forum/109048/page11

-查一下吧。

在你的情况下,你可能可以这样做。

if ( AutoClose) { //если выключатель закрытия включен 

//----------------------------------------------------------------------
  for (int v=0; v<OrdersTotal(); v++)                             {       
      if (OrderSelect( v, SELECT_BY_POS, MODE_TRADES))               {           
        if (OrderSymbol()==Symbol()&& OrderMagicNumber()== MagicNum)   { 
//-----------------------------------------------------                  
if (OrderType() == OP_BUY) { 
      
           OrderClose(OrderTicket(),OrderLots(),Bid,3,Green); // закрываем позицию
                 //return(0); // выходим
                }       
      
 //--------------------------------------------------------
if (OrderType() == OP_SELL) { 
     
                 OrderClose(OrderTicket(),OrderLots(),Ask,3,Green); // закрываем позицию
                // return(0); // выходим
                }       
   
 //-------------------------------------------------------                       
    }  // Symbol()  
  } // select
 } //total
} //Close_
 

先生们,请解释一下以下的区别

NormalizeDouble(High[iHighest(NULL,0,MODE_HIGH,10,0)],4)
NormalizeDouble(High[iHighest(NULL,0,MODE_HIGH,iBarShift(NULL,0,Time[1],FALSE),1)] + 10 * Point,4)

我不明白iBarShift 是什么 它有什么作用?

 
rid >> :

这是我最近回答一个类似的问题。

'给鉴赏家的问题'。

-看这个。

在你的情况下,你可能可以这样做。


谢谢你, RED!

这对我很有效,我是这样做的。

   if (( Close_P)&& TimeCurrent()>=StrToTime( CloseHour+":00")){  // даже по времени сделал
   int slippage=3;
   for (int i=OrdersTotal()-1; i>=0; i--)
   {
    if (!OrderSelect( i, SELECT_BY_POS, MODE_TRADES)) break;
    if (OrderType()==OP_BUY ) OrderClose (OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID), slippage);
    if (OrderType()==OP_SELL) OrderClose (OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK), slippage);
    }
    }


 
Dimoncheg >> :

先生们,能否请你们解释一下以下的区别

我不明白iBarShift 是什么 它有什么作用?

intiBarShift( 字符串, int timeframe, datetime time, bool exact=false)
按时间搜索一个酒吧。该函数返回指定时间所属的条形图的偏移量。如果在指定的时间内没有条形图(历史上的 "洞"),该函数就会根据确切的 参数返回-1或最近的条形图的偏移。
参数。
标志 - 仪器的符号名称。NULL表示当前符号。
时限 - 期间。可以是图表中的 一个时间段。0表示当前图表的周期。
时间 - 要搜索的时间值。
确实 - 如果没有找到酒吧,则返回值。FALSE - iBarShift返回最接近。TRUE - iBarShift返回-1。
 
1Rakso >> :
intiBarShift(字符串, int timeframe, datetime time, bool exact=false)
按时间搜索酒吧。该函数返回指定时间所属的条形图的偏移量。如果在指定的时间内没有条形图(历史上的一个 "洞"),该函数返回-1或最近的条形图的偏移量,这取决于确切的 参数。
参数。
标志 - 仪器的符号名称。NULL表示当前符号。
时限 - 期间。可以是图表中的 一个时间段。0表示当前图表的周期。
时间 - 搜索的时间值。
确实 - 如果没有找到酒吧,则返回值。FALSE - iBarShift返回最接近。TRUE - iBarShift返回-1。

我读了参考资料,但我不明白它说的是什么:"该函数返回条形的移位" - 这是什么意思?如果我读懂了第一条,它只是意味着烛台的数量,第二条意味着一些位移。我想我需要在某些条件下得到最近的高点,第一种情况是行不通的,因为我可能看不到最多10个柱子(也可能看不到最多20或30个柱子),我应该如何正确描述它(例如在跨越2个Mascos之后得到最近的高点)?

 
Dimoncheg >> :

我读了帮助,但我不明白它说什么,"该函数返回栏的偏移量" - 它是什么意思?如果我读懂了第一条,它只是意味着烛台的数量,第二条意味着一些转变。我想我需要在某些条件下得到最近的高点,第一种情况是行不通的,因为我可能看不到最多10个柱子(也可能看不到最多20或30个柱子),正确的方法是什么(跨越两个Mascos后的最近高点)?

ibarshift显示了从图表开始的第n个第二时间段的柱状图

 
Dimoncheg >> :

我读过了,但我不明白它说的是什么:"该函数返回条形移位" - 这是什么意思?如果我读懂了第一条,它仅仅意味着烛台的数量,但第二条意味着一些位移。我想我需要在某些条件下找到最近的高点,第一种情况是行不通的,因为我可能看不到最多10个柱子(也可能看不到最多20或30个柱子),正确的方法是什么(例如在跨越2个Mascos之后找到最近的高点)?

你给它时间,你就会得到一份礼物。

假设你知道零条的时间。

一些事件已经过去。

情况发生了变化,你想用这个时间来检查与零杆相比的杆的位置。

这就是你需要这个功能的地方。

 

迪蒙切格

我自己是这部分的客户)

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

我还有一个问题,如何将梁ZZ分成两半来计算它的水平,并在这个水平上做一个固定?


   double ind1. up = iCustom(Symbol(), PERIOD_H1, "ZigZag_NK", ZZ_Depth1, 5, 3, 0, 0);
   double ind1. dn = iCustom(Symbol(), PERIOD_H1, "ZigZag_NK", ZZ_Depth1, 5, 3, 1, 0);
   if ( ind1. up != EMPTY_VALUE  ) ind1. arr_1 =- 1;
	else if ( ind1. dn != EMPTY_VALUE )   ind1. arr_1 = 1;  
   

   if (( Close_P)&& ind. arr_1 /2*Point){   // как вписать формулу что я не так делаю? 
   
   int slippage=3;
   for (int i=OrdersTotal()-1; i>=0; i--)
   {
    if (!OrderSelect( i, SELECT_BY_POS, MODE_TRADES)) break;
    if (OrderType()==OP_BUY ) OrderClose (OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID), slippage);
    if (OrderType()==OP_SELL) OrderClose (OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK), slippage);
    }
    }
 
我的代码里面的指标被重新初始化了,我需要知道前后的状态,这样我就可以进行比较。实施这一过程的最佳方式是什么?
 
1Rakso >> :

迪蒙切格

我自己是这部分的客户)

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

我还有一个问题,如何将梁ZZ分成两半来计算它的水平,并在这个水平上做一个固定?


zigzag不在最后一个点上计算。作为一项规则,它也不能在这一层面上被修复。

原因: