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

 

EA使用了一个倒计时,对发生的事件进行时间记录。

if (line1 < 0 && time ==0){time=Time[0];}//сработало предварительное условие входа, записываем время
if (time > 0)shift=iBarShift(Symbol(),Period(),time);//находим индекс бара

而如果该条件没有被触发

if (line1 == 0){time=0;}

指数随着每根柱子的增加而增加。

在指标中,有必要在某个指数后放一个箭头,一次。

我试图在指标中做同样的事情,但没有任何效果。

int tikket;// расположено на глобальном уровне
datetime time;// расположено на глобальном уровне

///////////////////////////////////

for(i=limit1;i>=0;i--)
     {
      if(ExtMapBuffer2[i]<0 && time == 0){time=Time[i];}
      if(time > 0)shift=iBarShift(Symbol(),Period(),time);//находим индекс бара
      if(ExtMapBuffer2[i]==0){time=0;tikket=0;}
      if(ExtMapBuffer2[i]<0 && shift>=shet && tikket==0){tikket=1;if(tikket>0)ExtMapBuffer3[i]=High[i]+150*Point;}
     }


在 "ExtMapBuffer2[i]<0"的第一条上,箭头被放了进去,而 "shift>=shet "则不被考虑。

从逻辑上讲,我们应该对这一行做些什么 "if(time >0)shift=iBarShift(Symbol(),Period(),time);" 。

你怎么看?

 

亲爱的程序员们,我需要你们的帮助。

我试图编译CloseAllOrders EA,但我得到了以下条目。

------------------------------------------

CloseAllOrders_v5.mq4'
'WinUser32.mqh'
函数 必须返回一个值 CloseAllOrders_v5。mq4 30 22
函数必须返回一个值 CloseAllOrders_v5.mq4 79 41
0个错误,2个警告。

--------------------------------------------------

我需要做什么来使我的EA发挥作用?

该EA附在后面。

提前感谢您的帮助。

注意到。

附加的文件:
 
Geowind64:

亲爱的程序员们,我需要你们的帮助。

我试图编译CloseAllOrders的EA,但我得到了以下条目。

------------------------------------------

'CloseAllOrders_v5.mq4'。
WinUser32.mqh'
函数必须返回一个值 CloseAllOrders_v5.mq4 30 22
函数必须返回一个值 CloseAllOrders_v5.mq4 79 41
0个错误(s), 2个警告(s)

--------------------------------------------------

我应该怎样做才能使我的EA发挥作用?

附有专家顾问。

提前感谢您的帮助。

注意到。


该函数必须返回

if (ret==IDCANCEL)return(0);

и

if (ret1==IDCANCEL)return(0);

类似这样的事情。

 

给你的问题。

专家顾问有一个设置,决定在哪个蜡烛上进入。EA在指标的信号下,在信号后的第3根蜡烛上开启交易。在信号之后的第2根蜡烛上,有一个相反方向的信号。我如何写出当信号出现在相反方向时,我们不进入的条件?

extern int sdvig=3;//На какой свече заходим

 double pokupaem=iCustom(Symbol(),Per,"super-signals-channel",4,500,3,sdvig);

 double prodaem=iCustom(Symbol(),Per,"super-signals-channel",4,500,2,sdvig);

 if(OrdersTotal()==0)

 {

  double lot=(AccountBalance()/ MinLot)*0.01;

  if(center>Ask && pokupaem>0 && prodaem<1 && prodaem1<1 &&SelBuyDaily==Vhodim1)

  {

   x=OrderSend(Symbol(),OP_BUY,lot,Ask,3,0,0,Komment,Magic,0,Blue);

  }

  if(center<Bid && prodaem>0 && pokupaem<1 && pokupaem1<1 && SelBuyDaily==Vhodim2)

  {

   y=OrderSend(Symbol(),OP_SELL,lot,Bid,3,0,0,Komment,Magic,0,Red);

  }

 }

 

通过使用额外的变量解决了这个问题。我们规定的指标是在当前蜡烛上的信号。当第一个信号出现时,我们给变量分配一个数字,当相反的信号出现时,我们给另一个数字分配。

 ////////////////////////////////////////////////////////////////////////////////////////

 //                       Проверка на наличие обратного сигнала                       //

 //////////////////////////////////////////////////////////////////////////////////////

  double pokup=iCustom(Symbol(),Period(),"super-signals-channel",4,500,3,0);

  double prod=iCustom(Symbol(),Period(),"super-signals-channel",4,500,2,0);

 if(pokup>0){

  proverka=1;

  }

 if(prod>0){

  proverka=2;

  }

/////////////////////////////////////////////////////////////////////////////////////////////////////

//                  Блок открытия зделок при отключённых стоп-лосс и тейк-профит                  //

///////////////////////////////////////////////////////////////////////////////////////////////////

 if(OrdersTotal()==0)

 {

  double lot=(AccountBalance()/ MinLot)*0.01;

  if(center>Ask && pokupaem>0 && prodaem<1 && prodaem1<1 && SelBuyDaily==Vhodim1 && proverka==1)

  {

   x=OrderSend(Symbol(),OP_BUY,lot,Ask,3,0,0,Komment,Magic,0,Blue);

  }

  if(center<Bid && prodaem>0 && pokupaem<1 && pokupaem1<1 && SelBuyDaily==Vhodim2 && proverka==2)

  {

   y=OrderSend(Symbol(),OP_SELL,lot,Bid,3,0,0,Komment,Magic,0,Red);

  }

 }

 

你好,为什么EA打开......甚至在价格之上开出订单?我正在Metatrader的策略测试器中尝试该EA。

我是这样开单的。

   RefreshRates();
   switch(send)
      {
      case 1: ticked = OrderSend(Symbol(), OP_BUY, lot, Ask, 4, NormalizeDouble(Bid-SL*Point, Digits), NormalizeDouble(Ask+TP*Point, Digits), "Buy_", magik, 0, clrBlue); break;
      case 2: ticked = OrderSend(Symbol(), OP_SELL, lot, Bid, 4, NormalizeDouble(Ask+SL*Point, Digits), NormalizeDouble(Bid-TP*Point, Digits), "Sell_", magik, 0, clrRed); break;
      default : ticked = 0;
      }



 
nr72:

你好,为什么EA打开......甚至在价格之上开出订单?我正在Metatrader的策略测试器中尝试该EA。

我是这样开单的。



买入也是在Ask打开的。在可视化图表上按F8键,在 "常规 "选项卡中勾选 "显示询问线"。所有问题都会自行消失。
 
artmedia70:
买盘在询问时打开。在可视化图表上按F8键,在 "常规 "选项卡中勾选 "显示询问线"。所有问题都会自行消失。


谢谢你!现在明白了...
 
alexey1979621:
大家好,我不能让猫头鹰火鸡附体,请有识之士帮助。
欧元线(绿色)从上往下穿过英镑线(浅棕色),打开了欧元英镑的卖出指令。如果英镑从下方向上越过欧元线,我们就买入欧元英镑。
我的日志说,它没有看到指标。
我附上顾问和指标。

提前感谢。


我不建议进行反编译。到浴室只有一段路。
 

1.你能告诉我,是否可以通过程序化的方式折叠位于图表左上角的 快速交易栏?

2.是否有可能以编程方式禁用快速交易?