[存档!]共同书写一个国家!!。

 

我提议写一个联合顾问。我认为这将帮助我回答许多有趣的问题(在项目完成之后),其次,也许我们会一起做一个圣杯:)最后,对于初学者(我认为在编程方面我是初学者)来说,学习如何一步步建立MTS将是很有趣的。我把最简单的策略作为基础...只要在突破前一天的高/低点时开仓,并设定固定的止损点,在这一天的高/低点止损。究竟为什么?是的,因为首先,这个系统不使用任何指标,其次,从2000年到现在的占领系数是1.00 +/-0.03(取决于历史数据,因为它可能不同),也就是说是50/50,最后,我认为突破前一天的高/低点对市场的心理很重要。我建议找到其他关键水平或使用辅助指数或其他东西,但最主要的是得到一个比下面介绍的更有利可图的专家顾问。这是一张从2009年1月1日至今的图表,你可以自己获得更详细的报告。主要的想法是,其他工具应该只帮助系统,而不是建立在它们之上。也就是说,我们把一个工作系统作为基础,并试图升级(改进)它。这是我得到的东西...

这个TS是完全 "裸露 "的,但它有潜力......

我不建议初学者使用它...在接下来的5年里,它将耗尽;)

所以,这块地没有耕种......

以下是代码

//+-----------------------------------------------------------------------+
//|                                                     Крокодил ГЕНА.mq4 |
//|                                                         Крокодил ГЕНА |
//+-----------------------------------------------------------------------+
// Описание ТС
// 1. Открытие позиций происходит при пробитии High или Low предыдущего дня
//    SL ставиться на High или Low текущего дня, TP выставляется во внешних переменных, 
//    единственная оговорка не более 1 позиции в день в переменной LastTradeTime 
//    если в ней нет необходимост смело сносите /RomanS/
// 2.
// 3.
// 4.
// 5.
 
  // Внешние переменные
  extern double TakeProfit = 900; 
  extern double Lot        = 1;    
  extern string SYMBOL     = "EURUSD";
  
  // Глобальные переменные
  int LastTradeTime = 0;      // Время последней открытой сделки
  
  // Поехали... :)
  int start() 
  {  
     int Ticket;
  double BID,
         ASK,
         SL=0,
         TP=0;                                  
    bool Trade     = true,
         Open_Bay  = false,
         Open_Sell = false;

  // Проверяем можно ли торговать
  if ( Trade==true) 
   {
   
  // Критерии открытия позиций
    if (Bid > iHigh ( SYMBOL,PERIOD_D1,1)) Open_Bay = true; 
    if (Bid < iLow ( SYMBOL,PERIOD_D1,1)) Open_Sell = true;
        
  // Открытие позиций
      if ( Open_Bay == true && OrdersTotal()==0 && TimeDay(TimeCurrent())!= LastTradeTime)                                           
        {      
         RefreshRates(); 
         Alert("111111111111");
          ASK = MarketInfo( SYMBOL,10);                                
          SL = iLow( SYMBOL,PERIOD_D1,0);
          TP = ASK + TakeProfit*Point;
          if (( ASK- SL)/Point<MarketInfo( SYMBOL,14)) return;  // проверяем минимальный уровень стопов
          Alert("Пробуем открыть Buy ", SYMBOL, " по ", ASK, SL, TP);         
          Ticket=OrderSend( SYMBOL,OP_BUY, Lot, ASK,20, SL, TP);         
           if ( Ticket > 0)                                                  
            {            
             Alert ("Открыт ордер Buy ", Ticket);
             LastTradeTime=TimeDay(TimeCurrent()); // задаем время сделки, чтобы сегодня больше не торговать 
             return;                                                       
            }         
        }
     if ( Open_Sell == true && OrdersTotal()==0 && TimeDay(TimeCurrent())!= LastTradeTime)                                             
        {      
         RefreshRates();                                             
          BID = MarketInfo( SYMBOL,9);
          SL = iHigh ( SYMBOL,PERIOD_D1,0);
          TP = BID - TakeProfit*Point;
          if (( SL- ASK)/Point<MarketInfo( SYMBOL,14)) return; // проверяем минимальный уровень стопов
          Ticket = OrderSend( SYMBOL,OP_SELL, Lot, BID,20, SL, TP);         
           if ( Ticket > 0)                                                  
             { 
              Alert ("Открыт ордер Sell ", Ticket);
              LastTradeTime=TimeDay(TimeCurrent());  // задаем время сделки, чтобы сегодня больше не торговать
              return;                                   
             }         
          return;                                                       
        }
   
   // Закрытие позиции
   
   // Модификация ордера
   
   }
  return;       
  }



我不是一个专业的...我是一个 "外行",这样就更容易操作了。或者一般来说......一个新的计划。最主要的是,条件







    if (Bid > iHigh ( SYMBOL,PERIOD_D1,1)) Open_Bay = true; 
    if (Bid < iLow ( SYMBOL,PERIOD_D1,1)) Open_Sell = true;

在这一阶段,保持。

感谢所有回应的人。

附加的文件:
 

EA是否已经全面优化,优化后的参数能维持多久?

 
ivandurak >> :

EA是否在所有领域都进行了优化,优化后的参数能持续多长时间?

什么样的优化?

在这里(在这个阶段),你只能优化TP,当然你可以运行很多,但没有意义。

 

是的,这里的田地不仅仅是未开垦的,无论你看哪里都是处女地,保佑你可以随心所欲地调整水平,无论是高低档还是各种卡马利亚和穆雷。至于高低点,我已经建立了它--我可以直接告诉你,它不是一个圣 杯,因为一个像样的系统会产生非常大的跌幅。如果持仓与它们相当,它们就不会显得那么大。 然而,对于一天的故障,人们不能采取多头头寸--它根本不会起作用,或者在6个月内不会起作用。

因此,我建议使用基于窄幅区间的突破系统,在该区间内的取值要大于突破区间。最突出的例子是对上午平盘的突破。在这个意义上,它是绝对正确的。

如果我们想使用日银,就不能没有额外的参考点,即额外的级别、工具和萨满的手鼓。

 
sayfuji >> :

是的,这里的田地不仅仅是未开垦的,无论你看哪里都是处女地,保佑你可以随心所欲地调整水平,有高有低,有各种卡马利亚斯和穆雷。至于高低点,我已经建立了它--我可以直接告诉你,它不是一个圣杯,因为一个像样的系统会产生非常大的跌幅。如果持仓与它们相当,它们就不会显得那么大。 然而,对于一天的故障,人们不能采取多头头寸--它根本不会起作用,或者在6个月内不会起作用。

因此,我建议使用基于窄幅区间的突破系统,在该区间内的取值要大于突破区间。最突出的例子是对上午平盘的突破。在这个意义上,它是绝对正确的。

如果我们必须为日银跳舞,我们就不能没有额外的参考点,即额外的水平、工具和萨满的手鼓。

在专家顾问中替换

RERIOD_D1到RERIOD_H4,也许结果会更好。

说实话,我还没有用这个MTS试过什么...只是为了兴趣而做...

正如我在前一个主题中所说,在著名的 "A "DC的论坛上,论坛成员已经在一起写了一年......

让我们也想出一些办法来......我们有更多的编程潜力...

 
RomanS писал(а)>>

什么样的优化?

这里(在这个阶段)只有T.Pro可以被优化,当然你也可以运行很多,但没有意义。

我指的是虚拟交易。选择最佳参数进行真实交易。如果我们在一个代码中写了两个EA,一个在崩溃时工作,另一个在反弹时工作,那一个的交易效果更好。

 

现在我已经可以看到我们的MTS中的错误了

我希望它对所有货币对都有效,但它只对欧元兑美元有效。

我现在要纠正它...

-----------------------------------------------+
//|                                                     Крокодил ГЕНА.mq4 |
//|                                                         Крокодил ГЕНА |
//+-----------------------------------------------------------------------+
// Описание ТС
// 1. Открытие позиций происходит при пробитии High или Low предыдущего дня
//    SL ставиться на High или Low текущего дня, TP выставляется во внешних переменных, 
//    единственная оговорка не более 1 позиции в день в переменной LastTradeTime 
//    если в ней нет необходимост смело сносите /RomanS/
// 2.
// 3.
// 4.
// 5.
 
  // Внешние переменные
  extern double TakeProfit = 900; 
  extern double Lot        = 1;    
  extern string SYMBOL     = "EURUSD";
  
  // Глобальные переменные
  int LastTradeTime = 0;      // Время последней открытой сделки
  
  // Поехали... :)
  int start() 
  {  
     int Ticket;
  double BID,
         ASK,
         SL=0,
         TP=0;                                  
    bool Trade     = true,
         Open_Bay  = false,
         Open_Sell = false;

  // Проверяем можно ли торговать
  if ( Trade==true) 
   {
   
   ASK = MarketInfo( SYMBOL,10);
   BID = MarketInfo( SYMBOL,9);
  
  // Критерии открытия позиций
    if ( BID > iHigh ( SYMBOL,PERIOD_D1,1)) Open_Bay = true; 
    if ( BID < iLow ( SYMBOL,PERIOD_D1,1)) Open_Sell = true;
        
  // Открытие позиций
      if ( Open_Bay == true && OrdersTotal()==0 && TimeDay(TimeCurrent())!= LastTradeTime)                                           
        {      
         RefreshRates(); 
          SL = iLow( SYMBOL,PERIOD_D1,0);
          TP = ASK + TakeProfit*Point;
          if (( ASK- SL)/Point<MarketInfo( SYMBOL,14)) return;  // проверяем минимальный уровень стопов
          Alert("Пробуем открыть Buy ", SYMBOL, " по ", ASK, SL, TP);         
          Ticket=OrderSend( SYMBOL,OP_BUY, Lot, ASK,20, SL, TP);         
           if ( Ticket > 0)                                                  
            {            
             Alert ("Открыт ордер Buy ", Ticket);
             LastTradeTime=TimeDay(TimeCurrent()); // задаем время сделки, чтобы сегодня больше не торговать 
             return;                                                       
            }         
        }
     if ( Open_Sell == true && OrdersTotal()==0 && TimeDay(TimeCurrent())!= LastTradeTime)                                             
        {      
         RefreshRates();                                             
          SL = iHigh ( SYMBOL,PERIOD_D1,0);
          TP = BID - TakeProfit*Point;
          if (( SL- ASK)/Point<MarketInfo( SYMBOL,14)) return; // проверяем минимальный уровень стопов
          Ticket = OrderSend( SYMBOL,OP_SELL, Lot, BID,20, SL, TP);         
           if ( Ticket > 0)                                                  
             { 
              Alert ("Открыт ордер Sell ", Ticket);
              LastTradeTime=TimeDay(TimeCurrent());  // задаем время сделки, чтобы сегодня больше не торговать
              return;                                   
             }         
          return;                                                       
        }
   
   // Закрытие позиции
   
   // Модификация ордера
   
   }
  return;       
  }
附加的文件:
 
sayfuji >> :

如果你要在这一天跳舞,你需要一些额外的指导,包括更多的水平、噱头和萨满的手鼓。

因此,香槟和手鼓必须同时进行......

独自一人,机会更少,你必须沟通,这就是论坛的作用......

 

下午好,RomanS。

这是个好主意。我经常看到国外论坛上的交易员组队,通过相互努力创造出一个专家。我已准备好支持它。

至于你的想法,它是一个沉没的想法。而且这不是一个圣杯。如果我们要工作,就让我们认真工作,希望如此,为什么要开始这一切?我的意见:你必须只为M1欧元/美元建立系统。该算法应以趋势检测的方式为基础。比方说,....mm.....移动平均线 与Tilson的平滑算法。然后让我们来定义这个条目。我们可以采取两个快速魔杖的交叉,用它们来关闭。还有很多其他的 "额外内容 "可以添加。建议他们:-)。另外,可以肯定的是,应该有一个MM,有可能包括马丁的自定义设置。

一般来说,让我们从这里开始跳舞。把你的想法输入/输出。让我们一起做吧。但突破D1的高位和低位是失败的。 sayfuji说得很对。

 

为什么一个分支,https://forum.mql4.com/ru/ 23917,不写?

一般来说,人们通常会围绕一个有趣的想法团结起来,但这是一个流派的危机...

 
Alex5757000 >> :

下午好,RomanS。

这是个好主意。 我经常看到国外论坛上的交易员组队,通过相互努力创造出一个专家。我已准备好支持它。

至于你的想法,它是一个沉没的想法。而且它不是一个圣杯。如果我们要工作,就让我们认真工作,希望如此,为什么要开始这一切?我的意见:你必须只为M1欧元/美元建立系统。该算法应以趋势检测的方式为基础。比方说,....mm..... 移动平均线与Tilson的平滑算法。然后让我们来定义这个条目。我们可以采取两个快速魔杖的交叉,用它们来关闭。还有很多其他的 "额外内容 "可以添加。建议他们:-)。此外,我们还需要一个有可能包括马丁的自定义设置的MM。

总之,让我们绕着它跳舞吧。想出你对输入/输出的想法。让我们一起做吧。但突破D1的高低水平是失败的。 sayfuji写得很对。

事实上,到目前为止,它不是一个圣杯(时间会证明),这是肯定的!

事实上,它不是梅花(从长远来看),当你在测试仪中运行时,它是可见的(50/50有时有效,有时无效),但不是梅花...教授系数约为1.00

关于M1,它当然很有趣,但不太可能引起专家的兴趣......此外,我建议该系统不用于日常交易......我在M5上测试了一下,一般来说没有区别。

我在М5上测试了一下,没有什么区别。

将算法建立在识别趋势的方式上

你提出了一个确定趋势的方法,那就去做吧....有什么问题,我们来讨论一下...

比方说,....mm..... 一个带有Tilson平滑算法的移动平均线。

没问题... 你可以输入几行代码,然后就可以了。教授系数超过2.0。

这就是问题所在,我不是建议你去猜,而是去做,那些不知道怎么做的人......应该学习别人怎么做。

就我个人而言,我(作为一个业余爱好者)想从专业人士那里获得经验......