[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 95

 
PariaH:

请告诉我,如果触发了止损或止盈,如何开立一个新的订单。最好是一个代码!提前感谢!!!。

https://www.mql5.com/ru/code,打开任何EA的代码

或打开MT4自带的专家顾问的代码,例如,Moving Average.mq4。

在那里,如果你仔细看,你会看到它是如何做到的。

之后,你就可以说话了。

 

在那里,如果你仔细看,你会看到它是如何做到的。

之后,你们就可以谈了。

这并不是我所期待的答案......。我想要一个具体的例子,而不是 程序的全部代码 .. .

 
alexhammer:

我今天草拟了一个新的EA,我是为自己写的,但如果结果是好的,我以后会和你分享。

我想听听你的意见,还有什么需要补充的。它可以重新安排止损和止盈,在屏幕上移动线,显示未平仓的订单,以及更多关于账户的统计数据。 最重要的是为追踪止损添加一些选项,并直观地显示其运动。 还会有什么其他要求?

它看起来不错 :)。

至少,我想教我的专家顾问不要丢失存款。

一个好的EA并不能保证一个好的生活。

 
PariaH:

在那里,如果你仔细看,你会看到它是如何做到的。

之后,你们就可以谈了。

这并不是我所期待的答案......。我想要一个具体的例子,而不是 程序的全部代码 .. .

//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void CheckForOpen()
  {
   double ma;
   int    res;
//---- go trading only for first tiks of new bar
   if(Volume[0]>1) return;
//---- get Moving Average 
   ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//---- sell conditions
   if(Open[1]>ma && Close[1]<ma)  
     {
      res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,"",MAGICMA,0,Red);
      return;
     }
//---- buy conditions
   if(Open[1]<ma && Close[1]>ma)  
     {
      res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,"",MAGICMA,0,Blue);
      return;
     }
//----
  }
这是随MT4提供的EA代码的一部分。
 
coronel:

教一个EA至少不要损失存款。

美丽的EA并不能保证美丽的生活。


不要对我说教关于EA的事!我不知道。如果你不明白,这就不是一个交易EA。而屏幕上是一个模拟账户,有专门开出的订单,以测试这个EA的性能。
 
alexhammer:

不要对我说教关于EA的事!我不知道。如果你不明白,这就不是一个交易专家顾问。而屏幕上是一个模拟账户,有专门开出的订单,以测试这个EA的工作。

如果我的帖子听起来很说教,请原谅我。

我只是在表达我对自动交易的观点。

 
来吧,和平!:) 我只是在等待一些想法和愿望,我不只是想为自己做这件事。
 
alexhammer:
来吧,世界!:) 我只是在等待听到一些想法、愿望,不仅是为我自己,因为我正在努力。

这个网站上有大量的想法,但我不知道有谁以自动交易为生。

 
coronel:
这是随MT4提供的EA代码的一部分。


SPY...但这又不是问题 :) 问题是,我不使用指标...我只需要在STOP或PREF被触发的情况下开一个新的订单!如何能以另一种方式实施...

这里是代码的一部分....但它并不工作 ....

for(int i=1; i<=OrdersTotal(); i++) // ?????????????????

{

if(OrderSelect(i-1,SELECT_BY_POS)==true)

{

double SL=OrderStopLoss();

double TP=OrderTakeProfit(); // TP ?????????????.

double Price =OrderOpenPrice();

{

if(SL >= Price)

{

OrderSend(Symbol(), OP_BUY, lots,Ask, 3, Ask - stop_loss * Point, Bid + take_profit * Point, IDENT, MAGIC, 0, Green) ;

}

}

Alert(i);

}

}

 
PariaH:


スーパーション...但这又不是问题 :) 问题是,我不使用指标...我只需要开一个新的订单,如果它触发了STOP或PREF!如何能以另一种方式实施...

这里是代码的一部分....但它并不工作 ....


仍然是同一段代码,但没有指标。

int start()
  {
   int    res;
//---- go trading only for first tiks of new bar
   if(Volume[0]>1) return;
//---- 
   if(OrdersTotal()==0)//если нет открытых ордеров
     { 
      res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,"",MAGICMA,0,Red);// открыть SELL
 //     res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,"",MAGICMA,0,Blue); //открыть BUY
     }
//----
 return(0);}