初学者的问题 MQL5 MT5 MetaTrader 5 - 页 125

 
progeon:
你能告诉我如何将一个二维数组显示为常数,即手动设置所有参数吗?
double Variable[][3]={{1, 2, 3},{ 4, 5, 6},{7, 8, 9}};

https://www.mql5.com/ru/articles/567

Основы программирования на MQL5 - Массивы
Основы программирования на MQL5 - Массивы
  • 2012.11.03
  • Dmitry Fedoseev
  • www.mql5.com
Наряду с переменными и функциями, массивы являются практически неотъемлемой частью любого языка программирования. Статья должна быть интересна в первую очередь новичкам, приступившим к изучению программирования на MQL5. Опытным программистам представляется хорошая возможность подытожить, обобщить и систематизировать свои знания.
 

你能告诉我如何在某一天的某个时间设置交易吗?

我在论坛上搜索并阅读了MQL5中的编程基础知识--时间,但仍然不明白如何将其全部纳入算法?

例如,我需要在周三第一根4点的蜡烛后开仓。

我从我的文章中获取了关于某一天交易的所有信息。

input bool Sunday   =true; // Воскресенье
input bool Monday   =true; // Понедельник
input bool Tuesday  =true; // Вторник 
input bool Wednesday=true; // Среда
input bool Thursday =true; // Четверг
input bool Friday   =true; // Пятница
input bool Saturday =true; // Суббота

bool WeekDays[7];
void WeekDays_Init()
  {
   WeekDays[0]=Sunday;
   WeekDays[1]=Monday;
   WeekDays[2]=Tuesday;
   WeekDays[3]=Wednesday;
   WeekDays[4]=Thursday;
   WeekDays[5]=Friday;
   WeekDays[6]=Saturday;
  }
bool WeekDays_Check(datetime aTime)
  {
   MqlDateTime stm;
   TimeToStruct(aTime,stm);
   return(WeekDays[stm.day_of_week]);
  }

我如何应用它呢?我尝试在OnTimer()中添加函数的调用,并设置一个条件,如果WeekDays_Check(3)==true,并且从周三开始的时间在秒内>14300 &&秒<14800,那么交易将被打开。

void OnTimer()
  {
   S_Time=TimeCurrent();
   if(WeekDays_Check(3)==true)
     {
      Print("Среда");
      long seconds=S_Time%86400;
      if (seconds>14300 && seconds <14800)
      {
      double Open_1=S_Open(NULL,PERIOD_CURRENT,1);
      double Close_1=S_Close(NULL,PERIOD_CURRENT,1);
      double High_1=S_High(NULL,PERIOD_CURRENT,1);
      double Low_1=S_Low(NULL,PERIOD_CURRENT,1);
      bool S_CriBuy=0,S_CriSell=0;
      double S_Lot;
      S_CriBuy=S_TailBar_Buy(Open_1,Close_1,High_1,Low_1);
      S_CriSell=S_TailBar_Sell(Open_1,Close_1,High_1,Low_1);
      Print("Прошлый бар",High_1);
      if(S_CriBuy==1)
        {
         double S_Price=Low_1;
         double S_SL=Low_1+SL*Point();
         double S_TP=Low_1-TP*Point();
         S_Lot=countLot(Lot,HandLot);
         S_Trade.SellStop(S_Lot,S_Price,NULL,S_SL,S_TP);
        }
      if(S_CriSell==1)
        {
         double S_Price=High_1;
         double S_SL=High_1-SL*Point();
         double S_TP=High_1+TP*Point();
         S_Lot=countLot(Lot,HandLot);
         S_Trade.BuyStop(S_Lot,S_Price,NULL,S_SL,S_TP);
        }
        }
     }
  }

不是这样的(它在任何一天开放。解释一下如何至少在一个特定的日子里进行交易?

提前感谢。如果代码是幼稚的 - 对不起,我只是学习)

 
DenisSavenko:

你能告诉我如何在某一天的某个时间设置交易吗?

我在论坛上搜索并阅读了MQL5中的编程基础知识--时间,但仍然不明白如何将其全部纳入算法?

例如,我需要在周三第一支4点钟的蜡烛后开出一笔交易。

我从我的文章中获取了关于某一天交易的所有信息。

我如何应用它呢?我尝试在OnTimer()中添加函数的调用,并设置一个条件,如果WeekDays_Check(3)==true,并且从周三开始的时间在秒内>14300 &&秒<14800,那么交易将被打开。

不是这样的(它在任何一天开放。解释一下如何至少在一个特定的日子里进行交易?

提前感谢。如果代码是幼稚的 - 对不起,我只是学习)

M.B.
   if(WeekDays_Check(TimeCurrent())==true)
?
 
uncleVic:
也许。
?

是的,它成功了!非常感谢你。当然,在日偏移方面仍有一些错误,但这已经是我的那部分代码问题了,但就像现在这样,一切都在工作。如果你在不必要的日子里放假,在真实的交易中去--这就是需要的。

再次感谢

 
我在Insta Trader重新注册了一个真实的账户,在MQ5中,我 在/**/订阅了一个信号,然后打开Insta Trader,进入系统设置,启用信号,但Atam写道信号没有连接,我如何连接信号并在工作中用真实的钱运行它 [交易账户#5216372]
 
752360:
我在Insta Trader重新注册,连接 一个真实账户,在MQ5/***/订阅成功,然后打开Insta Trader,进入系统设置,启用信号,但是Atam写的信号没有连接,我如何连接信号,用真实的钱把它生效[交易账户#5216372]。
与非真实货币一样,即登录你的真实账户并注册信号。
 
具体在哪里登录
 
752360:
具体在哪里登录

交易终端

订阅一个信号

 

你好。

请告诉我如何在CTrade类中设置挂单的到期日(EXPIRATION)?我试图在发送 CTrade.SellStop(Lot,Price,NULL,SL,TP,expiration)时添加这个头寸;它总是说 "无法转换枚举"。我在CTrade的文档中唯一发现的是如何找出RequestExpiration 挂单的有效期,但我不知道如何设置它。

CTrade是否可以设置到期时间?或者说,可能需要通过OrderSend()使用完整的请求 MqlTradeRequest?我不太明白如何使用它。 所有文章中的文章都指向CTrade。

 
DenisSavenko:

你好。

请告诉我如何在CTrade类中设置挂单的到期日(EXPIRATION)?我试图在发送 CTrade.SellStop(Lot,Price,NULL,SL,TP,expiration)时添加这个头寸;它总是说 "无法转换枚举"。我在CTrade的文档中唯一发现的是如何找出RequestExpiration 挂单的有效期,但我不知道如何设置它。

CTrade是否可以设置到期时间?或者说,可能需要通过OrderSend()使用完整的请求 MqlTradeRequest?我不太了解如何使用它,因为所有的文章中都提到了 CTrade。

   bool              SellStop(const double volume,const double price,const string symbol=NULL,const double sl=0.0,const double tp=0.0,
                              const ENUM_ORDER_TYPE_TIME type_time=ORDER_TIME_GTC,const datetime expiration=0,const string comment="");
错过的参数