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

 

你好,请帮我一下。交易机器人、EA、专家顾问都不工作。我下载了所有可能的东西,想检查一下这一切是如何运作的。我以为我的存款太少了,但我的模拟账户是一样的。我以为我的存款不多,但在模拟账户 上也一样。

 
Lilia.solomko:

你好,请帮我一下。交易机器人、EA、专家顾问都不工作。我下载了所有可能的东西,想检查一下这一切是如何运作的。我以为我的存款太少了,但我的模拟账户是一样的。我认为我的存款很少,但在我的模拟账户 上也是如此。

你怎么知道机器人没有交易?你是否确保交易策略所要求的所有条件都得到满足,以便开立头寸?还是你刚刚放置了机器人,但它没有立即打开交易?

 
Lilia.solomko:

你好,请帮我一下。交易机器人、顾问、专家顾问都不工作。我下载了所有可能的东西,想检查一下这一切是如何运作的。我以为我的存款太少了,但我的模拟账户是一样的。我以为我有一个小的存款,但在模拟账户 上也是如此。

我不知道这两个标签上写的是什么?


 
请帮助我写一个函数:将订单从较大的手数关闭到较小的手数(字符串Symbol, int type, bool hand orders, int Magic)。
即:符号选择、类型、是否考虑到手势、魔数。
 
Tigerfreerun:
请帮助我写一个函数:将订单从较大的手数关闭到较小的手数(字符串 Symbol, int type, bool hand orders, int Magic)。
即:符号选择、类型、是否考虑到手单、魔数。

是的,它可以随时使用。

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 11.12.2008                                                     |
//|  Описание : Закрытие позиций в порядке сортировки по размерам лотов.       |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента        (    ""       - любой символ,      |
//|                                             NULL      - текущий символ)    |
//|    op - операция                        (    -1       - любая позиция)     |
//|    mn - MagicNumber                     (    -1       - любой магик)       |
//|    sd - Направление сортировки лотов    (MODE_ASCEND  - возрастание,       |
//|                                          MODE_DESCEND - убывание)          |
//+----------------------------------------------------------------------------+
void ClosePosBySortLots(string sy="", int op=-1, int mn=-1, int sd=MODE_DESCEND) {
  double a[][2];                  // Массив лотов и тикетов
  int    i, k=OrdersTotal();      // Счётчик и количество ордеров
  int    p=0;                     // Количество позиций

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (mn<0 || OrderMagicNumber()==mn) {
            p++;
            ArrayResize(a, p);
            a[p-1][0]=OrderLots();
            a[p-1][1]=OrderTicket();
          }
        }
      }
    }
  }

  // вдруг позиций нету, тогда и закрывать нечего
  if (p>0) {
    ArraySort(a, WHOLE_ARRAY, 0, sd);
    for (i=0; i<p; i++) {
      if (OrderSelect(a[i][1], SELECT_BY_TICKET)) {
        // проверим незакрытость на всякий случай,
        // может какая-то позиция уже закрылась по стопу/тейку
        if (OrderCloseTime()==0) ClosePosBySelect();
      }
    }
  }
}
 
Alekseu Fedotov:

是的,它已经准备好了。

试图使用它,由于某些原因,它不工作。
在这个函数中,哪里是关闭本身,就我所见,有一个对另一个函数的引用?
 
Tigerfreerun:
试图使用它,由于某些原因,它不工作。
在这个函数中,关闭本身在哪里,就我所见,有一个对另一个函数的引用?

是的,那里有一个完整的ClosePosBySelect()函数,而不仅仅是发送一个没有状态和结果检查的交易指令

搜索该网站会给你一个链接,可以看到Kim的ClosePosBySelect()函数

 
Tigerfreerun:
试图使用它,由于某些原因,它不工作。
在这个函数中,哪里是关闭本身,就我所见,有一个对另一个函数的引用?

在这个函数的标题中,有一个网站地址,去下载所有的库。

它工作得很好。

 

我画的是横条。该指标根据坐标正确地放线,但在某些时候,在一个新的条形图 上放一条线,任意的价格,由许多不同长度的线段组成,相互叠加。外星人 "的设置价格不符合任何条件。它们从何而来,如何才能预防它们?

if(Line)
  {
   n_++;
   Setline(n_,Time[b_u_pbu],High[b_u_pbu],Time[b_u_pbu1],High[b_u_pbu],clrLime);
  }
//
void Setline(int sh,datetime tm,double pr,datetime tm1,double pr1,color clr)
  {
   ObjectCreate("-"+sh,OBJ_TREND,0,tm,pr,tm1,pr1,clr);
   ObjectSet("-"+sh,7,STYLE_SOLID);
   ObjectSet("-"+sh,10,false);
   ObjectSet("-"+sh,6,clr);
   ObjectSet("-"+sh,8,2);
  }
 
bij:

我画的是横条。该指标根据坐标正确地放线,但在某些时候,在一个新的条形图 上放一条线,任意的价格,由许多不同长度的线段组成,相互叠加。外星人 "的设置价格不符合任何条件。它们从何而来,如何才能预防它们?

线路的名称发生了变化,因此线路也多了起来。

在这种情况下,最好在行名中包括酒吧的开放时间。

原因: