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

 
makssub #:
下午。我使用这个代码来关闭所有的订单。但我注意到,如果有很多,并不是所有的都是封闭的。我可以添加什么来关闭所有的人,即使不是第一次。如果可能的话,请举例说明。

https://www.mql5.com/ru/docs/common/sleep

   if(AccountInfoDouble(ACCOUNT_EQUITY)<=TargetLoss || AccountInfoDouble(ACCOUNT_EQUITY)>=TargetProfit)
     {
      AllClose();
      Sleep(1000);
      AllClose();
      ExpertRemove();
     }
//---
Документация по MQL5: Общие функции / Sleep
Документация по MQL5: Общие функции / Sleep
  • www.mql5.com
Sleep - Общие функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

最后一个问题 )

不管是谁把他们的EA从mql平台移植到windows或linux上。让我解释一下,有一次,很久以前写了脚本的mu在线,该游戏本身抽的英雄,而你睡觉。因此,问题是,也许谁转移了顾问,在平台之外?那种交易是一个人,而不是一个机器人。

如果我没有正确解释,请原谅 )

 
makssub #:

最后一个问题 )

不管是谁把他们的EA从mql平台移植到windows或linux上。让我解释一下,有一次,很久以前写了脚本的mu在线,该游戏本身抽的英雄,而你睡觉。因此,问题是,也许谁转移了顾问,在平台之外?那种交易是一个人,而不是一个机器人。

如果解释得不正确,对不起 )

在Windows服务器(VDS或VPS)上放置MetaTrader,在其中运行专家顾问。这就是全部:士兵在睡觉,服务在进行 :-)

交易平台是算法的,是为机器人的积极参与而设计的,如果不完全由机器人参与的话。

虽然,点击器(在按钮中模仿人类 "点击 "的软件)有人使用。而自由职业者是定期被要求的,互联网上也有出售的自由职业者。

 

你好

谁能提供一个EA或一段代码(包括在猫头鹰的代码中),以改变下一个订单的SL TP?

假设订单是以0.01SL=30 TP=100 开的

下一个订单以0.02SL=30 TP=95 开盘。

等。

我应该用什么函数来描述这个问题?

这就是我的SL TP 目前的分配方式。

//+-----------------------------------------------------------------------------------------------+
//|                                                                    Функция модификации ордера |
//+-----------------------------------------------------------------------------------------------+
void vOrderModify(int iOTi)
  {
   int    iOTy = -1;    // Тип ордера
   double dOOP = 0;     // Цена открытия ордера
   double dOSL = 0;     // Стоп Лосс
   int    iMag = 0;     // Идентификатор советника
   double dSL  = 0;     // Уровень убытка
   double dTP  = 0;     // Уровень прибыли

// Выберем по тикету открытый ордер, получим некоторые значения
   if(OrderSelect(iOTi, SELECT_BY_TICKET, MODE_TRADES))
     {
      iOTy = OrderType();
      dOOP = OrderOpenPrice();
      dOSL = OrderStopLoss();
      iMag = OrderMagicNumber();
     }

// Если ордер открыл данный советник, то входим в условие
   if(OrderSymbol() == Symbol() && OrderMagicNumber() == iMag)
     {
// Если Стоп Лосс текущего ордера равен нулю, то модифицируем ордер
      if(dOSL == 0)
        {
         if(iOTy == OP_BUY)
           {
            dSL = NormalizeDouble(dOOP - StopLoss * Point, Digits);
            dTP = NormalizeDouble(dOOP + TakeProfit * Point, Digits);

            bool bOM = OrderModify(iOTi, dOOP, dSL, dTP, 0, clrNONE);
           }

         if(iOTy == OP_SELL)
           {
            dSL = NormalizeDouble(dOOP + StopLoss * Point, Digits);
            dTP = NormalizeDouble(dOOP - TakeProfit * Point, Digits);

            bool bOM = OrderModify(iOTi, dOOP, dSL, dTP, 0, clrNONE);
           }
        }
     }
  }
 

各位专业人士,请指教,我想不出什么(我刚开始学习编程)。

这里是专家顾问的一个部分,哪一个都不重要。在OnInit()函数中,有两个返回操作符

我无法得到括号中的数字-1和0,它们来自哪里,中止的程序会返回哪里?

//|专家初始化功能|

//+------------------------------------------------------------------+
int OnInit()
{
*******************************************
如果(********* || *********)
{
Alert("***************",******(),"!!");
返回(-1)。
}


**** = *******;
*** = *********;
如果(******** || ********)
{
************;
************;
}
return(0);
}
//+------------------------------------------------------------------+
//|专家去初始化函数|
 
vladeimirami #:

我无法得到括号中的数字-1和0,它们来自哪里,中止的程序会返回到哪里?

https://www.mql5.com/ru/docs/event_handlers/oninit

继续阅读。零点是一个成功,该计划将继续运行。其他数字是工作的结束。

Документация по MQL5: Обработка событий / OnInit
Документация по MQL5: Обработка событий / OnInit
  • www.mql5.com
OnInit - Обработка событий - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Aleksei Stepanenko #:

https://www.mql5.com/ru/docs/event_handlers/oninit

继续阅读。零点是一个成功,该计划继续进行。其他数字是工作的结束。

糟糕。明白了。没有仔细阅读ENUM_INIT_RETCODE枚举。谢谢。总之,当初始化失败时,我们以零以外的任何数字退出。至少它从死角处移动了。谢谢你!
Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Функции обработки событий - Функции - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

检查符号图中是否有缺失的条形图的任务

我找不到解决这个问题的办法

我需要按照以下原则编写脚本:Print(date),Print(date),Print(date )如果有条形缺口的话

例如,脚本应该是M30图表上的48条,如果有47条的差距,就打印(date)

如何写?一个跨平台的解决方案是可取的。

P.S. 这应该在所有可用的历史上进行。

 

维塔利,你是如何估计酒吧的通过率的?一天48条?有时工作在晚上11点停止,有时在2点开始。如果你看一下卢布,那里晚上没有交易。

如果是严格意义上的每周5天24小时,那么我们将按顺序尝试每条杠,并检查顺序。但这样一来,就会有关于漏掉的信号,而这是不应该存在的。

 
Vitaly Muzichenko Print(date),Print(date )如果有条形缺口的话

例如,脚本应该是M30图表上的48条,如果有47条的差距,就打印(date)

如何写?一个跨平台的解决方案是可取的。

P.S. 这应该在所有可用的历史上进行。

还有一个类似的任务--用错过的条形图做一个时间框架。比如说,就是在一天中正好有1440分钟。如果其中一些是空的,那也没有关系。

没有什么快速、整洁和漂亮的办法 :-( 只有在一天的开始时形成一个数组,从0:00开始计算经过的分钟,然后这样填入。

通过比较iBars(current_time,0:01 of current day)和(current_time_beginning of day)/PERIOD_SECONDS,可以检查缺少分钟的事实。

原因: