新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1339

 
Iurii Tokman:

代码需要插入Alt+S
,函数在哪里?
你是如何编译的?没有错误?

他的代码对挂单有作用,而且该功能对头寸也有作用--需要稍作调整。

 
Vitaly Muzichenko:

他的代码适用于挂单,而函数适用于头寸 - 我们需要做一些调整

完全正确,它只适用于卖出止损和买入止损限价单。你需要纠正什么?

 
sibiriyak73:

完全正确,只有卖出止损和买入止损的限价单正在进行工作。有什么需要修复的?

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает флаг торгов сегодня.                                |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
bool isTradeToDay(string sy="", int op=-1, int mn=-1) {
  int i, k=OrdersHistoryTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (TimeDay  (OrderOpenTime())==Day()
              &&  TimeMonth(OrderOpenTime())==Month()
              &&  TimeYear (OrderOpenTime())==Year()) return(True);
            }
          }
        }
      }
    }
  }
  k=OrdersTotal();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()<=6) { 
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (TimeDay  (OrderOpenTime())==Day()
              &&  TimeMonth(OrderOpenTime())==Month()
              &&  TimeYear (OrderOpenTime())==Year()) return(True);
            }
          }
        }
      }
    }
  }
  return(False);
}
 
Vitaly Muzichenko:

这个功能是针对买入方的,还是针对买入和卖出的?

我是否应该保留6种订单类型,并以黄色标示?

它的编译没有错误,但它不能打开订单

 
sibiriyak73:

这个功能是针对买入方的,还是针对买入和卖出的?

我是否应该保留6种订单类型,并以黄色标示?

编译正确,但不能打开订单

这是针对所有类型的。 如果你正确使用它,它应该是有效的。


P.S. 试着从逻辑上分析为什么它可能不起作用,是什么在阻止它起作用。

 

而且,插入一次功能可能更好,反正市场上什么类型的东西都无所谓了

if(Hour()==Nac && !isTradeToDay(Symbol()))
 {
   if(iOpen(NULL,PERIOD_D1,0)<iOpen(NULL,PERIOD_D1,1))
   {
     int ticket1=OrderSend(Symbol(),OP_SELLSTOP,1.5,limit1,3,SL1,TP1,NULL,0,0,clrRed); //Здесь открываем
   }

   if(iOpen(NULL,PERIOD_D1,0)>iOpen(NULL,PERIOD_D1,1))
   {
     int ticket=OrderSend(Symbol(),OP_BUYSTOP,1.5,limit,3,SL,TP,NULL,0,0,clrBlueViolet); //Здесь открываем
   }
 }
 
祝大家新年快乐,牛气冲天。看涨的增长给所有!)

你能告诉我如何计算前一天(或一小时)最低和最高价格之间的点值吗?
 
Порт-моне тв:
祝大家新年快乐,牛气冲天。看涨的增长给所有!)

你能告诉我如何计算前一天(或一小时)最低和最高价格之间的点值吗?
( High[1] - Low[1] ) / Point()
 
大家好!

你能告诉我这个代码是什么意思,或者更准确地说,它在原则上是如何工作的吗?在这种情况下,使用宏观替代,它是打开订单的主要条件。PS。全局变量 没有在任何地方被修改。

#define  MARKET_WATCH          (0)

bool  Gl_Var_MarketWatch    =  MARKET_WATCH;  // глобальная переменная

if(Gl_Var_MarketWatch) ticket=OrderSend(symbol_name,op,ll,pp,MaxSlippage,0,0,co,mn,0,clOpen);
      else ticket=OrderSend(symbol_name,op,ll,pp,MaxSlippage,sl,tp,co,mn,0,clOpen);
Макроподстановка (#define) - Препроцессор - Основы языка - Справочник MQL4
Макроподстановка (#define) - Препроцессор - Основы языка - Справочник MQL4
  • docs.mql4.com
Директива #define подставляет expression вместо всех последующих найденных вхождений identifier в исходном тексте. identifier заменяется только в том случае, если он представляет собой отдельный токен. identifier не заменяется, если он является частью комментария, частью строки, или частью другого более длинного идентификатора. expression может...
 
Tom Seljakin:
大家好!你能告诉我这个代码是什么意思,或者更准确地说,它在原则上是如何工作的吗?在这种情况下,使用宏观替代,它是打开订单的主要条件。PS。

全局变量 没有在任何地方被修改。

也许是

MARKET_WATCH,                               // окна "Обзор рынка"
原因: