Chiusura delle posizioni. Segnale indicatore acceso. - pagina 7

 
Pubblica un test sui prezzi di apertura. Io stesso ho questo (dall'inizio di quest'anno): sto pensando a come ridurre i pullback. Il mio Expert Advisor è in demo, ho fatto il 50% del deposito in una settimana (senza MM). Forse possiamo scambiarci l'esperienza.
 

L'esperto lavora su tutte le zecche. Non sui prezzi di apertura per niente. Nel download - test per l'8 febbraio

File:
1111_1.zip  72 kb
 
Per esempio, i miei tick nel tester mostrano un'immagine come la tua, ma quando faccio il test per barre, è un po' diverso, molto più vicino alla realtà (l'ho confrontato con la demo). Questa è solo la mia esperienza (sono fondamentalmente un principiante) e le mie osservazioni. Forse sono fondamentalmente sbagliato, non lo nego. Non so se è una coincidenza o no, ma ecco la mia foto dal conto demo: IMHO, molto simile alla tua :)
 

Non ho avuto il tempo di registrare una casella di posta. E non ho una casella di posta che lavora nei fine settimana. Non capisco bene. Il test deve essere eseguito in questa modalità, che viene utilizzata nel codice dell'Expert Advisor. Se l'algoritmo implica di lavorare con tutti i tick, non è corretto testare "per prezzi di apertura". Stai solo ingannando te stesso.

È necessario capire perché i risultati sono diversi nelle diverse modalità. Allo stesso tempo "a prezzi di apertura" è un risultato peggiore. Di solito è vero il contrario.

Inoltre, se l'Expert Advisor lavora "a prezzi di apertura", il risultato del test deve coincidere con il risultato di "a tutti i tick". Quasi coincidono.

 

Tutto dipende dal generatore di tick del tester. Le condizioni lì sono ideali. Es. condizione di entrata: a = 1,5001. Nel tester sarà vero al 100%, ma nella realtà potrebbe non esserlo. Il prezzo può saltare da 1,4999 a 1,5003 per 1 tick. La condizione è mancata, lo scambio non è stato aperto. Se mi sbaglio - correggetemi, ve ne sarei grato.

Ecco il mio test delle zecche:

Deposito iniziale 700.00



Utile netto 6157.73

Massimo prelievo 74.80 (1.50%)

Prezzi di apertura:

Deposito iniziale 700.00



Utile netto 1304.47

Massimo prelievo 514.82 (29.40%)
----

Ho previsto nel mio Expert Advisor la commutazione tra tick/barre. Naturalmente, quando si abilita il controllo dell'apertura delle barre, i test basati su tick e barre coincidono. L'immagine è la stessa di quella disegnata sopra con i prezzi di apertura.

 
Lukyanov:

È il generatore di tick del tester. Il prezzo può saltare da 1,4999 a 1,5003 per tick. La condizione è stata mancata, lo scambio non si è aperto.

Sì, è possibile. Ciononostante. Penso che sia inaccettabile testare un Expert Advisor che funziona con tutti i tick ai prezzi di apertura. E otterremo dati inaffidabili su grandi orizzonti temporali. Al contrario, se questo esperto lavora a prezzi aperti, allora il test "a tutti i tick" è possibile e necessario.....

E c'è un parametro per lo slippage - extern int Slippage=....;

 
Lo slittamento è una cosa, ma la condizione: aprire se a = 1,5000 è un'altra...
 

Buon pomeriggio a tutti! Questa domanda può sembrare ingenua, ma è ciò che mi ha messo nei guai...

Ho un indicatore che voglio usare nel mio Expert Advisor. Ecco il grafico. Ecco il codice.

#property copyright "Copyright © 2006 , David W Honeywell , 12/12/2006"
#property link      "HellOnWheels.Trans@gmail.com"

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Green
#property indicator_color2 Red

#property indicator_maximum 100.0
#property indicator_minimum   0.0

#property indicator_level1 70
#property indicator_level2 50
#property indicator_level3 20

extern int IndicatorTime =  0;
extern int RSI_Periods   = 14;
extern int Applied_Price =  0;
extern int LineWidth     =  4;

double Buffer0[];
double Buffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,LineWidth);
SetIndexBuffer(0,Buffer0);

SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,LineWidth);
SetIndexBuffer(1,Buffer1);

IndicatorShortName(" ColorRSI ( "+RSI_Periods+" )");

return(0);  
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+

int start()
{
  
  int     counted_bars=IndicatorCounted();
  double  RSIValue;
  int     i;
  int     limit;

  limit = Bars-counted_bars;
  
  for(i=limit; i>0; i--)
   {
     RSIValue=iRSI(Symbol(),IndicatorTime,RSI_Periods,Applied_Price,i);
    if (RSIValue > 50.00000000)
     {
       Buffer0[i] = RSIValue;
       Buffer1[i] = EMPTY_VALUE;
       if (Buffer0[i+1] == EMPTY_VALUE) Buffer0[i+1] = Buffer1[i+1]; 
     }
    else
     {
       Buffer0[i] = EMPTY_VALUE; 
       Buffer1[i] = RSIValue;
       if (Buffer1[i+1] == EMPTY_VALUE) Buffer1[i+1] = Buffer0[i+1]; 
     }
   }

//---- done
  
  return(0);
}

 

Non riesco a capire come impostare la condizione per passare dal rosso al verde e viceversa!

E come faccio a impostare l'espressione i Custom per implementare questa transizione... Per favore, rispondete se lo sapete...

 
if ( Buffer0[i+1] != EMPTY_VALUE && Buffer0[i+2] == EMPTY_VALUE )
{
  // началась зеленая линия
}
È più o meno così