任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 282

 

所有论坛成员,你们好。

有识之士的建议吗?我有一个根据指标信号打开交易的EA,如何以编程方式规定一个信号反击,即在获利 或关闭追踪止损的订单后,EA跳过下两个信号,不打开交易。

我将感谢你的帮助。

void CheckForOpen()
{
   int ticket, STOPLEVEL;
   double Price, SL, TP; 
   STOPLEVEL=MarketInfo(Symbol(),MODE_STOPLEVEL);
   
   
   double AO = iIchimoku (Symbol(),0,Tenkan,Kijun,Senkou,MODE_SENKOUSPANA,1); // верхняя граница облака 
   double BO = iIchimoku (Symbol(),0,Tenkan,Kijun,Senkou,MODE_SENKOUSPANB,1); // нижняя граница облака 

      
   if(Volume[0]>1) return;

   if (AO>BO) // продажа
   {
   if (Open[1]>Close[1] && Close[1] < BO && Open[1]>BO) // продажа

     {
     Price = NormalizeDouble(Bid, Digits); // округляем до нужного нам числа цифр после запятой
     if(StopLoss >= STOPLEVEL)
          if(StopLoss > 0)
      {
       SL = Price + StopLoss*Point; // вычисляем стоплос
       SL = NormalizeDouble(SL, Digits); // округляем до нужного нам числа цифр после запятой
      }
       else SL = 0;

      if(TakeProfit > 0)
      {
       TP = Price - TakeProfit*Point;
       TP = NormalizeDouble(TP, Digits); 
      }
       else TP = 0;

      { 
      ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,SL,TP,"Pattern_1",Magic,0,Red);
      return;
      }
    }
    }
 
alexey1979621:

所有论坛成员,你们好。

有识之士的建议吗?我有一个根据指标信号打开交易的EA,如何以编程方式规定一个信号反击,即在获利或关闭追踪止损的订单后,EA跳过下两个信号,不打开交易。

我将感谢任何帮助。


我不知道我想要什么,但请告知如何实现它。

而你所说的跳过信号究竟是什么意思?

1)虚拟交易?就像我们开了一个假的头寸,监控,关闭也是假的(Ilanim)。

2)尝试使用一段时间后的信号,在ХХ分钟内可能会收到新的信号。

3) 在一定数量的小节 后评估信号? 在ХХХ小节后可以收到新的信号。

..................

还有,任何其他要求。

替换结构if(Volume[0]>1) 返回 它不一定能在演示中触发,更不用说真实了。

多一个条件不就可以了吗?

if (StopLoss >= STOPLEVEL)         //    if (StopLoss > STOPLEVEL) так не проще?
   if(StopLoss > 0)

逻辑不正确,否则 处理第二个条件

if (StopLoss >= STOPLEVEL)
   if (StopLoss > 0){
      SL = Price + StopLoss*Point; // вычисляем стоплос
      SL = NormalizeDouble(SL, Digits); // округляем до нужного нам числа цифр после запятой
   }
   else SL = 0;

以及更多...

 
ALXIMIKS:


我想要的东西我不知道是什么,但告诉我如何实现它。

你所说的信号缺失到底是什么意思?

1)虚拟交易?就像我们开了一个虚构的头寸,监控它,也虚构地关闭它(Ilanim)。

2)尝试使用一段时间后的信号,在ХХ分钟内可能会收到新的信号。

3) 在一定数量的小节后评估信号? 在ХХХ小节后可以收到新的信号。

..................

还有,任何其他要求。

替换结构if(Volume[0]>1) 返回 它不一定能在演示中触发,更不用说真实了。

多一个条件不就可以了吗?

逻辑不正确,否则 处理第二个条件

以及更多...

我是个写作新手,也就是说,我自己正在接触所有的东西,最主要的是它能工作。if(Volume[0]>1) 在真实的和演示的,以及在测试器中都能正常工作。我已经把我的愿望写得很清楚了。根据指标信号开启交易(我在代码中附上了交易开启的条件)。在前一笔交易以获利 和追踪止损平仓后,我需要从指标中跳过1个或2个或3个(可调参数)信号,即不开仓。我不知道如何以编程方式开出处方,这就是我请求帮助的原因。
 

大家好!)我最近对MQL感兴趣,现在我遇到了第一个问题。我们的想法是,EA根据功能开仓,但不想平仓,因此这些没有任何止损的市场订单被放置到测试时段结束。问题是我在哪里犯了错误。

这里是一个接近的片段。

 if(Level >= 0.000100 && LevelXP>LevelXM && CountSell() > 0)
          {
               for(i=OrdersTotal()-1; i >= 0; i--)
               {
                   if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == true)
                   {
                       if(OrderMagicNumber() == Magic && OrderType() == OP_SELL)
                          OrderClose(OrderTicket(), OrderLots(), Ask, Slippage);
                   }
               }
          }
 
ElhoroS:

大家好!)我最近对MQL感兴趣,现在我遇到了第一个问题。我们的想法是,EA根据功能开仓,但不想平仓,因此这些没有止损的市价订单一直放置到测试时段结束。问题是我在哪里做错了?


1)也许问题出在关闭条件上(你隐约给出了)。

2)你在这段代码中只关闭了OP_SELL(你是否记得实现了买入条件? 确保关闭的条件是正确的)

3)在蛮力检查时,你没有检查货币对和时间框架(为什么要再做一次?)

4)没有检查重新报价(在策略测试器中,一切都应该是好的,但在模拟或真实账户中,并不总是如此)。

5) 正如 Artemis artmedia70 所声明的,MarketInfo(Symbol(),MODE_ASK) Ask 更好 -- 它提供更多的实际价格

 
ALXIMIKS:


5) 正如Artemis 所说,MarketInfo(Symbol(),MODE_ASK) 将比Ask 更好 -- 将给出更多的相关价格

不...骂得够多了......
 
artmedia70:
不...骂得够多了......


是的,我记得上次的情况,Artyom,我很抱歉--它卡住了。
 
ALXIMIKS:

是的,我记得过去的情况,Artem,我很抱歉--它卡住了。
Artyom+Femis=Artemis;自豪吧,Artyom!这是个忏悔。我希望你能保持这种状态!
 
borilunad:
Artyom + Themis = Artemis;自豪吧,Artyom!这是个忏悔。我希望你能继续保持下去!
 
artmedia70:
这些照片来自哪里,你是如何做到的?的确,这些人物并不代表忒弥斯。