[Archivio!] SCRIVERE UN PAESE INSIEME!!!

 

Propongo di scrivere un consigliere comune. Penso che mi aiuterà a rispondere a molte domande interessanti (su questo dopo che il progetto è finito), e in secondo luogo, forse faremo un graal insieme:) E infine, per i principianti (che penso di essere in termini di programmazione) sarà interessante imparare come costruire MTS passo dopo passo. Ho preso la strategia più semplice come base... Basta aprire al breakout dell'alto/basso del giorno precedente con un TP fisso e fermarsi all'alto/basso di questo giorno. Perché esattamente? Sì, perché in primo luogo, questo sistema non utilizza alcun indicatore, e in secondo luogo, il fattore di occupazione dall'anno 2000 ad oggi è 1,00 +/-0,03 (a seconda dei dati storici perché può essere diverso), cioè è 50/50 e, infine, penso che la rottura del High/Low del giorno precedente è psicologicamente importante per il mercato. Suggerisco di trovare altri livelli chiave o usare indici ausiliari o qualcos'altro, ma la cosa principale è ottenere un Expert Advisor più redditizio di quello presentato qui sotto. Questo è un grafico dal 01.01.2009 fino ad oggi, puoi ottenere un rapporto più dettagliato da solo. L'idea principale è che gli altri strumenti dovrebbero solo aiutare il sistema, e non costruirci sopra. Cioè prendiamo un sistema funzionante come base e cerchiamo di aggiornarlo (migliorarlo). Ecco cosa ho ottenuto...

Questo TS è completamente "spoglio", ma ha del potenziale...

Non ne consiglio l'uso ai principianti... Per i prossimi 5 anni si prosciuga ;)

Quindi, il campo non è arato...

Ecco il codice

//+-----------------------------------------------------------------------+
//|                                                     Крокодил ГЕНА.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;       
  }



Non sono un professionista... Sono un "dilettante", in modo che sia più facile lavorarci. O in generale... un nuovo schema. La cosa principale è che la condizione







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

in questa fase viene mantenuto.

Grazie a tutti coloro che hanno risposto.

 

L'EA è ottimizzato su tutta la linea e per quanto tempo i parametri ottimizzati reggono?

 
ivandurak >> :

L'EA è ottimizzato in tutte le aree e quanto durano i parametri ottimizzati?

Che tipo di ottimizzazione?

>> Qui (in questa fase) si può solo ottimizzare il TP, naturalmente si può eseguire il lotto, ma non ha senso

 

Sì, il campo non è solo incolto qui, è terra vergine ovunque si guardi, benedizione che si può regolare i livelli come si vuole con alti-bassi e tutti i tipi di Camarilla e Murrays. Per quanto riguarda l'high-low, l'ho già costruito - posso dire subito che non è un graal, perché un sistema decente produce drawdown molto grandi. Non sembreranno così grandi se i prezzi delle riprese sono paragonabili a loro. Tuttavia per la ripartizione di un giorno non si può fare una lunga ripresa - semplicemente non funzionerà o funzionerà tra 6 mesi.

Quindi consiglio di usare sistemi di breakout basati su intervalli stretti in cui il take è più grande dell'intervallo di breakout. L'esempio più eclatante è un breakout di un flat mattutino. In questo senso è assolutamente corretto.

Se vogliamo usare i daybank, non possiamo fare a meno di punti di riferimento supplementari sotto forma di livelli aggiuntivi, strumenti e tamburello dello sciamano.

 
sayfuji >> :

Sì, il campo non è solo incolto qui, è terra vergine ovunque si guardi, benedizione che si può regolare i livelli come si vuole sia in alto-basso che in tutti i tipi di Camarillas e Murrays. Per quanto riguarda l'alto-basso, l'ho già costruito - posso dire subito che non è un graal, perché un sistema decente produce drawdown molto grandi. Non sembreranno così grandi se le posizioni di take sono paragonabili a loro. Tuttavia per la rottura di un giorno non si può prendere una posizione lunga - semplicemente non funzionerà o funzionerà in 6 mesi.

Quindi consiglio di usare sistemi di breakout basati su intervalli stretti in cui il take è più grande dell'intervallo di breakout. L'esempio più eclatante è un breakout di un flat mattutino. In questo senso è assolutamente corretto.

Se dobbiamo danzare sui daybanks, non possiamo fare a meno di punti di riferimento aggiuntivi sotto forma di livelli, strumenti e tamburello dello sciamano.

Sostituire in Expert Advisor

RERIOD_D1 a RERIOD_H4, forse il risultato sarà migliore.

Ad essere onesti, non ho provato nulla con questo MTS... L'ho fatto solo per interesse...

Come ho detto nel thread precedente, sul forum della famosa "A" DC, i forumer hanno scritto insieme un esperto per un anno...

Cerchiamo anche noi di inventarci qualcosa... Abbiamo più potenziale di programmazione...

 
RomanS писал(а) >>

Che tipo di ottimizzazione?

Qui (in questa fase) solo il T.Pro può essere ottimizzato, naturalmente si può anche eseguire il lotto, ma non ha senso

Mi riferisco al commercio virtuale. I migliori parametri sono scelti per il trading reale. Se scriviamo due EAs in un codice, uno lavora su un crollo e l'altro su un rimbalzo, quello che scambia meglio.

 

Ora posso già vedere gli errori nel nostro MTS

Volevo che funzionasse per tutte le coppie di valute, ma ha funzionato solo per EURUSD

Ora lo correggo...

-----------------------------------------------+
//|                                                     Крокодил ГЕНА.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 >> :

Se hai intenzione di ballare per tutto il giorno, avrai bisogno di una guida aggiuntiva sotto forma di più livelli, espedienti e un tamburello da sciamano.

Quindi lo champagne e il tamburello devono andare insieme...

Da soli, meno possibilità, bisogna comunicare, è a questo che serve il forum...

 

Buon pomeriggio, RomanS.

Questa è una grande idea. Vedo molto spesso trader su forum stranieri che fanno squadra e creano un esperto con sforzi reciproci. Sono pronto a sostenerlo.

Per quanto riguarda la tua idea, è un'idea che affonda. E non è un graal. Se dobbiamo lavorare, lavoriamo seriamente, sperando altrimenti, perché iniziare tutto questo? La mia opinione: devi costruire il sistema solo per M1 EUR/USD. L'algoritmo dovrebbe essere basato sul modo di rilevamento delle tendenze. Prendiamo, per esempio, ....mm..... media mobile con l'algoritmo di smoothing di Tilson. Allora definiamo la voce. Possiamo prendere l'incrocio di due bacchette veloci e usarle per chiudere. Ci sono molti altri "extra" che potrebbero essere aggiunti. Suggeriscili :-). Inoltre, di sicuro ci dovrebbe essere una MM con la possibilità di includere Martin con impostazioni personalizzate.

In generale, balliamo da qui. Mettete le vostre idee per l'ingresso/uscita. Facciamolo insieme. Ma sfondare i livelli alti e bassi su D1 è un fallimento. sayfuji ha capito bene.

 

Perché un ramo, https://forum.mql4.com/ru/ 23917, non scrive?

In generale, la gente di solito si unisce intorno a un'idea interessante, ma questa è una crisi di genere...

 
Alex5757000 >> :

Buon pomeriggio, RomanS.

Questa è una grande idea. Vedo molto spesso trader su forum stranieri che fanno squadra e creano un esperto con sforzi reciproci. Sono pronto a sostenerlo.

Per quanto riguarda la tua idea, è un'idea che affonda. E non è un graal. Se dobbiamo lavorare, lavoriamo seriamente, sperando altrimenti, perché iniziare tutto questo? La mia opinione: devi costruire il sistema solo per M1 EUR/USD. L'algoritmo dovrebbe essere basato sul modo di rilevamento delle tendenze. Prendiamo, per esempio, ....mm..... media mobile con l'algoritmo di smoothing di Tilson. Allora definiamo la voce. Possiamo prendere l'incrocio di due bacchette veloci e usarle per chiudere. Ci sono molti altri "extra" che potrebbero essere aggiunti. Suggeriscili :-). Inoltre avremo bisogno di un MM con la possibilità di includere Martin con impostazioni personalizzate.

Comunque, balliamoci intorno. Proponi le tue idee per l'ingresso/uscita. Facciamolo insieme. Ma sfondare i livelli alti e bassi su D1 è un fallimento. sayfuji ha scritto bene.

Il fatto che finora non sia un graal (il tempo lo dirà) è sicuro!

Il fatto che non sia prugna (a lungo termine), è visibile quando lo fai girare nel tester (50/50 a volte funziona, a volte no), ma non prugna... Il fattore Prof.è circa 1.00

Per quanto riguarda M1, è ovviamente interessante, ma è improbabile che possa interessare un professionista... Inoltre, ho suggerito il sistema non per il trading quotidiano... L'ho testato su M5, generalmente non fa differenza.

L'ho testato su M5 e non fa alcuna differenza.

Basare l'algoritmo su un modo di identificare una tendenza

Hai suggerito un modo per determinare la tendenza, quindi fallo.... Qual è il problema? Ne discuteremo...

Prendiamo, per esempio, ....mm..... una media mobile con un algoritmo di smoothing di Tilson.

Nessun problema... puoi mettere un paio di righe di codice e wollya... Il fattore Prof è superiore a 2,0.

Questo è il punto, non sto suggerendo di indovinare ma di fare, e quelli che non sanno fare... dovrebbero imparare come fanno gli altri.

Personalmente, io (come dilettante) voglio fare esperienza dai professionisti...

Motivazione: