L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 985

 

buttare via il tuo perfezionamento con stop di 50 pips irrealistici.

È il tuo primo giorno dietro il tester

gli sviluppatori sono dei machinelayer, per la miseria!

 
SanSanych Fomenko:

Sono solo stufo che tu pretenda i risultati!

Che cosa ha mostrato? Alcune curve di origine sconosciuta con un fico in tasca sotto forma di periodo di apprendimento alla fine del grafico? Nemmeno un tester!

Ed ecco il risultato, 360% in 14 mesi, con un grafico di bilancio decente, con un mucchio di caratteristiche, con testo sorgente.


E a MO ha un risultato diretto.

Questo è un EA raffinato da qui

L'input è una variabile casuale uniformemente distribuita da cui otteniamo acquisto/vendita. Vedi - a caso.

Ma negli esercizi del modello in questo ramo l'errore è sempre inferiore al 50%, e il rapporto tra redditizio e non redditizio nel caso base è 47/53.

Allora perché avete bisogno del MO? E perché avete bisogno del MO nella vostra versione? Dopotutto, non fornisci alcuna prova che il modello non sia riqualificato! E se NON per affrontare il problema della riqualificazione, ecco un EA gratuito diPetr Voytenko per tutti i partecipanti.

Sembra un ottimo consigliere (!!!!)

link rotto

 
SanSanych Fomenko:

Questo è un Expert Advisor rivisto da qui

L'input è una variabile casuale uniformemente distribuita da cui otteniamo acquisto/vendita. Sai - a caso.

Ci sono passato anch'io, tipo 10 anni fa. Ne ho scritto da qualche parte. Ho elaborato accordi ottimali per la chiusura del supporto e ho reso le mie entrate casuali per non dare fastidio. L'idea era quella di ridurre al minimo le perdite utilizzando metodi di chiusura di trailing. Con mia sorpresa, il mio profitto era di circa il 10-15% al mese.

 
Renat Akhtyamov:

sembra che un consigliere figo fosse (!!!!)

il link è rotto.

Perché è rotto? Per me funziona.

Ecco il testo

//+------------------------------------------------------------------+
//|                                                     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;
     }
  }

//+------------------------------------------------------------------+
 
Yuriy Asaulenko:

Anch'io ci sono passato, nell'anno 10. Ne ho scritto da qualche parte. Ho elaborato la transazione ottimale di supporto-chiusura, e ho reso le voci casuali, per non essere troppo pensante. L'idea era quella di ridurre al minimo le perdite utilizzando metodi di chiusura di trailing. Con mia sorpresa, ho ottenuto un profitto di circa il 10-15% al mese.

Quando l'ho visto, ero entusiasta - è la prova più chiara che dovremmo avere a che fare con la capacità predittiva dei predittori, e necessariamente con la prova che questa capacità predittiva non cambia molto.

È allora che il tester ci dimostrerà questo fatto.

E cosa prova il tester per il Random Advisor? Dimostra solo che c'è una selezione casuale dell'ordine all'entrata. Il tester di questo EA prova il comportamento futuro dell'EA? Non è così, la domanda non è stata posta in questo modo.

 
SanSanych Fomenko:

Perché è rotto? Per me funziona.

Ecco il testo.

cool

ecco una versione automatizzata del trading manuale

 

Ed ecco un'altra opzione a causa di altre prese/stop

La perdita, che si è accumulata per molto tempo in piccole porzioni, è qui tutta in una volta.


Cambiando i parametri si possono ottenere tutti i tipi di look diversi.

 
SanSanych Fomenko:

Quando l'ho visto, sono rimasto estasiato - la prova più chiara che dovremmo occuparci della capacità predittiva dei predittori, e necessariamente della prova che questa capacità predittiva non cambia molto.

È allora che il tester ci dimostrerà questo fatto.

E cosa prova il tester per il Random Advisor? Dimostra solo che c'è una selezione casuale dell'ordine all'entrata. Il tester di questo EA prova il comportamento futuro dell'EA? Non è così, la domanda non è mai stata posta in questo modo.

Mi sembra che sia solo una prova della casualità del mercato, almeno la casualità per un osservatore.

Di fatto, lavoro come se fosse un processo casuale. Sì, una parte delle tendenze è persa, ma è compensata da un maggior numero di scambi, perché il rumore è più ad alta frequenza.

Hmm. Alla fine, il grosso del profitto è fatto dal supporto commerciale. Beh, e probabilmente la MM, che non ho mai capito).

 
Yuriy Asaulenko:

Penso che questa sia solo la prova della casualità del mercato, almeno per l'osservatore.

Di fatto, lavoro come un processo casuale. Sì, una parte delle tendenze è persa, ma è compensata da più scambi, perché il rumore è più ad alta frequenza.

Sì, ha un posto.

La teoria dei giochi inizia con il seguente problema.

In una stanza completamente buia e bendato, il re cerca di catturare il suo paggio, anch'esso bendato.

Domanda #1: Quale strategia dovrebbe seguire il re per catturare il ragazzo, che si nasconde negli angoli, nel numero minimo di passi?

Domanda 2: Quale strategia dovrebbe usare lo scagnozzo per evitare il re, che si nasconde negli angoli, per un numero minimo di passi?


La risposta è la stessa: una variabile casuale distribuita uniformemente.

Dietro un grafico di bilancio molto positivo c'è proprio questa posizione che l'incremento di quotazione è un valore uniformemente distribuito

 
SanSanych Fomenko:

Sì, è così.

Dietro il grafico del bilancio molto positivo si trova proprio questa posizione che la quotazione incrementale è una quantità uniformemente distribuita

Bene, eccoci al processo di Wiener, o processo simile a Wiener. Cosa c'è da prevedere? Il miglior predittore è il valore stesso.

Ma possiamo prevedere una distribuzione normale (o quasi-normale). Non in senso letterale, naturalmente, come una traccia di candela.