交易中的机器学习:理论、模型、实践和算法交易 - 页 985

 

用50个不切实际的点的止损丢掉你的精进。

这是你在测试员后面的第一天

开发商是机械化的,看在上帝的份上!

 
桑桑尼茨-弗门科

我只是受够了你对结果的要求!

你展示了什么?一些来历不明的曲线,在图形的末端以学习期的形式出现在你的口袋里?甚至连测试器都没有!

而这里是结果,14个月内360%,有一个像样的平衡图,有一堆特征,有源文本。


而对MO来说,有一个直接的结果。

是从这里 提炼出来的EA

输入是一个均匀分布的随机变量,我们从中得到购买/出售。你看--随机。

但在这个分支的模型练习中,误差一直小于50%,在基本情况下,盈利和不盈利的比例是47/53。

那么你为什么需要MO呢?而你的版本中为什么需要MO呢?毕竟,你没有提供任何证据证明该模型没有被重新训练过!"。如果不是为了处理再培训的问题,这里有Petr Voytenko 为所有来者提供的免费EA。

似乎是一个伟大的顾问 (!!!!)

断链

 
桑桑尼茨-弗门科

这是一个经过修订的专家顾问,来自这里

输入是一个均匀分布的随机变量,我们从中得到购买/出售。你知道--随机。

我也经历过这种情况,好像是10年前。我在什么地方写过这个问题。我制定了最佳的支持关闭交易,并使我的条目随机化,以避免麻烦。我们的想法是使用跟踪关闭的方法将损失降到最低。令我惊讶的是,我每月的利润大约为10-15%。

 
雷纳特-阿赫蒂亚莫夫

看起来像一个很酷的顾问是(!!!!)

链接被破坏。

为什么会坏呢?这对我来说很有效。

以下是该文

//+------------------------------------------------------------------+
//|                                                     RandomEA.mq4 |
//|                                                             Pete |
//|                                                  www.izimoney.ru |
//+------------------------------------------------------------------+
#property copyright "Pete"
#property link      "https://www.mql5.com/ru/users/m0rg4n"
#property version   "1.00"
#property strict
//--- input parameters

input double   lot_persent=0;   //lot in percent of balance, 0=minimal lot
input double   clot=0;          //constant lot, 0=off
input int      com=5;           //your commission on 1 lot
input int      tp_and_sl=100;   //takeprofit and stoploss
input double   k=2;             //martingale multiplier
input int      maxspread=25;    //maximal spread
input int      friday_stop=12;  //friday OFF hour
input int      monday_start=1;  //monday ON hour
input int      slip=10;         //slippage


double minlot,maxlot,lot,acc=0,lot2;
bool b;
int h;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
   MathSrand(GetTickCount());   //turn on randomize function
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
 Comment("");
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

   minlot=MarketInfo(Symbol(),MODE_MINLOT);                        //
   maxlot=MarketInfo(Symbol(),MODE_MAXLOT);                        //
   lot=NormalizeDouble(lot_persent*AccountBalance()/100000,2);     // calculating lots
   if(lot<minlot){lot=minlot;}                                     //
   if(lot>maxlot){lot=maxlot;}                                     //
   lot=NormalizeDouble(lot,2);                                     //

   if (clot!=0){lot=clot;}
   
   
   
   //if there are no orders open trade according signal
   if(OrdersTotal()==0)
     {
     
      if (MarketInfo(Symbol(),MODE_SPREAD)>maxspread){Comment("Spread too big");return;}
     
     
      if (
          ((DayOfWeek()==5)&&(Hour()>friday_stop))
          ||
          (DayOfWeek()==6)
          ||
          (DayOfWeek()==0)
          ||
          ((DayOfWeek()==1)&&(Hour()<monday_start))
         ){Comment("Not trading time");return;} //hollydays off    
 
      if(signal()==1){if(AccountBalance()<acc){lot=lot2*k;}buy_(lot);return;}

      if(signal()==-1){if(AccountBalance()<acc){lot=lot2*k;}sell_(lot);return;}
     }

   
   // if there is one order we are turn take profit and stop loss on
   if(OrdersTotal()==1)
     {
      acc=AccountBalance();
      b=OrderSelect(0,SELECT_BY_POS);
      lot2=OrderLots();
      if((OrderStopLoss()==0)&&(OrderType()==OP_BUY)) 
      {b=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-tp_and_sl*Point,OrderOpenPrice()+tp_and_sl*Point+2*com*Point,0,Blue);}
      if((OrderStopLoss()==0)&&(OrderType()==OP_SELL))
      {b=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+tp_and_sl*Point,OrderOpenPrice()-tp_and_sl*Point-2*com*Point,0,Red);}

     }
   
   
   // if there are more than one trade is on then close all positions (becouse some error with it)
   if(OrdersTotal()>1){CloseAll();}


  }
//+------------------------------------------------------------------+

int signal() //return random signal , buy or sell
  {
   int r0;
   double r1;

   r0=MathRand();
   r1=MathMod(r0,2);
   if(r1!=0){return(-1);}
   if(r1==0){return(1);}
   return(0);
  }
//*****************************************************************

//+------------------------------------------------------------------+
void buy_(double lot998) // opening buy function
  {
   lot=NormalizeDouble(lot998,2);
//   sl_=NormalizeDouble(Ask-sl*Point,Digits);
//   tp_=NormalizeDouble(Ask+tp*Point,Digits);
   b=OrderSend(Symbol(),OP_BUY,lot998,Ask,slip,0,0,"",0,0,Blue);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void sell_(double lot999) //opening sell function
  {
   lot=NormalizeDouble(lot999,2);
//   sl_=NormalizeDouble(Bid+sl*Point,Digits);
//   tp_=NormalizeDouble(Bid-tp*Point,Digits);
   b=OrderSend(Symbol(),OP_SELL,lot999,Bid,slip,0,0,"",0,0,Red);
  }
//*************************************************************

void CloseAll() // close all trades function
  {
   int i,tik;
   i=OrdersTotal();
   while(i!=0)
     {
      b=OrderSelect(i-1,SELECT_BY_POS);
      if(b==true)
        {
         tik=OrderTicket();
         if(OrderType()==OP_BUY) {b=OrderClose(OrderTicket(),OrderLots(),Ask,slip,clrNONE);}
         if(OrderType()==OP_SELL){b=OrderClose(OrderTicket(),OrderLots(),Bid,slip,clrNONE);}
         if((OrderType()==OP_BUYSTOP) || (OrderType()==OP_SELLSTOP) || (OrderType()==OP_BUYLIMIT) || (OrderType()==OP_SELLLIMIT)){b=OrderDelete(tik,clrNONE);}
        }
      i=i-1;
     }
  }

//+------------------------------------------------------------------+
 
尤里-阿索连科

我也经历过这种情况,早在10年的时候。我在什么地方写过这个问题。我制定了最佳的支持关闭交易,并使条目随机化,这样就不会想太多。我们的想法是使用跟踪关闭的方法将损失降到最低。令我惊讶的是,我每个月都获得了大约10-15%的利润。

当我看到它时,我很激动--这是最明确的证明,我们应该处理预测者的预测能力,而且必然是证明这种预测能力不会有太大变化。

这时,测试人员将向我们证明这一事实。

那么测试者为随机顾问证明了什么?它只证明了在进入时有一个随机的订单选择。该EA的测试人员是否证明了该EA的未来行为?它没有,问题不是这样提出的。

 
SanSanych Fomenko:

为什么会坏呢?这对我来说很有效。

以下是文本。

这里是手动交易的 自动版本

 

而这里是另一个选择,因为有其他的采取/停止的措施

长期以来一直在小范围内积累的损失,一下子就到了。


通过改变参数,你可以得到各种不同的外观。

 
桑桑尼茨-弗门科

当我看到它时,我很高兴--这是最清楚的证明,我们应该处理预测者的预测能力,而且必然要处理这种预测能力不会有太大变化的证明。

这时,测试人员将向我们证明这一事实。

那么测试者为随机顾问证明了什么?它只证明了在进入时有一个随机的订单选择。该EA的测试人员是否证明了该EA的未来行为?它没有,这个问题从来没有以这种方式提出过。

在我看来,这只是市场随机性的一个证明,至少,对观察者来说是随机的。

事实上,我的工作就好像是一个随机的过程。是的,损失了一部分趋势,但它被更多的交易数量所补偿,因为噪音更高频。

嗯。最后,大部分的利润是由贸易支持来实现的。嗯,可能还有MM,我一直不明白)。

 
Yuriy Asaulenko:

我认为这只是证明了市场的随机性,至少对观察者来说是如此。

事实上,我的工作是一个随机过程。是的,损失了一部分趋势,但它被更多的交易所补偿,因为噪音更多是高频的。

是的,它有一个地方。

博弈论从以下问题开始。

在一个完全黑暗的房间里,国王戴着眼罩,试图抓住他的助手,后者也戴着眼罩。

问题一:国王应该采取什么策略,以最少的步骤抓住躲在角落里的男孩?

问题2:为了避开躲在角落里的国王,小喽啰应该采取什么策略,以达到最少的步数?


答案是一样的:一个均匀分布 的随机变量。

在一个非常积极的平衡图的背后,正是这一立场,即报价增量是一个均匀分布的值

 
桑桑尼茨-弗门科

是的,确实如此。

在非常积极的资产负债表图的背后,正是这种增量报价是一个均匀分布的数量的立场

好吧,我们在这里看到了维纳过程,或类似维纳的过程。有什么可预测的?最好的预测器是价值本身。

但我们可以预测正态分布(或接近正态分布)。当然不是字面意义上的,像蜡烛的痕迹。