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

 
Maksim Kalachev #:

我读过,只有指标是作为指标设置的。但当我加载演示时,它出现在EA中。

不要在不同的论坛主题中发布相同的问题。

我在那里回答了你。

关于交易、自动交易系统和测试交易策略的论坛

虫子,虫子,问题

Artyom Trishkin, 2022.04.05 15:13

你用旧的处理程序编写了它。

你应该使用OnCalculate()。


 
Artyom Trishkin #:

不要在不同的论坛主题中发布相同的问题。

我已经在那里回答了你。


已经在读了。谢谢你!

 
我可以删除我与一个人的通信吗? 我想关闭与一个用户的聊天记录
 
makssub #:

下午好。

帮忙写写代码,也许有例子。
任务。

有几个开放的订单,不同的手数,不同的方向。其中一个人被埋葬的利润,让我们假设为20。然而,有一个负利润的未平仓订单,让我们假设-55,0.05手。我想关闭一个负数订单的一部分,其金额为一个正数订单的利润,以减少缩水。

我曾试图用while运算符来写这个,但并不顺利。

预先感谢你。

你没有写出这是在同一个乐器上还是在不同的位置上?
 

为什么MT5的代码可以工作,而MT4却不能?建立1Z5Z

保存模式,但不应用该模式

//+------------------------------------------------------------------+
//|                                              File Read Write.mq4 |
//|                      Copyright © 2008, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net/"

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
string SYMBOL;
string ccname;
void OnStart()
  {

   SYMBOL = _Symbol;
   ccname = SYMBOL;
   SaveTemplate();
 
 DownloadTemplate();
     
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void SaveTemplate(void)
  {
   if(ChartSaveTemplate(0, ccname))
      Print("Template successfully saved!  " + SYMBOL);
   else
      Print("Template save Failed!  " + SYMBOL);
   return;
  }
//+------------------------------------------------------------------+
void DownloadTemplate(void)
  {

   if(ChartApplyTemplate(0,ccname))
      return;
   else
      Print("Template download Failed!  " + SYMBOL);
  }

 
你能告诉我如何使程序只在新的蜡烛图 开始时工作,并且在运行代码后,保持不动,等待下一个蜡烛图开始?
 
Ivan Butko 新的蜡烛图 开始时工作,并在运行代码后潜伏并等待下一个蜡烛图的开始吗?

这就是所谓的开盘价。
,这是基本的。

 
Pavel Malyshko #:

这就是所谓的开盘价。
是基本的。

我不明白。嘀嗒一声,支票就通过了。下一次嘀嗒声到来时,它再次检查。同样的定时器不适合开口。

我唯一能想到的是记住开场的时间,把蜡烛的时间加进去,然后用新值检查当前的时间

 
Ivan Butko #:

我不明白。有虱子进来,就会被检查。下一次打勾的时候,又会被检查。同样的计时器不适合开口。

我只能记住开盘时间,把蜡烛时间加进去,然后用新值检查当前时间。

关于交易、自动交易系统和策略测试的论坛。

在MQL4和MQL5中,任何来自新手的问题,任何关于算法和代码的帮助和讨论

Valeriy Yastremskiy, 2022.03.30 09:37

 
static datetime OldTime=0;
if(iTime(NULL,0,0)!=OldTime)
      {
      Alert("ДИВЕРГЕНЦИЯ НА "+Symbol()); OldTime=iTime(NULL,0,0);
      }

如果你不知道这个算法,当价格到达终点时,你会得到一个提醒。当一个新的条形图出现时,iTime(NULL,0,0)将被改变,而平等将不会出现一次,那么平等和if将是假的

你也可以这样做。

static bool FlagNewBar=false;
   if(BarTime!=Time[0])
     {
      BarTime=Time[0];
      FlagNewBar=true;
     }

或者我们可以在任何时间框架上得到一个新的条形图。

bool FlagNewBarF(int prd, datetime &ArgBarTime,bool &FlagNbar)
  {
   FlagNbar=false;
   if(ArgBarTime!=iTime(NULL,prd,0))
     {
      ArgBarTime=iTime(NULL,prd,0);
      FlagNbar=true;
     }

   return(FlagNbar);
  }

调用情况如下

 if(FlagNewBarF(1, BarTime1,FlagNewBar1))
     {
      Alert("FlagNbar1 ",FlagNewBar1,"BarTime1 ",TimeToStr(BarTime1,TIME_DATE|TIME_SECONDS));
      
     }

   if(FlagNewBarF(5, BarTime5,FlagNewBar5))
     {
      Alert("FlagNbar5 ",FlagNewBar5,"BarTime5 ",TimeToStr(BarTime5,TIME_DATE|TIME_SECONDS));
     
     }

 
Valeriy Yastremskiy #:
你没有写出这是在同一个乐器上还是在不同的位置上?

让它都在同一货币对内,例如EurUsd。两者都在购买中开放。

原因: