[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 634

 
artmedia70:

还有一件事...

测试时,我从图表窗口中删除了所有从模板(模板以一个EA命名,测试时自动加载)中自动加载的放纵行为。

在测试者的日记中,不断写到成功加载一个自定义的放纵,并紧接着写到删除的记录。就这样,在整个测试过程中一直在进行......

它是正常的还是坏事?

我怎样才能解决这个问题呢?


我可能回答得晚了,但我自己也遇到过这个问题。这不是好事 :)

我在杂志上有这样的记录,当通过iCustom()调用一个自定义指标 时,我错误地忘记了传递其中一个参数。编译器没有跟踪这些错误,甚至在测试过程中也是如此,因为指标名称是正确的,MT写道一切都加载成功了,但是没有检查参数的数量,由于参数的指定不正确,指标发生了错误,立即被卸载。我注意到,测试运行缓慢,日志也是如此。

01:11:13 2000.01.03 02:00 EMMA_Update_2 EURUSD,M15:加载成功

01:11:13 2000.01.03 02:00 EMMA_Update_2 EURUSD,M15: 已删除

01:11:13 2000.01.03 02:01 EMMA_Update_2 EURUSD,M15:加载成功

01:11:13 2000.01.03 02:01 EMMA_Update_2 EURUSD,M15: 已删除

我开始研究,发现这样的问题是由于我的不注意,我试图 "在飞行中 "将指标放/移出,这次我在日志中没有看到任何 "动画",问题出在iCustom()上,所以检查一下,以防万一:)

 

ToLik_SRGV:

所有的问题都出在iCustom()上,所以要检查一下,以防万一 :)

这是正确的。这是因为论据的数量不对。
 

就如何设置挂单的 到期日给出建议。

不知何故,它似乎不想为我工作,而且手册中也没有多少关于它的信息。

如果你能给我一个例子。

预先感谢你。

 
ToLik_SRGV:

可能回复晚了,但我自己也遇到了这个问题。这是不好的 :)

我在日志中有这样的记录,当通过iCustom()调用一个自定义指标时,我错误地忘记了传递其中一个参数。编译器没有跟踪这些错误,甚至在测试过程中也是如此,因为指标名称是正确的,MT写道一切都加载成功了,但是没有检查参数的数量,由于参数的指定不正确,指标发生了错误,立即被卸载。我注意到,测试运行缓慢,日志也是如此。

01:11:13 2000.01.03 02:00 EMMA_Update_2 EURUSD,M15:加载成功

01:11:13 2000.01.03 02:00 EMMA_Update_2 EURUSD,M15: 已删除

01:11:13 2000.01.03 02:01 EMMA_Update_2 EURUSD,M15:加载成功

01:11:13 2000.01.03 02:01 EMMA_Update_2 EURUSD,M15: 已删除

我开始研究,发现这样的问题是由于我的不注意,我试图 "在飞行中 "将指标放/移出,这次我在日志中没有看到任何 "动画",问题出在iCustom()上,所以检查一下,以防万一:)

不,还不算太晚...恰到好处,谢谢你。
 
kwadrad:

就如何设置挂单的到期日给出建议。

不知何故,它似乎不想为我工作,而且手册中也没有多少关于它的信息。

如果你能给我一个例子。

预先感谢你。

在这里。这就是我的工作...

   double   tp,PriceOpn,PriceTake;
   string   sy=Symbol();
   double pa=MarketInfo(sy, MODE_ASK);
   double pb=MarketInfo(sy, MODE_BID);
   double po=MarketInfo(sy, MODE_POINT);

   Magic=511;
   Lots_New=NormalizeLot(Lots/2, False, NULL);
         
   PriceOpn  = NormalizePrice(pa+DistORD*po, NULL);
   PriceTake = NormalizePrice(pa+(DistORD+tp)*po, NULL);
 //------------------------------------------------------------------
   SetOrder(NULL, OP_BUYSTOP, Lots_New, PriceOpn, 0, PriceTake, Magic, TimeCurrent()+12*60); // 12 часов срок его жизни...
 //------------------------------------------------------------------
//==============================================================================================

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 02.08.2008                                                     |
//|  Описание : Установка ордера.                                              |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (NULL или "" - текущий символ)          |
//|    op - операция                                                           |
//|    ll - лот                                                                |
//|    pp - цена                                                               |
//|    sl - уровень стоп                                                       |
//|    tp - уровень тейк                                                       |
//|    mn - Magic Number                                                       |
//|    co - комментарий                                                        |
//|    ex - Срок истечения                                                     |
//+----------------------------------------------------------------------------+
void SetOrder(string sy, int op, double ll, double pp,
              double sl=0, double tp=0, int mn=0, string co="", datetime ex=0) {
  color    cl=IIFc(op==OP_BUYLIMIT || op==OP_BUYSTOP, clOpenBuy, clOpenSell);
  datetime ot;
  double   pa, pb, mp;
  int      err, it, ticket, msl;

  if (sy=="" || sy=="0") sy=Symbol();
  msl=MarketInfo(sy, MODE_STOPLEVEL);
  if (co=="") co=WindowExpertName()+" "+GetNameTF(Period());
  if (ex>0 && ex<TimeCurrent()) ex=0;
  for (it=1; it<=NumberOfTry; it++) {
    if (!IsTesting() && (!IsExpertEnabled() || IsStopped())) {
      Print("SetOrder(): Остановка работы функции");
      break;
    }
    while (!IsTradeAllowed()) Sleep(5000);
    RefreshRates();
    ot=TimeCurrent();
    ticket=OrderSend(sy, op, ll, pp, Slippage, sl, tp, co, mn, ex, cl);
    if (ticket>0) {
      if (UseSound) PlaySound(SoundSuccess); break;
    } else {
      err=GetLastError();
      if (err==128 || err==142 || err==143) {
        Sleep(1000*66);
        if (ExistOrders(sy, op, mn, ot)) {
          if (UseSound) PlaySound(SoundSuccess); break;
        }
        Print("Error(",err,") set order: ",ErrorDescription(err),", try ",it);
        continue;
      }
      if (UseSound) PlaySound(SoundError);
      mp=MarketInfo(sy, MODE_POINT);
      pa=MarketInfo(sy, MODE_ASK);
      pb=MarketInfo(sy, MODE_BID);
      if (pa==0 && pb==0) Message("SetOrder(): Проверьте в обзоре рынка наличие символа "+sy);
      Print("Error(",err,") set order: ",ErrorDescription(err),", try ",it);
      Print("Ask=",pa,"  Bid=",pb,"  sy=",sy,"  ll=",ll,"  op=",GetNameOP(op),
            "  pp=",pp,"  sl=",sl,"  tp=",tp,"  mn=",mn);
      // Неправильные стопы
      if (err==130) {
        // Корректировка ценовых уровней
        if (modeSetOrders==1) {
          Sleep(1000*5.3);
          switch (op) {
            case OP_BUYLIMIT:
              if (pp>pa-msl*mp) pp=pa-msl*mp;
              if (sl>pp-(msl+1)*mp) sl=pp-(msl+1)*mp;
              if (tp>0 && tp<pp+(msl+1)*mp) tp=pp+(msl+1)*mp;
              break;
            case OP_BUYSTOP:
              if (pp<pa+(msl+1)*mp) pp=pa+(msl+1)*mp;
              if (sl>pp-(msl+1)*mp) sl=pp-(msl+1)*mp;
              if (tp>0 && tp<pp+(msl+1)*mp) tp=pp+(msl+1)*mp;
              break;
            case OP_SELLLIMIT:
              if (pp<pb+msl*mp) pp=pb+msl*mp;
              if (sl>0 && sl<pp+(msl+1)*mp) sl=pp+(msl+1)*mp;
              if (tp>pp-(msl+1)*mp) tp=pp-(msl+1)*mp;
              break;
            case OP_SELLSTOP:
              if (pp>pb-msl*mp) pp=pb-msl*mp;
              if (sl>0 && sl<pp+(msl+1)*mp) sl=pp+(msl+1)*mp;
              if (tp>pp-(msl+1)*mp) tp=pp-(msl+1)*mp;
              break;
          }
          Print("SetOrder(): Скорректированы ценовые уровни");
          continue;
        }
        // Вход по текущим ценам
        if (modeSetOrders==2) {
          Print("SetOrder(): Вход по текущим ценам");
          if (op==OP_BUYLIMIT || op==OP_BUYSTOP) OpenPosition(sy, OP_BUY, ll, sl, tp, mn, co);
          if (op==OP_SELLLIMIT || op==OP_SELLSTOP) OpenPosition(sy, OP_SELL, ll, sl, tp, mn, co);
          break;
        }
      }
      // Блокировка работы советника
      if (err==2 || err==64 || err==65 || err==133) {
        gbDisabled=True; break;
      }
      // Длительная пауза
      if (err==4 || err==131 || err==132) {
        Sleep(1000*300); break;
      }
      // Слишком частые запросы (8) или слишком много запросов (141)
      if (err==8 || err==141) Sleep(1000*100);
      if (err==139 || err==140 || err==148) break;
      // Ожидание освобождения подсистемы торговли
      if (err==146) while (IsTradeContextBusy()) Sleep(1000*11);
      // Обнуление даты истечения
      if (err==147) {
        ex=0; continue;
      }
      if (err!=135 && err!=138) Sleep(1000*7.7);
    }
  }
}
 
artmedia70:

在这里。这就是我的工作...




О.谢谢你。

你必须明白,这是从开场起以分钟为单位的时间框架?

 
kwadrad:


О.谢谢你。

我应该理解为这是指从开盘起几分钟内的时间范围?

是的,在12小时寿命的例子中...12*60分钟
 

我知道这可能看起来是OffTop,但对我来说,作为一个写作专家 的新人(和一般的编程,不考虑我二十年前为Spectrum的汇编程序的经验),我的问题,而是....来吧,这只是一个问题,将是正确的点。

在测试EA的两年历史时,我注意到有几个月出现了非常强烈的缩减。这是给老前辈的一个问题:有哪些处理缩水的方法,在你看来最有效的方法是什么,你能建议吗?

我从自己的有利位置,到目前为止,我看到两种方法。

1.当股票缩水超过一定数量的百分比时,冻结所有交易,
1.1。在其盈亏平衡点之后,连接一个追踪止损,并将止损固定在与Ask/Bid的一个小距离上,从而确保一个小的利润,然后在价格之后拉动止损,在一定数量的收益点时部分平仓(以释放资金)。
1.2.在股本上升到一定比例后,慢慢开始交易...

2.相反,在禁用主交易后,我们必须使用半手,但有大量的订单,严格遵循趋势,在盈亏平衡点后有一个小的追踪止损。

我认为第一种方式可以防止资产的进一步大幅减少,但你必须等待很长时间让市场接近订单
,第二种方式会吃掉保证金,但在短期头寸的情况下,你可以迅速增加一些资金......

到目前为止,我只看到两种这样相反的方式。

同志们,你们有什么建议?欢迎任何,甚至是最,乍一看 "疯狂的废话 "的想法和建议......。

提前感谢 :)

 
难道测试器不允许你在超过日常的情况下进行测试吗?
 
artmedia70:
测试员是否不允许你在超过日常的情况下进行测试?


Ы

你在为银行间市场准备一个EA吗?

原因: