我如何通过试验和错误组装我的顾问 - 页 29

 

告诉你要做一个信号

;)

 
Renat Akhtyamov:

我告诉你,发出信号

;)

我需要先检查一下--对于设置,我还没有决定。我将在演示中运行一个月--会显示什么结果。一个星期,我计算了一下--还不错。在4个货币对上,他从50000卢布到10000卢布,一个星期--现在只有他有开放的头寸--我将看看下一个星期会如何发展。

1周

1周

Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
Aleksandr Klapatyuk:

我需要先检查一下--对于设置,我还没有决定。一个月,我将在一个演示上运行它--结果会是什么。一个星期,它工作了--还不错。在4个货币对上,从50,000卢布到10,000卢布,一个星期--现在只有他有开放的位置--我将看看下一个星期会如何坚持。

而0.01的风险是0.01%?

而谢尔盖说,规范。

 
Renat Akhtyamov:
0.01%的风险是0.01%吗?

我还没有完全搞清楚这个风险是如何运作的--它总是显示我是0.01。

虽然在测试器中--它设置了,并且有一个更大的地段

---------------------------- 这个函数设置了地段,并计算出--以某种方式

   //+------------------------------------------------------------------+
   //| Calculate optimal lot size                                       |
   //+------------------------------------------------------------------+
   double            TradeSizeOptimized(void)
     {
      double price=0.0;
      double margin=0.0;
      //--- select lot size
      if(!SymbolInfoDouble(_Symbol,SYMBOL_ASK,price))
         return(0.0);
      if(!OrderCalcMargin(ORDER_TYPE_BUY,_Symbol,1.0,price,margin))
         return(0.0);
      if(margin<=0.0)
         return(0.0);

      double lot=NormalizeDouble(AccountInfoDouble(ACCOUNT_MARGIN_FREE)*MaximumRisk/margin,2);
      //--- calculate number of losses orders without a break
      if(DecreaseFactor>0)
        {
         //--- select history for access
         HistorySelect(0,TimeCurrent());
         //---
         int    orders=HistoryDealsTotal();  // total history deals
         int    losses=0;                    // number of losses orders without a break

         for(int i=orders-1; i>=0; i--)
           {
            ulong ticket=HistoryDealGetTicket(i);
            if(ticket==0)
              {
               Print("HistoryDealGetTicket failed, no trade history");
               break;
              }
            //--- check symbol
            if(HistoryDealGetString(ticket,DEAL_SYMBOL)!=_Symbol)
               continue;
            //--- check Expert Magic number
            if(HistoryDealGetInteger(ticket,DEAL_MAGIC)!=Magic_Number)
               continue;
            //--- check profit
            double profit=HistoryDealGetDouble(ticket,DEAL_PROFIT);
            if(profit>0.0)
               break;
            if(profit<0.0)
               losses++;
           }
         //---
         if(losses>1)
            lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
        }
      //--- normalize and check limits
      double stepvol=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP);
      lot=stepvol*NormalizeDouble(lot/stepvol,0);

      double minvol=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
      if(lot<minvol)
         lot=minvol;

      double maxvol=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX);
      if(lot>maxvol)
         lot=maxvol;
      //--- return trading volume
      return(lot);
     }
   //+------------------------------------------------------------------+
 
Сергей Криушин:

我不知道它是如何工作的,但它工作得很好,直到演示利润像坦克一样......做得好,辉煌简直是超级的,非常感谢你和Barabashkin还有其他辉煌而不贪婪的人,伟大的工作......它看起来像Lecha Volchansky的黄牛从他的线程https://www.mql5.com/ru/forum/259953/page12...顺便说一下,他们也打算为MT5做一个黄牛。甚至还有人试图启动它......

559
sem 2018.07.03 10:32 en

会不会有MT5的版本?

一个用于MT5的小预设(在测试器中工作)。

如果之前的所有交易的符号和方向都是加号的,则开启下一笔交易。

文件

但我找不到继续的方法......所以我提议继续下去,并根据你的线路进行调整......我把它与你的戳击法也结合起来,直到我看到会发生什么......))所以不要失去信心,继续做下去......)



我已经把这个EA和我的EA结合起来了......我还不知道如何管理这个奇迹。

图片来源

附加的文件:
 
Aleksandr Klapatyuk:

融合了这个专家和他的.仍然不知道如何操作这个奇迹。

#财产版本 "1.01"

在测试器中,左边的按钮不能正常工作--但在终端的正常模式下,应该可以工作!

当我按下它们时,它们没有被重置,我必须再按一次才能重置它们。

只有 "买入 "和 "卖出 "在测试器中不工作,但在图表的终端中可以工作。

附加的文件:
 
Aleksandr Klapatyuk:

#财产版本 "1.01"

在测试器中左边的按钮,不能正常工作 - 但在终端的正常模式下,应该可以工作

当我按下它们时,它们不会重置,我需要再按一次才能重置它们。

只有 "买入 "和 "卖出 "在测试器中不工作,但在图表的终端中可以工作。

测试结果是一样的

图片来源

 
Aleksandr Klapatyuk:

#财产版本 "1.01"

在测试器中左边的按钮,不能正常工作 - 但在终端的正常模式下,应该可以工作

当我按下它们时,它们不会重置,我必须再次按下它们才能重置。

只有 "买入 "和 "卖出 "在测试器中不工作,但在图表的终端中可以工作。

我没有启用按钮初始化功能......然后ButtonCreate就不能检测到它了

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit(void)
  {
      EventSetTimer(1); // количество секунд 
                     //   ButtonCreate("BUY",Black,OldLace,50,50,100,20,10);
//   ButtonCreate("SELL",Black,OldLace,160,50,100,20,10);
//
//   ButtonCreate("BUY_Close",Black,OldLace,50,80,100,20,10);
//   ButtonCreate("SELL_Close",Black,OldLace,160,80,100,20,10);
//
//   ButtonCreate("Trailing",Black,OldLace,50,110,100,20,10);
//ArraySize(_name);
   int _y=100;
   for(int i=0; i<ArraySize(_name); i++)
     {
      ButtonCreate(_name[i],125,_y,130,20,10);
      _y=_y+25;
     };
//--- create all necessary objects
   if(!ExtExpert.Init())
      return(INIT_FAILED);
//---
   if(ObjectBuySell)
     {
      bool res=false;
        {
         ObjectCreate(0,"BUY 1",OBJ_BUTTON,0,0,0);
         ObjectSetInteger(0,"BUY 1",OBJPROP_XDISTANCE,ChartGetInteger(0,CHART_WIDTH_IN_PIXELS)-102);
         ObjectSetInteger(0,"BUY 1",OBJPROP_YDISTANCE,37);
         ObjectSetString(0,"BUY 1",OBJPROP_TEXT,"BUY 1");
         ObjectSetInteger(0,"BUY 1",OBJPROP_BGCOLOR,clrMediumSeaGreen);

         ObjectCreate(0,"SELL 1",OBJ_BUTTON,0,0,0);
         ObjectSetInteger(0,"SELL 1",OBJPROP_XDISTANCE,ChartGetInteger(0,CHART_WIDTH_IN_PIXELS)-50);
         ObjectSetInteger(0,"SELL 1",OBJPROP_YDISTANCE,37);
         ObjectSetString(0,"SELL 1",OBJPROP_TEXT,"SELL 1");
         ObjectSetInteger(0,"SELL 1",OBJPROP_BGCOLOR,clrDarkOrange);

         ObjectCreate(0,"CLOSE",OBJ_BUTTON,0,0,0);
         ObjectSetInteger(0,"CLOSE",OBJPROP_XDISTANCE,ChartGetInteger(0,CHART_WIDTH_IN_PIXELS)-75);
         ObjectSetInteger(0,"CLOSE",OBJPROP_YDISTANCE,57);
         ObjectSetString(0,"CLOSE",OBJPROP_TEXT,"CLOSE");
         ObjectSetInteger(0,"CLOSE",OBJPROP_BGCOLOR,clrMagenta);
        }
      res=true;
     }

     
//--- secceed
   return(INIT_SUCCEEDED);
  }
 
按照我的理解,黄色按钮应该是随手打开的--买入打开,转为买入下降,转为买入关闭,关闭买入关闭,转为卖出,你会看到黄色卖出上有多少钱...
 
Сергей Криушин:

我没有启用按钮初始化功能......而且ButtonCreate无法检测到它

它已经配对了 -AVGiS intelligence.mq5195 kb

你正试图以其他方式附加。它不会起作用。那么你必须重写所有的东西,没有它(CSampleExpert::)-- bool CSampleExpert::Init(void)