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

 
Ekburg:

嗯,你好...我当然很高兴问题得到了解决,但不知为什么你没有注意到我的留言,我在那里说了同样的话,用词略有不同,并立即说了缺陷,除了关闭文件,没有立即看到你在哪里有:)

关于这本书没有说要寄到哪里?
 
Vinin:

你不是说要把书寄到哪里吗?


对了!因为过节我忘了!:)谢谢你提醒我。

 
Vinin:

你有没有说过要把书寄到哪里?

我给邮局写信
 
告诉我,我怎么知道在任何时候最低TP能达到多少?
 
Trader7777:
告诉我,我怎么知道在任何时候最低TP能达到多少?

int STOPLEVEL=MarketInfo(NULL,MODE_STOPLEVEL);
 
谢谢)知道市场信息,不知道该在函数中设置哪个参数。
 
Trader7777:
谢谢)知道市场信息,不知道该在函数中设置哪个参数。
在编辑器中,将光标悬停在函数名称上,然后按F1。打开该功能的帮助信息。
 
你好。在论坛上找不到,所以我在这里写。我想在培训EA的基础上弄一个新的EA。作为例子的EA是在MA交叉点上进行交易。有两件不同时期的作品。一个缓慢的MA和一个快速的MA。当快线从底部向上与慢线相交时,我们买入;反之,我们卖出。我想把这个功能添加到标准交易条件中,以便额外跟踪交易的结果。如果一个仓位被止损或0关闭,EA将打开一个相反的仓位,而不是等待下一次交叉。换句话说,我们开了一个买入头寸,产生了一个止损(市场没有向我们希望的方向发展),并立即在止损的水平上开了一个卖出头寸。我知道这样的EA仍然会输,但我想了解应该写什么样的代码。我希望能从专业人士那里得到一些帮助。我不知道该如何处理这种代码,我也不知道该如何处理。
 
petya33r:
你好。在论坛上找不到,所以我在这里写。我想在培训EA的基础上弄一个新的EA。作为例子的EA是在MA交叉点上进行交易。有两件不同时期的作品。一个缓慢的MA和一个快速的MA。当快线从底部向上与慢线相交时,我们买入;反之,我们卖出。我想把这个功能添加到标准交易条件中,以便额外跟踪交易的结果。如果一个仓位被止损或0关闭,EA将打开一个相反的仓位,而不是等待下一次交叉。换句话说,我们开了一个买入头寸,产生了一个止损(市场没有向我们希望的方向发展),并立即在止损的水平上开了一个卖出头寸。我知道这样的EA仍然会输,但我想了解应该写什么样的代码。我希望能从专业人士那里得到一些帮助。我希望能从专业人士那里得到一些帮助。 非常感谢。

我想在止损水平上下挂单
 
evillive:

在止损位下一个相反方向的挂单。


我想把它放在没有任何悬念的地方。我在互联网上找到了以下专家顾问的代码。它在吃亏时开出了一个相反的位置,但我不能把它与两个MAs的交易条件结合在一起。

#property copyright "Copyright © 2013, MoneyInNetwork.ru"
#property link      "http://moneyinnetwork.ru"
extern string s1 = "Объем для первой сделки серии, лот";
extern double Lot = 0.1;
extern string s2 = "Уровень стоп-лосса, пипсов";
extern double stoploss = 100;
extern string s3 = "Уровень тейк-профита, пипсов";
extern double takeprofit = 500;
extern string s4 = "Уникальная метка для ордеров, открываемых только этим советником";
extern double MagicNumber = 600;
extern string s5 = "Максимальное отклонение от запрошенной цены, пипсов";
extern double slip = 15;
 
int init()
{
   return(0);
}
 
int deinit()
{
   return(0);
}
 
int start()
{ 
  //инициализация параметров
  int ticket = 0;
  int old_order_type = OP_SELL;
 
  //ищем среди всех открытых ордеров открытый советником ордер 
  RefreshRates();
  for ( int trade = OrdersTotal() - 1; trade >= 0; trade-- ) 
  {
      //проверяем есть ли среди всех открытых ордеров именно тот ордер, который открыт данным советником.
      if ( OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) && (OrderType() == OP_BUY || OrderType() == OP_SELL) && OrderMagicNumber() == MagicNumber && OrderSymbol() == Symbol() )
      {
          //если есть незакрытый ордер - выходим
          return (0);        
      }
  }
  //нет открытых ордеров - ищем в истории закрытых ордеров последний закрытый именно этим советником ордер 
  for ( trade = OrdersHistoryTotal() - 1; trade >= 0; trade-- ) 
  {
     if ( OrderSelect(trade, SELECT_BY_POS, MODE_HISTORY) && OrderMagicNumber() == MagicNumber && OrderSymbol() == Symbol() )
     {
         old_order_type = OrderType();
         if ( OrderProfit()<0 ) //последний закрытый советником ордер был убыточным, значит, следующий ордер открываем в направлении, противоположном закрытому с убытком
         {
                break; //прекращаем поиск
         }
     }
  }
  //если раньше покупали, то теперь продаем
  if ( old_order_type == OP_BUY )
  {
      ticket = OrderSend(Symbol(), OP_SELL, Lot,  NormalizeDouble(Bid, Digits), slip, NormalizeDouble(Ask+stoploss*Point, Digits), NormalizeDouble(Ask-takeprofit*Point, Digits), "Martingale-Sell", MagicNumber, 0, Red);
      Sleep (2000); //задержка в 2 секунды для обработки запроса торговым сервером брокера
      return (0);  
  }
  //если раньше продавали, то теперь покупаем
  if ( old_order_type == OP_SELL )
  {
      ticket = OrderSend(Symbol(), OP_BUY, Lot, NormalizeDouble(Ask, Digits), slip, NormalizeDouble(Bid-stoploss*Point, Digits), NormalizeDouble(Bid+takeprofit*Point, Digits), "Martingale-Buy", MagicNumber, 0, Green);
      Sleep (2000); //задержка в 2 секунды для обработки запроса торговым сервером брокера
      return (0);  
  }               
}