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

 
Mihail Matkovskij #:

我在上面都写了。仔细重读帖子。你的任务不是什么难事。如果你专注于任务,不在论坛上争吵,你就会好起来。好运。

"争吵 "是老师进入聊天室。我很抱歉,但你更像是一个傲慢自大的人,而不是一个能言善辩的人。会过去的,我13岁的时候也是这样的。
 
Выше я всё написал

写了什么?关于阵列?是我先做的,还是你指指标的定义?或者是关于如何开立两个订单并将第一个订单的TF放在第二个订单中?这样一个整洁的解决方案导致了一堆的副作用。

 
Nerd Trader #:
"争吵"--老师已经进入了聊天室。对不起,但你伸出你的自我,比你写的要点更多。会过去的,我13岁的时候也是这样的。

这不是关于我的重要性或其他事情,而是关于编程知识的重要性,而你并没有。如果你在大学里,在课堂上有这样的行为,至少老师会训斥你或把你赶出去。这时你会告诉他你的自我......?:)

你没有知识,不是因为你是个初学者,而是因为你无知......当有人再次告诉你,EA与指标不同,你会继续说你的 "这有什么区别"。:)

我写道:"指标打开交易 "和 "机器人需要一个交易时间框架"。甚至没有人会回答这样的问题,因为它缺乏任何逻辑。但我试图回答它。我得到了很多的指责和侮辱。这是代替 "谢谢你 "吗?
 
Nerd Trader 在远程服务器上 工作。我们可以使用一个插座,但对我来说仍然很困难。

在magik中加密。我已经在文章中描述了整个加密和解密过程。

 
Artyom Trishkin #:

在magik中加密。我已经在文章中描述了整个加密和解密过程。

给我链接,我每次都要花30分钟才能找到它)加密的好方法。

 
Valeriy Yastremskiy #:

给我链接,我每次都要花30分钟才能找到它)好的编码方法。

我自己也不记得了 :)

我也要找30分钟 ...

 
Nerd Trader #:

这就不行了,因为机器人是在远程服务器上运行的,所以我把TF写在评论里,那就可以了,但是当你关闭部分卷的时候,它就会被票据覆盖。

为不同时间段的订单做一个单独的魔法数字。部分关闭时,这个数字不会改变。

//+-----------------------------------------------------------------------------+
//|  Описание : Автоматическая генерация магического номера                     |
//|             Generate Magic Number                                           |
//|             Магический номер генерируется в зависимости от инструмента      |
//|             и таймфрейма                                                    |
//+-----------------------------------------------------------------------------+
int GenerateMagicNumber(int mn)
  {
   int      GenerateMN = 0;
   int      SymNumber = 0;
   int      PMinuts = _Period;
// 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946
   if(StringFind(_Symbol,"BTC",0)>=0)  //1
      SymNumber = 5;
   if(StringFind(_Symbol,"ETH",0)>=0)  //2
      SymNumber = 8;
   if(StringFind(_Symbol,"BCH",0)>=0)  //3
      SymNumber = 13;
   if(StringFind(_Symbol,"LTC",0)>=0)  //4
      SymNumber = 21;
   if(StringFind(_Symbol,"XRP",0)>=0)  //5
      SymNumber = 34;
   if(StringFind(_Symbol,"SOL",0)>=0)  //6
      SymNumber = 55;
   if(StringFind(_Symbol,"LINK",0)>=0) //7
      SymNumber = 89;
   if(StringFind(_Symbol,"XLM",0)>=0)  //8
      SymNumber = 144;
   if(StringFind(_Symbol,"TRX",0)>=0)  //9
      SymNumber = 233;
   if(StringFind(_Symbol,"ATOM",0)>=0) //10
      SymNumber = 377;
   if(StringFind(_Symbol,"XMR",0)>=0)  //11
      SymNumber = 610;
   if(StringFind(_Symbol,"ADA",0)>=0)  //12
      SymNumber = 987;
   if(StringFind(_Symbol,"DOT",0)>=0)  //13
      SymNumber = 1597;
   if(StringFind(_Symbol,"DOGE",0)>=0) //14
      SymNumber = 2584;

   GenerateMN = (int)(SymNumber+PMinuts+mn);

   return (int)(GenerateMN);
  }
//--- End ---
 
Volodymyr Zubov #:

为不同时间段的订单制定一个单独的神奇数字。部分关闭时,这个数字不会改变。

而且,如果从顺序/位置上已经可以读出,为什么还要对魔法数字中的符号进行加密?为什么SymNumber的值是这样的?

 
Volodymyr Zubov #:

为不同时间段的订单制定一个单独的神奇数字。这个数字在部分关闭时不会改变。

谢谢你的StringFind。但这对我来说会容易得多。

int GenerateMagicNumber(int mn)
  {
   int      GenerateMN = 0;
   int      PMinuts = _Period;

   GenerateMN = (int)(PMinuts+mn);

   return (int)(GenerateMN);
  }

而我将在以后使用OrderSymbol()获得订单符号。

 

你好

如果我收到一个信号(例如,买入),我需要在满足手数条件后开一个相反的订单(卖出)。

我建立了代码。

// Получим значение индикатора
   dMA = iMA(Symbol(), 0,PeriodMA, MovingShift, MODE_SMA, PRICE_CLOSE, 0); // MODE_SMA - простое усреднение , значение 0. PRICE_CLOSE- цена закрытия, значение 0.

// Если нет открытых ордеров, то входим в условие
      if(CountOrders()==0)
     {
// Если появился сигнал на покупку, то откроем ордер на покупку
      if(bSignalBuy() == true)
         vOrderOpenBuy();
         
         if((bSignalBuy() == true)&&(GetLotSize()>LotControl))
         vOrderOpenSell();
// Если появился сигнал на продажу, то откроем ордер на продажу
      if(bSignalSell() == true)
         vOrderOpenSell();
  
         if((bSignalSell() == true)&&(GetLotSize()>LotControl))
         vOrderOpenBuy();
     }

但当一个条件发生时

(GetLotSize()>LotControl)

但在这种情况下,两个相反的订单同时打开。 我怎样才能 "解决 "它呢?

原因: